@@ -168,7 +168,7 @@ def get_file_dates(
168168 source_date_update : str = "git" ,
169169 meta_datetime_format : str = "%Y-%m-%d %H:%M" ,
170170 meta_default_timezone : str = "UTC" ,
171- meta_default_time : Optional [ datetime ] = None ,
171+ meta_default_time : datetime = None ,
172172 ) -> Tuple [datetime , datetime ]:
173173 """Extract creation and update dates from page metadata (yaml frontmatter) or
174174 git log for given file.
@@ -193,8 +193,6 @@ def get_file_dates(
193193 """
194194 # empty vars
195195 dt_created = dt_updated = None
196- if meta_default_time is None :
197- meta_default_time = self .meta_default_time = datetime .min
198196
199197 # if enabled, try to retrieve dates from page metadata
200198 if not self .use_git or (
@@ -418,20 +416,14 @@ def get_date_from_meta(
418416 try :
419417 if isinstance (date_metatag_value , str ):
420418 out_date = datetime .strptime (date_metatag_value , meta_datetime_format )
421- # datetime being a subclass of date, the following elif order matters
422- # see: https://stackoverflow.com/a/68743663/2556577
423- elif isinstance (date_metatag_value , datetime ):
424- # if datetime, use it directly
425- out_date = date_metatag_value
426- elif isinstance (date_metatag_value , date ):
427- out_date = datetime .combine (
428- date = date_metatag_value , time = meta_default_time .time ()
429- )
419+ elif isinstance (date_metatag_value , (date , datetime )):
420+ if isinstance (meta_default_time , datetime ):
421+ time_to_add = meta_default_time .time ()
422+ else :
423+ time_to_add = datetime .min .time ()
424+ out_date = datetime .combine (date_metatag_value , time_to_add )
430425 else :
431- logger .info (
432- f"Incompatible date type: { type (date_metatag_value )} . It must be: "
433- "date, datetime or str (complying with defined strftime format)."
434- )
426+ logger .debug (f"Incompatible date type: { type (date_metatag_value )} " )
435427 return out_date
436428 except ValueError as err :
437429 logger .error (
0 commit comments