def __init__(self, matcher1, matcher2): self.matcher1 = matcher1 self.matcher2 = matcher2 if not _vars_are_disjoint( util.flatten([matcher1.var_names(), matcher2.var_names()])): raise PatternVarConflict()
def __init__(self, clazz, positionalMatchers, **kwMatchers): self.clazz = clazz self.positionalMatchers = positionalMatchers self.kwMatchers = kwMatchers # This stores which fields of the object we will need to look at. if not _vars_are_disjoint(util.flatten([m.var_names() for m in positionalMatchers])): raise PatternVarConflict()
def var_names(self): return util.flatten([matcher.var_names() for matcher in self.matchers])
def __init__(self, *matchers): self.matchers = matchers if not _vars_are_disjoint(util.flatten([m.var_names() for m in matchers])): raise PatternVarConflict()
def var_names(self): return (util.flatten([matcher.var_names() for matcher in self.positionalMatchers]) + util.flatten([matcher.var_names() for matcher in self.kwMatchers.values()]))
def var_names(self): return util.flatten([self.matcher1.var_names(), self.matcher2.var_names()])
def __init__(self, matcher1, matcher2): self.matcher1 = matcher1 self.matcher2 = matcher2 if not _vars_are_disjoint(util.flatten([matcher1.var_names(), matcher2.var_names()])): raise PatternVarConflict()