Changeset 331 for pyyaml/trunk/setup.py


Ignore:
Timestamp:
12/29/08 18:21:43 (5 years ago)
Author:
xi
Message:

Use Cython if available; added Python 3 support to _yaml.pyx.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • pyyaml/trunk/setup.py

    r330 r331  
    7474    sys.modules['distutils.command.build_ext'].Extension = _Extension 
    7575 
    76 try: 
    77     from Pyrex.Distutils import Extension as _Extension 
    78     from Pyrex.Distutils import build_ext as _build_ext 
    79     with_pyrex = True 
    80 except ImportError: 
    81     with_pyrex = False 
     76with_pyrex = None 
     77if sys.version_info[0] < 3: 
     78    try: 
     79        from Cython.Distutils.extension import Extension as _Extension 
     80        from Cython.Distutils import build_ext as _build_ext 
     81        with_pyrex = 'cython' 
     82    except ImportError: 
     83        try: 
     84            from Pyrex.Distutils import Extension as _Extension 
     85            from Pyrex.Distutils import build_ext as _build_ext 
     86            with_pyrex = 'pyrex' 
     87        except ImportError: 
     88            pass 
    8289 
    8390 
     
    168175        filenames = [] 
    169176        for ext in self.extensions: 
    170             if with_pyrex: 
     177            if with_pyrex == 'pyrex': 
    171178                self.pyrex_sources(ext.sources, ext) 
     179            elif with_pyrex == 'cython': 
     180                self.cython_sources(ext.sources, ext) 
    172181            for filename in ext.sources: 
    173182                filenames.append(filename) 
     
    198207            if not with_ext: 
    199208                continue 
    200             if with_pyrex: 
     209            if with_pyrex == 'pyrex': 
    201210                ext.sources = self.pyrex_sources(ext.sources, ext) 
     211            elif with_pyrex == 'cython': 
     212                ext.sources = self.cython_sources(ext.sources, ext) 
    202213            self.build_extension(ext) 
    203214 
     
    298309if __name__ == '__main__': 
    299310 
    300     if sys.version_info[0] < 3: 
    301  
    302         setup( 
    303             name=NAME, 
    304             version=VERSION, 
    305             description=DESCRIPTION, 
    306             long_description=LONG_DESCRIPTION, 
    307             author=AUTHOR, 
    308             author_email=AUTHOR_EMAIL, 
    309             license=LICENSE, 
    310             platforms=PLATFORMS, 
    311             url=URL, 
    312             download_url=DOWNLOAD_URL, 
    313             classifiers=CLASSIFIERS, 
    314  
    315             package_dir={'': 'lib'}, 
    316             packages=['yaml'], 
    317             ext_modules=[ 
    318                 Extension('_yaml', ['ext/_yaml.pyx'], 
    319                     'libyaml', "LibYAML bindings", LIBYAML_CHECK, 
    320                     libraries=['yaml']), 
    321             ], 
    322  
    323             distclass=Distribution, 
    324             cmdclass={ 
    325                 'build_ext': build_ext, 
    326                 'bdist_rpm': bdist_rpm, 
    327                 'test': test, 
    328             }, 
    329         ) 
    330  
    331     else: 
    332  
    333         setup( 
    334             name=NAME, 
    335             version=VERSION, 
    336             description=DESCRIPTION, 
    337             long_description=LONG_DESCRIPTION, 
    338             author=AUTHOR, 
    339             author_email=AUTHOR_EMAIL, 
    340             license=LICENSE, 
    341             platforms=PLATFORMS, 
    342             url=URL, 
    343             download_url=DOWNLOAD_URL, 
    344             classifiers=CLASSIFIERS, 
    345  
    346             package_dir={'': 'lib3'}, 
    347             packages=['yaml'], 
    348  
    349             cmdclass={ 
    350                 'test': test, 
    351             }, 
    352         ) 
    353  
     311    package_dir = { 
     312            '2': 'lib', 
     313    } 
     314 
     315    setup( 
     316        name=NAME, 
     317        version=VERSION, 
     318        description=DESCRIPTION, 
     319        long_description=LONG_DESCRIPTION, 
     320        author=AUTHOR, 
     321        author_email=AUTHOR_EMAIL, 
     322        license=LICENSE, 
     323        platforms=PLATFORMS, 
     324        url=URL, 
     325        download_url=DOWNLOAD_URL, 
     326        classifiers=CLASSIFIERS, 
     327 
     328        package_dir={'': {2: 'lib', 3: 'lib3'}[sys.version_info[0]]}, 
     329        packages=['yaml'], 
     330        ext_modules=[ 
     331            Extension('_yaml', ['ext/_yaml.pyx'], 
     332                'libyaml', "LibYAML bindings", LIBYAML_CHECK, 
     333                libraries=['yaml']), 
     334        ], 
     335 
     336        distclass=Distribution, 
     337 
     338        cmdclass={ 
     339            'build_ext': build_ext, 
     340            'bdist_rpm': bdist_rpm, 
     341            'test': test, 
     342        }, 
     343    ) 
     344 
Note: See TracChangeset for help on using the changeset viewer.