docs: def from_clause(cls, clause):
          """ Factory method """
          name = clause.getName()
          if name == "not":
              cond = Invert(cls.from_clause(clause[1]))
          elif name == "operator":
              cond = OperatorConstraint.from_clause(clause)
          elif name == "conjunction" or clause.conjunction:
              cond = Conjunction.from_clause(clause)
          elif name == "function":
              cond = FunctionConstraint.from_clause(clause)
          elif name == "between":
              cond = BetweenConstraint.from_clause(clause)
          elif name == "in":
              cond = InConstraint.from_clause(clause)
          else:
              raise SyntaxError("Unknown constraint type %r" % name)
          return cond