Date traits accepts datetime values, expect TraitsError instead
- Dominant language
- Python
- Stars
- 462
- Forks
- 90
- PR merge metrics
- No merged PRs in 30d
Description
When an attribute has a `Date` type, then it is meant to be just *Date*, not *Date and Time*. So I would expect assigning a `datetime` object to a Date trait to fail, but it does not.
```
import datetime
from traits.api import Date, HasTraits
class A(HasTraits):
date = Date()
```
```
>>> a = A()
>>> a.date = datetime.datetime(1920, 3, 2) # Expect to raise TraitsError here
>>> a.date
datetime.datetime(1920, 3, 2, 0, 0)
```
This behaviour comes from the fact that `datetime` is a subclass of `date` in Python:
```
>>> isinstance(datetime.datetime(1920, 3, 2), datetime.date)
True
```
See also https://bugs.python.org/issue28878
Propose deprecating allowing `datetime` objects for `Date` type.
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.