@@ -154,16 +154,13 @@ def view(self, dtype: npt.DTypeLike) -> Self:
154154 def astype (
155155 self , dtype : npt .DTypeLike , order : Literal ["K" , "A" , "C" , "F" ] = "K" , * , copy : bool = True
156156 ) -> Self :
157- if copy :
158- return ScalarWrapper (dtype .type (self ._value ))
159- self ._value = dtype .type (self ._value )
160- return self
157+ raise TypeError ("ScalarWrapper object has no astype()" )
161158
162159 def fill (self , value : Any ) -> None :
163160 self ._value = value
164161
165162 def copy (self ) -> Self :
166- return ScalarWrapper (self ._value )
163+ return self . __class__ (self ._value )
167164
168165 def transpose (self , axes : SupportsIndex | Sequence [SupportsIndex ] | None = None ) -> Self :
169166 return self
@@ -175,7 +172,7 @@ def all(self) -> bool:
175172 return bool (self ._value )
176173
177174 def __eq__ (self , other : object ) -> Self :
178- return ScalarWrapper (self ._value == other )
175+ return self . __class__ (self ._value == other )
179176
180177 def __repr__ (self ) -> str :
181178 return f"ScalarWrapper({ self ._value !r} )"
@@ -208,7 +205,7 @@ def __neg__(self) -> Any:
208205 return - self ._value
209206
210207 def __abs__ (self ) -> Any :
211- if isinstance (self ._value , ( int , float , complex ) ):
208+ if hasattr (self ._value , "__abs__" ):
212209 return abs (self ._value )
213210 raise TypeError (f"bad operand type for abs(): '{ self ._value .__class__ .__name__ } '" )
214211
0 commit comments