Needed by python-scikit-image, which is already in openSUSE:Factory. OBS-URL: https://build.opensuse.org/request/show/503716 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-PyWavelets?expand=0&rev=1
73 lines
2.7 KiB
Diff
73 lines
2.7 KiB
Diff
From 91b0a7bdbdd181bfb765246a9ec949b1cf2d12ad Mon Sep 17 00:00:00 2001
|
|
From: "Gregory R. Lee" <grlee77@gmail.com>
|
|
Date: Sat, 10 Dec 2016 03:23:39 -0500
|
|
Subject: [PATCH] MAINT: add default to switch statement for
|
|
is_discrete_wavelet
|
|
|
|
on the Cython side, raise an error if is_discrete_wavelet returns -1
|
|
---
|
|
pywt/_extensions/_pywt.pyx | 15 ++++++++++++---
|
|
pywt/_extensions/c/wavelets.c | 2 ++
|
|
2 files changed, 14 insertions(+), 3 deletions(-)
|
|
|
|
diff --git a/pywt/_extensions/_pywt.pyx b/pywt/_extensions/_pywt.pyx
|
|
index 5928d9e7..c9b10a1f 100644
|
|
--- a/pywt/_extensions/_pywt.pyx
|
|
+++ b/pywt/_extensions/_pywt.pyx
|
|
@@ -33,6 +33,15 @@ _attr_deprecation_msg = ('{old} has been renamed to {new} and will '
|
|
'of pywt.')
|
|
|
|
|
|
+# raises exception if the wavelet name is undefined
|
|
+cdef int is_discrete_wav(WAVELET_NAME name):
|
|
+ cdef int is_discrete
|
|
+ discrete = wavelet.is_discrete_wavelet(name)
|
|
+ if discrete == -1:
|
|
+ raise ValueError("unrecognized wavelet family name")
|
|
+ return discrete
|
|
+
|
|
+
|
|
class _Modes(object):
|
|
"""
|
|
Because the most common and practical way of representing digital signals
|
|
@@ -206,7 +215,7 @@ def wavelist(family=None, kind='all'):
|
|
return True
|
|
|
|
family_code, family_number = wname_to_code(name)
|
|
- is_discrete = wavelet.is_discrete_wavelet(family_code)
|
|
+ is_discrete = is_discrete_wav(family_code)
|
|
if kind == 'discrete':
|
|
return is_discrete
|
|
else:
|
|
@@ -299,7 +308,7 @@ def DiscreteContinuousWavelet(name=u"", object filter_bank=None):
|
|
if filter_bank is None:
|
|
name = name.lower()
|
|
family_code, family_number = wname_to_code(name)
|
|
- if (wavelet.is_discrete_wavelet(family_code)):
|
|
+ if is_discrete_wav(family_code):
|
|
return Wavelet(name, filter_bank)
|
|
else:
|
|
return ContinuousWavelet(name)
|
|
@@ -334,7 +343,7 @@ cdef public class Wavelet [type WaveletType, object WaveletObject]:
|
|
# builtin wavelet
|
|
self.name = name.lower()
|
|
family_code, family_number = wname_to_code(self.name)
|
|
- if (wavelet.is_discrete_wavelet(family_code)):
|
|
+ if is_discrete_wav(family_code):
|
|
self.w = <wavelet.DiscreteWavelet*> wavelet.discrete_wavelet(family_code, family_number)
|
|
if self.w is NULL:
|
|
raise ValueError("Invalid wavelet name.")
|
|
diff --git a/pywt/_extensions/c/wavelets.c b/pywt/_extensions/c/wavelets.c
|
|
index bc783af4..21b4c672 100644
|
|
--- a/pywt/_extensions/c/wavelets.c
|
|
+++ b/pywt/_extensions/c/wavelets.c
|
|
@@ -42,6 +42,8 @@ int is_discrete_wavelet(WAVELET_NAME name)
|
|
return 0;
|
|
case CMOR:
|
|
return 0;
|
|
+ default:
|
|
+ return -1;
|
|
}
|
|
|
|
}
|