Skip to content

Latest commit

 

History

History
25 lines (18 loc) · 867 Bytes

File metadata and controls

25 lines (18 loc) · 867 Bytes

DateType

A Workaround

DateType is a workaround for two bugs to demonstrate that we could have a type-checking-time wrapper for datetime that doesn't change (or almost doesn't change) the implementation, but fixes up two very annoying behaviors of the stdlib datetime module:

  1. a datetime now won't type-check as a date - it still inherits at runtime (the implementation is, after all, not changed) but it doesn't inherit at type-time.
  2. there are separate types for naive and aware datetimes.

There's a very small bit of implementation glue (concrete @classmethods for construction on the Naive and Aware types, and a few functions that do runtime checks to convert to/from stdlib types).