class compare(object):
def __init__(self, function):
self.function = function
def __eq__(self, other):
def c(l, r): return l == r
return comparator(self.function, c, other)
def __ne__(self, other):
def c(l, r): return l != r
return comparator(self.function, c, other)
def __lt__(self, other):
def c(l, r): return l < r
return comparator(self.function, c, other)
def __le__(self, other):
def c(l, r): return l <= r
return comparator(self.function, c, other)
def __gt__(self, other):
def c(l, r): return l > r
return comparator(self.function, c, other)
def __ge__(self, other):
def c(l, r): return l >= r
return comparator(self.function, c, other)
class comparator(object):
def __init__(self, function, comparison, value):
self.function = function
self.comparison = comparison
self.value = value
def __call__(self, *arguments, **keywords):
return self.comparison(self.function(*arguments, **keywords), self.value)