gh-140344: ast: Add deprecation warnings#140345
Conversation
StanFromIreland
left a comment
There was a problem hiding this comment.
Please see Hugo's comment on the issue, these need to raise deprecation warnings till 3.17 minimum (I don't think we need to do five years here, two should be fine).
These were all deprecated in 3.9 (bace59d) but without a runtime deprecation warning. Add it now, so that these items can be removed in 3.20 per PEP 387.
|
I've updated this PR so that it makes deprecation warnings. Currently the deprecation says 3.20 is the time for removal (standard PEP 387) but I can change it to 3.17 if there's consensus that it's OK to do so. |
| indent=args.indent, show_empty=args.show_empty)) | ||
|
|
||
| _deprecated = { | ||
| 'slice': globals().pop("slice"), |
There was a problem hiding this comment.
Note this means from ast import * will no longer pick these up. That's probably OK for 3.15 but let's mention it in docs.
| @@ -0,0 +1,3 @@ | |||
| The classes ``ast.Suite``, ``ast.AugLoad``, ``ast.AugStore``, and | |||
There was a problem hiding this comment.
Any migration guidance if anyone still uses these?
There was a problem hiding this comment.
You can find discussion around the original deprecations, e.g., #84169 but I didn't find any specific migration advice.
An ast produced by ast.parse will never include instances of these classes.
The implementation of all the removed classes are pretty trivial so if you need them for some reason you can probably just copy them. e.g., AugLoad has no body beyond a docstring.
class AugLoad(expr_context):
"""Deprecated AST node class. Unused in Python 3."""
There was a problem hiding this comment.
Yeah there's no good use for them. Most likely if people are using them, it's just some code that does something for all AST nodes, and they should simply delete the code handling these nodes. But that's guesswork.
|
Please list these in "What's new in Python 3.15" > "New deprecations" and "Pending removal in Python 3.20": |
done! |
|
This PR is stale because it has been open for 30 days with no activity. |
|
@jepler Please make the requested changes if you would like this merged for 3.15. The feature freeze is on Tuesday, things merged after that will have to target 3.16 (October 2027). |
…thongh-140344 # Conflicts: # Doc/deprecations/pending-removal-in-3.20.rst # Doc/whatsnew/3.15.rst # Lib/test/test_ast/test_ast.py
|
I think this should be good now, @hugovk @StanFromIreland what do you think? |
Documentation build overview
8 files changed ·
|
|
(Hold on, there's some more things to fix.) |
|
@JelleZijlstra thank you for stepping up. I dropped the ball on this very badly. |
Uh oh!
There was an error while loading. Please reload this page.