(cls)
return cls
Class decorator that fills in missing ordering methods
Class decorator that fills in missing ordering methods
Class decorator that fills in missing ordering methods
def total_ordering(cls):
    """Class decorator that fills in missing ordering methods"""
    # Find user-defined comparisons (not those inherited from object).
    roots = {op for op in _convert if getattr(cls, op, None) is not getattr(object, op, None)}
    if not roots:
        raise ValueError('must define at least one ordering operation: < > <= >=')
    root = max(roots)       # prefer __lt__ to __le__ to __gt__ to __ge__
    for opname, opfunc in _convert[root]:
        if opname not in roots:
            opfunc.__name__ = opname
            setattr(cls, opname, opfunc)
    return cls
def total_ordering ( cls ) : # Find user-defined comparisons (not those inherited from object). roots = { op for op in _convert if getattr ( cls , op , None ) is not getattr ( object , op , None ) } if not roots : raise ValueError ( 'must define at least one ordering operation: < > <= >=' ) root = max ( roots ) # prefer __lt__ to __le__ to __gt__ to __ge__ for opname , opfunc in _convert [ root ] : if opname not in roots : opfunc . __name__ = opname setattr ( cls , opname , opfunc ) return cls