Uh oh!
There was an error while loading.Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork32.4k
gh-104799: PEP 695 backward compatibility for ast.unparse#105846
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to ourterms of service andprivacy statement. We’ll occasionally send you account related emails.
Already on GitHub?Sign in to your account
Uh oh!
There was an error while loading.Please reload this page.
Conversation
@@ -1051,7 +1051,8 @@ def visit_ClassDef(self, node): | |||
self.fill("@") | |||
self.traverse(deco) | |||
self.fill("class " + node.name) | |||
self._type_params_helper(node.type_params) | |||
if hasattr(node, "type_params"): |
AlexWaygoodJun 16, 2023 • edited
Loading Uh oh!
There was an error while loading.Please reload this page.
edited
Uh oh!
There was an error while loading.Please reload this page.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others.Learn more.
I assume it would be harder to just make sure that these nodes always have atype_params
attribute, even if the relevant argument wasn't passed to the constructor?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others.Learn more.
Yes, that might be something to pursue for 3.13 though.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others.Learn more.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others.Learn more.
LGTM
def test_function(self): | ||
node = ast.FunctionDef( | ||
name="f", | ||
args=ast.arguments(posonlyargs=[], args=[], vararg=None, kwonlyargs=[], kw_defaults=[], kwarg=None, defaults=[]), |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others.Learn more.
#105858 would make this so much easier; manual creation like this feels ridiculously tedious at the moment
ast.fix_missing_locations(node) | ||
self.assertEqual(ast.unparse(node), "def f[T]():\n pass") | ||
def test_function_with_type_params_and_bound(self): |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others.Learn more.
Worth also adding atest_function_with_type_params_and_constraints
, for completeness?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others.Learn more.
Feels a bit repetitive, it's the same at the AST level.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others.Learn more.
Fair enough!
Thanks@JelleZijlstra for the PR 🌮🎉.. I'm working now to backport this PR to: 3.12. |
Sorry@JelleZijlstra, I had trouble checking out the |
Thanks@JelleZijlstra for the PR 🌮🎉.. I'm working now to backport this PR to: 3.12. |
…onGH-105846)(cherry picked from commit957a974)Co-authored-by: Jelle Zijlstra <jelle.zijlstra@gmail.com>
bedevere-bot commentedJun 16, 2023
GH-105862 is a backport of this pull request to the3.12 branch. |
* main:pythongh-104799: PEP 695 backward compatibility for ast.unparse (python#105846)pythongh-105834: Add tests for calling `issubclass()` between two protocols (python#105835) CI: Remove docs build from Azure Pipelines (python#105823)pythongh-105844: Consistently use 'minor version' for X.Y versions (python#105851) Fix inaccuracies in "Assorted Topics" section of "Defining Extension Types" tutorial (python#104969)pythongh-105433: Add `pickle` tests for PEP695 (python#105443) bpo-44530: Document the change in MAKE_FUNCTION behavior (python#93189)pythonGH-103124: Multiline statement support for pdb (pythonGH-103125)pythonGH-105588: Add missing error checks to some obj2ast_* converters (pythonGH-105589)
Uh oh!
There was an error while loading.Please reload this page.
__match_args__
attributes of AST nodes #104799