summaryrefslogtreecommitdiff
path: root/python-response.spec
diff options
context:
space:
mode:
Diffstat (limited to 'python-response.spec')
-rw-r--r--python-response.spec209
1 files changed, 209 insertions, 0 deletions
diff --git a/python-response.spec b/python-response.spec
new file mode 100644
index 0000000..10fc71b
--- /dev/null
+++ b/python-response.spec
@@ -0,0 +1,209 @@
+%global _empty_manifest_terminate_build 0
+Name: python-response
+Version: 0.5.0
+Release: 1
+Summary: Your handy frequency and impulse response processing object
+License: MIT
+URL: https://github.com/fhchl/Response
+Source0: https://mirrors.nju.edu.cn/pypi/web/packages/16/85/5ef9dc059effac9932cc88465f3b8f5b187f23dc3b9bbe14e09664a0975c/response-0.5.0.tar.gz
+BuildArch: noarch
+
+Requires: python3-numpy
+Requires: python3-scipy
+Requires: python3-matplotlib
+Requires: python3-pytest
+Requires: python3-pycodestyle
+Requires: python3-pydocstyle
+Requires: python3-pdoc3
+Requires: python3-pytest-cov
+
+%description
+_Your handy frequency and impulse response processing object!_
+[![](https://img.shields.io/pypi/l/response.svg?style=flat)](https://pypi.org/project/response/)
+[![](https://img.shields.io/pypi/v/response.svg?style=flat)](https://pypi.org/project/response/)
+[![travis-ci](https://travis-ci.org/fhchl/Response.svg?branch=master)](https://travis-ci.org/fhchl/Response)
+[![codecov](https://codecov.io/gh/fhchl/Response/branch/master/graph/badge.svg)](https://codecov.io/gh/fhchl/Response)
+This module supplies the `Response` class: an abstraction of frequency and
+impulse responses and a set of handy methods for their processing. It implements a
+[fluent interface][1] for chaining the processing commands.
+Find the documentation [here][2] and the source code on [GitHub][3].
+[1]: https://en.wikipedia.org/wiki/Fluent_interface
+[2]: https://fhchl.github.io/Response/
+[3]: https://github.com/fhchl/Response
+```python
+import numpy as np
+from response import Response
+fs = 48000 # sampling rate
+T = 0.5 # length of signal
+# a sine at 100 Hz
+t = np.arange(int(T * fs)) / fs
+x = np.sin(2 * np.pi * 100 * t)
+# Do chain of processing
+r = (
+ Response.from_time(fs, x)
+ # time window at the end and beginning
+ .time_window((0, 0.1), (-0.1, None), window="hann") # equivalent to Tukey window
+ # zeropad to one second length
+ .zeropad_to_length(fs * 1)
+ # circular shift to center
+ .circdelay(T / 2)
+ # resample with polyphase filter, keep gain of filter
+ .resample_poly(500, window=("kaiser", 0.5), normalize="same_amplitude")
+ # cut 0.2s at beginning and end
+ .timecrop(0.2, -0.2)
+ # apply frequency domain window
+ .freq_window((0, 90), (110, 500))
+)
+# plot magnitude, phase and time response
+r.plot(show=True)
+# real impulse response
+r.in_time
+# complex frequency response
+r.in_freq
+# and much more ...
+```
+
+%package -n python3-response
+Summary: Your handy frequency and impulse response processing object
+Provides: python-response
+BuildRequires: python3-devel
+BuildRequires: python3-setuptools
+BuildRequires: python3-pip
+%description -n python3-response
+_Your handy frequency and impulse response processing object!_
+[![](https://img.shields.io/pypi/l/response.svg?style=flat)](https://pypi.org/project/response/)
+[![](https://img.shields.io/pypi/v/response.svg?style=flat)](https://pypi.org/project/response/)
+[![travis-ci](https://travis-ci.org/fhchl/Response.svg?branch=master)](https://travis-ci.org/fhchl/Response)
+[![codecov](https://codecov.io/gh/fhchl/Response/branch/master/graph/badge.svg)](https://codecov.io/gh/fhchl/Response)
+This module supplies the `Response` class: an abstraction of frequency and
+impulse responses and a set of handy methods for their processing. It implements a
+[fluent interface][1] for chaining the processing commands.
+Find the documentation [here][2] and the source code on [GitHub][3].
+[1]: https://en.wikipedia.org/wiki/Fluent_interface
+[2]: https://fhchl.github.io/Response/
+[3]: https://github.com/fhchl/Response
+```python
+import numpy as np
+from response import Response
+fs = 48000 # sampling rate
+T = 0.5 # length of signal
+# a sine at 100 Hz
+t = np.arange(int(T * fs)) / fs
+x = np.sin(2 * np.pi * 100 * t)
+# Do chain of processing
+r = (
+ Response.from_time(fs, x)
+ # time window at the end and beginning
+ .time_window((0, 0.1), (-0.1, None), window="hann") # equivalent to Tukey window
+ # zeropad to one second length
+ .zeropad_to_length(fs * 1)
+ # circular shift to center
+ .circdelay(T / 2)
+ # resample with polyphase filter, keep gain of filter
+ .resample_poly(500, window=("kaiser", 0.5), normalize="same_amplitude")
+ # cut 0.2s at beginning and end
+ .timecrop(0.2, -0.2)
+ # apply frequency domain window
+ .freq_window((0, 90), (110, 500))
+)
+# plot magnitude, phase and time response
+r.plot(show=True)
+# real impulse response
+r.in_time
+# complex frequency response
+r.in_freq
+# and much more ...
+```
+
+%package help
+Summary: Development documents and examples for response
+Provides: python3-response-doc
+%description help
+_Your handy frequency and impulse response processing object!_
+[![](https://img.shields.io/pypi/l/response.svg?style=flat)](https://pypi.org/project/response/)
+[![](https://img.shields.io/pypi/v/response.svg?style=flat)](https://pypi.org/project/response/)
+[![travis-ci](https://travis-ci.org/fhchl/Response.svg?branch=master)](https://travis-ci.org/fhchl/Response)
+[![codecov](https://codecov.io/gh/fhchl/Response/branch/master/graph/badge.svg)](https://codecov.io/gh/fhchl/Response)
+This module supplies the `Response` class: an abstraction of frequency and
+impulse responses and a set of handy methods for their processing. It implements a
+[fluent interface][1] for chaining the processing commands.
+Find the documentation [here][2] and the source code on [GitHub][3].
+[1]: https://en.wikipedia.org/wiki/Fluent_interface
+[2]: https://fhchl.github.io/Response/
+[3]: https://github.com/fhchl/Response
+```python
+import numpy as np
+from response import Response
+fs = 48000 # sampling rate
+T = 0.5 # length of signal
+# a sine at 100 Hz
+t = np.arange(int(T * fs)) / fs
+x = np.sin(2 * np.pi * 100 * t)
+# Do chain of processing
+r = (
+ Response.from_time(fs, x)
+ # time window at the end and beginning
+ .time_window((0, 0.1), (-0.1, None), window="hann") # equivalent to Tukey window
+ # zeropad to one second length
+ .zeropad_to_length(fs * 1)
+ # circular shift to center
+ .circdelay(T / 2)
+ # resample with polyphase filter, keep gain of filter
+ .resample_poly(500, window=("kaiser", 0.5), normalize="same_amplitude")
+ # cut 0.2s at beginning and end
+ .timecrop(0.2, -0.2)
+ # apply frequency domain window
+ .freq_window((0, 90), (110, 500))
+)
+# plot magnitude, phase and time response
+r.plot(show=True)
+# real impulse response
+r.in_time
+# complex frequency response
+r.in_freq
+# and much more ...
+```
+
+%prep
+%autosetup -n response-0.5.0
+
+%build
+%py3_build
+
+%install
+%py3_install
+install -d -m755 %{buildroot}/%{_pkgdocdir}
+if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi
+if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi
+if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi
+if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi
+pushd %{buildroot}
+if [ -d usr/lib ]; then
+ find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/lib64 ]; then
+ find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/bin ]; then
+ find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/sbin ]; then
+ find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+touch doclist.lst
+if [ -d usr/share/man ]; then
+ find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst
+fi
+popd
+mv %{buildroot}/filelist.lst .
+mv %{buildroot}/doclist.lst .
+
+%files -n python3-response -f filelist.lst
+%dir %{python3_sitelib}/*
+
+%files help -f doclist.lst
+%{_docdir}/*
+
+%changelog
+* Tue Apr 11 2023 Python_Bot <Python_Bot@openeuler.org> - 0.5.0-1
+- Package Spec generated