Spaces:
Running
Running
"""Private utility methods used by the subset modules""" | |
def _add_method(*clazzes): | |
"""Returns a decorator function that adds a new method to one or | |
more classes.""" | |
def wrapper(method): | |
done = [] | |
for clazz in clazzes: | |
if clazz in done: | |
continue # Support multiple names of a clazz | |
done.append(clazz) | |
assert clazz.__name__ != "DefaultTable", "Oops, table class not found." | |
assert not hasattr( | |
clazz, method.__name__ | |
), "Oops, class '%s' has method '%s'." % (clazz.__name__, method.__name__) | |
setattr(clazz, method.__name__, method) | |
return None | |
return wrapper | |
def _uniq_sort(l): | |
return sorted(set(l)) | |