Модуль datetime выполняет проверку даты и математику, что нормально, когда вы заботитесь о реальности.
Мне нужен объект, который хранит сгенерированные даты, даже если они недействительны. Дата и время слишком строгое, поскольку иногда я знаю только год или только год и месяц, а иногда у меня есть дата, например, 30.02.2011.
Есть ли модуль, который похож на datetime, но может обрабатывать недопустимые даты?
Если нет, то как лучше всего справиться с этим, дублируя как можно меньше функций и по-прежнему позволяя вычислять даты, когда это возможно?
ОБНОВЛЕНИЕ
Мотивацией для этого является интеграция с несколькими системами, которые используют даты и не заботятся о недопустимых датах (mysql и perl) в дополнение к желанию иметь возможность указывать основные общие диапазоны времени. Для нечеткой даты математика начинается с начала известной единицы времени (если я знаю год и месяц, но не день, используйте первое, если я знаю год, но не месяц или день, сначала используйте январь).Этот последний бит не нужен, но был бы хорош, и я понимаю, почему он не распространен, поскольку люди, которым нужна специальная математика даты, вероятно, построят его сами.
Одна из основных проблем, с которыми я сталкиваюсь, - это загрузка дат из mysql в python с использованием sqlalchemy и mysqldb - если вы загрузите значение из столбца даты im mysql, которое выглядит как '2011-01-00' в mysql, вы получите None в python. Это совсем не круто.