Skip to main content

ezmsg.sigproc

Overview

ezmsg-sigproc offers timeseries signal‑processing primitives built atop the ezmsg message‑passing framework. Core dependencies include ezmsg, numpy, scipy, pywavelets, and sparse; the project itself is managed through hatchling and uses VCS hooks to populate version.py.

Installation

Install the latest release from pypi with: pip install ezmsg-sigproc (or uv add ... or poetry add ...).

You can install pre-release versions directly from GitHub:

  • Using pip: pip install git+https://github.com/ezmsg-org/ezmsg-sigproc.git@dev
  • Using uv: uv add git+https://github.com/ezmsg-org/ezmsg-sigproc --branch dev
  • Using poetry: poetry add "git+https://github.com/ezmsg-org/ezmsg-sigproc.git@dev"

See the Development section below for installing with the intention of developing.

Source layout & key modules

  • All source resides under src/ezmsg/sigproc, which contains a suite of processors (for example, filter.py, spectrogram.py, spectrum.py, sampler.py) and math and util subpackages.
  • The framework’s backbone is base.py, defining standard protocols—Processor, Producer, Consumer, and Transformer—that enable both stateless and stateful processing chains.
  • Filtering is implemented in filter.py, providing settings dataclasses and a stateful transformer that applies supplied coefficients to incoming data.
  • Spectral analysis uses a composite spectrogram transformer chaining windowing, spectrum computation, and axis adjustments.

Operating styles: Standalone processors vs. ezmsg pipelines

While each processor is designed to be assembled into an ezmsg pipeline, the components are also well‑suited for offline, ad‑hoc analysis. You can instantiate processors directly in scripts or notebooks for quick prototyping or to validate results from other code. The companion Unit wrappers, however, are meant for assembling processors into a full ezmsg pipeline.

A fully defined ezmsg pipeline shines in online streaming scenarios where message routing, scheduling, and latency handling are crucial. Nevertheless, you can run the same pipeline offline—say, within a Jupyter notebook—if your analysis benefits from ezmsg’s structured execution model. Deciding between a standalone processor and a full pipeline comes down to the trade‑off between simplicity and the operational overhead of the pipeline:

  • Standalone processors: Low overhead, ideal for one‑off or exploratory offline tasks.
  • Pipeline + Unit wrappers: Additional setup cost but bring concurrency, standardized interfaces, and automatic message flow—useful when your offline experiment mirrors a live system or when you require fine‑grained pipeline behavior.

Documentation & tests

  • docs/ProcessorsBase.md details the processor hierarchy and generic type patterns, providing a solid foundation for custom components.
  • Unit tests (e.g., tests/unit/test_sampler.py) offer concrete examples of usage, showcasing sampler generation, windowing, and message handling.

Where to learn next

  • Study docs/ProcessorsBase.md to master the processor architecture.
  • Explore unit tests for hands‑on examples of composing processors and Units.
  • Review the ezmsg framework in pyproject.toml to understand the surrounding ecosystem.
  • Experiment with the code—try running processors standalone and then integrate them into a small pipeline to observe the trade‑offs firsthand.

This approach equips newcomers to choose the right level of abstraction—raw processor, Unit wrapper, or full pipeline—based on the demands of their analysis or streaming application.

Development

We use uv for development. It is not strictly required, but if you intend to contribute to ezmsg-sigproc then using uv will lead to the smoothest collaboration.

  1. Install uv if not already installed.
  2. Fork ezmsg-sigproc and clone your fork to your local computer.
  3. Open a terminal and cd to the cloned folder.
  4. uv sync to create a .venv and install dependencies.
  5. uv run pre-commit install to install pre-commit hooks to do linting and formatting.
  6. Run the test suite before finalizing your edits: uv run pytest tests
  7. Make a PR against the dev branch of the main repo.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ezmsg_sigproc-2.4.0.tar.gz (205.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ezmsg_sigproc-2.4.0-py3-none-any.whl (108.0 kB view details)

Uploaded Python 3

File details

Details for the file ezmsg_sigproc-2.4.0.tar.gz.

File metadata

  • Download URL: ezmsg_sigproc-2.4.0.tar.gz
  • Upload date:
  • Size: 205.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for ezmsg_sigproc-2.4.0.tar.gz
Algorithm Hash digest
SHA256 ba1c4aac51eed8b081121ce4729a4479883dbae1313e11e6a12075958af7581a
MD5 eaf76698cf2cd48a882412ff3f4391d1
BLAKE2b-256 6fd969f4a34d43962b33f217883b03d2f1a6a13547d5926399bb84508c5a8afd

See more details on using hashes here.

File details

Details for the file ezmsg_sigproc-2.4.0-py3-none-any.whl.

File metadata

  • Download URL: ezmsg_sigproc-2.4.0-py3-none-any.whl
  • Upload date:
  • Size: 108.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for ezmsg_sigproc-2.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 02beb4f73ae536369d49086ffa60aac4fcb5efc410bbc66de0645e8ea6bee595
MD5 baaa93732e44ca3956d433441fab9804
BLAKE2b-256 668d63206861e4c4e8ddea0e2135b30f5d18cf7a9a0384179a7e92c27a316e18

See more details on using hashes here.

Release history Release notifications | RSS feed

3.10.0

2 files

3.9.0

2 files

3.8.1

2 files

3.8.0

2 files

3.7.0

2 files

3.6.0

2 files

3.5.0

2 files

3.4.0

2 files

3.3.0

2 files

3.2.0

2 files

3.1.0

2 files

3.0.0

2 files

2.38.0

2 files

2.37.0

2 files

2.36.0

2 files

2.35.0

2 files

2.34.0

2 files

2.33.1

2 files

2.33.0

2 files

2.32.1

2 files

2.32.0

2 files

2.31.1

2 files

2.31.0

2 files

2.30.0

2 files

2.29.0

2 files

2.28.0

2 files

2.27.0

2 files

2.26.1

2 files

2.26.0

2 files

2.25.2

2 files

2.25.1

2 files

2.25.0

2 files

2.24.2

2 files

2.24.1

2 files

2.24.0

2 files

2.23.1

2 files

2.23.0

2 files

2.22.0

2 files

2.21.0

2 files

2.20.3

2 files

2.20.2

2 files

2.20.1

2 files

2.20.0

2 files

2.19.0

2 files

2.18.0

2 files

2.17.0

2 files

2.16.0

2 files

2.15.0

2 files

2.14.0

2 files

2.13.1

2 files

2.13.0

2 files

2.12.0

2 files

2.11.0

2 files

2.10.0

2 files

2.9.0

2 files

2.8.0

2 files

2.7.0

2 files

2.6.0

2 files

2.5.0

2 files

2.4.1

2 files

This release

2.4.0 This release

2 files

2.3.0

2 files

2.2.0

2 files

2.1.0

2 files

2.0.0

2 files

1.8.2

2 files

1.8.1

2 files

1.7.1

2 files

1.7.0

2 files

1.6.0

2 files

1.5.0

2 files

1.4.2

2 files

1.4.1

2 files

1.3.3

2 files

1.3.2

2 files

1.3.1

2 files

1.2.3

2 files

1.2.2

2 files

1.2.1

2 files

1.2.0

2 files

1.1.1

2 files

1.1.0

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page