LabStreamingLayer source and sink for ezmsg
Project description
ezmsg-lsl
Interface to Lab Streaming Layer LSL in ezmsg.
Installation
pip install ezmsg-lsl
Or install the latest development version:
pip install git+https://github.com/ezmsg-org/ezmsg-lsl@dev
Dependencies
ezmsgpylslnumpy
Usage
See the examples folder for more details.
LSL Outlet
LSLOutletUnit publishes incoming AxisArray messages to an LSL stream. Key settings (LSLOutletSettings):
stream_name/stream_type— name and type advertised on the LSL stream.use_message_timestamp(defaultTrue) — push samples with the incoming message timestamps, or withpylsl.local_clock()whenFalse.assume_lsl_clock(defaultFalse) — whenuse_message_timestampisTrue, whether the incoming timestamps are already in the LSL clock (otherwise they are converted from the system clock).sync_blocking(defaultFalse) — whenTrue, the outlet is created with thepylsl.transp_sync_blockingtransport flag, enabling the synchronous (zero-copy) outlet mode for high-bandwidth streams. Requirespylsl >= 1.18.3b1. LeaveFalsefor the standard asynchronous transport.
from ezmsg.lsl.outlet import LSLOutletUnit
outlet = LSLOutletUnit(
stream_name="my_stream",
stream_type="EEG",
sync_blocking=True, # synchronous zero-copy transport
)
Developers
We use uv for development. It is not strictly required, but if you intend to contribute to ezmsg-lsl then using uv will lead to the smoothest collaboration.
- Install
uvif not already installed. - Fork ezmsg-lsl and clone your fork to your local computer.
- Open a terminal and
cdto the cloned folder. uv syncto create a .venv and install dependencies.- (Optional) Install pre-commit hooks:
uv run pre-commit install - After editing code and making commits, Run the test suite before making a PR:
uv run pytest tests- Currently, there are no substantial tests.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file ezmsg_lsl-1.9.0.tar.gz.
File metadata
- Download URL: ezmsg_lsl-1.9.0.tar.gz
- Upload date:
- Size: 24.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.11.25 {"installer":{"name":"uv","version":"0.11.25","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
22f39ecd01829166035ad0a381bcef769f8144b703d98ab3a33fbbb8b09b3674
|
|
| MD5 |
a0bf37de137aabbae4b8b1cf33c58799
|
|
| BLAKE2b-256 |
b4fefd6b6667424b7eb4e2870e135244c9d65bef13c2c76aae93edb48fdac92c
|
File details
Details for the file ezmsg_lsl-1.9.0-py3-none-any.whl.
File metadata
- Download URL: ezmsg_lsl-1.9.0-py3-none-any.whl
- Upload date:
- Size: 13.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.11.25 {"installer":{"name":"uv","version":"0.11.25","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
acff9019e5e04763dcbb54d959a4c319ee6b5ce7bcd432b46dff8fbc2aaafb4a
|
|
| MD5 |
e6c3aca6ce00e8b187398a23549b4372
|
|
| BLAKE2b-256 |
c20a91e16a881657ec7f42127cf0054ec65208369091026742214afd49a229e4
|