def serialize_dtstamp(todo: "Todo", container: Container): if todo.dtstamp: instant = todo.dtstamp else: instant = arrow.now() container.append(ContentLine("DTSTAMP", value=arrow_to_iso(instant)))
def serialize_recurrent(event, container): if event.recurrent: params = { "FREQ": event.recurrent, "BYDAY": ",".join(event.recurrence_weekdays), "INTERVAL": str(event.recurrence_interval) } if event.recurrence_count: params["COUNT"] = event.recurrence_count if event.recurrence_end: params["UNTIL"] = arrow_to_iso(event.recurrence_end) container.append( ContentLine("RRULE", value=parse_rrule_dict(params)))
def serialize_trigger(alarm, container): if not alarm.trigger: raise ValueError("Alarm must have a trigger") if isinstance(alarm.trigger, timedelta): representation = timedelta_to_duration(alarm.trigger) container.append(ContentLine("TRIGGER", value=representation)) else: container.append( ContentLine( "TRIGGER", params={"VALUE": ["DATE-TIME"]}, value=arrow_to_iso(alarm.trigger), ))
def serialize_due(todo: "Todo", container: Container): if todo._due_time: container.append(ContentLine("DUE", value=arrow_to_iso(todo._due_time)))
def serialize_start(todo: "Todo", container: Container): if todo.begin: container.append(ContentLine("DTSTART", value=arrow_to_iso(todo.begin)))
def serialize_created(todo: "Todo", container: Container): if todo.created: container.append(ContentLine("CREATED", value=arrow_to_iso(todo.created)))
def serialize_completed(todo: "Todo", container: Container): if todo.completed: container.append( ContentLine("COMPLETED", value=arrow_to_iso(todo.completed)) )