diff options
Diffstat (limited to 'Lib/fontTools/subset/util.py')
-rw-r--r-- | Lib/fontTools/subset/util.py | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/Lib/fontTools/subset/util.py b/Lib/fontTools/subset/util.py new file mode 100644 index 00000000..d20e925d --- /dev/null +++ b/Lib/fontTools/subset/util.py @@ -0,0 +1,25 @@ +"""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)) |