* Thu Jan 30 2020 Todd R <toddrme2178@gmail.com>
- Update to version 1.1.1
* This release is identical in functionality to 1.1.0.
It fixes setup.py to prevent pip from trying to install from PyPI for Python < 3.5.
- Update to version 1.1.0
+ New features
* All ``swt`` functions now have a new ``trim_approx`` option that can be used
to exclude the approximation coefficients from all but the final level of
decomposition. This mode makes the output of these functions consistent with
the format of the output from the corresponding ``wavedec`` functions.
* All ``swt`` functions also now have a new ``norm`` option that, when set to
``True`` and used in combination with ``trim_approx=True``, gives a partition
of variance across the transform coefficients. In other words, the sum of
the variances of all coefficients is equal to the variance of the original
data. This partitioning of variance makes the ``swt`` transform more similar
to the multiple-overlap DWT (MODWT) described in Percival and Walden's book,
"Wavelet Methods for Time Series Analysis".
A demo of this new ``swt`` functionality is available at
https://github.com/PyWavelets/pywt/blob/master/demo/swt_variance.py
* The continuous wavelet transform (``cwt``) now offers an FFT-based
implementation in addition to the previous convolution based one. The new
``method`` argument can be set to either ``'conv'`` or ``'fft'`` to select
between these two implementations..
* The ``cwt`` now also has ``axis`` support so that CWTs can be applied in
batch along any axis of an n-dimensional array. This enables faster batch
transformation of signals.
+ Backwards incompatible changes
* When the input to ``cwt`` is single precision, the computations are now
performed in single precision. This was done both for efficiency and to make
``cwt`` handle dtypes consistently with the discrete transforms in
PyWavelets. This is a change from the prior behaviour of always performing
the ``cwt`` in double precision.
* When using complex-valued wavelets with the ``cwt``, the output will now be
the complex conjugate of the result that was produced by PyWavelets 1.0.x.
This was done to account for a bug described below. The magnitude of the
``cwt`` coefficients will still match those from previous releases.
+ Bugs Fixed
* For a ``cwt`` with complex wavelets, the results in PyWavelets 1.0.x releases
matched the output of Matlab R2012a's ``cwt``. Howveer, older Matlab releases
like R2012a had a phase that was of opposite sign to that given in textbook
definitions of the CWT (Eq. 2 of Torrence and Compo's review article, "A
Practical Guide to Wavelet Analysis"). Consequently, the wavelet coefficients
were the complex conjugates of the expected result. This was validated by
comparing the results of a transform using ``cmor1.0-1.0`` as compared to the
``cwt`` implementation available in Matlab R2017b as well as the function
``wt.m`` from the Lancaster University Physics department's
`MODA toolbox <https://github.com/luphysics/MODA>`_.
* For some boundary modes and data sizes, round-trip ``dwt``/``idwt`` can
result in an output that has one additional coefficient. Prior to this
relese, this could cause a failure during ``WaveletPacket`` or
``WaveletPacket2D`` reconstruction. These wavelet packet transforms have now
been fixed and round-trip wavelet packet transforms always preserve the
original data shape.
* All inverse transforms now handle mixed precision coefficients consistently.
Prior to this release some inverse transform raised an error upon
encountering mixed precision dtypes in the wavelet subbands. In release 1.1,
when the user-provided coefficients are a mixture of single and double
precision, all coefficients will be promoted to double precision.
* A bug that caused a failure for ``iswtn`` when using user-provided ``axes``
with non-uniform shape along the transformed axes has been fixed.
+ Other changes
* The PyWavelet test suite now uses ``pytest`` rather than ``nose``.
* Cython code has been updated to use ``language_level=3``.
* PyWavelets has adopted the SciPy Code of Conduct.
- Drop doc subpackage. readthedocs is changing their url structure
too quickly to easily keep up with.
* Tue Jul 23 2019 Todd R <toddrme2178@gmail.com>
- Update to version 1.0.3
PyWavelets 1.0.3 is functionally equivalent to the 1.0.2 release.
It was made to archive the JOSS paper about PyWavelets to the
1.0.x branch and serve as a reference corresponding to the
version that was peer reviewed.
* Tue Mar 12 2019 Matej Cepl <mcepl@suse.com>
- Update to version 1.0.2:
PyWavelets 1.0.2 is a bug-fix and maintenance release with no
new features compared to 1.0.1.
* Bugs Fixed
- A bug in iswtn when using some combinations of
user-specified axes was fixed.
- A potential error related to coefficient shape mismatch
during WaveletPacket or WaveletPacket2D reconstruction was
fixed.
* Other Changes
- A deprecated import of Iterable was fixed.
- The spelling of "Garrote" was fixed in the wavelet
thresholding documentation. For backwards compatibility
with 1.0.0, the incorrect ("garotte") spelling is also
accepted for the mode parameter of pywt.threshold.
- The spelling of "supported" was fixed in one of the
ValueError messages that can be returned by pywt.cwt.
- Cython language compatibility has been pinned to
language_level = '2'. This is in contrast to the master
branch which is now using language_level = '3'. To support
this, the minimum supported Cython version has been raised
to 0.23.5.
* Fri Jan 04 2019 Todd R <toddrme2178@gmail.com>
- Update to version 1.0.1
* Key-based assignment of coefficients to a ``FswavedecnResult`` object (i.e. via
its __setitem__ method) has been fixed.
* The order that the individual subband coefficients were stacked by the
function ``pywt.ravel_coeffs`` is now guaranteed to be consistent across all
supported Python versions. Explicit alphabetic ordering of subband coefficient
names is used for consitent ordering regardless of Python version
- Update to version 1.0.0
+ New features
* New 1D test signals
* C99 complex support
* complex-valued CWT
* More flexible specification of some continuous wavelets
* Fully Separable Discrete Wavelet Transfrom
* New thresholding methods
* New anti-symmetric boundary modes
* New functions to ravel and unravel wavedecn coefficients
* New functions to determine multilevel DWT coefficient shapes and sizes
+ Deprecated features
* The continous wavelets with names ``"cmor"``, ``"shan"`` and ``"fbsp"``
should now be modified to include formerly hard-coded attributes such as their
center frequency and bandwidth. Use of the bare names "cmor". "shan" and
"fbsp" is now deprecated. For "cmor" (and "shan"), the form of the wavelet
name is now "cmorB-C" ("shanB-C") where B and C are floats representing the
bandwidth frequency and center frequency. For "fbsp" the form should now
incorporate three floats as in "fbspM-B-C" where M is the spline order and B
and C are the bandwidth and center frequencies.
+ Backwards incompatible changes
* Python 2.6, 3.3 and 3.4 are no longer supported.
* The order of coefficients returned by ``swt2`` and input to ``iswt2`` have been
reversed so that the decomposition levels are now returned in descending rather
than ascending order. This makes these 2D stationary wavelet functions
consistent with all of the other multilevel discrete transforms in PyWavelets.
* For ``wavedec``, ``wavedec2`` and ``wavedecn``, the ability for the user to
specify a ``level`` that is greater than the value returned by
``dwt_max_level`` has been restored. A ``UserWarning`` is raised instead of a
``ValueError`` in this case.
+ Bugs Fixed
* Assigning new data to the ``Node`` or ``Node2D`` no longer forces a cast to
``float64`` when the data is one of the other dtypes supported by the dwt
(``float32``, ``complex64``, ``complex128``).
* Calling ``pywt.threshold`` with ``mode='soft'`` now works properly for
complex-valued inputs.
* A segfault when running multiple `swt2` or `swtn` transforms concurrently has
been fixed.
* Several instances of deprecated numpy multi-indexing that caused warnings in
numpy >=1.15 have been resolved.
* The 2d inverse stationary wavelet transform, `iswt2`, now supports non-square
inputs (an unnecessary check for square inputs was removed).
* Wavelet packets no longer convert float32 to float64 upon assignment to nodes.
* Doctests have been updated to also work with NumPy >= 1.14,
* Indexing conventions have been updated to avoid FutureWarnings in NumPy 1.15.
+ Other changes
* Python 3.7 is now officially supported.
- Remove upstream-included add_default_to_switch_statement.patch
* Wed Jul 18 2018 tchvatal@suse.com
- Stricten numpy dependency
Version: 0.5.2-bp150.1.3
* Sun Aug 06 2017 toddrme2178@gmail.com
- Fix shebangs
* Wed May 24 2017 toddrme2178@gmail.com
- Implement single-spec version
- Fix source URL
- Update to version 0.5.2
Highlights:
* 1D, 2D and nD Forward and Inverse Discrete Wavelet Transform
(DWT and IDWT)
* 1D, 2D and nD Multilevel DWT and IDWT
* 1D and 2D Forward and Inverse Stationary Wavelet Transform
* 1D and 2D Wavelet Packet decomposition and reconstruction
* 1D Continuous Wavelet Transform
* When multiple valid implementations are available, we have
chosen to maintain consistency with |MATLAB|'s Wavelet Toolbox.
- Add add_default_to_switch_statement.patch
Fixes no-return-in-nonvoid-function error
From: https://github.com/PyWavelets/pywt/commit/91b0a7bdbdd181bfb765246a9ec949b1cf2d12ad
* Mon Jan 11 2016 toddrme2178@gmail.com
- Update to 0.4.0
+ Highlights:
* 1D and 2D inverse stationary wavelet transforms
* Substantially faster 2D and nD discrete wavelet transforms
* Complex number support
* nD versions of the multilevel DWT and IDWT
- Update to 0.3.0
+ Highlights:
* 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.
* Thu Oct 24 2013 toddrme2178@gmail.com
- Update to 0.2.2
* Bugfixes
* Wed Jun 13 2012 scorot@free.fr
- use proper python command instead of %%{__python} macro
- remove -O1 and --skip-build flags from the install command line
* Wed Jun 13 2012 scorot@free.fr
- first package