[Lxml-checkins] r52646 - lxml/trunk

scoder at codespeak.net scoder at codespeak.net
Mon Mar 17 17:19:20 CET 2008


Author: scoder
Date: Mon Mar 17 17:19:19 2008
New Revision: 52646

Modified:
   lxml/trunk/   (props changed)
   lxml/trunk/setupinfo.py
   lxml/trunk/versioninfo.py
Log:
 r3804 at delle:  sbehnel | 2008-03-17 17:09:07 +0100
 setupinfo.py fix for testing Cython version


Modified: lxml/trunk/setupinfo.py
==============================================================================
--- lxml/trunk/setupinfo.py	(original)
+++ lxml/trunk/setupinfo.py	Mon Mar 17 17:19:19 2008
@@ -1,6 +1,8 @@
 import sys, os, os.path
 from distutils.core import Extension
 
+from versioninfo import get_base_dir, split_version
+
 try:
     from Cython.Distutils import build_ext as build_pyx
     import Cython.Compiler.Version
@@ -78,10 +80,11 @@
     return result
 
 def find_dependencies(module):
-    if CYTHON_INSTALLED:
-        from Cython.Compiler.Version import version
-        if tuple(version.split('.')) <= (0,9,6,12):
-            return []
+    if not CYTHON_INSTALLED:
+        return []
+    from Cython.Compiler.Version import version
+    if split_version(version) <= (0,9,6,12):
+        return []
 
     package_dir = os.path.join(get_base_dir(), PACKAGE_PATH)
     files = os.listdir(package_dir)
@@ -255,9 +258,6 @@
     except ValueError:
         return False
 
-def get_base_dir():
-    return os.path.join(os.getcwd(), os.path.dirname(sys.argv[0]))
-
 # pick up any commandline options
 OPTION_WITHOUT_OBJECTIFY = has_option('without-objectify')
 OPTION_WITHOUT_ASSERT = has_option('without-assert')

Modified: lxml/trunk/versioninfo.py
==============================================================================
--- lxml/trunk/versioninfo.py	(original)
+++ lxml/trunk/versioninfo.py	Mon Mar 17 17:19:19 2008
@@ -5,7 +5,7 @@
 def version():
     global __LXML_VERSION
     if __LXML_VERSION is None:
-        __LXML_VERSION = open(os.path.join(get_src_dir(), 'version.txt')).read().strip()
+        __LXML_VERSION = open(os.path.join(get_base_dir(), 'version.txt')).read().strip()
     return __LXML_VERSION
 
 def branch_version():
@@ -17,7 +17,7 @@
 
 def svn_version():
     _version = version()
-    src_dir = get_src_dir()
+    src_dir = get_base_dir()
 
     revision = 0
     base_url = None
@@ -89,7 +89,7 @@
     """Extract part of changelog pertaining to version.
     """
     _version = version()
-    f = open(os.path.join(get_src_dir(), "CHANGES.txt"), 'r')
+    f = open(os.path.join(get_base_dir(), "CHANGES.txt"), 'r')
     lines = []
     for line in f:
         if line.startswith('====='):
@@ -114,7 +114,7 @@
             svn_version += '.0'
 
     version_h = open(
-        os.path.join(get_src_dir(), 'src', 'lxml', 'lxml-version.h'),
+        os.path.join(get_base_dir(), 'src', 'lxml', 'lxml-version.h'),
         'w')
     version_h.write('''\
 #ifndef LXML_VERSION_STRING
@@ -123,10 +123,23 @@
 ''' % svn_version)
     version_h.close()
 
-def get_src_dir():
+def get_base_dir():
     return os.path.join(os.getcwd(), os.path.dirname(sys.argv[0]))
 
 def fix_alphabeta(version, alphabeta):
     if ('.' + alphabeta) in version:
         return version
     return version.replace(alphabeta, '.' + alphabeta)
+
+def split_version(version):
+    find_digits = re.compile('([0-9]+)(.*)').match
+    l = []
+    for part in version.split('.'):
+        try:
+            l.append( int(part) )
+        except ValueError:
+            match = find_digits(part)
+            if match:
+                l.append( int(match.group(1)) )
+                l.append( match.group(2) )
+    return tuple(l)


More information about the lxml-checkins mailing list