setuptools_extension.py (1387B)
1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\carbon\common\stdlib\distutils\tests\setuptools_extension.py 2 from distutils.core import Extension as _Extension 3 from distutils.core import Distribution as _Distribution 4 5 def _get_unpatched(cls): 6 while cls.__module__.startswith('setuptools'): 7 cls, = cls.__bases__ 8 9 if not cls.__module__.startswith('distutils'): 10 raise AssertionError('distutils has already been patched by %r' % cls) 11 return cls 12 13 14 _Distribution = _get_unpatched(_Distribution) 15 _Extension = _get_unpatched(_Extension) 16 try: 17 from Pyrex.Distutils.build_ext import build_ext 18 except ImportError: 19 have_pyrex = False 20 else: 21 have_pyrex = True 22 23 class Extension(_Extension): 24 if not have_pyrex: 25 26 def __init__(self, *args, **kw): 27 _Extension.__init__(self, *args, **kw) 28 sources = [] 29 for s in self.sources: 30 if s.endswith('.pyx'): 31 sources.append(s[:-3] + 'c') 32 else: 33 sources.append(s) 34 35 self.sources = sources 36 37 38 class Library(Extension): 39 pass 40 41 42 import sys, distutils.core, distutils.extension 43 distutils.core.Extension = Extension 44 distutils.extension.Extension = Extension 45 if 'distutils.command.build_ext' in sys.modules: 46 sys.modules['distutils.command.build_ext'].Extension = Extension