mirror of
				https://github.com/python/cpython.git
				synced 2025-11-01 06:01:29 +00:00 
			
		
		
		
	Start a shared utility script for poking around at the import internals
This commit is contained in:
		
							parent
							
								
									c94871a5c0
								
							
						
					
					
						commit
						d0bb6aa275
					
				
					 1 changed files with 39 additions and 0 deletions
				
			
		
							
								
								
									
										39
									
								
								Tools/scripts/import_diagnostics.py
									
										
									
									
									
										Executable file
									
								
							
							
						
						
									
										39
									
								
								Tools/scripts/import_diagnostics.py
									
										
									
									
									
										Executable file
									
								
							|  | @ -0,0 +1,39 @@ | |||
| #!/usr/bin/env python3 | ||||
| """Miscellaneous diagnostics for the import system""" | ||||
| 
 | ||||
| import sys | ||||
| import argparse | ||||
| from pprint import pprint | ||||
| 
 | ||||
| def _dump_state(args): | ||||
|     print(sys.version) | ||||
|     print("sys.path:") | ||||
|     pprint(sys.path) | ||||
|     print("sys.meta_path") | ||||
|     pprint(sys.meta_path) | ||||
|     print("sys.path_hooks") | ||||
|     pprint(sys.path_hooks) | ||||
|     print("sys.path_importer_cache") | ||||
|     pprint(sys.path_importer_cache) | ||||
|     print("sys.modules:") | ||||
|     pprint(sys.modules) | ||||
| 
 | ||||
| COMMANDS = ( | ||||
|   ("dump", "Dump import state", _dump_state), | ||||
| ) | ||||
| 
 | ||||
| def _make_parser(): | ||||
|     parser = argparse.ArgumentParser() | ||||
|     sub = parser.add_subparsers(title="Commands") | ||||
|     for name, description, implementation in COMMANDS: | ||||
|         cmd = sub.add_parser(name, help=description) | ||||
|         cmd.set_defaults(command=implementation) | ||||
|     return parser | ||||
| 
 | ||||
| def main(args): | ||||
|     parser = _make_parser() | ||||
|     args = parser.parse_args(args) | ||||
|     return args.command(args) | ||||
| 
 | ||||
| if __name__ == "__main__": | ||||
|     sys.exit(main(sys.argv[1:])) | ||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Nick Coghlan
						Nick Coghlan