示例#1
0
def reminder_triage(item):
    got_trigger = False
    for reminder in ReminderList(item).reminders:
        if reminder.trigger is not None:
            got_trigger = True
            yield (timestamp(reminder.trigger), NOW)
    if got_trigger:
        yield (0, LATER)
示例#2
0
def reminder_triage(item):
    got_trigger = False
    for reminder in ReminderList(item).reminders:
        if reminder.trigger is not None:
            got_trigger = True
            yield (timestamp(reminder.trigger), NOW)
    if got_trigger:
        yield (0, LATER)
示例#3
0
def event_triage(item):
    """Hook for triage of an event."""
    if not Event.installed_on(item):
        return ()
    else:
        start = Event(item).start
        if not start:
            return ()
        # LATER from distant past until NOW at start time
        return ((0, LATER), (timestamp(start), NOW))
示例#4
0
def event_triage(item):
    """Hook for triage of an event."""
    if not Event.installed_on(item):
        return ()
    else:
        start = Event(item).start
        if not start:
            return ()
        # LATER from distant past until NOW at start time
        return ((0, LATER), (timestamp(start), NOW))
示例#5
0
def occurrence_triage(item):
    """Hook for triage of an occurrence."""
    if not isinstance(item, Occurrence):
        return ()
    else:
        master = Recurrence(item.master)
        done_before = master.triaged_done_before
        start = master.start_for(item)
        if item.hashable_recurrence_id in master.triaged_recurrence_ids:
            return (master.triaged_recurrence_ids[item.hashable_recurrence_id],)
        elif not done_before or done_before < start:
            return ()
        else:
            return ((timestamp(start), DONE),)
示例#6
0
def to_hashable(dt):
    """
    Take a datetime with tzinfo and return either a timestamp or a naive
    datetime, either of which are suitable as dictionary keys (datetimes
    with floating tzinfo are *not*, because their __hash__ is mutable).

    Pass through non-datetimes.

    """
    if not isinstance(dt, datetime) or dt.tzinfo is None:
        return dt
    if dt.tzinfo is TimeZone.floating:
        return dt.replace(tzinfo=None)
    else:
        return timestamp(dt)
示例#7
0
def occurrence_triage(item):
    """Hook for triage of an occurrence."""
    if not isinstance(item, Occurrence):
        return ()
    else:
        master = Recurrence(item.master)
        done_before = master.triaged_done_before
        start = master.start_for(item)
        if item.hashable_recurrence_id in master.triaged_recurrence_ids:
            return (
                master.triaged_recurrence_ids[item.hashable_recurrence_id], )
        elif not done_before or done_before < start:
            return ()
        else:
            return ((timestamp(start), DONE), )
示例#8
0
def to_hashable(dt):
    """
    Take a datetime with tzinfo and return either a timestamp or a naive
    datetime, either of which are suitable as dictionary keys (datetimes
    with floating tzinfo are *not*, because their __hash__ is mutable).

    Pass through non-datetimes.

    """
    if not isinstance(dt, datetime) or dt.tzinfo is None:
        return dt
    if dt.tzinfo is TimeZone.floating:
        return dt.replace(tzinfo=None)
    else:
        return timestamp(dt)
示例#9
0
def datetimeToDecimal(dt):
    return decimal_int(timestamp(dt))
示例#10
0
def datetimeToDecimal(dt):
    return decimal_int(timestamp(dt))