diff options
Diffstat (limited to 'numpy/lib')
-rw-r--r-- | numpy/lib/_datasource.py | 7 | ||||
-rw-r--r-- | numpy/lib/getlimits.py | 14 | ||||
-rw-r--r-- | numpy/lib/polynomial.py | 8 | ||||
-rw-r--r-- | numpy/lib/tests/test__datasource.py | 3 | ||||
-rw-r--r-- | numpy/lib/utils.py | 13 |
5 files changed, 26 insertions, 19 deletions
diff --git a/numpy/lib/_datasource.py b/numpy/lib/_datasource.py index 20a6cc391..bd69b45f2 100644 --- a/numpy/lib/_datasource.py +++ b/numpy/lib/_datasource.py @@ -37,7 +37,6 @@ __docformat__ = "restructuredtext en" import os import tempfile from shutil import rmtree -from urllib2 import urlopen, URLError from urlparse import urlparse # TODO: .zip support, .tar support? @@ -196,6 +195,9 @@ class DataSource (object): Creates a copy of the file in the datasource cache. """ + # We import these here because importing urllib2 is slow and + # a significant fraction of numpy's total import time. + from urllib2 import urlopen, URLError upath = self.abspath(path) @@ -337,6 +339,9 @@ class DataSource (object): is accessible if it exists in either location. """ + # We import this here because importing urllib2 is slow and + # a significant fraction of numpy's total import time. + from urllib2 import URLError # Test local path if os.path.exists(path): diff --git a/numpy/lib/getlimits.py b/numpy/lib/getlimits.py index 89b40203f..99016de2d 100644 --- a/numpy/lib/getlimits.py +++ b/numpy/lib/getlimits.py @@ -21,14 +21,16 @@ _convert_to_float = { } class finfo(object): - """Machine limits for floating point types. + """ Machine limits for floating point types. - :Parameters: - dtype : floating point type or instance - - :SeeAlso: - - numpy.lib.machar.MachAr + Parameters + ---------- + dtype : floating point type, dtype, or instance + The kind of floating point data type to get information about. + See Also + -------- + numpy.lib.machar.MachAr """ _finfo_cache = {} diff --git a/numpy/lib/polynomial.py b/numpy/lib/polynomial.py index 141e85e25..303cdb13c 100644 --- a/numpy/lib/polynomial.py +++ b/numpy/lib/polynomial.py @@ -17,8 +17,6 @@ from numpy.lib.shape_base import hstack, atleast_1d from numpy.lib.function_base import trim_zeros, sort_complex eigvals = None lstsq = None -_single_eps = finfo(NX.single).eps -_double_eps = finfo(NX.double).eps class RankWarning(UserWarning): """Issued by polyfit when Vandermonde matrix is rank deficient. @@ -301,11 +299,7 @@ def polyfit(x, y, deg, rcond=None, full=False): # set rcond if rcond is None : - xtype = x.dtype - if xtype == NX.single or xtype == NX.csingle : - rcond = len(x)*_single_eps - else : - rcond = len(x)*_double_eps + rcond = len(x)*finfo(x.dtype).eps # scale x to improve condition number scale = abs(x).max() diff --git a/numpy/lib/tests/test__datasource.py b/numpy/lib/tests/test__datasource.py index abb58701d..5102237d6 100644 --- a/numpy/lib/tests/test__datasource.py +++ b/numpy/lib/tests/test__datasource.py @@ -5,6 +5,7 @@ import struct from tempfile import mkdtemp, mkstemp, NamedTemporaryFile from shutil import rmtree from urlparse import urlparse +from urllib2 import URLError from numpy.testing import * @@ -16,7 +17,7 @@ def urlopen_stub(url, data=None): tmpfile = NamedTemporaryFile(prefix='urltmp_') return tmpfile else: - raise datasource.URLError('Name or service not known') + raise URLError('Name or service not known') # Rebind urlopen during testing. For a 'real' test, uncomment the rebinding # below. diff --git a/numpy/lib/utils.py b/numpy/lib/utils.py index 8a119722b..7df342e02 100644 --- a/numpy/lib/utils.py +++ b/numpy/lib/utils.py @@ -1,11 +1,9 @@ -import compiler import os import sys -import inspect import pkgutil import types import re -import pydoc + from numpy.core.numerictypes import obj2sctype, generic from numpy.core.multiarray import dtype as _dtype from numpy.core import product, ndarray @@ -327,7 +325,8 @@ def info(object=None,maxwidth=76,output=sys.stdout,toplevel='numpy'): p[0]*(x**N-1) + p[1]*(x**N-2) + ... + p[N-2]*x + p[N-1] """ global _namedict, _dictlist - import pydoc + # Local import to speed up numpy's import time. + import pydoc, inspect if hasattr(object,'_ppimport_importer') or \ hasattr(object, '_ppimport_module'): @@ -467,6 +466,8 @@ def info(object=None,maxwidth=76,output=sys.stdout,toplevel='numpy'): def source(object, output=sys.stdout): """Write source for this object to output. """ + # Local import to speed up numpy's import time. + import inspect try: print >> output, "In file: %s\n" % inspect.getsourcefile(object) print >> output, inspect.getsource(object) @@ -599,6 +600,8 @@ def _lookfor_generate_cache(module, import_modules, regenerate): """ global _lookfor_caches + # Local import to speed up numpy's import time. + import inspect if module is None: module = "numpy" @@ -751,6 +754,8 @@ def safe_eval(source): ... SyntaxError: Unknown name: dict """ + # Local import to speed up numpy's import time. + import compiler walker = SafeEval() try: ast = compiler.parse(source, "eval") |