You cannot select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
	
	
		
			26 lines
		
	
	
		
			754 B
		
	
	
	
		
			Python
		
	
			
		
		
	
	
			26 lines
		
	
	
		
			754 B
		
	
	
	
		
			Python
		
	
"""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))
 |