This is tied in with the equality semantics of these objects, has come up here, in the dateutil tracker, and in pandas:

https://mail.python.org/archives/list/datetime-sig@python.org/thread/45P3EXY3OJM56MJJH57VJ7NZEBXG7HG4
/https://github.com/dateutil/dateutil/issues/835
https://github.com/dateutil/dateutil/issues/792
https://github.com/pandas-dev/pandas/pull/24006#discussion_r238483612

My understanding is that hashing cannot be implemented until/unless equality is changed.  Is that accurate?  Is there a compelling reason for these _not_ to be hashable?