def encode_schedule(value):
if value is None:
return None
elif isinstance(value, datetime):
return {
'__type__': 'datetime',
'__value__': encode_datetime(value)
}
elif isinstance(value, crontab):
return {
'__type__': 'crontab',
'__value__': '%(minute)s\t%(hour)s\t%(day_of_week)s\t'
'%(day_of_month)s\t%(month_of_year)s' % {
'minute': value._orig_minute,
'hour': value._orig_hour,
'day_of_week': value._orig_day_of_week,
'day_of_month': value._orig_day_of_month,
'month_of_year': value._orig_month_of_year,
}
}
elif isinstance(value, solar):
return {
'__type__': 'solar',
'__value__': {
'event': value.event,
'lat': value.lat,
'lon': value.lon
}
}
elif isinstance(value, schedule):
return {
'__type__': 'schedule',
'__value__': {
'run_every': value.run_every.total_seconds(),
'relative': bool(value.relative),
}
}
else:
raise NotImplementedError(
'Cannot serialize schedule %(type)s type' % {
'type': type(value).__name__
}
)
评论列表
文章目录