NovaBryan/EVE_Dump
Log | Files | 📦 下载最新源码 (.zip) | Refs | README

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