pywavelet 0.2.7__tar.gz → 0.2.8__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 (115) hide show
  1. {pywavelet-0.2.7 → pywavelet-0.2.8}/.gitignore +3 -1
  2. {pywavelet-0.2.7 → pywavelet-0.2.8}/CHANGELOG.rst +108 -0
  3. {pywavelet-0.2.7 → pywavelet-0.2.8}/PKG-INFO +3 -1
  4. {pywavelet-0.2.7 → pywavelet-0.2.8}/docs/_config.yml +1 -1
  5. pywavelet-0.2.8/docs/_toc.yml +21 -0
  6. pywavelet-0.2.8/docs/examples/accuracy.ipynb +381 -0
  7. pywavelet-0.2.8/docs/examples/backends.ipynb +208 -0
  8. pywavelet-0.2.7/docs/example.ipynb → pywavelet-0.2.8/docs/examples/basic.ipynb +39 -15
  9. pywavelet-0.2.8/docs/examples/collect_runtimes.sh +6 -0
  10. pywavelet-0.2.8/docs/examples/example_signals.ipynb +559 -0
  11. pywavelet-0.2.8/docs/examples/example_transforms.png +0 -0
  12. pywavelet-0.2.8/docs/examples/inverse_transform_mwe.py +344 -0
  13. pywavelet-0.2.8/docs/examples/roundtrip_time.png +0 -0
  14. pywavelet-0.2.8/docs/examples/runtime.ipynb +411 -0
  15. pywavelet-0.2.8/docs/examples/runtime.png +0 -0
  16. {pywavelet-0.2.7 → pywavelet-0.2.8}/pyproject.toml +7 -1
  17. pywavelet-0.2.8/src/pywavelet/__init__.py +39 -0
  18. {pywavelet-0.2.7 → pywavelet-0.2.8}/src/pywavelet/_version.py +2 -2
  19. pywavelet-0.2.8/src/pywavelet/backend.py +179 -0
  20. {pywavelet-0.2.7 → pywavelet-0.2.8}/src/pywavelet/logger.py +6 -6
  21. {pywavelet-0.2.7 → pywavelet-0.2.8}/src/pywavelet/transforms/__init__.py +1 -3
  22. pywavelet-0.2.8/src/pywavelet/transforms/cupy/forward/from_freq.py +89 -0
  23. {pywavelet-0.2.7 → pywavelet-0.2.8}/src/pywavelet/transforms/cupy/forward/main.py +11 -7
  24. pywavelet-0.2.8/src/pywavelet/transforms/cupy/inverse/to_freq.py +66 -0
  25. pywavelet-0.2.8/src/pywavelet/transforms/jax/forward/from_freq.py +96 -0
  26. {pywavelet-0.2.7 → pywavelet-0.2.8}/src/pywavelet/transforms/jax/forward/main.py +9 -6
  27. {pywavelet-0.2.7 → pywavelet-0.2.8}/src/pywavelet/transforms/jax/inverse/to_freq.py +17 -28
  28. {pywavelet-0.2.7 → pywavelet-0.2.8}/src/pywavelet/transforms/numpy/forward/from_freq.py +14 -6
  29. {pywavelet-0.2.7 → pywavelet-0.2.8}/src/pywavelet/transforms/numpy/forward/main.py +13 -4
  30. {pywavelet-0.2.7 → pywavelet-0.2.8}/src/pywavelet/transforms/phi_computer.py +35 -20
  31. {pywavelet-0.2.7 → pywavelet-0.2.8}/src/pywavelet/types/common.py +1 -1
  32. {pywavelet-0.2.7 → pywavelet-0.2.8}/src/pywavelet/types/plotting.py +1 -1
  33. {pywavelet-0.2.7 → pywavelet-0.2.8}/src/pywavelet/types/timeseries.py +1 -0
  34. {pywavelet-0.2.7 → pywavelet-0.2.8}/src/pywavelet/types/wavelet.py +4 -2
  35. {pywavelet-0.2.7 → pywavelet-0.2.8}/src/pywavelet/types/wavelet_bins.py +3 -9
  36. pywavelet-0.2.8/src/pywavelet/utils/__init__.py +6 -0
  37. pywavelet-0.2.7/src/pywavelet/utils.py → pywavelet-0.2.8/src/pywavelet/utils/analysis.py +1 -1
  38. pywavelet-0.2.8/src/pywavelet/utils/timing_cli/__init__.py +0 -0
  39. pywavelet-0.2.8/src/pywavelet/utils/timing_cli/cli.py +95 -0
  40. pywavelet-0.2.8/src/pywavelet/utils/timing_cli/collect_runtimes.py +192 -0
  41. pywavelet-0.2.8/src/pywavelet/utils/timing_cli/plot.py +76 -0
  42. {pywavelet-0.2.7 → pywavelet-0.2.8}/src/pywavelet.egg-info/PKG-INFO +3 -1
  43. {pywavelet-0.2.7 → pywavelet-0.2.8}/src/pywavelet.egg-info/SOURCES.txt +24 -6
  44. pywavelet-0.2.8/src/pywavelet.egg-info/entry_points.txt +2 -0
  45. {pywavelet-0.2.7 → pywavelet-0.2.8}/src/pywavelet.egg-info/requires.txt +2 -0
  46. {pywavelet-0.2.7 → pywavelet-0.2.8}/tests/conftest.py +11 -7
  47. {pywavelet-0.2.7 → pywavelet-0.2.8}/tests/ollie_example.py +3 -2
  48. pywavelet-0.2.8/tests/test_backend_consistency.py +145 -0
  49. {pywavelet-0.2.7 → pywavelet-0.2.8}/tests/test_backends.py +6 -8
  50. pywavelet-0.2.8/tests/test_docs.py +36 -0
  51. pywavelet-0.2.8/tests/test_forward_transform.py +92 -0
  52. pywavelet-0.2.8/tests/test_inverse_transform.py +159 -0
  53. {pywavelet-0.2.7 → pywavelet-0.2.8}/tests/test_phi.py +10 -2
  54. pywavelet-0.2.8/tests/test_precision.py +79 -0
  55. {pywavelet-0.2.7 → pywavelet-0.2.8}/tests/test_roundtrip_conversion.py +22 -16
  56. pywavelet-0.2.8/tests/test_runtime_cli.py +30 -0
  57. {pywavelet-0.2.7 → pywavelet-0.2.8}/tests/test_snr.py +16 -21
  58. {pywavelet-0.2.7 → pywavelet-0.2.8}/tests/utils/__init__.py +1 -1
  59. pywavelet-0.2.8/tests/utils/conversions.py +34 -0
  60. {pywavelet-0.2.7 → pywavelet-0.2.8}/tests/utils/plotting.py +133 -19
  61. pywavelet-0.2.7/docs/_toc.yml +0 -19
  62. pywavelet-0.2.7/docs/roundtrip_time.png +0 -0
  63. pywavelet-0.2.7/docs/runtime.ipynb +0 -322
  64. pywavelet-0.2.7/src/pywavelet/__init__.py +0 -27
  65. pywavelet-0.2.7/src/pywavelet/backend.py +0 -101
  66. pywavelet-0.2.7/src/pywavelet/transforms/cupy/forward/from_freq.py +0 -92
  67. pywavelet-0.2.7/src/pywavelet/transforms/cupy/inverse/to_freq.py +0 -62
  68. pywavelet-0.2.7/src/pywavelet/transforms/jax/forward/from_freq.py +0 -103
  69. pywavelet-0.2.7/tests/test_docs.py +0 -46
  70. pywavelet-0.2.7/tests/utils/conversions.py +0 -29
  71. {pywavelet-0.2.7 → pywavelet-0.2.8}/.github/workflows/ci.yml +0 -0
  72. {pywavelet-0.2.7 → pywavelet-0.2.8}/.github/workflows/docs.yml +0 -0
  73. {pywavelet-0.2.7 → pywavelet-0.2.8}/.github/workflows/pypi.yml +0 -0
  74. {pywavelet-0.2.7 → pywavelet-0.2.8}/.pre-commit-config.yaml +0 -0
  75. {pywavelet-0.2.7 → pywavelet-0.2.8}/CITATION.cff +0 -0
  76. {pywavelet-0.2.7 → pywavelet-0.2.8}/README.rst +0 -0
  77. {pywavelet-0.2.7 → pywavelet-0.2.8}/docs/_static/demo.gif +0 -0
  78. {pywavelet-0.2.7/docs → pywavelet-0.2.8/docs/_static}/logo.png +0 -0
  79. {pywavelet-0.2.7 → pywavelet-0.2.8}/docs/api.rst +0 -0
  80. {pywavelet-0.2.7/docs → pywavelet-0.2.8/docs/examples}/roundtrip_freq.png +0 -0
  81. {pywavelet-0.2.7 → pywavelet-0.2.8}/docs/index.rst +0 -0
  82. {pywavelet-0.2.7 → pywavelet-0.2.8}/setup.cfg +0 -0
  83. {pywavelet-0.2.7 → pywavelet-0.2.8}/src/pywavelet/transforms/cupy/__init__.py +0 -0
  84. {pywavelet-0.2.7 → pywavelet-0.2.8}/src/pywavelet/transforms/cupy/forward/__init__.py +0 -0
  85. {pywavelet-0.2.7 → pywavelet-0.2.8}/src/pywavelet/transforms/cupy/forward/from_time.py +0 -0
  86. {pywavelet-0.2.7 → pywavelet-0.2.8}/src/pywavelet/transforms/cupy/inverse/__init__.py +0 -0
  87. {pywavelet-0.2.7 → pywavelet-0.2.8}/src/pywavelet/transforms/cupy/inverse/main.py +0 -0
  88. {pywavelet-0.2.7 → pywavelet-0.2.8}/src/pywavelet/transforms/jax/__init__.py +0 -0
  89. {pywavelet-0.2.7 → pywavelet-0.2.8}/src/pywavelet/transforms/jax/forward/__init__.py +0 -0
  90. {pywavelet-0.2.7 → pywavelet-0.2.8}/src/pywavelet/transforms/jax/forward/from_time.py +0 -0
  91. {pywavelet-0.2.7 → pywavelet-0.2.8}/src/pywavelet/transforms/jax/inverse/__init__.py +0 -0
  92. {pywavelet-0.2.7 → pywavelet-0.2.8}/src/pywavelet/transforms/jax/inverse/main.py +0 -0
  93. {pywavelet-0.2.7 → pywavelet-0.2.8}/src/pywavelet/transforms/numpy/__init__.py +0 -0
  94. {pywavelet-0.2.7 → pywavelet-0.2.8}/src/pywavelet/transforms/numpy/forward/__init__.py +0 -0
  95. {pywavelet-0.2.7 → pywavelet-0.2.8}/src/pywavelet/transforms/numpy/forward/from_time.py +0 -0
  96. {pywavelet-0.2.7 → pywavelet-0.2.8}/src/pywavelet/transforms/numpy/inverse/__init__.py +0 -0
  97. {pywavelet-0.2.7 → pywavelet-0.2.8}/src/pywavelet/transforms/numpy/inverse/main.py +0 -0
  98. {pywavelet-0.2.7 → pywavelet-0.2.8}/src/pywavelet/transforms/numpy/inverse/to_freq.py +0 -0
  99. {pywavelet-0.2.7 → pywavelet-0.2.8}/src/pywavelet/transforms/numpy/inverse/to_time.py +0 -0
  100. {pywavelet-0.2.7 → pywavelet-0.2.8}/src/pywavelet/types/__init__.py +0 -0
  101. {pywavelet-0.2.7 → pywavelet-0.2.8}/src/pywavelet/types/frequencyseries.py +0 -0
  102. {pywavelet-0.2.7 → pywavelet-0.2.8}/src/pywavelet.egg-info/dependency_links.txt +0 -0
  103. {pywavelet-0.2.7 → pywavelet-0.2.8}/src/pywavelet.egg-info/top_level.txt +0 -0
  104. {pywavelet-0.2.7 → pywavelet-0.2.8}/tests/test_data/roundtrip_chirp_freq.npz +0 -0
  105. {pywavelet-0.2.7 → pywavelet-0.2.8}/tests/test_data/roundtrip_chirp_time.npz +0 -0
  106. {pywavelet-0.2.7 → pywavelet-0.2.8}/tests/test_data/roundtrip_pure_f0_freq.npz +0 -0
  107. {pywavelet-0.2.7 → pywavelet-0.2.8}/tests/test_data/roundtrip_sine_freq.npz +0 -0
  108. {pywavelet-0.2.7 → pywavelet-0.2.8}/tests/test_data/roundtrip_sine_time.npz +0 -0
  109. {pywavelet-0.2.7 → pywavelet-0.2.8}/tests/test_lnl.py +0 -0
  110. {pywavelet-0.2.7 → pywavelet-0.2.8}/tests/test_mask.py +0 -0
  111. {pywavelet-0.2.7 → pywavelet-0.2.8}/tests/test_psd.py +0 -0
  112. {pywavelet-0.2.7 → pywavelet-0.2.8}/tests/test_timefreq_type.py +0 -0
  113. {pywavelet-0.2.7 → pywavelet-0.2.8}/tests/test_version.py +0 -0
  114. {pywavelet-0.2.7 → pywavelet-0.2.8}/tests/test_wavelet_plot.py +0 -0
  115. {pywavelet-0.2.7 → pywavelet-0.2.8}/tests/utils/generate_data.py +0 -0
