def compile_timeoper(rule):
    """
    Compiler helper method: attempt to compile constant into object representing
    datetime or timedelta object to enable relations and thus simple comparisons
    using Python operators.
    """
    if isinstance(rule.value, (datetime.datetime, datetime.timedelta)):
        return rule
    if isinstance(rule, NumberRule):
        return compile_timedelta(rule)
    if isinstance(rule, ConstantRule):
        try:
            return compile_datetime(rule)
        except ValueError:
            pass
        try:
            return compile_timedelta(rule)
        except ValueError:
            pass
    raise ValueError("Wrong time operation constant '{}'".format(rule))
def compile_timeoper ( rule ) : if isinstance ( rule . value , ( datetime . datetime , datetime . timedelta ) ) : return rule if isinstance ( rule , NumberRule ) : return compile_timedelta ( rule ) if isinstance ( rule , ConstantRule ) : try : return compile_datetime ( rule ) except ValueError : pass try : return compile_timedelta ( rule ) except ValueError : pass raise ValueError ( "Wrong time operation constant '{}'" . format ( rule ) )
Compiler helper method: attempt to compile constant into object representing
    datetime or timedelta object to enable relations and thus simple comparisons
    using Python operators.