Add your description here
Project description
JABS IO (jabs-io)
This package handles all serialization/deserialization logic.
Overview
jabs-io decouples the JABS data representation from specific file formats or legacy
versions. It provides a unified way to interact with pose estimation data, behavioral
features, and annotations.
API
The package provides a high level API that's intended to cover most use-cases.
from jabs.io import save, load
from jabs.core.types.keypoints import FrameKeypoints
data_instance = load('frames.json', FrameKeypoints)
save(data_instance, 'frames.parquet')
Installation extras
jabs-io ships optional extras for format-specific backends:
| Extra | Installs | Enables |
|---|---|---|
nwb |
pynwb, ndx-pose |
NWB pose file read/write |
parquet |
pyarrow |
Parquet feature cache I/O |
jabs-io depends on jabs-core, which requires h5py directly, so HDF5 support is
always available with no extra needed. pyarrow is also a direct dependency of
jabs-behavior-classifier, so the parquet backend is available automatically when
jabs-io is installed as part of the full JABS application. The nwb extra must
always be installed explicitly:
pip install "jabs-behavior-classifier[nwb]"
When using jabs-io as a standalone library:
pip install "jabs-io[nwb,parquet]"
Development
Data models are defined as dataclasses in jabs-core: jabs.core.types. Some backends
will be able to implicitly handle most dataclasses, but if the dataclass is
complicated, or if there is special handling required of the type for a backend, then a
type specific adapter should be defined.
All adapters must inherit from jabs.io.base.Adapter.
For convenience, backend specific subclasses are provided that handle shared functionality for specific file backends.
from jabs.io.base import (
JSONAdapter,
ParquetAdapter,
# TODO: HDF5Adapter,
)
To register your adapter for use, use the register adapter decorator.
from jabs.core.enums import StorageFormat
from jabs.io.base import JSONAdapter
from jabs.io.registry import register_adapter
@register_adapter(StorageFormat.JSON)
class DataclassJSONAdapter(JSONAdapter):
...
Future Work
- NWB: segmentation data roundtrip —
PoseData.segmentation_datais not currently stored by the NWB adapter. If possible, we might want to consider writing it as an additionalTimeSeriesin the behavior processing module (similar tojabs_identity_mask) so it survives a write/read roundtrip.
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 jabs_io-0.43.0.tar.gz.
File metadata
- Download URL: jabs_io-0.43.0.tar.gz
- Upload date:
- Size: 32.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.8 {"installer":{"name":"uv","version":"0.11.8","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 |
f7d321fb90d1b95434bac038e4686317d921617878aa638b4b901caf47ba3c84
|
|
| MD5 |
6d07fe8014319685dff248a09e7e373e
|
|
| BLAKE2b-256 |
0579b72ad3f597cfcf0c7852a62ce45af376c9f3035318b0cfcfe439d3c41c61
|
File details
Details for the file jabs_io-0.43.0-py3-none-any.whl.
File metadata
- Download URL: jabs_io-0.43.0-py3-none-any.whl
- Upload date:
- Size: 44.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.8 {"installer":{"name":"uv","version":"0.11.8","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 |
c7e888774fb50c8aca994e938cbf251846b4560cd7af32b4cbde23f918d3f600
|
|
| MD5 |
c599f428cc7680f34c3bb72ed44b3bd6
|
|
| BLAKE2b-256 |
117170c1254f86d659cea2b934689b8500c53ebee3879d4f78dace9fede59cfb
|