in ludwig/features/date_feature.py [0:0]
def date_to_list(date_str, datetime_format, preprocessing_parameters):
try:
if datetime_format is not None:
datetime_obj = datetime.strptime(date_str, datetime_format)
else:
datetime_obj = parse(date_str)
except:
logging.error(
'Error parsing date: {}. '
'Please provide a datetime format that parses it '
'in the preprocessing section of the date feature '
'in the model definition. '
'The preprocessing fill in value will be used.'
'For more details: '
'https://ludwig.ai/user_guide/#date-features-preprocessing'
.format(date_str)
)
fill_value = preprocessing_parameters['fill_value']
if fill_value != '':
datetime_obj = parse(fill_value)
else:
datetime_obj = datetime.now()
yearday = (
datetime_obj.toordinal() -
date(datetime_obj.year, 1, 1).toordinal() + 1
)
midnight = datetime_obj.replace(
hour=0, minute=0, second=0, microsecond=0
)
second_of_day = (datetime_obj - midnight).seconds
return [
datetime_obj.year,
datetime_obj.month,
datetime_obj.day,
datetime_obj.weekday(),
yearday,
datetime_obj.hour,
datetime_obj.minute,
datetime_obj.second,
second_of_day
]