There are a number of cases in Python where the token-to-AST mapping is very clearly non-injective, where multiple different-looking statements are syntactically equivalent. We should think about how to handle these; perhaps this will require looking at the actual tokens.
Usually only one use case is common, but mangling tokens might be a bit much.
Activity
patrick91 commented on Jan 14, 2018
taion commented on Jan 14, 2018
The comma syntax in except is a Python 2.5 thing so probably it's dead.
The nested with statements do arise in real code, though: https://github.com/tensorflow/models/blob/1887a5fe187c8ab9f623cd91b74fc8432ce76d6f/research/slim/nets/mobilenet_v1.py#L199-L200
Part of the issue is that there's not a good way to break with statements to multiple lines. Neither of the following work:
The closest is something like:
But this is less than pretty.
taion commented on Jan 14, 2018
Makes you wish they didn't drop contextlib.nested in Python 3. ExitStack can give the same semantics but it's more annoying to use.
taion commented on Jan 14, 2018
YAPF's output here is good for a giggle, though: