Join GitHub today
GitHub is home to over 40 million developers working together to host and review code, manage projects, and build software together.
Sign upbpo-38870: refactor delimiting with context managers #17612
+146
−147
Conversation
return self._NoDelimit() | ||
|
||
def delimit(self, delimiter = "()"): | ||
return self._Delimit(self, delimiter) |
This comment has been minimized.
This comment has been minimized.
vstinner
Dec 15, 2019
Member
IHMO a contextlib.contextmanager would be simpler. Something like:
@contextlib.contextmanager
def delim_if(self, condition, delimiter="()"):
if condition:
self.write(self.delimiter[0])
try:
yield
finally:
if condition:
self.write(self.delimiter[-1])
# I'm not sure that this one works as expected :-)
def delim(self, delimiter):
return self.delim_if(True, delimiter)
This comment has been minimized.
This comment has been minimized.
pablogsal
Dec 15, 2019
Member
We started with this, but it introduced a regression in the import time and I reverted it.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
self.write(" := ") | ||
self.traverse(node.value) | ||
self.write(")") | ||
with self.delimit(): |
This comment has been minimized.
This comment has been minimized.
vstinner
Dec 15, 2019
Member
Maybe it would be more readable if "()" is always passed explicitly. @pablogsal: what do you think?
This comment has been minimized.
This comment has been minimized.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
isidentical commentedDec 15, 2019
•
edited by bedevere-bot
CC: @vstinner
https://bugs.python.org/issue38870