lacing.adapters#

I/O adapter registry.

The core never imports a format module. Each adapter registers itself by calling register_adapter() at import time. Users opt in by importing the adapter module:

from lacing.adapters import textgrid # noqa: F401 — registers itself

Or by using the convenience top-level loaders that look up by extension or media_type.

Functions

dump(store[, target])

Convenience: serialize store via the named adapter.

find_adapter(*[, extension, media_type])

Find an adapter by extension (case-insensitive) or media type.

get_adapter(name)

Look up an adapter by name.

load(source, *[, format])

Convenience: dispatch source to the right adapter.

register_adapter(*, name, load, dump[, ...])

Register an adapter.

registered()

All currently registered adapters (in registration order).

Classes

AdapterSpec(name, extensions, media_types, ...)

Registered adapter for one format.

class lacing.adapters.AdapterSpec(name, extensions, media_types, load, dump, body_schema_uris=<factory>, description='')[source]#

Bases: object

Registered adapter for one format.

lacing.adapters.dump(store, target=None, *, format, **kwargs)[source]#

Convenience: serialize store via the named adapter.

Return type:

bytes | None

lacing.adapters.find_adapter(*, extension=None, media_type=None)[source]#

Find an adapter by extension (case-insensitive) or media type.

Return type:

AdapterSpec | None

lacing.adapters.get_adapter(name)[source]#

Look up an adapter by name. Raises KeyError if missing.

Return type:

AdapterSpec

lacing.adapters.load(source, *, format=None, **kwargs)[source]#

Convenience: dispatch source to the right adapter.

If format is given, looks up by name. Otherwise, if source is a path, infers from extension. Raises ValueError if it can’t pick.

Return type:

IntervalAnnotationStore

lacing.adapters.register_adapter(*, name, load, dump, extensions=(), media_types=(), body_schema_uris=(), description='')[source]#

Register an adapter. Idempotent: re-registering the same name replaces.

Return type:

AdapterSpec

lacing.adapters.registered()[source]#

All currently registered adapters (in registration order).

Return type:

list[AdapterSpec]

Modules

annot

.annot portable file format adapter.

eaf

ELAN EAF adapter (Max Planck Institute's annotation tool format).

jams

JAMS (JSON Annotated Music Specification) adapter.

label_studio

Label Studio JSON adapter.

otio

OpenTimelineIO (OTIO) adapter — NLE / video editing interchange.

textgrid

Praat TextGrid adapter.

web_annotation

W3C Web Annotation Data Model adapter (JSON-LD).

webvtt

WebVTT (W3C TimedText) adapter.