Skip to content

Commit 56d1dea

Browse files
committed
handle datetype scalars for different units
1 parent b68c60e commit 56d1dea

File tree

1 file changed

+8
-1
lines changed

1 file changed

+8
-1
lines changed

src/zarr/core/buffer/core.py

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -427,7 +427,14 @@ def as_scalar(self) -> ScalarType:
427427
"""Returns the buffer as a scalar value"""
428428
if self._data.size != 1:
429429
raise ValueError("Buffer does not contain a single scalar value")
430-
value: ScalarType = self.dtype.type(self.as_numpy_array().item())
430+
item = self.as_numpy_array().item()
431+
432+
if np.issubdtype(self.dtype, np.datetime64):
433+
unit: str = np.datetime_data(self.dtype)[0] # Extract the unit (e.g., 'Y', 'D', etc.)
434+
value: ScalarType = np.datetime64(item, unit)
435+
else:
436+
value: ScalarType = self.dtype.type(item) # Regular conversion for non-datetime types
437+
431438
return value
432439

433440
@property

0 commit comments

Comments
 (0)