Dear NumPy developers,

Hi all, I am Riku.
I currently work on the PR #29619 ( https://github.com/numpy/numpy/pull/29619 
), which deprecates `generic` unit in `timedelta64` dtype.
This change is expected to have a large impact on the downstream libraries, so 
I sent this email to notify it.

Let me briefly summarize the motivation and changed behavior.

Motivation:

`generic` unit in `timedelta64` dtype is allowed to be operated with any other 
`timedelta64` dtype.
So, comparison between several `timedelta64` dtypes including `generic` unit 
becomes not transitive.
It is reported in the issue #28287 ( 
https://github.com/numpy/numpy/issues/28287 )

```python
x, y, z = np.timedelta64(1, "ms"), np.timedelta64(2), np.timedelta64(5, "ns")
print(x < y < z) # True, but x < z is False
```

Changed behavior:

After the deprecation, when using `generic` unit in `timedelta64` dtype, 
`DeprecationWarning` will be raised.

Following operations will raise the warning:

```python
np.timedelta64(1)

np.array([1, 2], dtype="m8")

# `+ 1` is treated as adding 1 with generic timedelta
np.array([1, 2], dtype="m8[s]") + 1
```

I want to note that `NaT` is also required to have specific unit. So, the 
following code will also raise the warning:

```python
np.array(["NaT"], dtype="m8")
```

I'd appreciate it if you let me know when you have any questions or concerns 
about this change.
Any feedback is welcome.

Best Regards,

Riku
_______________________________________________
NumPy-Discussion mailing list -- [email protected]
To unsubscribe send an email to [email protected]
https://mail.python.org/mailman3//lists/numpy-discussion.python.org
Member address: [email protected]

Reply via email to