Ensure that undefined datetimes are always written as UNDEFINED_DATE to

the db
This commit is contained in:
Kovid Goyal 2013-07-29 15:42:10 +05:30
parent a68fe4409f
commit 3490af8df7

View File

@ -13,8 +13,8 @@ from datetime import datetime
from calibre.constants import preferred_encoding, ispy3 from calibre.constants import preferred_encoding, ispy3
from calibre.ebooks.metadata import author_to_author_sort, title_sort from calibre.ebooks.metadata import author_to_author_sort, title_sort
from calibre.utils.date import (parse_only_date, parse_date, UNDEFINED_DATE, from calibre.utils.date import (
isoformat) parse_only_date, parse_date, UNDEFINED_DATE, isoformat, is_date_undefined)
from calibre.utils.localization import canonicalize_lang from calibre.utils.localization import canonicalize_lang
from calibre.utils.icu import strcmp from calibre.utils.icu import strcmp
@ -67,12 +67,14 @@ def multiple_text(sep, ui_sep, x):
def adapt_datetime(x): def adapt_datetime(x):
if isinstance(x, (unicode, bytes)): if isinstance(x, (unicode, bytes)):
x = parse_date(x, assume_utc=False, as_utc=False) x = parse_date(x, assume_utc=False, as_utc=False)
if x and is_date_undefined(x):
x = UNDEFINED_DATE
return x return x
def adapt_date(x): def adapt_date(x):
if isinstance(x, (unicode, bytes)): if isinstance(x, (unicode, bytes)):
x = parse_only_date(x) x = parse_only_date(x)
if x is None: if x is None or is_date_undefined(x):
x = UNDEFINED_DATE x = UNDEFINED_DATE
return x return x