summaryrefslogtreecommitdiff
path: root/numpy/distutils/core.py
diff options
context:
space:
mode:
authorcookedm <cookedm@localhost>2007-05-25 11:20:02 +0000
committercookedm <cookedm@localhost>2007-05-25 11:20:02 +0000
commitd11dbc78c0df5055a6ed57285775cc18dbe1721a (patch)
tree15623928349a868773695ff8cbdc3a5109086750 /numpy/distutils/core.py
parent9ddd860b31ea1d4517eb3fff6ab4c280ebb14dec (diff)
parent6ac33ee4e12b78b164a05046f7e029681f0e09a3 (diff)
downloadnumpy-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.py61
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