- 
          
- 
                Notifications
    You must be signed in to change notification settings 
- Fork 33.3k
gh-140344: ast: Add deprecation warnings #140345
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 our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
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.
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. | 
| @@ -0,0 +1,3 @@ | |||
| The classes ``ast.Suite``, ``ast.AugLoad``, ``ast.AugStore``, and | |||
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.
This only lists four of the seven things deprecated. It also doesn't mention the .dims attribute.
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.
added, thanks.
| indent=args.indent, show_empty=args.show_empty)) | ||
|  | ||
| _deprecated = { | ||
| 'slice': globals().pop("slice"), | 
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.
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.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Any migration guidance if anyone still uses these?
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.
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.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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! | 
|  | ||
| (Contributed by Hugo van Kemenade and Stan Ulbrych in :gh:`76007`.) | ||
|  | ||
| * The ``__version__`` attribute has been deprecated in these standard library | 
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.
This is duplicated.
| """ | ||
| from _ast import * | ||
|  | ||
|  | 
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.
Please revert unrelated changes.
Uh oh!
There was an error while loading. Please reload this page.