mirror of
				https://github.com/python/cpython.git
				synced 2025-10-30 18:07:37 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			31 lines
		
	
	
	
		
			870 B
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			31 lines
		
	
	
	
		
			870 B
		
	
	
	
		
			Python
		
	
	
	
	
	
| # Routine to "compile" a .py file to a .pyc file.
 | |
| # This has intimate knowledge of how Python/import.c does it.
 | |
| # By Sjoerd Mullender (I forced him to write it :-).
 | |
| 
 | |
| import imp
 | |
| MAGIC = imp.get_magic()
 | |
| 
 | |
| def wr_long(f, x):
 | |
| 	f.write(chr( x        & 0xff))
 | |
| 	f.write(chr((x >> 8)  & 0xff))
 | |
| 	f.write(chr((x >> 16) & 0xff))
 | |
| 	f.write(chr((x >> 24) & 0xff))
 | |
| 
 | |
| def compile(file, cfile = None):
 | |
| 	import os, marshal, __builtin__
 | |
| 	f = open(file)
 | |
| 	codestring = f.read()
 | |
| 	f.close()
 | |
| 	timestamp = long(os.stat(file)[8])
 | |
| 	codeobject = __builtin__.compile(codestring, file, 'exec')
 | |
| 	if not cfile:
 | |
| 		cfile = file + (__debug__ and 'c' or 'o')
 | |
| 	fc = open(cfile, 'wb')
 | |
| 	fc.write(MAGIC)
 | |
| 	wr_long(fc, timestamp)
 | |
| 	marshal.dump(codeobject, fc)
 | |
| 	fc.close()
 | |
| 	if os.name == 'mac':
 | |
| 		import macfs
 | |
| 		macfs.FSSpec(cfile).SetCreatorType('Pyth', 'PYC ')
 | |
| 		macfs.FSSpec(file).SetCreatorType('Pyth', 'TEXT')
 | 
