[Lxml-checkins] r46219 - in lxml/trunk: . fake_pyrex fake_pyrex/Pyrex fake_pyrex/Pyrex/Distutils
scoder at codespeak.net
scoder at codespeak.net
Fri Aug 31 19:01:54 CEST 2007
Author: scoder
Date: Fri Aug 31 19:01:53 2007
New Revision: 46219
Added:
lxml/trunk/fake_pyrex/
lxml/trunk/fake_pyrex/Pyrex/
lxml/trunk/fake_pyrex/Pyrex/Distutils/
lxml/trunk/fake_pyrex/Pyrex/Distutils/__init__.py
lxml/trunk/fake_pyrex/Pyrex/Distutils/build_ext.py
lxml/trunk/fake_pyrex/Pyrex/__init__.py
Modified:
lxml/trunk/MANIFEST.in
lxml/trunk/setup.py
lxml/trunk/setupinfo.py
Log:
switch to Cython completely, currently requires fake Pyrex to satisfy setuptools
Modified: lxml/trunk/MANIFEST.in
==============================================================================
--- lxml/trunk/MANIFEST.in (original)
+++ lxml/trunk/MANIFEST.in Fri Aug 31 19:01:53 2007
@@ -9,5 +9,6 @@
recursive-include src/lxml/tests *.rng *.xslt *.xml *.dtd
recursive-include benchmark *.py
recursive-include doc *.txt *.html *.css *.xml *.mgp pubkey.asc tagpython.png
+recursive-include fake_pyrex *.py
include doc/mkhtml.py doc/rest2html.py
exclude doc/pyrex.txt src/lxml/etree.pxi
Added: lxml/trunk/fake_pyrex/Pyrex/Distutils/__init__.py
==============================================================================
--- (empty file)
+++ lxml/trunk/fake_pyrex/Pyrex/Distutils/__init__.py Fri Aug 31 19:01:53 2007
@@ -0,0 +1 @@
+# work around broken setuptools monkey patching
Added: lxml/trunk/fake_pyrex/Pyrex/Distutils/build_ext.py
==============================================================================
--- (empty file)
+++ lxml/trunk/fake_pyrex/Pyrex/Distutils/build_ext.py Fri Aug 31 19:01:53 2007
@@ -0,0 +1 @@
+build_ext = "yes, it's there!"
Added: lxml/trunk/fake_pyrex/Pyrex/__init__.py
==============================================================================
--- (empty file)
+++ lxml/trunk/fake_pyrex/Pyrex/__init__.py Fri Aug 31 19:01:53 2007
@@ -0,0 +1 @@
+# work around broken setuptools monkey patching
Modified: lxml/trunk/setup.py
==============================================================================
--- lxml/trunk/setup.py (original)
+++ lxml/trunk/setup.py Fri Aug 31 19:01:53 2007
@@ -1,25 +1,28 @@
import sys, os
+extra_options = {}
+
+try:
+ import Cython
+ # may need to work around setuptools bug by providing a fake Pyrex
+ sys.path.insert(0, os.path.join(os.path.dirname(__file__), "fake_pyrex"))
+except ImportError:
+ pass
+
try:
import pkg_resources
try:
pkg_resources.require("setuptools>=0.6c5")
- except pkg_resources.VersionConflict, e:
+ except pkg_resources.VersionConflict:
from ez_setup import use_setuptools
use_setuptools(version="0.6c5")
#pkg_resources.require("Cython==0.9.6.5")
from setuptools import setup
+ extra_options["zip_safe"] = False
except ImportError:
# no setuptools installed
from distutils.core import setup
-try:
- import Cython
-except ImportError:
- # need to insert this to python path so we're sure we can import versioninfo,
- # setupinfo and Cython/Pyrex (!) even if we start setup.py from another location
- # (such as a buildout)
- sys.path.insert(0, os.path.dirname(__file__))
import versioninfo
import setupinfo
@@ -31,11 +34,15 @@
STATIC_LIBRARY_DIRS = []
STATIC_CFLAGS = []
+
# create lxml-version.h file
svn_version = versioninfo.svn_version()
versioninfo.create_version_h(svn_version)
print "Building lxml version", svn_version
+
+extra_options.update(setupinfo.extra_setup_args())
+
setup(
name = "lxml",
version = versioninfo.version(),
@@ -86,8 +93,7 @@
package_dir = {'': 'src'},
packages = ['lxml', 'lxml.html'],
- zip_safe = False,
ext_modules = setupinfo.ext_modules(
STATIC_INCLUDE_DIRS, STATIC_LIBRARY_DIRS, STATIC_CFLAGS),
- **setupinfo.extra_setup_args()
+ **extra_options
)
Modified: lxml/trunk/setupinfo.py
==============================================================================
--- lxml/trunk/setupinfo.py (original)
+++ lxml/trunk/setupinfo.py Fri Aug 31 19:01:53 2007
@@ -1,20 +1,12 @@
import sys, os
-try:
- from setuptools.extension import Extension
-except ImportError:
- from distutils.extension import Extension
+from distutils.core import Extension
try:
from Cython.Distutils import build_ext as build_pyx
print "Building with Cython."
- PYREX_INSTALLED = True
+ CYTHON_INSTALLED = True
except ImportError:
- try:
- from Pyrex.Distutils import build_ext as build_pyx
- print "Trying to build with Pyrex."
- PYREX_INSTALLED = True
- except ImportError:
- PYREX_INSTALLED = False
+ CYTHON_INSTALLED = False
EXT_MODULES = [
("etree", "lxml.etree"),
@@ -27,10 +19,10 @@
return value.split(os.pathsep)
def ext_modules(static_include_dirs, static_library_dirs, static_cflags):
- if PYREX_INSTALLED:
+ if CYTHON_INSTALLED:
source_extension = ".pyx"
else:
- print ("NOTE: Trying to build without Pyrex, pre-generated "
+ print ("NOTE: Trying to build without Cython, pre-generated "
"'src/lxml/etree.c' needs to be available.")
source_extension = ".c"
@@ -67,7 +59,7 @@
def extra_setup_args():
result = {}
- if PYREX_INSTALLED:
+ if CYTHON_INSTALLED:
result['cmdclass'] = {'build_ext': build_pyx}
return result
More information about the lxml-checkins
mailing list