def __init__(self, *neighbor_criteria):
        """
           Arguments:
            | ``*neighbor_criteria``  --  a list of criteria objects
        """
        for criterion in neighbor_criteria:
            if not hasattr(criterion, "__call__"):
                raise TypeError("All arguments must be callable")
        self.neighbor_criteria = list(neighbor_criteria)
def __init__ ( self , * neighbor_criteria ) : for criterion in neighbor_criteria : if not hasattr ( criterion , "__call__" ) : raise TypeError ( "All arguments must be callable" ) self . neighbor_criteria = list ( neighbor_criteria )
Arguments:
            | ``*neighbor_criteria``  --  a list of criteria objects