msw-plugin-api
Minimal structural interfaces for MurineShiftWork plugin packages.
Zero dependencies (stdlib typing and dataclasses only). Provides:
HostSessionInfo— concrete dataclass plugins return after attachingHostSessionInfoProtocol—runtime_checkableProtocol for structural typingHostSessionProtocol—runtime_checkableProtocol for host session plugins
Usage
from msw_plugin_api import HostSessionInfo, HostSessionProtocol
class MyHostSession:
def attach(self, **kwargs) -> HostSessionInfo:
return HostSessionInfo(
backend="myplugin",
acquisition_name="subject__20260609_143022__ext",
subject="subject",
parent_directory="/data/recordings",
)
def start(self) -> None: ...
def stop(self) -> None: ...
Declare the plugin entry point in pyproject.toml:
[project.entry-points."msw.host"]
myplugin = "my_package.session:MyHostSession"
Plugin contract
MSW core checks isinstance(session, HostSessionProtocol) at dispatch time.
Plugins may implement the interface structurally (without importing this package)
or depend on msw-plugin-api explicitly for IDE support and test conformance checks.
Metadata
Release files for msw-plugin-api 0.3.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| msw_plugin_api-0.3.0.tar.gz | 4.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| msw_plugin_api-0.3.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 10.5 kB
Release files / msw_plugin_api-0.3.0.tar.gz
| Download URL | msw_plugin_api-0.3.0.tar.gz |
|---|---|
| Size | 4.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
1301eb9c6f6674910132f4639bad3bbe0f40f544acde463d198f50b868563965
|
|
BLAKE2b-256 checksum How to use checksums |
ae1fada9d82fcc7a79f8d220aa8c35d9b4ea0a6a885c1d8160a3430916a31e37
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.11.31 {"installer":{"name":"uv","version":"0.11.31","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}
|
Release files / msw_plugin_api-0.3.0-py3-none-any.whl
| Download URL | msw_plugin_api-0.3.0-py3-none-any.whl |
|---|---|
| Size | 6.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
410d559a8c9aeaf472b495179d853df8e5456a182f2ffab4bcfb7504dfa5d1f1
|
|
BLAKE2b-256 checksum How to use checksums |
1bd68875b1ba04500602ee9ae1fd769f02ca0f380584d82099eaca7018897966
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.11.31 {"installer":{"name":"uv","version":"0.11.31","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}
|