mirror of
				https://github.com/python/cpython.git
				synced 2025-10-30 21:21:22 +00:00 
			
		
		
		
	Close #15519: Properly expose WindowsRegistryFinder in importlib and bring the name into line with normal import terminology. Original patch by Eric Snow
This commit is contained in:
		
							parent
							
								
									8a9080feff
								
							
						
					
					
						commit
						ff79486bb5
					
				
					 7 changed files with 2537 additions and 2524 deletions
				
			
		|  | @ -603,6 +603,17 @@ find and load modules. | |||
|     instantiation. | ||||
| 
 | ||||
| 
 | ||||
| .. class:: WindowsRegistryFinder | ||||
| 
 | ||||
|    :term:`Finder` for modules declared in the Windows registry.  This class | ||||
|    implements the :class:`importlib.abc.MetaPathFinder` ABC. | ||||
| 
 | ||||
|    Only class methods are defined by this class to alleviate the need for | ||||
|    instantiation. | ||||
| 
 | ||||
|    .. versionadded:: 3.3 | ||||
| 
 | ||||
| 
 | ||||
| .. class:: PathFinder | ||||
| 
 | ||||
|     :term:`Finder` for :data:`sys.path`. This class implements the | ||||
|  |  | |||
|  | @ -720,9 +720,9 @@ def is_package(cls, fullname): | |||
|         return _imp.is_frozen_package(fullname) | ||||
| 
 | ||||
| 
 | ||||
| class WindowsRegistryImporter: | ||||
| class WindowsRegistryFinder: | ||||
| 
 | ||||
|     """Meta path import for modules declared in the Windows registry. | ||||
|     """Meta path finder for modules declared in the Windows registry. | ||||
|     """ | ||||
| 
 | ||||
|     REGISTRY_KEY = ( | ||||
|  | @ -1683,7 +1683,7 @@ def _setup(sys_module, _imp_module): | |||
|     if builtin_os == 'nt': | ||||
|         SOURCE_SUFFIXES.append('.pyw') | ||||
|         if '_d.pyd' in _imp.extension_suffixes(): | ||||
|             WindowsRegistryImporter.DEBUG_BUILD = True | ||||
|             WindowsRegistryFinder.DEBUG_BUILD = True | ||||
| 
 | ||||
| 
 | ||||
| def _install(sys_module, _imp_module): | ||||
|  | @ -1694,5 +1694,5 @@ def _install(sys_module, _imp_module): | |||
|     sys.meta_path.append(BuiltinImporter) | ||||
|     sys.meta_path.append(FrozenImporter) | ||||
|     if _os.__name__ == 'nt': | ||||
|         sys.meta_path.append(WindowsRegistryImporter) | ||||
|         sys.meta_path.append(WindowsRegistryFinder) | ||||
|     sys.meta_path.append(PathFinder) | ||||
|  |  | |||
|  | @ -59,7 +59,7 @@ def find_module(self, fullname, path): | |||
|         raise NotImplementedError | ||||
| 
 | ||||
| _register(MetaPathFinder, machinery.BuiltinImporter, machinery.FrozenImporter, | ||||
|           machinery.PathFinder) | ||||
|           machinery.PathFinder, machinery.WindowsRegistryFinder) | ||||
| 
 | ||||
| 
 | ||||
| class PathEntryFinder(Finder): | ||||
|  |  | |||
|  | @ -6,6 +6,7 @@ | |||
|                          OPTIMIZED_BYTECODE_SUFFIXES, BYTECODE_SUFFIXES) | ||||
| from ._bootstrap import BuiltinImporter | ||||
| from ._bootstrap import FrozenImporter | ||||
| from ._bootstrap import WindowsRegistryFinder | ||||
| from ._bootstrap import PathFinder | ||||
| from ._bootstrap import FileFinder | ||||
| from ._bootstrap import SourceFileLoader | ||||
|  |  | |||
|  | @ -34,7 +34,7 @@ class MetaPathFinder(InheritanceTests, unittest.TestCase): | |||
| 
 | ||||
|     superclasses = [abc.Finder] | ||||
|     subclasses = [machinery.BuiltinImporter, machinery.FrozenImporter, | ||||
|                     machinery.PathFinder] | ||||
|                     machinery.PathFinder, machinery.WindowsRegistryFinder] | ||||
| 
 | ||||
| class PathEntryFinder(InheritanceTests, unittest.TestCase): | ||||
| 
 | ||||
|  |  | |||
|  | @ -72,6 +72,9 @@ Core and Builtins | |||
| Library | ||||
| ------- | ||||
| 
 | ||||
| - Issue #15519: Properly expose WindowsRegistryFinder in importlib (and use | ||||
|   the correct term for it). Original patch by Eric Snow. | ||||
| 
 | ||||
| - Issue #15502: Bring the importlib ABCs into line with the current state | ||||
|   of the import protocols given PEP 420. Original patch by Eric Snow. | ||||
| 
 | ||||
|  |  | |||
							
								
								
									
										5034
									
								
								Python/importlib.h
									
										
									
									
									
								
							
							
						
						
									
										5034
									
								
								Python/importlib.h
									
										
									
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load diff
											
										
									
								
							
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Nick Coghlan
						Nick Coghlan