You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I noticed that it's doing some data type-specific stuff (there's a special path for np.datetime64). Why was this necessary?
I'm asking because this function is erroring over in #2874 when I add timedelta data types, because timedeltas are not caught in the datetime special case. But I find the need for dtype-specific special cases here suspicious.
For reference, if I replace that function with something much simpler:
defas_scalar(self) ->ScalarType:
"""Returns the buffer as a scalar value"""ifself._data.size!=1:
raiseValueError("Buffer does not contain a single scalar value")
returnself.as_numpy_array().item()
I get errors in a different place, but it looks like those errors are revealing real indexing bugs.
The text was updated successfully, but these errors were encountered:
update: array.item() returns a native python value, but we want a numpy scalar, which we can get instead via array[()]. I implemented this over in #3027
I don't remember exactly, but there were some typing/mypy problems when just returning self.as_numpy_array().item().
But returning array[()] seems like the way to go anyway, thanks for fixing this.
@brokkoli71 could you explain the logic of
NDBuffer.as_scalar
?I noticed that it's doing some data type-specific stuff (there's a special path for
np.datetime64
). Why was this necessary?I'm asking because this function is erroring over in #2874 when I add timedelta data types, because timedeltas are not caught in the datetime special case. But I find the need for dtype-specific special cases here suspicious.
For reference, if I replace that function with something much simpler:
I get errors in a different place, but it looks like those errors are revealing real indexing bugs.
The text was updated successfully, but these errors were encountered: