|
21 | 21 | :license: Python License. |
22 | 22 | """ |
23 | 23 | from _ast import * |
24 | | - |
| 24 | +lazy import warnings |
25 | 25 |
|
26 | 26 | def parse(source, filename='<unknown>', mode='exec', *, |
27 | 27 | type_comments=False, feature_version=None, optimize=-1, module=None): |
@@ -630,9 +630,11 @@ def __new__(cls, dims=(), **kwargs): |
630 | 630 |
|
631 | 631 | def _dims_getter(self): |
632 | 632 | """Deprecated. Use elts instead.""" |
| 633 | + warnings._deprecated(f"ast.Tuple.dims", remove=(3, 21)) |
633 | 634 | return self.elts |
634 | 635 |
|
635 | 636 | def _dims_setter(self, value): |
| 637 | + warnings._deprecated(f"ast.Tuple.dims", remove=(3, 21)) |
636 | 638 | self.elts = value |
637 | 639 |
|
638 | 640 | Tuple.dims = property(_dims_getter, _dims_setter) |
@@ -714,5 +716,23 @@ def main(args=None): |
714 | 716 | color=can_colorize(file=sys.stdout), |
715 | 717 | indent=args.indent, show_empty=args.show_empty)) |
716 | 718 |
|
| 719 | +_deprecated = { |
| 720 | + 'slice': globals().pop("slice"), |
| 721 | + 'Index': globals().pop("Index"), |
| 722 | + 'ExtSlice': globals().pop("ExtSlice"), |
| 723 | + 'Suite': globals().pop("Suite"), |
| 724 | + 'AugLoad': globals().pop("AugLoad"), |
| 725 | + 'AugStore': globals().pop("AugStore"), |
| 726 | + 'Param': globals().pop("Param") |
| 727 | +} |
| 728 | + |
| 729 | +def __getattr__(attr): |
| 730 | + try: |
| 731 | + val = _deprecated[attr] |
| 732 | + except KeyError: |
| 733 | + raise AttributeError(f"module 'ast' has no attribute {attr!r}") from None |
| 734 | + warnings._deprecated(f"ast.{attr}", remove=(3, 21)) |
| 735 | + return val |
| 736 | + |
717 | 737 | if __name__ == '__main__': |
718 | 738 | main() |
0 commit comments