@@ -16,7 +16,8 @@ __pycache__/
16
16
  *.so
17
17
  out_*
18
18
  *_version.py
19
-
19
+ *.csv
20
+ *.json
20
21
  *.pdf
21
22
  # Distribution / packaging
22
23
  .Python
@@ -120,3 +121,4 @@ venv.bak/
120
121
  # VSCode
121
122
  .vscode/
122
123
  /docs/runtime_data_cpu.csv
124
+ /docs/examples/data.h5
@@ -5,16 +5,124 @@ CHANGELOG
5
5
  =========
6
6
 
7
7
 
8
+ .. _changelog-v0.2.8:
9
+
10
+ v0.2.8 (2025-04-27)
11
+ ===================
12
+
13
+ Bug Fixes
14
+ ---------
15
+
16
+ * fix: add direct forwaard transform tesst (`b7f4499`_)
17
+
18
+ Unknown
19
+ -------
20
+
21
+ * Fixing roundtrip transforms for jax + cupy (#23)
22
+
23
+ * hacking
24
+
25
+ * add inverse test
26
+
27
+ * [pre-commit.ci] auto fixes from pre-commit.com hooks
28
+
29
+ for more information, see https://pre-commit.ci
30
+
31
+ * fix forward
32
+
33
+ * [pre-commit.ci] auto fixes from pre-commit.com hooks
34
+
35
+ for more information, see https://pre-commit.ci
36
+
37
+ * add cupy roundtrip fix
38
+
39
+ * make plotting more obvious
40
+
41
+ * [pre-commit.ci] auto fixes from pre-commit.com hooks
42
+
43
+ for more information, see https://pre-commit.ci
44
+
45
+ ---------
46
+
47
+ Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> (`248ba73`_)
48
+
49
+ * use relative errr (`eed33ab`_)
50
+
51
+ * add yet another roundtrip test (`6c8d990`_)
52
+
53
+ * add backend consistency simple check (`ba49718`_)
54
+
55
+ * add open-in-colabl (`643eecb`_)
56
+
57
+ * add additional example (`aa3b11b`_)
58
+
59
+ * add collect runtimes (`d9c1f01`_)
60
+
61
+ * add log for pywavelet file (`3767c16`_)
62
+
63
+ * fix backend logger (`6d89404`_)
64
+
65
+ * add more logs (`4af72e7`_)
66
+
67
+ * allow precision argss for freq->WDM (`361694c`_)
68
+
69
+ * allow numpy to use float64/float32 (`a7dbbe2`_)
70
+
71
+ * add in typechecking for phi, add precision-backednd setter (`697e584`_)
72
+
73
+ * simpler runtime collection (`49181d4`_)
74
+
75
+ * add: runtime cli tool to check different backened speeds (`1e1d9f0`_)
76
+
77
+ * add colab button to docs (`4505979`_)
78
+
79
+ * add more examples (`754bc0f`_)
80
+
81
+ * add accuracy check (`46caf25`_)
82
+
83
+ * Merge branch 'main' of github.com:pywavelet/pywavelet (`7d64ccb`_)
84
+
85
+ .. _b7f4499: https://github.com/pywavelet/pywavelet/commit/b7f44992491d5b555ca05a8a870ab82617826b38
86
+ .. _248ba73: https://github.com/pywavelet/pywavelet/commit/248ba73a33662cc6200886dec18f88c5fdef4946
87
+ .. _eed33ab: https://github.com/pywavelet/pywavelet/commit/eed33ab619dc5fdd404c3e6227f3a103dc5cc99e
88
+ .. _6c8d990: https://github.com/pywavelet/pywavelet/commit/6c8d9903ff2caf37fae0b4c6e3febecdcba4cbd1
89
+ .. _ba49718: https://github.com/pywavelet/pywavelet/commit/ba4971882e866953a50246532b2a5fefca096d53
90
+ .. _643eecb: https://github.com/pywavelet/pywavelet/commit/643eecb82c006693a201a3427ba6ef684ed406b4
91
+ .. _aa3b11b: https://github.com/pywavelet/pywavelet/commit/aa3b11b4dacdb0806a088d76b1b8307a218f21c4
92
+ .. _d9c1f01: https://github.com/pywavelet/pywavelet/commit/d9c1f016995075d483151be03dae73fa65b77110
93
+ .. _3767c16: https://github.com/pywavelet/pywavelet/commit/3767c16110dc9d80a154d65aed0b92a188f0062f
94
+ .. _6d89404: https://github.com/pywavelet/pywavelet/commit/6d89404e186123f384d1150928aee0d48f2d7e7f
95
+ .. _4af72e7: https://github.com/pywavelet/pywavelet/commit/4af72e7eb3be0fdfa9c196bdfe6c360769dcb335
96
+ .. _361694c: https://github.com/pywavelet/pywavelet/commit/361694c60e9b0177733383dc57c240f7c21940a1
97
+ .. _a7dbbe2: https://github.com/pywavelet/pywavelet/commit/a7dbbe25f4a14b7148133a3370ac351ff3c2d9f6
98
+ .. _697e584: https://github.com/pywavelet/pywavelet/commit/697e5848e88fd19df9d0582a663860a0572e57c8
99
+ .. _49181d4: https://github.com/pywavelet/pywavelet/commit/49181d444525360a0490a84602c1bcc0bec56988
100
+ .. _1e1d9f0: https://github.com/pywavelet/pywavelet/commit/1e1d9f0a85a23475b7e2b49f84a2ba33fe417e17
101
+ .. _4505979: https://github.com/pywavelet/pywavelet/commit/4505979679601f6213a4f423af26375f16373678
102
+ .. _754bc0f: https://github.com/pywavelet/pywavelet/commit/754bc0fc265ce85002cea828ce02a59574c97fca
103
+ .. _46caf25: https://github.com/pywavelet/pywavelet/commit/46caf25a789eb244641bbb260a7ec5e464203a22
104
+ .. _7d64ccb: https://github.com/pywavelet/pywavelet/commit/7d64ccb092b61210bb93648f5cf43cb20346e474
105
+
106
+
8
107
  .. _changelog-v0.2.7:
9
108
 
10
109
  v0.2.7 (2025-03-25)
11
110
  ===================
12
111
 
112
+ Chores
113
+ ------
114
+
115
+ * chore(release): 0.2.7 (`e827211`_)
116
+
13
117
  Unknown
14
118
  -------
15
119
 
120
+ * add monochromatic WDM check (`1ffbd29`_)
121
+
16
122
  * Merge branch 'main' of github.com:pywavelet/pywavelet (`ef5aa31`_)
17
123
 
124
+ .. _e827211: https://github.com/pywavelet/pywavelet/commit/e8272117bb9352d21b89ac93198ee800315b4a14
125
+ .. _1ffbd29: https://github.com/pywavelet/pywavelet/commit/1ffbd29b44eaca650d9829237cbf4f8a54b49051
18
126
  .. _ef5aa31: https://github.com/pywavelet/pywavelet/commit/ef5aa31e72c8a838cfb008c03bd47b009df728dc
19
127
 
20
128
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pywavelet
3
- Version: 0.2.7
3
+ Version: 0.2.8
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/
@@ -23,6 +23,7 @@ Requires-Dist: rocket-fft
23
23
  Requires-Dist: astropy>=5.2.1
24
24
  Requires-Dist: jaxtyping
25
25
  Requires-Dist: beartype
26
+ Requires-Dist: click
26
27
  Provides-Extra: jax
27
28
  Requires-Dist: jax; extra == "jax"
28
29
  Provides-Extra: cupy
@@ -39,6 +40,7 @@ Requires-Dist: mypy; extra == "dev"
39
40
  Requires-Dist: jupyter-book; extra == "dev"
40
41
  Requires-Dist: GitPython; extra == "dev"
41
42
  Requires-Dist: nbconvert; extra == "dev"
43
+ Requires-Dist: pytest-click; extra == "dev"
42
44
 
43
45
  pywavelet
44
46
  #########
@@ -1,7 +1,7 @@
1
1
  # see https://jupyterbook.org/customize/config.html
2
2
  title: Pywavelet
3
3
  author: pywavelet developers
4
- logo: logo.png
4
+ logo: _static/logo.png
5
5
 
6
6
  execute:
7
7
  execute_notebooks: 'off'
@@ -0,0 +1,21 @@
1
+ # Table of contents
2
+ # Learn more at https://jupyterbook.org/customize/toc.html
3
+
4
+ format: jb-book
5
+ root: index.rst
6
+ parts:
7
+ - caption: " "
8
+ chapters:
9
+ - file: api.rst
10
+ - file: examples/basic.ipynb
11
+ - file: examples/runtime.ipynb
12
+ - file: examples/accuracy.ipynb
13
+ - file: examples/example_signals.ipynb
14
+ #- caption: Case Studies
15
+ # chapters:
16
+ # - url: https://www.youtube.com/watch?v=dQw4w9WgXcQ&themeRefresh=1
17
+ # title: LISA white-dwarf
18
+ # - url: https://www.youtube.com/watch?v=dQw4w9WgXcQ&themeRefresh=1
19
+ # title: LVK compact binary
20
+ # - url: https://www.youtube.com/watch?v=dQw4w9WgXcQ&themeRefresh=1
21
+ # title: Analysis with gaps