|
Bottleneck 1.3.2
Bug Fixes
- Explicitly declare numpy version dependency in ``pyproject.toml`` for Python 3.8, fixing
certain cases where ``pip install`` would fail.
and ``@0xb0b`` for reporting.
Bottleneck 1.3.1
Bug Fixes
- Fix memory leak in :func:`bottleneck.nanmedian` with the default argument of ``axis=None``.
- Add regression test for memory leak case
Bottleneck 1.3.0
Project Updates
- Bottleneck has a new maintainer, Christopher Whelan (``@qwhelan`` on GitHub).
- Documentation now hosted at https://bottleneck.readthedocs.io
- 1.3.x will be the last release to support Python 2.7
- Bottleneck now supports and is tested against Python 3.7 and 3.8.
- The ``LICENSE`` file has been restructured to only include the license for the Bottleneck project to aid license audit tools. There has been no change to the licensing of Bottleneck.
- Licenses for other projects incorporated by Bottleneck are now reproduced in full in separate files in the ``LICENSES/`` directory (eg, ``LICENSES/NUMPY_LICENSE``)
- All licenses have been updated. Notably, setuptools is now MIT licensed and no longer under the ambiguous dual PSF/Zope license.
- Bottleneck now uses :pep:`518` for specifying build dependencies, with per Python version specifications
Enhancements
- Remove ``numpydoc`` package from Bottleneck source distribution
- :func:`bottleneck.slow.reduce.nansum` and :func:`bottleneck.slow.reduce.ss` now longer coerce output to have the same dtype as input
- Test (tox, travis, appveyor) against latest ``numpy`` (in conda)
- Performance benchmarking also available via ``asv``
- ``versioneer`` now used for versioning
- Test suite now uses ``pytest`` as ``nose`` is deprecated
- ``python setup.py build_ext --inplace`` is now incremental
- ``python setup.py clean`` now cleans all artifacts
- Compiler feature support now identified by testing rather than hardcoding
- The ``BN_OPT_3`` macro allows selective use of ``-O3`` at the function level
- Contributors are now automatically cited in the release notes
Performance
- Speed up :func:`bottleneck.reduce.anynan` and :func:`bottleneck.reduce.allnan` by 2x via ``BN_OPT_3``
- All functions covered by ``asv`` benchmarks
- :func:`bottleneck.nonreduce.replace` speedup of 4x via more explicit typing
- :func:`bottleneck.reduce.median` up to 2x faster for Fortran-ordered arrays
Bug Fixes
- Documentation fails to build on Python 3
- :func:`bottleneck.benchmark.bench` crashes on python 3.6.3, numpy 1.13.3
- :func:`bottleneck.nonreduce_axis.push` raises when :code:`n=None` is explicitly passed
- :func:`bottleneck.reduce.nansum` wrong output when :code:`a = np.ones((2, 2))[..., np.newaxis]`
same issue of other reduce functions
- Silenced FutureWarning from NumPy in the slow version of move functions
- Installing bottleneck onto a system that does not already have Numpy
- Memory leaked when input was not a NumPy array
- Tautological comparison in :func:`bottleneck.move.move_rank` removed
Cleanup
- The ``ez_setup.py`` module is no longer packaged
- Building documentation is now self-contained in ``make doc``
- Codebase now ``flake8`` compliant and run on every commit
- Codebase now uses ``black`` for autoformatting
|