pywavelet 0.2.4__tar.gz → 0.2.6__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (100) hide show
  1. {pywavelet-0.2.4 → pywavelet-0.2.6}/.github/workflows/ci.yml +1 -1
  2. {pywavelet-0.2.4 → pywavelet-0.2.6}/.github/workflows/docs.yml +1 -1
  3. {pywavelet-0.2.4 → pywavelet-0.2.6}/.github/workflows/pypi.yml +1 -1
  4. {pywavelet-0.2.4 → pywavelet-0.2.6}/.pre-commit-config.yaml +5 -8
  5. {pywavelet-0.2.4 → pywavelet-0.2.6}/CHANGELOG.rst +195 -0
  6. {pywavelet-0.2.4 → pywavelet-0.2.6}/PKG-INFO +18 -7
  7. {pywavelet-0.2.4 → pywavelet-0.2.6}/README.rst +10 -4
  8. {pywavelet-0.2.4 → pywavelet-0.2.6}/docs/_toc.yml +1 -0
  9. {pywavelet-0.2.4 → pywavelet-0.2.6}/docs/api.rst +0 -1
  10. {pywavelet-0.2.4 → pywavelet-0.2.6}/docs/example.ipynb +14 -6
  11. pywavelet-0.2.6/docs/runtime.ipynb +201 -0
  12. {pywavelet-0.2.4 → pywavelet-0.2.6}/pyproject.toml +5 -1
  13. pywavelet-0.2.6/src/pywavelet/__init__.py +27 -0
  14. {pywavelet-0.2.4 → pywavelet-0.2.6}/src/pywavelet/_version.py +9 -4
  15. pywavelet-0.2.6/src/pywavelet/backend.py +53 -0
  16. {pywavelet-0.2.4 → pywavelet-0.2.6}/src/pywavelet/transforms/__init__.py +10 -4
  17. pywavelet-0.2.6/src/pywavelet/transforms/cupy/__init__.py +12 -0
  18. pywavelet-0.2.6/src/pywavelet/transforms/cupy/forward/from_freq.py +92 -0
  19. pywavelet-0.2.6/src/pywavelet/transforms/cupy/forward/from_time.py +50 -0
  20. pywavelet-0.2.6/src/pywavelet/transforms/cupy/forward/main.py +106 -0
  21. {pywavelet-0.2.4/src/pywavelet/transforms/jax → pywavelet-0.2.6/src/pywavelet/transforms/cupy}/inverse/main.py +3 -4
  22. pywavelet-0.2.6/src/pywavelet/transforms/cupy/inverse/to_freq.py +62 -0
  23. {pywavelet-0.2.4 → pywavelet-0.2.6}/src/pywavelet/transforms/jax/forward/from_freq.py +6 -0
  24. {pywavelet-0.2.4 → pywavelet-0.2.6}/src/pywavelet/transforms/jax/forward/from_time.py +18 -10
  25. {pywavelet-0.2.4 → pywavelet-0.2.6}/src/pywavelet/transforms/jax/forward/main.py +6 -10
  26. pywavelet-0.2.6/src/pywavelet/transforms/jax/inverse/main.py +66 -0
  27. pywavelet-0.2.6/src/pywavelet/transforms/jax/inverse/to_freq.py +88 -0
  28. {pywavelet-0.2.4 → pywavelet-0.2.6}/src/pywavelet/transforms/numpy/__init__.py +1 -2
  29. pywavelet-0.2.6/src/pywavelet/transforms/numpy/forward/__init__.py +3 -0
  30. pywavelet-0.2.6/src/pywavelet/transforms/numpy/forward/from_freq.py +146 -0
  31. {pywavelet-0.2.4 → pywavelet-0.2.6}/src/pywavelet/transforms/numpy/forward/main.py +1 -2
  32. pywavelet-0.2.6/src/pywavelet/transforms/numpy/inverse/__init__.py +3 -0
  33. {pywavelet-0.2.4 → pywavelet-0.2.6}/src/pywavelet/transforms/numpy/inverse/main.py +4 -6
  34. {pywavelet-0.2.4 → pywavelet-0.2.6}/src/pywavelet/transforms/numpy/inverse/to_freq.py +64 -1
  35. pywavelet-0.2.6/src/pywavelet/transforms/phi_computer.py +130 -0
  36. {pywavelet-0.2.4 → pywavelet-0.2.6}/src/pywavelet/types/common.py +4 -3
  37. {pywavelet-0.2.4 → pywavelet-0.2.6}/src/pywavelet/types/frequencyseries.py +1 -1
  38. {pywavelet-0.2.4 → pywavelet-0.2.6}/src/pywavelet/types/plotting.py +14 -5
  39. {pywavelet-0.2.4 → pywavelet-0.2.6}/src/pywavelet/types/timeseries.py +4 -10
  40. {pywavelet-0.2.4 → pywavelet-0.2.6}/src/pywavelet/types/wavelet.py +6 -6
  41. {pywavelet-0.2.4 → pywavelet-0.2.6}/src/pywavelet/types/wavelet_bins.py +0 -1
  42. {pywavelet-0.2.4 → pywavelet-0.2.6}/src/pywavelet/utils.py +2 -0
  43. {pywavelet-0.2.4 → pywavelet-0.2.6}/src/pywavelet.egg-info/PKG-INFO +18 -7
  44. {pywavelet-0.2.4 → pywavelet-0.2.6}/src/pywavelet.egg-info/SOURCES.txt +14 -1
  45. {pywavelet-0.2.4 → pywavelet-0.2.6}/src/pywavelet.egg-info/requires.txt +6 -0
  46. {pywavelet-0.2.4 → pywavelet-0.2.6}/tests/conftest.py +26 -12
  47. pywavelet-0.2.6/tests/ollie_example.py +32 -0
  48. pywavelet-0.2.6/tests/test_backends.py +136 -0
  49. pywavelet-0.2.6/tests/test_data/roundtrip_chirp_freq.npz +0 -0
  50. pywavelet-0.2.6/tests/test_data/roundtrip_sine_freq.npz +0 -0
  51. pywavelet-0.2.6/tests/test_data/roundtrip_sine_time.npz +0 -0
  52. pywavelet-0.2.6/tests/test_docs.py +46 -0
  53. {pywavelet-0.2.4 → pywavelet-0.2.6}/tests/test_phi.py +23 -19
  54. pywavelet-0.2.6/tests/test_roundtrip_conversion.py +167 -0
  55. pywavelet-0.2.6/tests/utils/__init__.py +4 -0
  56. pywavelet-0.2.6/tests/utils/conversions.py +23 -0
  57. pywavelet-0.2.6/tests/utils/cupy_check.py +14 -0
  58. pywavelet-0.2.6/tests/utils/generate_data.py +32 -0
  59. {pywavelet-0.2.4 → pywavelet-0.2.6}/tests/utils/plotting.py +87 -28
  60. pywavelet-0.2.4/src/pywavelet/__init__.py +0 -5
  61. pywavelet-0.2.4/src/pywavelet/backend.py +0 -31
  62. pywavelet-0.2.4/src/pywavelet/transforms/jax/inverse/to_freq.py +0 -70
  63. pywavelet-0.2.4/src/pywavelet/transforms/numpy/forward/from_freq.py +0 -88
  64. pywavelet-0.2.4/src/pywavelet/transforms/phi_computer.py +0 -149
  65. pywavelet-0.2.4/tests/test_data/roundtrip_chirp_freq.npz +0 -0
  66. pywavelet-0.2.4/tests/test_data/roundtrip_sine_freq.npz +0 -0
  67. pywavelet-0.2.4/tests/test_data/roundtrip_sine_time.npz +0 -0
  68. pywavelet-0.2.4/tests/test_jax.py +0 -105
  69. pywavelet-0.2.4/tests/test_roundtrip_conversion.py +0 -124
  70. pywavelet-0.2.4/tests/utils/__init__.py +0 -2
  71. pywavelet-0.2.4/tests/utils/generate_data.py +0 -59
  72. {pywavelet-0.2.4 → pywavelet-0.2.6}/.gitignore +0 -0
  73. {pywavelet-0.2.4 → pywavelet-0.2.6}/CITATION.cff +0 -0
  74. {pywavelet-0.2.4 → pywavelet-0.2.6}/docs/_config.yml +0 -0
  75. {pywavelet-0.2.4 → pywavelet-0.2.6}/docs/_static/demo.gif +0 -0
  76. {pywavelet-0.2.4 → pywavelet-0.2.6}/docs/index.rst +0 -0
  77. {pywavelet-0.2.4 → pywavelet-0.2.6}/docs/logo.png +0 -0
  78. {pywavelet-0.2.4 → pywavelet-0.2.6}/docs/roundtrip_freq.png +0 -0
  79. {pywavelet-0.2.4 → pywavelet-0.2.6}/docs/roundtrip_time.png +0 -0
  80. {pywavelet-0.2.4 → pywavelet-0.2.6}/setup.cfg +0 -0
  81. {pywavelet-0.2.4 → pywavelet-0.2.6}/src/pywavelet/logger.py +0 -0
  82. {pywavelet-0.2.4/src/pywavelet/transforms/jax → pywavelet-0.2.6/src/pywavelet/transforms/cupy}/forward/__init__.py +0 -0
  83. {pywavelet-0.2.4/src/pywavelet/transforms/jax → pywavelet-0.2.6/src/pywavelet/transforms/cupy}/inverse/__init__.py +0 -0
  84. {pywavelet-0.2.4 → pywavelet-0.2.6}/src/pywavelet/transforms/jax/__init__.py +0 -0
  85. {pywavelet-0.2.4/src/pywavelet/transforms/numpy → pywavelet-0.2.6/src/pywavelet/transforms/jax}/forward/__init__.py +0 -0
  86. {pywavelet-0.2.4/src/pywavelet/transforms/numpy → pywavelet-0.2.6/src/pywavelet/transforms/jax}/inverse/__init__.py +0 -0
  87. {pywavelet-0.2.4 → pywavelet-0.2.6}/src/pywavelet/transforms/numpy/forward/from_time.py +0 -0
  88. {pywavelet-0.2.4 → pywavelet-0.2.6}/src/pywavelet/transforms/numpy/inverse/to_time.py +0 -0
  89. {pywavelet-0.2.4 → pywavelet-0.2.6}/src/pywavelet/types/__init__.py +0 -0
  90. {pywavelet-0.2.4 → pywavelet-0.2.6}/src/pywavelet.egg-info/dependency_links.txt +0 -0
  91. {pywavelet-0.2.4 → pywavelet-0.2.6}/src/pywavelet.egg-info/top_level.txt +0 -0
  92. {pywavelet-0.2.4 → pywavelet-0.2.6}/tests/test_data/roundtrip_chirp_time.npz +0 -0
  93. {pywavelet-0.2.4 → pywavelet-0.2.6}/tests/test_data/roundtrip_pure_f0_freq.npz +0 -0
  94. {pywavelet-0.2.4 → pywavelet-0.2.6}/tests/test_lnl.py +0 -0
  95. {pywavelet-0.2.4 → pywavelet-0.2.6}/tests/test_mask.py +0 -0
  96. {pywavelet-0.2.4 → pywavelet-0.2.6}/tests/test_psd.py +0 -0
  97. {pywavelet-0.2.4 → pywavelet-0.2.6}/tests/test_snr.py +0 -0
  98. {pywavelet-0.2.4 → pywavelet-0.2.6}/tests/test_timefreq_type.py +0 -0
  99. {pywavelet-0.2.4 → pywavelet-0.2.6}/tests/test_version.py +0 -0
  100. {pywavelet-0.2.4 → pywavelet-0.2.6}/tests/test_wavelet_plot.py +0 -0
@@ -20,7 +20,7 @@ jobs:
20
20
 
21
21
  - uses: actions/setup-python@v5
22
22
  with:
23
- python-version: '3.8'
23
+ python-version: '3.10'
24
24
  cache: 'pip' # Enable caching for pip dependencies
25
25
 
26
26
 
@@ -21,7 +21,7 @@ jobs:
21
21
 
22
22
  - uses: actions/setup-python@v5
23
23
  with:
24
- python-version: '3.8'
24
+ python-version: '3.10'
25
25
  cache: 'pip' # Enable caching for pip dependencies
26
26
 
27
27
  - run: python -m pip install -e .[dev]
@@ -27,7 +27,7 @@ jobs:
27
27
 
28
28
  - uses: actions/setup-python@v5
29
29
  with:
30
- python-version: '3.8'
30
+ python-version: '3.10'
31
31
  cache: 'pip' # Enable caching for pip dependencies
32
32
 
33
33
 
@@ -1,22 +1,19 @@
1
1
  repos:
2
2
  - repo: https://github.com/pre-commit/pre-commit-hooks
3
- rev: v4.5.0
3
+ rev: v5.0.0
4
4
  hooks:
5
5
  - id: trailing-whitespace
6
6
  - id: end-of-file-fixer
7
7
  - id: check-merge-conflict
8
8
  - id: check-yaml
9
9
  args: [ --unsafe ]
10
- - repo: https://github.com/pre-commit/mirrors-isort
11
- rev: v5.10.1
10
+ - repo: https://github.com/PyCQA/isort
11
+ rev: 6.0.1
12
12
  hooks:
13
13
  - id: isort
14
14
  args: ["--profile", "black"]
15
- - repo: https://github.com/ambv/black
16
- rev: 23.10.0
17
- hooks:
18
- - id: black
19
15
  - repo: https://github.com/psf/black
20
- rev: "23.10.0"
16
+ rev: 25.1.0
21
17
  hooks:
18
+ - id: black
22
19
  - id: black-jupyter
@@ -5,16 +5,211 @@ CHANGELOG
5
5
  =========
6
6
 
7
7
 
8
+ .. _changelog-v0.2.6:
9
+
10
+ v0.2.6 (2025-03-24)
11
+ ===================
12
+
13
+ Bug Fixes
14
+ ---------
15
+
16
+ * fix: add note in readme about JAX and cupy (`d3cd8d9`_)
17
+
18
+ Unknown
19
+ -------
20
+
21
+ * add runtimes (`6cdfb28`_)
22
+
23
+ * add runtime plot (`14b250b`_)
24
+
25
+ * add runtime doc (`3d8b4cd`_)
26
+
27
+ * add runtime doc (`7230f92`_)
28
+
29
+ * add more tests and runtime doc (`b8dce3f`_)
30
+
31
+ * add roundtrip comparisons (`81d6fc7`_)
32
+
33
+ * remove dt (`d78b4b3`_)
34
+
35
+ * remove mult (`b5ab983`_)
36
+
37
+ * add corrected sinewave for roundtrip test, remove incorrect f0 test (`e2f8317`_)
38
+
39
+ * add WDM amplitude tests (`b99fc0d`_)
40
+
41
+ * add various transforms (`7d97420`_)
42
+
43
+ * fix cupy inverse (`b1f7dfa`_)
44
+
45
+ * add plotting (`b0ad4fa`_)
46
+
47
+ * add more tests (`aaeae9b`_)
48
+
49
+ * add more tests (`6627e03`_)
50
+
51
+ * add backend test (`ccb1193`_)
52
+
53
+ * add more logging (`f2d6541`_)
54
+
55
+ * add more logs (`0828947`_)
56
+
57
+ * add more tests (`8c80929`_)
58
+
59
+ * add more tests (`d1cb636`_)
60
+
61
+ * Merge branch 'main' of github.com:pywavelet/pywavelet (`ab6ba0e`_)
62
+
63
+ * Update __init__.py (`b607ae9`_)
64
+
65
+ * add more logs (`60e9525`_)
66
+
67
+ * add notes (`83e4ff6`_)
68
+
69
+ * increase the py version (`0d6568b`_)
70
+
71
+ * setup testing framework for cupy (`5009d79`_)
72
+
73
+ * add typing for phi (`16ef510`_)
74
+
75
+ * Check which backend (`f17fe1b`_)
76
+
77
+ * Check which backend (`196141c`_)
78
+
79
+ * add typing libs (beartype + Jaxtyping) (`3bffe6a`_)
80
+
81
+ * Add support for more backends (`dadf161`_)
82
+
83
+ * Adding cupy methods (`9fe44ab`_)
84
+
85
+ * Remove unnecessary beta(d,d,1) (`19b6d8e`_)
86
+
87
+ * Remove unused imports (`a2b42c8`_)
88
+
89
+ * run formatters (`380fba8`_)
90
+
91
+ * begin adding cupy (`93e0123`_)
92
+
93
+ * add more tests (`a91f509`_)
94
+
95
+ * Merge branch 'main' of github.com:avivajpeyi/pywavelet into main (`a149dc4`_)
96
+
97
+ * [pre-commit.ci] pre-commit autoupdate (#21)
98
+
99
+ * [pre-commit.ci] pre-commit autoupdate
100
+
101
+ updates:
102
+ - [github.com/pre-commit/pre-commit-hooks: v4.5.0 → v5.0.0](https://github.com/pre-commit/pre-commit-hooks/compare/v4.5.0...v5.0.0)
103
+ - https://github.com/pre-commit/mirrors-isort → https://github.com/PyCQA/isort
104
+ - [github.com/PyCQA/isort: v5.10.1 → 6.0.1](https://github.com/PyCQA/isort/compare/v5.10.1...6.0.1)
105
+ - https://github.com/ambv/black → https://github.com/psf/black
106
+ - [github.com/psf/black: 23.10.0 → 25.1.0](https://github.com/psf/black/compare/23.10.0...25.1.0)
107
+ - [github.com/psf/black: 23.10.0 → 25.1.0](https://github.com/psf/black/compare/23.10.0...25.1.0)
108
+
109
+ * [pre-commit.ci] auto fixes from pre-commit.com hooks
110
+
111
+ for more information, see https://pre-commit.ci
112
+
113
+ ---------
114
+
115
+ Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> (`6623f65`_)
116
+
117
+ * add check for vmin > vmax (`2d6eec3`_)
118
+
119
+ * more plotting for phi (`b124dc7`_)
120
+
121
+ * add additional JAX tests (`c0d8396`_)
122
+
123
+ .. _d3cd8d9: https://github.com/pywavelet/pywavelet/commit/d3cd8d92b5e6cf398ff3a4948b911533abe842f1
124
+ .. _6cdfb28: https://github.com/pywavelet/pywavelet/commit/6cdfb28b152a7f7ad499f0b6ba6ef69da9284c57
125
+ .. _14b250b: https://github.com/pywavelet/pywavelet/commit/14b250b55dbea88c3b7c22b5faca531113d34477
126
+ .. _3d8b4cd: https://github.com/pywavelet/pywavelet/commit/3d8b4cdc8dea6af33b08985cb97f0897984838fc
127
+ .. _7230f92: https://github.com/pywavelet/pywavelet/commit/7230f92dee98cea0e402111ad279f78c6134d565
128
+ .. _b8dce3f: https://github.com/pywavelet/pywavelet/commit/b8dce3fdf2f0b1261b6a74aa8af03465c87017ff
129
+ .. _81d6fc7: https://github.com/pywavelet/pywavelet/commit/81d6fc73ec9c37d7e5990f7008f1a468490b17ea
130
+ .. _d78b4b3: https://github.com/pywavelet/pywavelet/commit/d78b4b32b81b1b2e8bc6c4808c088df140f316dd
131
+ .. _b5ab983: https://github.com/pywavelet/pywavelet/commit/b5ab983f88a4dc5f6b7e75aa9c974f1c0c601d03
132
+ .. _e2f8317: https://github.com/pywavelet/pywavelet/commit/e2f8317f980927f34fc447e3b093ca43e2f8f3c2
133
+ .. _b99fc0d: https://github.com/pywavelet/pywavelet/commit/b99fc0d3a29b8c741c92e6a1cae9eabc409d1fbc
134
+ .. _7d97420: https://github.com/pywavelet/pywavelet/commit/7d97420b945dd8abb4dd9e201246719d39c4bc4c
135
+ .. _b1f7dfa: https://github.com/pywavelet/pywavelet/commit/b1f7dfa17df3215260150e41c0cf84e76a354d1b
136
+ .. _b0ad4fa: https://github.com/pywavelet/pywavelet/commit/b0ad4fad4537bf3375bb100f6b5be3042291e31e
137
+ .. _aaeae9b: https://github.com/pywavelet/pywavelet/commit/aaeae9b232e4328bfa2a566c7438f41f2dca0e31
138
+ .. _6627e03: https://github.com/pywavelet/pywavelet/commit/6627e0353d539b358e8bc6e786d3442a2b2b8072
139
+ .. _ccb1193: https://github.com/pywavelet/pywavelet/commit/ccb1193e968c9617ed866318326421fb2ae80645
140
+ .. _f2d6541: https://github.com/pywavelet/pywavelet/commit/f2d6541caa41f171a19abd5cfdb3e132fc831b8b
141
+ .. _0828947: https://github.com/pywavelet/pywavelet/commit/082894710eaa2f4a485a86524917068e3098b0c4
142
+ .. _8c80929: https://github.com/pywavelet/pywavelet/commit/8c80929e35211d482d15845fd9ef0cca62704b4b
143
+ .. _d1cb636: https://github.com/pywavelet/pywavelet/commit/d1cb636fb92fbec238de89129729a70f7fa33bb6
144
+ .. _ab6ba0e: https://github.com/pywavelet/pywavelet/commit/ab6ba0ed98a6597c9c8aef524a2f03b1b6fbd13e
145
+ .. _b607ae9: https://github.com/pywavelet/pywavelet/commit/b607ae971f1b04870f41bbaee95a2a30eef628d4
146
+ .. _60e9525: https://github.com/pywavelet/pywavelet/commit/60e952536a2812f474a2845f81dee52884b1685b
147
+ .. _83e4ff6: https://github.com/pywavelet/pywavelet/commit/83e4ff6e5ac5ee1fd51970a73c0401106cff453a
148
+ .. _0d6568b: https://github.com/pywavelet/pywavelet/commit/0d6568bc305d85ac7f5733365e50e51538d45329
149
+ .. _5009d79: https://github.com/pywavelet/pywavelet/commit/5009d7957d9d796a9e2258659e2815a35354a7a5
150
+ .. _16ef510: https://github.com/pywavelet/pywavelet/commit/16ef51086b1ba10db0d4f252caf3a560fee4f06b
151
+ .. _f17fe1b: https://github.com/pywavelet/pywavelet/commit/f17fe1b0cddb4376bdb18a092d6f83bc48dd9498
152
+ .. _196141c: https://github.com/pywavelet/pywavelet/commit/196141ce52946228a92aa1f4b0c14fdc66cb44a1
153
+ .. _3bffe6a: https://github.com/pywavelet/pywavelet/commit/3bffe6a7af4000b1bcece2e2fb1c56487980dd15
154
+ .. _dadf161: https://github.com/pywavelet/pywavelet/commit/dadf161bed6c049c8c24716f475f94b9d6e9fabf
155
+ .. _9fe44ab: https://github.com/pywavelet/pywavelet/commit/9fe44ab0d0862110137e02d746e1af1591373c66
156
+ .. _19b6d8e: https://github.com/pywavelet/pywavelet/commit/19b6d8e169c87f780afe809863762574a9a6334b
157
+ .. _a2b42c8: https://github.com/pywavelet/pywavelet/commit/a2b42c885dd248a2787b6ce7ae549f3d15044af3
158
+ .. _380fba8: https://github.com/pywavelet/pywavelet/commit/380fba8f074d7fbe9bc4ed51461688c45dfc7b0a
159
+ .. _93e0123: https://github.com/pywavelet/pywavelet/commit/93e0123dce8f4bf44249489a55a84865ef989592
160
+ .. _a91f509: https://github.com/pywavelet/pywavelet/commit/a91f509c1c7e18d75c6ceeff22242b1e463f4191
161
+ .. _a149dc4: https://github.com/pywavelet/pywavelet/commit/a149dc4178581f26745b0725346ad469f4aed8d6
162
+ .. _6623f65: https://github.com/pywavelet/pywavelet/commit/6623f65aa13a020120d52363c2bb7b6dd425845f
163
+ .. _2d6eec3: https://github.com/pywavelet/pywavelet/commit/2d6eec342676c1dadb5ce7318edf781572dde5c4
164
+ .. _b124dc7: https://github.com/pywavelet/pywavelet/commit/b124dc75c13540a946b665e0bbb70de43ffe16fd
165
+ .. _c0d8396: https://github.com/pywavelet/pywavelet/commit/c0d8396587737ac9d9559e79c175a043273b8ce6
166
+
167
+
168
+ .. _changelog-v0.2.5:
169
+
170
+ v0.2.5 (2025-01-28)
171
+ ===================
172
+
173
+ Bug Fixes
174
+ ---------
175
+
176
+ * fix: filter first then window (#20)
177
+
178
+ * fix: filter first then window
179
+
180
+ * [pre-commit.ci] auto fixes from pre-commit.com hooks
181
+
182
+ for more information, see https://pre-commit.ci
183
+
184
+ ---------
185
+
186
+ Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> (`3228f7b`_)
187
+
188
+ Chores
189
+ ------
190
+
191
+ * chore(release): 0.2.5 (`34b18c7`_)
192
+
193
+ .. _3228f7b: https://github.com/pywavelet/pywavelet/commit/3228f7be0d7efb48812920e822a14e795ebac57f
194
+ .. _34b18c7: https://github.com/pywavelet/pywavelet/commit/34b18c7d4074992d6c1ce75806efb3edab5ce49b
195
+
196
+
8
197
  .. _changelog-v0.2.4:
9
198
 
10
199
  v0.2.4 (2025-01-24)
11
200
  ===================
12
201
 
202
+ Chores
203
+ ------
204
+
205
+ * chore(release): 0.2.4 (`8ea5b2f`_)
206
+
13
207
  Unknown
14
208
  -------
15
209
 
16
210
  * Merge branch 'main' of github.com:avivajpeyi/pywavelet into main (`d2c84d9`_)
17
211
 
212
+ .. _8ea5b2f: https://github.com/pywavelet/pywavelet/commit/8ea5b2fc0ffa5a1cb274273ec48e164f8bd2064a
18
213
  .. _d2c84d9: https://github.com/pywavelet/pywavelet/commit/d2c84d980b1701baf99e40ba6191cbd9336cfa59
19
214
 
20
215
 
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.4
2
2
  Name: pywavelet
3
- Version: 0.2.4
3
+ Version: 0.2.6
4
4
  Summary: WDM wavelet transform your time/freq series!
5
5
  Author-email: Pywavelet Team <avi.vajpeyi@gmail.com>
6
6
  Project-URL: Homepage, https://pywavelet.github.io/pywavelet/
@@ -11,7 +11,7 @@ Classifier: Intended Audience :: Science/Research
11
11
  Classifier: License :: OSI Approved :: MIT License
12
12
  Classifier: Operating System :: OS Independent
13
13
  Classifier: Programming Language :: Python :: 3.8
14
- Requires-Python: >=3.8
14
+ Requires-Python: >=3.10
15
15
  Description-Content-Type: text/x-rst
16
16
  Requires-Dist: numpy
17
17
  Requires-Dist: numba
@@ -21,8 +21,12 @@ Requires-Dist: tqdm
21
21
  Requires-Dist: rich
22
22
  Requires-Dist: rocket-fft
23
23
  Requires-Dist: astropy>=5.2.1
24
+ Requires-Dist: jaxtyping
25
+ Requires-Dist: beartype
24
26
  Provides-Extra: jax
25
27
  Requires-Dist: jax; extra == "jax"
28
+ Provides-Extra: cupy
29
+ Requires-Dist: cupy; extra == "cupy"
26
30
  Provides-Extra: dev
27
31
  Requires-Dist: pytest>=6.0; extra == "dev"
28
32
  Requires-Dist: pytest-cov>=4.1.0; extra == "dev"
@@ -34,6 +38,7 @@ Requires-Dist: isort; extra == "dev"
34
38
  Requires-Dist: mypy; extra == "dev"
35
39
  Requires-Dist: jupyter-book; extra == "dev"
36
40
  Requires-Dist: GitPython; extra == "dev"
41
+ Requires-Dist: nbconvert; extra == "dev"
37
42
 
38
43
  pywavelet
39
44
  #########
@@ -59,27 +64,33 @@ pywavelet is available on PyPI and can be installed with `pip <https://pip.pypa.
59
64
 
60
65
  $ pip install pywavelet
61
66
 
67
+
68
+ Note: We have transforms availible in numpy, JAX and Cupy.
69
+
70
+
62
71
  For developers
63
72
  --------------
64
73
 
65
- First set up a conda environment with the latest version of python.
74
+ First set up a conda environment with python 3.10
66
75
 
67
76
  .. code-block::
68
77
 
69
- $ conda create -n pywavelet -c conda-forge python=3.12
78
+ $ mamba create -n pywavelet python=3.10
70
79
 
71
80
  .. code-block::
72
81
 
82
+ $ CONDA_OVERRIDE_CUDA=12.4 mamba install "jaxlib=*=*cuda*" jax -c conda-forge
83
+ $ CONDA_OVERRIDE_CUDA=12.4 conda install -c conda-forge cupy-core
73
84
  $ pip install -e ".[dev]"
74
85
  $ pre-commit install
75
86
 
76
87
  Test code
77
88
  ---------
78
89
 
79
- Locate directory /tests from root directory. run
90
+ Locate directory /tests from root directory. run
80
91
 
81
92
  .. code-block::
82
93
 
83
94
  $ pytest .
84
95
 
85
- Hopefully everything should run fine.
96
+ Hopefully everything should run fine.
@@ -22,27 +22,33 @@ pywavelet is available on PyPI and can be installed with `pip <https://pip.pypa.
22
22
 
23
23
  $ pip install pywavelet
24
24
 
25
+
26
+ Note: We have transforms availible in numpy, JAX and Cupy.
27
+
28
+
25
29
  For developers
26
30
  --------------
27
31
 
28
- First set up a conda environment with the latest version of python.
32
+ First set up a conda environment with python 3.10
29
33
 
30
34
  .. code-block::
31
35
 
32
- $ conda create -n pywavelet -c conda-forge python=3.12
36
+ $ mamba create -n pywavelet python=3.10
33
37
 
34
38
  .. code-block::
35
39
 
40
+ $ CONDA_OVERRIDE_CUDA=12.4 mamba install "jaxlib=*=*cuda*" jax -c conda-forge
41
+ $ CONDA_OVERRIDE_CUDA=12.4 conda install -c conda-forge cupy-core
36
42
  $ pip install -e ".[dev]"
37
43
  $ pre-commit install
38
44
 
39
45
  Test code
40
46
  ---------
41
47
 
42
- Locate directory /tests from root directory. run
48
+ Locate directory /tests from root directory. run
43
49
 
44
50
  .. code-block::
45
51
 
46
52
  $ pytest .
47
53
 
48
- Hopefully everything should run fine.
54
+ Hopefully everything should run fine.
@@ -8,6 +8,7 @@ parts:
8
8
  chapters:
9
9
  - file: api.rst
10
10
  - file: example.ipynb
11
+ - file: runtime.ipynb
11
12
  - caption: Case Studies
12
13
  chapters:
13
14
  - url: https://www.youtube.com/watch?v=dQw4w9WgXcQ&themeRefresh=1
@@ -32,4 +32,3 @@ Types
32
32
  .. autoclass:: pywavelet.transforms.types.Wavelet
33
33
  :members:
34
34
  :undoc-members:
35
-
@@ -4,7 +4,14 @@
4
4
  "cell_type": "markdown",
5
5
  "metadata": {},
6
6
  "source": [
7
- "# Examples \n",
7
+ "<a target=\"_blank\" href=\"https://colab.research.google.com/github/pywavelet/pywavelet/blob/main/docs/example.ipynb\">\n",
8
+ " <img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/>\n",
9
+ "</a>\n",
10
+ "\n",
11
+ "# Example\n",
12
+ "\n",
13
+ "\n",
14
+ "\n",
8
15
  "## Time to Wavelet\n",
9
16
  "\n",
10
17
  "\n",
@@ -70,6 +77,7 @@
70
77
  " ax.ticklabel_format(axis=\"x\", style=\"sci\", scilimits=(0, 0))\n",
71
78
  " return ax\n",
72
79
  "\n",
80
+ "\n",
73
81
  "# Sizes\n",
74
82
  "dt = 1 / 512\n",
75
83
  "Nt, Nf = 2**6, 2**6\n",
@@ -88,7 +96,7 @@
88
96
  "# transform back to time domain\n",
89
97
  "h_reconstructed = from_wavelet_to_time(h_wavelet, dt=h_time.dt, mult=mult)\n",
90
98
  "\n",
91
- "# Plots \n",
99
+ "# Plots\n",
92
100
  "fig, axes = plt.subplots(1, 4, figsize=(18, 4))\n",
93
101
  "_ = h_time.plot_spectrogram(ax=axes[0])\n",
94
102
  "_ = h_wavelet.plot(ax=axes[1], absolute=True, cmap=\"Reds\")\n",
@@ -146,7 +154,7 @@
146
154
  "freq = np.fft.rfftfreq(N, dt)\n",
147
155
  "hf = np.zeros_like(freq, dtype=np.complex128)\n",
148
156
  "hf[np.argmin(np.abs(freq - f0))] = 1.0\n",
149
- " \n",
157
+ "\n",
150
158
  "\n",
151
159
  "h_freq = FrequencySeries(data=hf, freq=freq)\n",
152
160
  "h_wavelet = from_freq_to_wavelet(h_freq, Nf=Nf, Nt=Nt)\n",
@@ -154,10 +162,10 @@
154
162
  "\n",
155
163
  "\n",
156
164
  "fig, axes = plt.subplots(1, 2, figsize=(9, 4))\n",
157
- "_ = h_freq.plot(ax=axes[0], label='Original')\n",
165
+ "_ = h_freq.plot(ax=axes[0], label=\"Original\")\n",
158
166
  "_ = h_wavelet.plot(ax=axes[1], absolute=True, cmap=\"Reds\")\n",
159
- "_ = h_reconstructed.plot(ax=axes[0], ls=\":\", label='Reconstructed')\n",
160
- "axes[1].set_ylim(f0-5, f0+5)\n",
167
+ "_ = h_reconstructed.plot(ax=axes[0], ls=\":\", label=\"Reconstructed\")\n",
168
+ "axes[1].set_ylim(f0 - 5, f0 + 5)\n",
161
169
  "axes[0].legend()\n",
162
170
  "fig.savefig(\"roundtrip_freq.png\")\n",
163
171
  "plt.close()"