def trigger_to_dict(trigger):
    """Converts a trigger to an OrderedDict."""

    data = OrderedDict()

    if isinstance(trigger, DateTrigger):
        data['trigger'] = 'date'
        data['run_date'] = trigger.run_date
    elif isinstance(trigger, IntervalTrigger):
        data['trigger'] = 'interval'
        data['start_date'] = trigger.start_date

        if trigger.end_date:
            data['end_date'] = trigger.end_date

        w, d, hh, mm, ss = extract_timedelta(trigger.interval)

        if w > 0:
            data['weeks'] = w
        if d > 0:
            data['days'] = d
        if hh > 0:
            data['hours'] = hh
        if mm > 0:
            data['minutes'] = mm
        if ss > 0:
            data['seconds'] = ss
    elif isinstance(trigger, CronTrigger):
        data['trigger'] = 'cron'

        if trigger.start_date:
            data['start_date'] = trigger.start_date

        if trigger.end_date:
            data['end_date'] = trigger.end_date

        for field in trigger.fields:
            if not field.is_default:
                data[field.name] = str(field)
    else:
        data['trigger'] = str(trigger)

    return data
def trigger_to_dict ( trigger ) : data = OrderedDict ( ) if isinstance ( trigger , DateTrigger ) : data [ 'trigger' ] = 'date' data [ 'run_date' ] = trigger . run_date elif isinstance ( trigger , IntervalTrigger ) : data [ 'trigger' ] = 'interval' data [ 'start_date' ] = trigger . start_date if trigger . end_date : data [ 'end_date' ] = trigger . end_date w , d , hh , mm , ss = extract_timedelta ( trigger . interval ) if w > 0 : data [ 'weeks' ] = w if d > 0 : data [ 'days' ] = d if hh > 0 : data [ 'hours' ] = hh if mm > 0 : data [ 'minutes' ] = mm if ss > 0 : data [ 'seconds' ] = ss elif isinstance ( trigger , CronTrigger ) : data [ 'trigger' ] = 'cron' if trigger . start_date : data [ 'start_date' ] = trigger . start_date if trigger . end_date : data [ 'end_date' ] = trigger . end_date for field in trigger . fields : if not field . is_default : data [ field . name ] = str ( field ) else : data [ 'trigger' ] = str ( trigger ) return data
Converts a trigger to an OrderedDict.