Metadata-Version: 2.4
Name: wdm-transform
Version: 0.4.1
Summary: Object-oriented WDM transforms for sampled one-dimensional signals.
Project-URL: Homepage, https://github.com/pywavelet/wdm_transform
Project-URL: Repository, https://github.com/pywavelet/wdm_transform
Project-URL: Issues, https://github.com/pywavelet/wdm_transform/issues
Keywords: wdm,wavelets,signal-processing,time-series
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Science/Research
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Scientific/Engineering
Classifier: Topic :: Scientific/Engineering :: Mathematics
Requires-Python: >=3.10
Description-Content-Type: text/markdown
Requires-Dist: numpy>=1.26
Requires-Dist: matplotlib>=3.8
Requires-Dist: scipy>=1.13
Provides-Extra: jax
Requires-Dist: jax[cpu]>=0.4.30; extra == "jax"
Provides-Extra: dev
Requires-Dist: black>=24.8; extra == "dev"
Requires-Dist: commitizen>=3.29; extra == "dev"
Requires-Dist: pre-commit>=3.7; extra == "dev"
Requires-Dist: pytest>=8.0; extra == "dev"
Requires-Dist: pytest-cov>=5.0; extra == "dev"
Requires-Dist: pytest-markdown-docs>=0.6; extra == "dev"
Requires-Dist: ruff>=0.6; extra == "dev"
Provides-Extra: docs
Requires-Dist: corner>=2.2; extra == "docs"
Requires-Dist: ipywidgets>=8.1; extra == "docs"
Requires-Dist: jax[cpu]>=0.4.30; extra == "docs"
Requires-Dist: mkdocs>=1.6; extra == "docs"
Requires-Dist: mkdocs-jupyter>=0.25; extra == "docs"
Requires-Dist: mkdocs-material>=9.6; extra == "docs"
Requires-Dist: mkdocstrings>=1.0; extra == "docs"
Requires-Dist: mkdocstrings-python>=2.0; extra == "docs"
Requires-Dist: numpyro>=0.15; extra == "docs"

# wdm-transform

`wdm-transform` is a small object-oriented package for Wilson-Daubechies-Meyer transforms on
sampled one-dimensional signals.

![wdm-transform demo](https://raw.githubusercontent.com/pywavelet/wdm_transform/main/docs/_static/demo.gif)

The public API centers on three objects:

- `TimeSeries`
- `FrequencySeries`
- `WDM`

## Installation

```bash
pip install wdm-transform
```

Optional JAX support:

```bash
pip install "wdm-transform[jax]"
```

If you prefer `uv`:

```bash
uv add wdm-transform
```

Useful repository commands from the project root:

```bash
# make a new venv for the repo
uv venv

# install local dev dependencies
uv sync --extra dev

# include docs dependencies too
uv sync --extra dev --extra docs

# run the walkthrough example
uv run python docs/examples/wdm_walkthrough.py

# run the test suite
uv run pytest

# build the docs
uv run mkdocs build

# serve the docs locally
uv run mkdocs serve

# run the benchmark CLI
uv run wdm_transform_benchmarking --backends numpy jax --runs 3 --outdir /tmp/wdm-bench --pow2 12 22

# refresh the checked-in benchmark snapshot used in the docs
uv run python docs/examples/generate_benchmark_plot.py --backends numpy jax
```

Documentation and source live at:

- <https://github.com/pywavelet/wdm_transform>
- <https://github.com/pywavelet/wdm_transform/tree/main/docs>
