PyWavelets 0.3.0 Release Notes#

PyWavelets 0.3.0 is the first release of the package in 3 years. It is the result of a significant effort of a growing development team to modernize the package, to provide Python 3.x support and to make a start with providing new features as well as improved performance. A 0.4.0 release will follow shortly, and will contain more significant new features as well as changes/deprecations to streamline the API.

This release requires Python 2.6, 2.7 or 3.3-3.5 and NumPy 1.6.2 or greater.

Highlights of this release include:

  • Support for Python 3.x (>=3.3)

  • Added a test suite (based on nose, coverage up to 61% so far)

  • Maintenance work: C style complying to the Numpy style guide, improved templating system, more complete docstrings, pep8/pyflakes compliance, and more.

New features#

Test suite#

The test suite can be run with nosetests pywt or with:

>>> import pywt
>>> pywt.test()

n-D Inverse Discrete Wavelet Transform#

The function pywt.idwtn, which provides n-dimensional inverse DWT, has been added. It complements idwt, idwt2 and dwtn.

Thresholding#

The function pywt.threshold has been added. It unifies the four thresholding functions that are still provided in the pywt.thresholding namespace.

Backwards incompatible changes#

None in this release.

Other changes#

Development has moved to a new repo. Everyone with an interest in wavelets is welcome to contribute!

Building wheels, building with python setup.py develop and many other standard ways to build and install PyWavelets are supported now.

Authors#

  • Ankit Agrawal +

  • François Boulogne +

  • Ralf Gommers +

  • David Menéndez Hurtado +

  • Gregory R. Lee +

  • David McInnis +

  • Helder Oliveira +

  • Filip Wasilewski

  • Kai Wohlfahrt +

A total of 9 people contributed to this release. People with a “+” by their names contributed a patch for the first time. This list of names is automatically generated, and may not be fully complete.

Issues closed for v0.3.0#

  • #3: Remove numerix compat layer

  • #4: Add single code base Python 3 support

  • #5: PEP8 issues

  • #6: Migrate tests to nose

  • #7: Expand test coverage without Matlab to a reasonable level

  • #8: Replace custom C templates by Numpy’s templating system

  • #9: Replace Cython templates by fused types

  • #10: Replace use of __array_interface__ with Cython’s memoryviews

  • #11: Format existing docstrings in numpydoc format.

  • #12: Complete docstrings, they’re quite sparse right now

  • #13: Reorganize source tree

  • #24: doc/source/regression should be moved

  • #27: Broken test: test_swt_decomposition

  • #28: Install issue, no module tools.six

  • #29: wp.update fails after removal of nodes

  • #32: wp.update fails on 2D

  • #34: Wavelet string attributes shouldn’t be bytes in Python 3

  • #35: Re-enable float32 support

  • #36: wavelet instance vs string

  • #40: Test with Numpy 1.8rc1

  • #45: demos should be updated and integrated in docs

  • #60: Moving pywt forward faster

  • #61: issues to address in moving towards 0.3.0

  • #71: BUG: _pywt.downcoef always returns level=1 result

Pull requests for v0.3.0#

  • #1: travis: check all branches + fix URL

  • #17: [DOC] doctrings for multilevel functions

  • #18: DOC: format -> functions.py

  • #20: MAINT: remove unnecessary zero() copy()

  • #21: Doc wavelet_packets

  • #22: Minor doc fixes

  • #25: TEST: remove useless functions and use numpy instead

  • #26: Merge most recent work

  • #30: Adding test for wp.rst

  • #41: Change to Numpy templating system

  • #43: MAINT: update six.py to not use lazy loading.

  • #49: Taking on API Issues

  • #50: Add idwtn

  • #53: readme updated with info related to Py3 version

  • #63: Remove six

  • #65: Thresholding

  • #70: MAINT: PEP8 fixes

  • #72: BUG: fix _downcoef for level > 1

  • #73: MAINT: documentation and metadata update for repo fork

  • #74: STY: fix pep8/pyflakes issues

  • #77: MAINT: raise ValueError if data given to dwt or idwt is not 1D…