diff options
author | cookedm <cookedm@localhost> | 2007-05-25 11:20:02 +0000 |
---|---|---|
committer | cookedm <cookedm@localhost> | 2007-05-25 11:20:02 +0000 |
commit | d11dbc78c0df5055a6ed57285775cc18dbe1721a (patch) | |
tree | 15623928349a868773695ff8cbdc3a5109086750 /numpy/distutils/core.py | |
parent | 9ddd860b31ea1d4517eb3fff6ab4c280ebb14dec (diff) | |
parent | 6ac33ee4e12b78b164a05046f7e029681f0e09a3 (diff) | |
download | numpy-d11dbc78c0df5055a6ed57285775cc18dbe1721a.tar.gz |
merge from distutils-revamp branch (step 1)
- minor cleanups
- find_executable returns None when no file found (instead of having to
check with os.path.isfile)
Diffstat (limited to 'numpy/distutils/core.py')
-rw-r--r-- | numpy/distutils/core.py | 61 |
1 files changed, 30 insertions, 31 deletions
diff --git a/numpy/distutils/core.py b/numpy/distutils/core.py index 5e21fefe7..589e97bc0 100644 --- a/numpy/distutils/core.py +++ b/numpy/distutils/core.py @@ -16,20 +16,14 @@ else: from distutils.core import setup as old_setup have_setuptools = False +import warnings +import distutils.core +import distutils.dist + from numpy.distutils.extension import Extension -from numpy.distutils.command import config -from numpy.distutils.command import build -from numpy.distutils.command import build_py -from numpy.distutils.command import config_compiler -from numpy.distutils.command import build_ext -from numpy.distutils.command import build_clib -from numpy.distutils.command import build_src -from numpy.distutils.command import build_scripts -from numpy.distutils.command import sdist -from numpy.distutils.command import install_data -from numpy.distutils.command import install_headers -from numpy.distutils.command import install -from numpy.distutils.command import bdist_rpm +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 from numpy.distutils.misc_util import get_data_files, is_sequence, is_string numpy_cmdclass = {'build': build.build, @@ -61,20 +55,15 @@ def _dict_append(d, **kws): continue dv = d[k] if isinstance(dv, tuple): - dv += tuple(v) - continue - if isinstance(dv, list): - dv += list(v) - continue - if isinstance(dv, dict): + d[k] = dv + tuple(v) + elif isinstance(dv, list): + d[k] = dv + list(v) + elif isinstance(dv, dict): _dict_append(dv, **v) - continue - if isinstance(dv, str): - assert isinstance(v,str),`type(v)` - d[k] = v - continue - raise TypeError,`type(dv)` - return + elif is_string(dv): + d[k] = dv + v + else: + raise TypeError, repr(type(dv)) def _command_line_ok(_cache=[]): """ Return True if command line does not contain any @@ -102,6 +91,21 @@ def _exit_interactive_session(_cache=[]): raw_input('Press ENTER to close the interactive session..') print '='*72 +def get_distribution(always=False): + dist = distutils.core._setup_distribution + # XXX Hack to get numpy installable with easy_install. + # The problem is easy_install runs it's own setup(), which + # sets up distutils.core._setup_distribution. However, + # when our setup() runs, that gets overwritten and lost. + # We can't use isinstance, as the DistributionWithoutHelpCommands + # class is local to a function in setuptools.command.easy_install + if dist is not None and \ + repr(dist).find('DistributionWithoutHelpCommands') != -1: + dist = None + if always and dist is None: + dist = distutils.dist.Distribution() + return dist + def setup(**attr): if len(sys.argv)<=1 and not attr.get('script_args',[]): @@ -124,7 +128,6 @@ def setup(**attr): # or help request in command in the line. configuration = new_attr.pop('configuration') - import distutils.core old_dist = distutils.core._setup_distribution old_stop = distutils.core._setup_stop_after distutils.core._setup_distribution = None @@ -173,7 +176,6 @@ def setup(**attr): return old_setup(**new_attr) def _check_append_library(libraries, item): - import warnings for libitem in libraries: if is_sequence(libitem): if is_sequence(item): @@ -198,10 +200,8 @@ def _check_append_library(libraries, item): if item==libitem: return libraries.append(item) - return def _check_append_ext_library(libraries, (lib_name,build_info)): - import warnings for item in libraries: if is_sequence(item): if item[0]==lib_name: @@ -215,4 +215,3 @@ def _check_append_ext_library(libraries, (lib_name,build_info)): " no build_info" % (lib_name,)) break libraries.append((lib_name,build_info)) - return |