summaryrefslogtreecommitdiff
path: root/numpy/__init__.py
Commit message (Collapse)AuthorAgeFilesLines
* BUG: Remove builtins from __all__Eric Wieser2019-11-121-2/+6
| | | | | | | | This was introduced in 3ca0eb1136102ff01bcc171f53c106326fa4445b, due to an incorrect implementation of `__dir__` (fixed in the previous commit). It was never released, so this is not a breaking change. In that commit, `from numpy import *` would reset all the builtins to their defaults, and set `unicode = str`, `long = int`.
* BUG: Fix np.__dir__ to correctly handle new propertiesEric Wieser2019-11-111-1/+1
| | | | | | | | | | Previously this would fail, but only on python 3.7+ ``` np.new_member = 1 assert 'new_member' in dir(np) ``` While this isn't something we support anyway, it certainly wasn't intentional.
* DOC: add some comments to explain namespace cleanup in numpy/__init__.pyRalf Gommers2019-09-191-0/+4
| | | | [ci skip]
* MAINT: add missing 'Arrayterator' to `numpy.lib.__all__`Ralf Gommers2019-09-191-0/+6
| | | | | | | Also finish the TODO about figuring out which np.lib.<submodule>'s are public. This is a giant mess ...
* BUG: Fix format statement associated with AttributeError.Warren Weckesser2019-09-041-3/+2
| | | | | | | | | | | | | | | | | | | | | | | | Before this fix, a reference such as `numpy.wxyz` produced an incorrect error message because of the invalid format specifiers in the error message string: >>> import numpy >>> numpy.wxyz Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/.../numpy/__init__.py", line 206, in __getattr__ "module %s has no attribute $s".format(__name__, attr)) AttributeError: module %s has no attribute $s After the fix: >>> import numpy >>> numpy.wxyz Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/.../numpy/__init__.py", line 206, in __getattr__ "{!r}".format(__name__, attr)) AttributeError: module 'numpy' has no attribute 'wxyz'
* MAINT: Lazy import testing on python >=3.7 (#14097)Mark Harfouche2019-08-221-3/+31
| | | | | On new python versions, the module level `__getattr__` can be used to import testing and Tester only when needed (at no speed cost, except for the first time import). Since most users never use testing, this avoids an expensive import.
* MAINT: cleanup getlimit global varsAllan Haldane2018-10-091-1/+1
|
* MAINT: delay initialization of getlimits (circular imports)Allan Haldane2018-10-091-0/+2
| | | | | | | getlimits previously called numpy code before all of numpy was loaded, which often causes circular import issues. This delays getlimits init. Fixes #12063
* DEP: Remove np.pkgload, which was deprecated in 1.10Eric Wieser2018-08-121-10/+1
| | | | | | | | Attempts to use this on either cpython27 or cpython35, in either a shell or a script, gives: NameError: name '__path__' is not defined Perhaps I'm calling it wrong, but it might just be broken.
* ignore cython warnings in initJeremy Manning2018-07-291-0/+5
|
* DOC: extend sanity check messagemattip2018-07-041-1/+3
|
* MAINT: Move add_newdocs into core, since it only adds docs to those piecesEric Wieser2018-07-021-3/+1
|
* MAINT: Move pytesttester outside of np.testing, to avoid creating ↵Eric Wieser2018-07-021-1/+1
| | | | | | | | unnecessary import dependencies pytesttester is used by every single subpackage, so making it depend on np.testing just creates cyclic dependencies that can lead to circular imports Relates to #11457
* HTTP -> HTTPS, and other linkrot fixesMike Toews2018-06-161-2/+2
|
* MAINT: add sanity-checks to be run at import timePauli Virtanen2018-05-271-0/+25
| | | | This checks for potential BLAS issues, which are useful to catch early.
* TST: Update modules `test` to PytestTester.Charles Harris2018-04-041-11/+9
| | | | | | | | Numpy can now be tested using the standard `python -c"import numpy; numpy.test()"` construct.
* MAINT: Remove "bench" from testing modules `__init__`s.Charles Harris2018-03-311-1/+0
| | | | | The "bench" testing with the old bench files is no longer supported. These days we use `runtests.py` and `asv`.
* MAINT: Rearrange files in numpy/testing module.Charles Harris2017-07-041-3/+3
| | | | | | | | | | | | | | | | | The aim here is to separate out the nose dependent files prior to adding pytest support. This could be done by adding new files to the general numpy/testing directory, but I felt that it was to have the relevant files separated out as it makes it easier to completely remove nose dependencies when needed. Many places were accessing submodules in numpy/testing directly, and in some cases incorrectly. That presented a backwards compatibility problem. The solution adapted here is to have "dummy" files whose contents will depend on whether of not pytest is active. That way the module looks the same as before from the outside. In the case of numpy itself, direct accesses have been fixed. Having proper `__all__` lists in the submodules helped in that.
* DOC: change Numpy to NumPy in dosctrings and commentsPierre de Buyl2016-09-061-2/+2
| | | | The strings in error messages were left untouched
* BUG: Make sure numpy globals keep identity after reload.Charles Harris2016-08-161-50/+8
| | | | | | | | | | | | Reloading currently causes problems because global classes defined in numpy/__init__.py change their identity (a is b) after reload. The solution taken here is to move those classes to a new non-reloadable module numpy/_globals and import them into numpy from there. Classes moved are ModuleDeprecationWarning, VisibleDeprecationWarning, and _NoValue. Closes #7844.
* BUG: Raise RuntimeError when reloading numpy is attempted.Charles Harris2016-07-201-9/+18
| | | | | | | | | | There seems to be little use in reloading numpy as any changed modules that are imported into numpy would need to be reloaded first in order to see any changes. Furthermore, reloading causes problems as global classes defined in numpy/__init__.py change their identity. Hence we raise a RuntimeError when an attempt to reload numpy is made. Closes #7844.
* ENH: platform-specific install hook to change initMatthew Brett2016-03-071-0/+3
| | | | | | Give hook to allow platform-specific installs to modify the initialization of numpy. Particular use-case is to allow check for SSE2 on Windows when shipping with ATLAS wheel.
* [TST] Refactor new raise_warnings logic for subpackage test suitesNathaniel J. Smith2015-12-301-6/+4
|
* [FIX] fix NoseTester's raise_warning defaultNathaniel J. Smith2015-12-291-2/+6
| | | | | | | | | | | | | | | | Our test-runner's raise_warning mode traditionally has varied depending on whether we have a development or release version of numpy: for development versions we raise on warnings, and for release versions we don't. This is all very sensible... *if* you're running numpy's test suite. But our test-runner is also used by other packages like scipy, and it doesn't make sense for scipy's raise_warning mode to vary depending on whether *numpy* is a development or release version. (It should vary depending on whether the scipy-under-test is a development or release version.) So this commit moves the numpy-version-dependent raise_warning logic out of the generic NoseTester class and into numpy-specific code. (See scipy/scipy#5609 for more discussion.)
* MAINT: add a warning filter for possible "ndarray size changed" Cython noise.Ralf Gommers2015-04-051-0/+1
| | | | | See gh-432 for details. Motivation for adding this now is the discussion on gh-5343.
* ENH: _NoValue class at top-level to test kwargsMatthew Brett2015-03-151-0/+10
| | | | | | | | | | Add _NoValue class at top level to make it possible to detect when non-default values got passed to a keyword argument, as in: def func(a, b=np._NoValue): if b is not np._NoValue: warnings.warn("Argument b is deprecated", DeprecationWarning)
* Update __init__.pyCameron Bates2014-04-261-1/+1
| | | interpreter is misspelled
* DEP: Deprecate numpy.rankSebastian Berg2014-04-221-1/+14
| | | | | | | This function is commonly confused with numpy.linalg.matrix_rank and exists itself only for history reasons. Closes gh-4616
* MAINT: Make useless imports of oldnumeric and numarray safe.Charles Harris2013-09-281-0/+6
| | | | | | | The oldnumeric and numarray packages were removed in numpy 1.9, but some packages, e.g. scipy, import them even though they are not used. This defines both to the string 'removed' in numpy/__init__.py, which avoids an import error.
* STY: Giant whitespace cleanup.Charles Harris2013-08-181-1/+0
| | | | Now is as good a time as any with open PR's at a low.
* DEP: Deprecate the oldnumeric and numarray modules.Charles Harris2013-06-101-1/+14
| | | | | | | | | The numarray and oldnumeric modules are deprecated. This is a bit tricky as raising a DeprecationWarning on import causes an error when tests are run. To deal with that, a ModuleDeprecationWarning class is added to numpy and NoseTester is modified to ignore that warning during testing. Closes #2905
* 2to3: Apply unicode fixer.Charles Harris2013-04-211-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | The unicode fixer strips the u from u'hi' and converts the unicode type to str. The first won't work for Python 2 and instead we replace the u prefix with the sixu function borrowed from the six compatibility package. That function calls the unicode constructor with the 'unicode_escape' encoder so that the many tests using escaped unicode characters like u'\u0900' will be handled correctly. That makes the sixu function a bit different from the asunicode function currently in numpy.compat and also provides a target that can be converted back to the u prefix when support for Python 3.2 is dropped. Python 3.3 reintroduced the u prefix for compatibility. The unicode fixer also replaces 'unicode' with 'str' as 'unicode' is no longer a builtin in Python 3. For code compatibility, 'unicode' is defined either as 'str' or 'unicode' in numpy.compat so that checks like if isinstance(x, unicode): ... will work properly for all python versions. Closes #3089.
* 2to3: Apply the `numliterals` fixer and skip the `long` fixer.Charles Harris2013-04-131-2/+3
| | | | | | | | | | | | | | | | | | | The numliterals fixer replaces the old style octal number like '01' by '0o1' removes the 'L' suffix. Octal values were previously mistakenly specified in some dates, those uses have been corrected by removing the leading zeros. Simply Removing the 'L' suffix should not be a problem, but in some testing code it looks neccesary, so in those places the Python long constructor is used instead. The 'long' type is no longer defined in Python 3. Because we need to have it defined for Python 2 it is added to numpy/compat/np3k.py where it is defined as 'int' for Python 3 and 'long' for Python 2. The `long` fixer then needs to be skipped so that it doesn't undo the good work. Closes #3074, #3067.
* 2to3: Apply `print` fixer.Charles Harris2013-04-061-1/+1
| | | | | | | Add `print_function` to all `from __future__ import ...` statements and use the python3 print function syntax everywhere. Closes #3078.
* 2to3: Apply `imports` fixer.Charles Harris2013-04-021-2/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | The `imports` fixer deals with the standard packages that have been renamed, removed, or methods that have moved. cPickle -- removed, use pickle commands -- removed, getoutput, getstatusoutput moved to subprocess urlparse -- removed, urlparse moved to urllib.parse cStringIO -- removed, use StringIO or io.StringIO copy_reg -- renamed copyreg _winreg -- renamed winreg ConfigParser -- renamed configparser __builtin__ -- renamed builtins In the case of `cPickle`, it is imported as `pickle` when python < 3 and performance may be a consideration, but otherwise plain old `pickle` is used. Dealing with `StringIO` is a bit tricky. There is an `io.StringIO` function in the `io` module, available since Python 2.6, but it expects unicode whereas `StringIO.StringIO` expects ascii. The Python 3 equivalent is then `io.BytesIO`. What I have done here is used BytesIO for anything that is emulating a file for testing purposes. That is more explicit than using a redefined StringIO as was done before we dropped support for Python 2.4 and 2.5. Closes #3180.
* 2to3: Use absolute imports.Charles Harris2013-03-281-20/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The new import `absolute_import` is added the `from __future__ import` statement and The 2to3 `import` fixer is run to make the imports compatible. There are several things that need to be dealt with to make this work. 1) Files meant to be run as scripts run in a different environment than files imported as part of a package, and so changes to those files need to be skipped. The affected script files are: * all setup.py files * numpy/core/code_generators/generate_umath.py * numpy/core/code_generators/generate_numpy_api.py * numpy/core/code_generators/generate_ufunc_api.py 2) Some imported modules are not available as they are created during the build process and consequently 2to3 is unable to handle them correctly. Files that import those modules need a bit of extra work. The affected files are: * core/__init__.py, * core/numeric.py, * core/_internal.py, * core/arrayprint.py, * core/fromnumeric.py, * numpy/__init__.py, * lib/npyio.py, * lib/function_base.py, * fft/fftpack.py, * random/__init__.py Closes #3172
* 2to3: Put `from __future__ import division in every python file.Charles Harris2013-03-011-0/+1
| | | | | | | | This should be harmless, as we already are division clean. However, placement of this import takes some care. In the future a script can be used to append new features without worry, at least until such time as it exceeds a single line. Having that ability will make it easier to deal with absolute imports and printing updates.
* MAINT: silence Cython warnings about changes dtype/ufunc size.Ralf Gommers2012-09-081-0/+6
| | | | | | | | | These warnings are visible whenever you import scipy (or another package) that was compiled against an older numpy than is installed. For example compiled against 1.5.1, like current scipy binaries are, and used with 1.7.0. These warnings aren't useful; if numpy would really break its ABI it would be noticed in no time without these warnings.
* ENH: Put line ending on message to stderr.Charles Harris2011-04-261-1/+1
|
* ENH: Add Git revision hash to numpy dev version stringScott Sinclair2010-11-101-0/+1
| | | | | | | - Appends the first 6 characters of the Git revision used to build Numpy - Adds an additional attribute to easily obtain the full Git revision
* fixed a whole bunch of doctestsPaul Ivanov2009-12-281-0/+4
|
* Make top numpy __init__ importable from python3.David Cournapeau2009-12-031-2/+2
|
* Add support for chebyshev series and polynomials.Charles Harris2009-11-141-0/+3
| | | | | | | | | | | | | | | | New modules chebyshev and polynomial are added. The new polynomial module is not compatible with the current polynomial support in numpy, but is much like the new chebyshev module. The most noticeable difference to most will be that coefficients are specified from low to high power, that the low level functions do *not* accept the Chebyshev and Polynomial classes as arguements, and that the Chebyshev and Polynomial classes include a domain. Mapping between domains is a linear substitution and the two classes can be converted one to the other, allowing, for instance, a Chebyshev series in one domain to be expanded as a polynomial in another domain. The new modules are not automatically imported into the numpy namespace, they must be explicitly brought in with a "import numpy.polynomial" statement.
* ENH: move inspect copy into newly created compat module.David Cournapeau2009-10-131-0/+1
|
* Final doc import cleanups. Thanks to all contributors for the preceding commits!Pauli Virtanen2009-10-021-1/+1
| | | | | There are still some docstrings in the queue -- those'll be committed in later.
* Rename matrx to matrixlib.David Cournapeau2009-09-181-2/+2
| | | | | I forgot to commit the name change suggested by Stefan. You need to clean build/install directory when updating to this version.
* Move matrix class into its own module.David Cournapeau2009-09-161-0/+3
|
* Import documentation from doc wiki (part 2, work-in-progress docstrings, but ↵Pauli Virtanen2008-10-281-7/+12
| | | | they are still an improvement)
* Move documentation outside of source tree. Remove `doc` import from __init__.Stefan van der Walt2008-08-231-19/+11
|
* ran reindentJarrod Millman2008-08-081-1/+0
|