33from ._bootstrap import ModuleSpec
44from ._bootstrap import BuiltinImporter
55from ._bootstrap import FrozenImporter
6- from ._bootstrap_external import (SOURCE_SUFFIXES , DEBUG_BYTECODE_SUFFIXES ,
7- OPTIMIZED_BYTECODE_SUFFIXES , BYTECODE_SUFFIXES ,
8- EXTENSION_SUFFIXES )
6+ from ._bootstrap_external import (
7+ SOURCE_SUFFIXES , BYTECODE_SUFFIXES , EXTENSION_SUFFIXES ,
8+ DEBUG_BYTECODE_SUFFIXES as _DEBUG_BYTECODE_SUFFIXES ,
9+ OPTIMIZED_BYTECODE_SUFFIXES as _OPTIMIZED_BYTECODE_SUFFIXES
10+ )
911from ._bootstrap_external import WindowsRegistryFinder
1012from ._bootstrap_external import PathFinder
1113from ._bootstrap_external import FileFinder
@@ -27,3 +29,22 @@ def all_suffixes():
2729 'NamespaceLoader' , 'OPTIMIZED_BYTECODE_SUFFIXES' , 'PathFinder' ,
2830 'SOURCE_SUFFIXES' , 'SourceFileLoader' , 'SourcelessFileLoader' ,
2931 'WindowsRegistryFinder' , 'all_suffixes' ]
32+
33+
34+ def __getattr__ (name ):
35+ import warnings
36+
37+ if name == 'DEBUG_BYTECODE_SUFFIXES' :
38+ warnings .warn ('importlib.machinery.DEBUG_BYTECODE_SUFFIXES is '
39+ 'deprecated; use importlib.machinery.BYTECODE_SUFFIXES '
40+ 'instead.' ,
41+ DeprecationWarning , stacklevel = 2 )
42+ return _DEBUG_BYTECODE_SUFFIXES
43+ elif name == 'OPTIMIZED_BYTECODE_SUFFIXES' :
44+ warnings .warn ('importlib.machinery.OPTIMIZED_BYTECODE_SUFFIXES is '
45+ 'deprecated; use importlib.machinery.BYTECODE_SUFFIXES '
46+ 'instead.' ,
47+ DeprecationWarning , stacklevel = 2 )
48+ return _OPTIMIZED_BYTECODE_SUFFIXES
49+
50+ raise AttributeError (f'module { __name__ !r} has no attribute { name !r} ' )
0 commit comments