def visit_Compare(self, node):
        node = self.generic_visit(node)

        # Translate multiple comparisons into conjunctions of
        # each individual comparison.
        assert len(node.ops) == len(node.comparators) > 0
        if len(node.ops) > 1:
            conds = []
            values = [node.left] + list(node.comparators)
            for i in range(len(values) - 1):
                conds.append(
                    P.Compare(values[i], [node.ops[i]], [values[i + 1]]))
            node = P.BoolOp(P.And(), conds)

        return node