Commit 8633ffe7 authored by Jason R. Coombs's avatar Jason R. Coombs

Converted have_pyrex into a function

--HG--
branch : distribute
extra : rebase_source : b676ea404118a121400f2fd1b67095ab4521b7a0
parent 9f5991b3
...@@ -6,16 +6,19 @@ from setuptools.dist import _get_unpatched ...@@ -6,16 +6,19 @@ from setuptools.dist import _get_unpatched
_Extension = _get_unpatched(distutils.core.Extension) _Extension = _get_unpatched(distutils.core.Extension)
# Prefer Cython to Pyrex def have_pyrex():
pyrex_impls = 'Cython.Distutils.build_ext', 'Pyrex.Distutils.build_ext' """
for pyrex_impl in pyrex_impls: Return True if Cython or Pyrex can be imported.
try: """
# from (pyrex_impl) import build_ext pyrex_impls = 'Cython.Distutils.build_ext', 'Pyrex.Distutils.build_ext'
build_ext = __import__(pyrex_impl, fromlist=['build_ext']).build_ext for pyrex_impl in pyrex_impls:
break try:
except: # from (pyrex_impl) import build_ext
pass __import__(pyrex_impl, fromlist=['build_ext']).build_ext
have_pyrex = 'build_ext' in globals() return True
except Exception:
pass
return False
class Extension(_Extension): class Extension(_Extension):
...@@ -23,13 +26,16 @@ class Extension(_Extension): ...@@ -23,13 +26,16 @@ class Extension(_Extension):
def __init__(self, *args, **kw): def __init__(self, *args, **kw):
_Extension.__init__(self, *args, **kw) _Extension.__init__(self, *args, **kw)
if not have_pyrex: if not have_pyrex():
self._convert_pyx_sources_to_c() self._convert_pyx_sources_to_c()
def _convert_pyx_sources_to_c(self): def _convert_pyx_sources_to_c(self):
"convert .pyx extensions to .c" "convert .pyx extensions to .c"
self.sources = [source[:-3] + 'c' for source in self.sources def pyx_to_c(source):
if source.endswith('.pyx')] if source.endswith('.pyx'):
source = source[:-4] + '.c'
return source
self.sources = map(pyx_to_c, self.sources)
class Library(Extension): class Library(Extension):
"""Just like a regular Extension, but built as a library instead""" """Just like a regular Extension, but built as a library instead"""
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment