2727import types
2828import warnings
2929
30+ warnings .warn ("the imp module is deprecated in favour of importlib; "
31+ "see the module's documentation for alternative uses" ,
32+ PendingDeprecationWarning )
3033
3134# DEPRECATED
3235SEARCH_ERROR = 0
@@ -98,9 +101,7 @@ def source_from_cache(path):
98101
99102
100103def get_suffixes ():
101- warnings .warn ('imp.get_suffixes() is deprecated; use the constants '
102- 'defined on importlib.machinery instead' ,
103- DeprecationWarning , 2 )
104+ """**DEPRECATED**"""
104105 extensions = [(s , 'rb' , C_EXTENSION ) for s in machinery .EXTENSION_SUFFIXES ]
105106 source = [(s , 'U' , PY_SOURCE ) for s in machinery .SOURCE_SUFFIXES ]
106107 bytecode = [(s , 'rb' , PY_COMPILED ) for s in machinery .BYTECODE_SUFFIXES ]
@@ -110,7 +111,11 @@ def get_suffixes():
110111
111112class NullImporter :
112113
113- """Null import object."""
114+ """**DEPRECATED**
115+
116+ Null import object.
117+
118+ """
114119
115120 def __init__ (self , path ):
116121 if path == '' :
@@ -152,10 +157,6 @@ class _LoadSourceCompatibility(_HackedGetData, machinery.SourceFileLoader):
152157
153158
154159def load_source (name , pathname , file = None ):
155- msg = ('imp.load_source() is deprecated; use '
156- 'importlib.machinery.SourceFileLoader(name, pathname).load_module()'
157- ' instead' )
158- warnings .warn (msg , DeprecationWarning , 2 )
159160 _LoadSourceCompatibility (name , pathname , file ).load_module (name )
160161 module = sys .modules [name ]
161162 # To allow reloading to potentially work, use a non-hacked loader which
@@ -170,10 +171,7 @@ class _LoadCompiledCompatibility(_HackedGetData, SourcelessFileLoader):
170171
171172
172173def load_compiled (name , pathname , file = None ):
173- msg = ('imp.load_compiled() is deprecated; use '
174- 'importlib.machinery.SourcelessFileLoader(name, pathname).'
175- 'load_module() instead ' )
176- warnings .warn (msg , DeprecationWarning , 2 )
174+ """**DEPRECATED**"""
177175 _LoadCompiledCompatibility (name , pathname , file ).load_module (name )
178176 module = sys .modules [name ]
179177 # To allow reloading to potentially work, use a non-hacked loader which
@@ -183,10 +181,7 @@ def load_compiled(name, pathname, file=None):
183181
184182
185183def load_package (name , path ):
186- msg = ('imp.load_package() is deprecated; use either '
187- 'importlib.machinery.SourceFileLoader() or '
188- 'importlib.machinery.SourcelessFileLoader() instead' )
189- warnings .warn (msg , DeprecationWarning , 2 )
184+ """**DEPRECATED**"""
190185 if os .path .isdir (path ):
191186 extensions = (machinery .SOURCE_SUFFIXES [:] +
192187 machinery .BYTECODE_SUFFIXES [:])
@@ -208,32 +203,30 @@ def load_module(name, file, filename, details):
208203
209204 """
210205 suffix , mode , type_ = details
211- with warnings .catch_warnings ():
212- warnings .simplefilter ('ignore' )
213- if mode and (not mode .startswith (('r' , 'U' )) or '+' in mode ):
214- raise ValueError ('invalid file open mode {!r}' .format (mode ))
215- elif file is None and type_ in {PY_SOURCE , PY_COMPILED }:
216- msg = 'file object required for import (type code {})' .format (type_ )
217- raise ValueError (msg )
218- elif type_ == PY_SOURCE :
219- return load_source (name , filename , file )
220- elif type_ == PY_COMPILED :
221- return load_compiled (name , filename , file )
222- elif type_ == C_EXTENSION and load_dynamic is not None :
223- if file is None :
224- with open (filename , 'rb' ) as opened_file :
225- return load_dynamic (name , filename , opened_file )
226- else :
227- return load_dynamic (name , filename , file )
228- elif type_ == PKG_DIRECTORY :
229- return load_package (name , filename )
230- elif type_ == C_BUILTIN :
231- return init_builtin (name )
232- elif type_ == PY_FROZEN :
233- return init_frozen (name )
206+ if mode and (not mode .startswith (('r' , 'U' )) or '+' in mode ):
207+ raise ValueError ('invalid file open mode {!r}' .format (mode ))
208+ elif file is None and type_ in {PY_SOURCE , PY_COMPILED }:
209+ msg = 'file object required for import (type code {})' .format (type_ )
210+ raise ValueError (msg )
211+ elif type_ == PY_SOURCE :
212+ return load_source (name , filename , file )
213+ elif type_ == PY_COMPILED :
214+ return load_compiled (name , filename , file )
215+ elif type_ == C_EXTENSION and load_dynamic is not None :
216+ if file is None :
217+ with open (filename , 'rb' ) as opened_file :
218+ return load_dynamic (name , filename , opened_file )
234219 else :
235- msg = "Don't know how to import {} (type code {})" .format (name , type_ )
236- raise ImportError (msg , name = name )
220+ return load_dynamic (name , filename , file )
221+ elif type_ == PKG_DIRECTORY :
222+ return load_package (name , filename )
223+ elif type_ == C_BUILTIN :
224+ return init_builtin (name )
225+ elif type_ == PY_FROZEN :
226+ return init_frozen (name )
227+ else :
228+ msg = "Don't know how to import {} (type code {})" .format (name , type_ )
229+ raise ImportError (msg , name = name )
237230
238231
239232def find_module (name , path = None ):
@@ -269,16 +262,14 @@ def find_module(name, path=None):
269262 file_path = os .path .join (package_directory , package_file_name )
270263 if os .path .isfile (file_path ):
271264 return None , package_directory , ('' , '' , PKG_DIRECTORY )
272- with warnings .catch_warnings ():
273- warnings .simplefilter ('ignore' )
274- for suffix , mode , type_ in get_suffixes ():
275- file_name = name + suffix
276- file_path = os .path .join (entry , file_name )
277- if os .path .isfile (file_path ):
278- break
279- else :
280- continue
281- break # Break out of outer loop when breaking out of inner loop.
265+ for suffix , mode , type_ in get_suffixes ():
266+ file_name = name + suffix
267+ file_path = os .path .join (entry , file_name )
268+ if os .path .isfile (file_path ):
269+ break
270+ else :
271+ continue
272+ break # Break out of outer loop when breaking out of inner loop.
282273 else :
283274 raise ImportError (_ERR_MSG .format (name ), name = name )
284275
0 commit comments