17
0

Accepting request 773212 from home:TheBlackCat:branches:devel:languages:python:numeric

- 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.

OBS-URL: https://build.opensuse.org/request/show/773212
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python:numeric/python-PyWavelets?expand=0&rev=9
This commit is contained in:
Todd R
2020-02-10 19:35:59 +00:00
committed by Git OBS Bridge
parent ffd5b35104
commit 7421e32073
6 changed files with 84 additions and 50 deletions

View File

@@ -1,7 +1,7 @@
#
# spec file for package python-PyWavelets
#
# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
# Copyright (c) 2020 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -17,16 +17,15 @@
%{?!python_module:%define python_module() python-%{**} python3-%{**}}
%define skip_python2 1
Name: python-PyWavelets
Version: 1.0.3
Version: 1.1.1
Release: 0
Summary: PyWavelets is a Python wavelet transforms module
License: MIT
Group: Development/Libraries/Python
URL: https://github.com/PyWavelets/pywt
Source0: https://files.pythonhosted.org/packages/source/P/PyWavelets/PyWavelets-%{version}.tar.gz
Source10: https://media.readthedocs.org/pdf/pywavelets/v%{version}/pywavelets.pdf
Source11: https://media.readthedocs.org/htmlzip/pywavelets/v%{version}/pywavelets.zip
BuildRequires: %{python_module Cython}
BuildRequires: %{python_module devel}
BuildRequires: %{python_module numpy-devel >= 1.9.1}
@@ -36,8 +35,11 @@ BuildRequires: python-rpm-macros
BuildRequires: unzip
# SECTION test requirements
BuildRequires: %{python_module nose}
BuildRequires: %{python_module pytest}
# /SECTION
Requires: python-numpy >= 1.9.1
Provides: python-PyWavelets-doc = %{version}
Obsoletes: python-PyWavelets-doc < %{version}
%python_subpackages
%description
@@ -51,37 +53,10 @@ PyWavelets is a Python wavelet transforms module that can do:
* Single and double precision calculations
* Results compatibility with Matlab Wavelet Toolbox
%package -n %{name}-doc
Summary: This package contains the HMTL documentation of %{name}
Group: Documentation/Other
Provides: %{python_module PyWavelets-doc = %{version}}
%description -n %{name}-doc
PyWavelets is a Python wavelet transforms module that can do:
* 1D and 2D Forward and Inverse Discrete Wavelet Transform (DWT and IDWT)
* 1D and 2D Stationary Wavelet Transform (Undecimated Wavelet Transform)
* 1D and 2D Wavelet Packet decomposition and reconstruction
* Computing Approximations of wavelet and scaling functions
* Over seventy built-in wavelet filters and support for custom wavelets
* Single and double precision calculations
* Results compatibility with Matlab Wavelet Toolbox
This Package contains the documentation of %{name} in HTML and PDF formats.
%prep
%setup -q -n PyWavelets-%{version}
sed -i -e '/^#!\//, 1d' pywt/tests/*.py
cp %{SOURCE10} .
unzip %{SOURCE11} -d docs
mv docs/pywavelets-* docs/html
rm docs/html/.buildinfo
# Make docs non-executable
chmod a-x *.rst
chmod a-x PyWavelets.egg-info/*
# Fix wrong-script-interpreter
find demo -name '*.py' -exec sed -i "s|#!%{_bindir}/env python|#!%__python3|" {} \;
@@ -111,11 +86,12 @@ popd
}
%check
mkdir test
pushd test
%{python_expand export PYTHONPATH=%{buildroot}%{$python_sitearch}
$python -B -c 'import pywt;pywt.test()'
}
mkdir temp
mv pywt temp/pywt
export PYTHONDONTWRITEBYTECODE=1
# Accuracy is platform-dependent
%pytest_arch --ignore=temp -k 'not test_accuracy_precomputed_cwt' %{buildroot}%{$python_sitearch}/pywt/
mv temp/pywt pywt
%files %{python_files}
%doc README.rst
@@ -123,9 +99,4 @@ $python -B -c 'import pywt;pywt.test()'
%{python_sitearch}/pywt/
%{python_sitearch}/PyWavelets-%{version}-py*.egg-info
%files -n %{name}-doc
%license LICENSE
%doc pywavelets.pdf
%doc docs/html
%changelog