[Numpy-svn] r4633 - branches/distutils_scons_command/numpy/distutils

numpy-svn at scipy.org numpy-svn at scipy.org
Sat Dec 22 03:45:32 EST 2007


Author: cdavid
Date: 2007-12-22 02:44:52 -0600 (Sat, 22 Dec 2007)
New Revision: 4633

Added:
   branches/distutils_scons_command/numpy/distutils/numpy_distribution.py
Modified:
   branches/distutils_scons_command/numpy/distutils/core.py
Log:
Use a custom NumpyDistribution instead of distutils Distribution, to handle scons scripts

Modified: branches/distutils_scons_command/numpy/distutils/core.py
===================================================================
--- branches/distutils_scons_command/numpy/distutils/core.py	2007-12-22 08:10:00 UTC (rev 4632)
+++ branches/distutils_scons_command/numpy/distutils/core.py	2007-12-22 08:44:52 UTC (rev 4633)
@@ -21,6 +21,7 @@
 import distutils.dist
 
 from numpy.distutils.extension import Extension
+from numpy.distutils.numpy_distribution import NumpyDistribution
 from numpy.distutils.command import config, config_compiler, \
      build, build_py, build_ext, build_clib, build_src, build_scripts, \
      sdist, install_data, install_headers, install, bdist_rpm
@@ -95,9 +96,10 @@
     # class is local to a function in setuptools.command.easy_install
     if dist is not None and \
             'DistributionWithoutHelpCommands' in repr(dist):
+        raise NotImplementedError("setuptools not supported yet for numpy.scons branch")
         dist = None
     if always and dist is None:
-        dist = distutils.dist.Distribution()
+        dist = NumpyDistribution()
     return dist
 
 def _exit_interactive_session(_cache=[]):
@@ -175,6 +177,9 @@
        and 'headers' not in new_attr:
         new_attr['headers'] = []
 
+    # Use our custom NumpyDistribution class instead of distutils' one
+    new_attr['distclass'] = NumpyDistribution
+
     return old_setup(**new_attr)
 
 def _check_append_library(libraries, item):

Added: branches/distutils_scons_command/numpy/distutils/numpy_distribution.py
===================================================================
--- branches/distutils_scons_command/numpy/distutils/numpy_distribution.py	2007-12-22 08:10:00 UTC (rev 4632)
+++ branches/distutils_scons_command/numpy/distutils/numpy_distribution.py	2007-12-22 08:44:52 UTC (rev 4633)
@@ -0,0 +1,28 @@
+# XXX: Handle setuptools ?
+from distutils.core import Distribution
+
+# This class is used because we add new files (sconscripts, and so on) with the
+# scons command
+class NumpyDistribution(Distribution):
+    def __init__(self, attrs = None):
+        # A list of (sconscripts, pre_hook, post_hook, src, parent_names)
+        self.scons_data = []
+        Distribution.__init__(self, attrs)
+
+    def has_scons_scripts(self):
+        return bool(self.scons_data)
+
+    def get_scons_scripts(self):
+        return [i[0] for i in self.scons_data]
+
+    def get_scons_pre_hooks(self):
+        return [i[1] for i in self.scons_data]
+
+    def get_scons_post_hooks(self):
+        return [i[2] for i in self.scons_data]
+
+    def get_scons_sources(self):
+        return [i[3] for i in self.scons_data]
+
+    def get_scons_parent_names(self):
+        return [i[4] for i in self.scons_data]




More information about the Numpy-svn mailing list