Package Layout¶
The current source tree is designed to keep the WDM logic separate from data containers and backend selection.
Source modules¶
src/wdm_transform/datatypes/series.pyDefinesTimeSeriesandFrequencySeries.src/wdm_transform/datatypes/wdm.pyDefinesWDMas the packed coefficient object and thin wrapper API.src/wdm_transform/transforms/__init__.pySelects the backend-specific transform module lazily.src/wdm_transform/transforms/xp_backend.pyHolds the shared NumPy/CuPy forward and inverse kernels.src/wdm_transform/transforms/jax_backend.pyReserves the JAX transform implementation surface.src/wdm_transform/windows.pyHoldsphi,Cnm, and related shared transform helpers.src/wdm_transform/backends/Holds the backend abstraction and the NumPy backend registration.src/wdm_transform/plotting.pyHolds the shared plotting helpers used by the datatype.plot()convenience methods.
Why this layout¶
This keeps a clean line between:
- domain objects
- transform implementation
- backend-specific array and FFT access
- plotting implementation shared across the public object methods
- optional documentation utilities
That separation matters once JAX and CuPy are added, because the public API can stay stable while backend-specific execution details move behind the backend interface.