def _factory(cls, constraints, op):
        """ Factory for joining constraints with a single conjunction """
        pieces = []
        for i, constraint in enumerate(constraints):
            pieces.append(constraint)
            if i != len(constraints) - 1:
                pieces.append(op)
        return cls(pieces)
Factory for joining constraints with a single conjunction