These files are a subset of the python-2.7.2.tgz distribution from python.org. Changed files from PyMod-2.7.2 have been copied into the corresponding directories of this tree, replacing the original files in the distribution. Signed-off-by: daryl.mcdaniel@intel.com git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13197 6f19259b-4bc3-4df7-8a09-765794883524
		
			
				
	
	
		
			52 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			52 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| from distutils.core import Extension as _Extension
 | |
| from distutils.core import Distribution as _Distribution
 | |
| 
 | |
| def _get_unpatched(cls):
 | |
|     """Protect against re-patching the distutils if reloaded
 | |
| 
 | |
|     Also ensures that no other distutils extension monkeypatched the distutils
 | |
|     first.
 | |
|     """
 | |
|     while cls.__module__.startswith('setuptools'):
 | |
|         cls, = cls.__bases__
 | |
|     if not cls.__module__.startswith('distutils'):
 | |
|         raise AssertionError(
 | |
|             "distutils has already been patched by %r" % cls
 | |
|         )
 | |
|     return cls
 | |
| 
 | |
| _Distribution = _get_unpatched(_Distribution)
 | |
| _Extension = _get_unpatched(_Extension)
 | |
| 
 | |
| try:
 | |
|     from Pyrex.Distutils.build_ext import build_ext
 | |
| except ImportError:
 | |
|     have_pyrex = False
 | |
| else:
 | |
|     have_pyrex = True
 | |
| 
 | |
| 
 | |
| class Extension(_Extension):
 | |
|     """Extension that uses '.c' files in place of '.pyx' files"""
 | |
| 
 | |
|     if not have_pyrex:
 | |
|         # convert .pyx extensions to .c
 | |
|         def __init__(self,*args,**kw):
 | |
|             _Extension.__init__(self,*args,**kw)
 | |
|             sources = []
 | |
|             for s in self.sources:
 | |
|                 if s.endswith('.pyx'):
 | |
|                     sources.append(s[:-3]+'c')
 | |
|                 else:
 | |
|                     sources.append(s)
 | |
|             self.sources = sources
 | |
| 
 | |
| class Library(Extension):
 | |
|     """Just like a regular Extension, but built as a library instead"""
 | |
| 
 | |
| import sys, distutils.core, distutils.extension
 | |
| distutils.core.Extension = Extension
 | |
| distutils.extension.Extension = Extension
 | |
| if 'distutils.command.build_ext' in sys.modules:
 | |
|     sys.modules['distutils.command.build_ext'].Extension = Extension
 |