summaryrefslogtreecommitdiff
path: root/numpy/doc/cython/setup.py
diff options
context:
space:
mode:
authorFernando Perez <fperez@fperez.org>2008-04-09 01:54:54 +0000
committerFernando Perez <fperez@fperez.org>2008-04-09 01:54:54 +0000
commit5e31a42c49f8fee87388cd33baf891d3f0010157 (patch)
tree9af1947d6941c95e342723678445aa9912f5184d /numpy/doc/cython/setup.py
parent0b0a389d1dfb6d76e053988d87f6434c81dd5ba5 (diff)
downloadnumpy-5e31a42c49f8fee87388cd33baf891d3f0010157.tar.gz
Add up to date (and slightly cleaned up) support for Cython after porting
the existing Pyrex one, put in deprecation markers in the old Pyrex dir. The pyrex dir can be removed in a subsequent commit.
Diffstat (limited to 'numpy/doc/cython/setup.py')
-rwxr-xr-xnumpy/doc/cython/setup.py49
1 files changed, 49 insertions, 0 deletions
diff --git a/numpy/doc/cython/setup.py b/numpy/doc/cython/setup.py
new file mode 100755
index 000000000..270e11c56
--- /dev/null
+++ b/numpy/doc/cython/setup.py
@@ -0,0 +1,49 @@
+#!/usr/bin/env python
+"""Install file for example on how to use Cython with Numpy.
+
+Note: Cython is the successor project to Pyrex. For more information, see
+http://cython.org.
+"""
+
+from distutils.core import setup
+from distutils.extension import Extension
+
+import numpy
+
+# We detect whether Cython is available, so that below, we can eventually ship
+# pre-generated C for users to compile the extension without having Cython
+# installed on their systems.
+try:
+ from Cython.Distutils import build_ext
+ has_cython = True
+except ImportError:
+ has_cython = False
+
+# Define a cython-based extension module, using the generated sources if cython
+# is not available.
+if has_cython:
+ pyx_sources = ['numpyx.pyx']
+ cmdclass = {'build_ext': build_ext}
+else:
+ # In production work, you can ship the auto-generated C source yourself to
+ # your users. In this case, we do NOT ship the .c file as part of numpy,
+ # so you'll need to actually have cython installed at least the first
+ # time. Since this is really just an example to show you how to use
+ # *Cython*, it makes more sense NOT to ship the C sources so you can edit
+ # the pyx at will with less chances for source update conflicts when you
+ # update numpy.
+ pyx_sources = ['numpyx.c']
+ cmdclass = {}
+
+
+# Declare the extension object
+pyx_ext = Extension('numpyx',
+ pyx_sources,
+ include_dirs = [numpy.get_include()])
+
+# Call the routine which does the real work
+setup(name = 'numpyx',
+ description = 'Small example on using Cython to write a Numpy extension',
+ ext_modules = [pyx_ext],
+ cmdclass = cmdclass,
+ )