(self, node)
| 1461 | boolop_precedence = {"and": _Precedence.AND, "or": _Precedence.OR} |
| 1462 | |
| 1463 | def visit_BoolOp(self, node): |
| 1464 | operator = self.boolops[node.op.__class__.__name__] |
| 1465 | operator_precedence = self.boolop_precedence[operator] |
| 1466 | |
| 1467 | def increasing_level_traverse(node): |
| 1468 | nonlocal operator_precedence |
| 1469 | operator_precedence = operator_precedence.next() |
| 1470 | self.set_precedence(operator_precedence, node) |
| 1471 | self.traverse(node) |
| 1472 | |
| 1473 | with self.require_parens(operator_precedence, node): |
| 1474 | s = f" {operator} " |
| 1475 | self.interleave(lambda: self.write(s), increasing_level_traverse, node.values) |
| 1476 | |
| 1477 | def visit_Attribute(self, node): |
| 1478 | self.set_precedence(_Precedence.ATOM, node.value) |
nothing calls this directly
no test coverage detected