docs: def from_clause(cls, clause):
          """ Factory method """
          pieces = []
          for i, part in enumerate(clause):
              if i % 2 == 1:
                  pieces.append(part)
              else:
                  pieces.append(ConstraintExpression.from_clause(part))
          return cls(pieces)