mirror of
				https://github.com/python/cpython.git
				synced 2025-10-31 21:51:50 +00:00 
			
		
		
		
	don't depend on __debug__ because it's baked in at freeze time (issue #16046)
This commit is contained in:
		
							parent
							
								
									d79ac0fad7
								
							
						
					
					
						commit
						feaa54f537
					
				
					 3 changed files with 4308 additions and 4296 deletions
				
			
		|  | @ -411,25 +411,21 @@ def _call_with_frames_removed(f, *args, **kwds): | |||
| 
 | ||||
| DEBUG_BYTECODE_SUFFIXES = ['.pyc'] | ||||
| OPTIMIZED_BYTECODE_SUFFIXES = ['.pyo'] | ||||
| if __debug__: | ||||
|     BYTECODE_SUFFIXES = DEBUG_BYTECODE_SUFFIXES | ||||
| else: | ||||
|     BYTECODE_SUFFIXES = OPTIMIZED_BYTECODE_SUFFIXES | ||||
| 
 | ||||
| def cache_from_source(path, debug_override=None): | ||||
|     """Given the path to a .py file, return the path to its .pyc/.pyo file. | ||||
| 
 | ||||
|     The .py file does not need to exist; this simply returns the path to the | ||||
|     .pyc/.pyo file calculated as if the .py file were imported.  The extension | ||||
|     will be .pyc unless __debug__ is not defined, then it will be .pyo. | ||||
|     will be .pyc unless sys.flags.optimize is non-zero, then it will be .pyo. | ||||
| 
 | ||||
|     If debug_override is not None, then it must be a boolean and is taken as | ||||
|     the value of __debug__ instead. | ||||
|     the value of bool(sys.flags.optimize) instead. | ||||
| 
 | ||||
|     If sys.implementation.cache_tag is None then NotImplementedError is raised. | ||||
| 
 | ||||
|     """ | ||||
|     debug = __debug__ if debug_override is None else debug_override | ||||
|     debug = not sys.flags.optimize if debug_override is None else debug_override | ||||
|     if debug: | ||||
|         suffixes = DEBUG_BYTECODE_SUFFIXES | ||||
|     else: | ||||
|  | @ -1688,10 +1684,15 @@ def _setup(sys_module, _imp_module): | |||
|     modules, those two modules must be explicitly passed in. | ||||
| 
 | ||||
|     """ | ||||
|     global _imp, sys | ||||
|     global _imp, sys, BYTECODE_SUFFIXES | ||||
|     _imp = _imp_module | ||||
|     sys = sys_module | ||||
| 
 | ||||
|     if sys.flags.optimize: | ||||
|         BYTECODE_SUFFIXES = OPTIMIZED_BYTECODE_SUFFIXES | ||||
|     else: | ||||
|         BYTECODE_SUFFIXES = DEBUG_BYTECODE_SUFFIXES | ||||
| 
 | ||||
|     for module in (_imp, sys): | ||||
|         if not hasattr(module, '__loader__'): | ||||
|             module.__loader__ = BuiltinImporter | ||||
|  |  | |||
|  | @ -10,6 +10,8 @@ What's New in Python 3.3.1? | |||
| Core and Builtins | ||||
| ----------------- | ||||
| 
 | ||||
| - Issue #16046: Fix loading sourceless legacy pyos. | ||||
| 
 | ||||
| - Issue #15379: Fix passing of non-BMP characters as integers for the charmap | ||||
|   decoder (already working as unicode strings).  Patch by Serhiy Storchaka. | ||||
| 
 | ||||
|  |  | |||
							
								
								
									
										8585
									
								
								Python/importlib.h
									
										
									
									
									
								
							
							
						
						
									
										8585
									
								
								Python/importlib.h
									
										
									
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load diff
											
										
									
								
							
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Benjamin Peterson
						Benjamin Peterson