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