Ejemplo n.º 1
0
 def __new__(klass,*criteria):
     criteria, all = map(ISeededCriterion,criteria), []
     nt = criteria[0].node_type
     for c in criteria:
         if c.node_type is not nt:
             raise ValueError("Mismatched dispatch types", criteria)
         if c.__class__ is klass:
             # flatten nested criteria
             all.extend([c for c in c.criteria if c not in all])
         elif c not in all:
             all.append(c)
     if len(all)==1:
         return all[0]
     self = object.__new__(klass)
     self.node_type = nt
     AbstractCriterion.__init__(self,frozenset(all))
     return self
Ejemplo n.º 2
0
 def __new__(klass, *criteria):
     criteria, all = list(map(ISeededCriterion, criteria)), []
     nt = criteria[0].node_type
     for c in criteria:
         if c.node_type is not nt:
             raise ValueError("Mismatched dispatch types", criteria)
         if c.__class__ is klass:
             # flatten nested criteria
             all.extend([c for c in c.criteria if c not in all])
         elif c not in all:
             all.append(c)
     if len(all) == 1:
         return all[0]
     self = object.__new__(klass)
     self.node_type = nt
     AbstractCriterion.__init__(self, frozenset(all))
     return self
Ejemplo n.º 3
0
 def __init__(self,truth=True):
     AbstractCriterion.__init__(self,bool(truth))
Ejemplo n.º 4
0
 def __init__(self, criterion):
     criterion = ISeededCriterion(criterion)
     AbstractCriterion.__init__(self,(criterion,))
     self.node_type = criterion.node_type
Ejemplo n.º 5
0
 def __init__(self, truth=True):
     AbstractCriterion.__init__(self, bool(truth))
Ejemplo n.º 6
0
 def __init__(self, criterion):
     criterion = ISeededCriterion(criterion)
     AbstractCriterion.__init__(self, (criterion, ))
     self.node_type = criterion.node_type