mirror of
				https://github.com/python/cpython.git
				synced 2025-10-31 13:41:24 +00:00 
			
		
		
		
	 a6864e0d9f
			
		
	
	
		a6864e0d9f
		
	
	
	
	
		
			
			The fact that this was failing and went unnoticed so long seems like a good argument for being able to enable and disble py3kwarnings through Python.
		
			
				
	
	
		
			67 lines
		
	
	
	
		
			2 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			67 lines
		
	
	
	
		
			2 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| # Emulate sys.argv and run __main__.py or __main__.pyc in an environment that
 | |
| # is as close to "normal" as possible.
 | |
| #
 | |
| # This script is put into __rawmain__.pyc for applets that need argv
 | |
| # emulation, by BuildApplet and friends.
 | |
| #
 | |
| 
 | |
| from warnings import warnpy3k
 | |
| warnpy3k("In 3.x, the appletrawmain module is removed.", stacklevel=2)
 | |
| 
 | |
| import argvemulator
 | |
| import os
 | |
| import sys
 | |
| import marshal
 | |
| 
 | |
| #
 | |
| # Make sure we have an argv[0], and make _dir point to the Resources
 | |
| # directory.
 | |
| #
 | |
| if not sys.argv or sys.argv[0][:1] == '-':
 | |
|     # Insert our (guessed) name.
 | |
|     _dir = os.path.split(sys.executable)[0] # removes "python"
 | |
|     _dir = os.path.split(_dir)[0] # Removes "MacOS"
 | |
|     _dir = os.path.join(_dir, 'Resources')
 | |
|     sys.argv.insert(0, '__rawmain__')
 | |
| else:
 | |
|     _dir = os.path.split(sys.argv[0])[0]
 | |
| #
 | |
| # Add the Resources directory to the path. This is where files installed
 | |
| # by BuildApplet.py with the --extra option show up, and if those files are
 | |
| # modules this sys.path modification is necessary to be able to import them.
 | |
| #
 | |
| sys.path.insert(0, _dir)
 | |
| #
 | |
| # Create sys.argv
 | |
| #
 | |
| argvemulator.ArgvCollector().mainloop()
 | |
| #
 | |
| # Find the real main program to run
 | |
| #
 | |
| __file__ = os.path.join(_dir, '__main__.py')
 | |
| if os.path.exists(__file__):
 | |
|     #
 | |
|     # Setup something resembling a normal environment and go.
 | |
|     #
 | |
|     sys.argv[0] = __file__
 | |
|     del argvemulator, os, sys, _dir
 | |
|     execfile(__file__)
 | |
| else:
 | |
|     __file__ = os.path.join(_dir, '__main__.pyc')
 | |
|     if os.path.exists(__file__):
 | |
|         #
 | |
|         # If we have only a .pyc file we read the code object from that
 | |
|         #
 | |
|         sys.argv[0] = __file__
 | |
|         _fp = open(__file__, 'rb')
 | |
|         _fp.read(8)
 | |
|         __code__ = marshal.load(_fp)
 | |
|         #
 | |
|         # Again, we create an almost-normal environment (only __code__ is
 | |
|         # funny) and go.
 | |
|         #
 | |
|         del argvemulator, os, sys, marshal, _dir, _fp
 | |
|         exec __code__
 | |
|     else:
 | |
|         sys.stderr.write("%s: neither __main__.py nor __main__.pyc found\n"%sys.argv[0])
 | |
|         sys.exit(1)
 |