mirror of
				https://github.com/python/cpython.git
				synced 2025-10-31 13:41:24 +00:00 
			
		
		
		
	gh-98040: Remove just the imp module (#98573)
				
					
				
			This commit is contained in:
		
							parent
							
								
									79b9db9295
								
							
						
					
					
						commit
						e1f14643dc
					
				
					 24 changed files with 40 additions and 1537 deletions
				
			
		|  | @ -594,11 +594,11 @@ _PyImport_ClearModulesByIndex(PyInterpreterState *interp) | |||
| /*
 | ||||
|     It may help to have a big picture view of what happens | ||||
|     when an extension is loaded.  This includes when it is imported | ||||
|     for the first time or via imp.load_dynamic(). | ||||
|     for the first time. | ||||
| 
 | ||||
|     Here's a summary, using imp.load_dynamic() as the starting point: | ||||
|     Here's a summary, using importlib._boostrap._load() as a starting point. | ||||
| 
 | ||||
|     1.  imp.load_dynamic() -> importlib._bootstrap._load() | ||||
|     1.  importlib._bootstrap._load() | ||||
|     2.    _load():  acquire import lock | ||||
|     3.    _load() -> importlib._bootstrap._load_unlocked() | ||||
|     4.      _load_unlocked() -> importlib._bootstrap.module_from_spec() | ||||
|  | @ -3794,7 +3794,7 @@ _imp_source_hash_impl(PyObject *module, long key, Py_buffer *source) | |||
| 
 | ||||
| 
 | ||||
| PyDoc_STRVAR(doc_imp, | ||||
| "(Extremely) low-level import machinery bits as used by importlib and imp."); | ||||
| "(Extremely) low-level import machinery bits as used by importlib."); | ||||
| 
 | ||||
| static PyMethodDef imp_methods[] = { | ||||
|     _IMP_EXTENSION_SUFFIXES_METHODDEF | ||||
|  |  | |||
|  | @ -7,24 +7,18 @@ | |||
| import sys | ||||
| 
 | ||||
| 
 | ||||
| try: | ||||
|     from importlib.machinery import SourceFileLoader | ||||
| except ImportError: | ||||
|     import imp | ||||
| # 2023-04-27(warsaw): Pre-Python 3.12, this would catch ImportErrors and try to | ||||
| # import imp, and then use imp.load_module().  The imp module was removed in | ||||
| # Python 3.12 (and long deprecated before that), and it's unclear under what | ||||
| # conditions this import will now fail, so the fallback was simply removed. | ||||
| from importlib.machinery import SourceFileLoader | ||||
| 
 | ||||
|     def find_module(modname): | ||||
|         """Finds and returns a module in the local dist/checkout. | ||||
|         """ | ||||
|         modpath = os.path.join( | ||||
|             os.path.dirname(os.path.dirname(__file__)), "Lib") | ||||
|         return imp.load_module(modname, *imp.find_module(modname, [modpath])) | ||||
| else: | ||||
|     def find_module(modname): | ||||
|         """Finds and returns a module in the local dist/checkout. | ||||
|         """ | ||||
|         modpath = os.path.join( | ||||
|             os.path.dirname(os.path.dirname(__file__)), "Lib", modname + ".py") | ||||
|         return SourceFileLoader(modname, modpath).load_module() | ||||
| def find_module(modname): | ||||
|     """Finds and returns a module in the local dist/checkout. | ||||
|     """ | ||||
|     modpath = os.path.join( | ||||
|         os.path.dirname(os.path.dirname(__file__)), "Lib", modname + ".py") | ||||
|     return SourceFileLoader(modname, modpath).load_module() | ||||
| 
 | ||||
| 
 | ||||
| def write_contents(f): | ||||
|  |  | |||
|  | @ -2173,10 +2173,9 @@ add_main_module(PyInterpreterState *interp) | |||
|         Py_DECREF(bimod); | ||||
|     } | ||||
| 
 | ||||
|     /* Main is a little special - imp.is_builtin("__main__") will return
 | ||||
|      * False, but BuiltinImporter is still the most appropriate initial | ||||
|      * setting for its __loader__ attribute. A more suitable value will | ||||
|      * be set if __main__ gets further initialized later in the startup | ||||
|     /* Main is a little special - BuiltinImporter is the most appropriate
 | ||||
|      * initial setting for its __loader__ attribute. A more suitable value | ||||
|      * will be set if __main__ gets further initialized later in the startup | ||||
|      * process. | ||||
|      */ | ||||
|     loader = _PyDict_GetItemStringWithError(d, "__loader__"); | ||||
|  |  | |||
							
								
								
									
										1
									
								
								Python/stdlib_module_names.h
									
										
									
										generated
									
									
									
								
							
							
						
						
									
										1
									
								
								Python/stdlib_module_names.h
									
										
									
										generated
									
									
									
								
							|  | @ -164,7 +164,6 @@ static const char* _Py_stdlib_module_names[] = { | |||
| "idlelib", | ||||
| "imaplib", | ||||
| "imghdr", | ||||
| "imp", | ||||
| "importlib", | ||||
| "inspect", | ||||
| "io", | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Barry Warsaw
						Barry Warsaw