12345678910111213141516171819202122232425 |
- """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))
|