Repository¶
- class audb.Repository(name, host, backend)[source]¶
Repository object.
It stores all information needed to address a repository: the repository name, host, and the backend name. With
Repository.create_backend_interface()
it also provides a method to create a backend interface to access the repository.- Parameters
Examples
>>> Repository("data-local", "/data", "file-system") Repository('data-local', '/data', 'file-system')
__eq__()¶
backend_registry¶
- Repository.backend_registry = {'artifactory': <class 'audbackend.core.backend.artifactory.Artifactory'>, 'file-system': <class 'audbackend.core.backend.filesystem.FileSystem'>, 'minio': <class 'audbackend.core.backend.minio.Minio'>, 's3': <class 'audbackend.core.backend.minio.Minio'>}¶
Backend registry.
Holds mapping between registered backend names, and their corresponding backend classes. The
"artifactory"
backend is currently not available under Python >=3.12.
create_backend_interface()¶
- Repository.create_backend_interface()[source]¶
Create backend interface to access repository.
It wraps an
audbackend.interface.Versioned
interface around it. The files will then be stored with the following structure on the backend (shown by the example of version 1.0.0 of the emodb dataset):emodb/1.0.0/db.yaml <-- header emodb/1.0.0/db.zip <-- dependency table emodb/attachment/1.0.0/... <-- attachments emodb/media/1.0.0/... <-- media files emodb/meta/1.0.0/... <-- tables
When
Repository.backend
equalsartifactory
, it wraps anaudbackend.interface.Maven
interface around it. The files will then be stored with the following structure on the Artifactory backend (shown by the example of version 1.0.0 of the emodb dataset):emodb/db/1.0.0/db-1.0.0.yaml <-- header emodb/db/1.0.0/db-1.0.0.zip <-- dependency table emodb/attachment/.../1.0.0/... <-- attachments emodb/media/.../1.0.0/... <-- media files emodb/meta/.../1.0.0/... <-- tables
The returned backend instance has not yet established a connection to the backend. To establish a connection, use the backend with a
with
statement, or use theopen()
andclose()
methods of the backend class. The backend is stored as the inside thebackend
attribute of the returned backend interface.
register()¶
- classmethod Repository.register(backend_name, backend_class)[source]¶
Register backend class.
Adds an entry to the dictionary stored in the class variable
Repository.backend_registry
, mapping a backend name to an actual backend class.- Parameters
Examples
>>> import audbackend >>> Repository.register("file-system", audbackend.backend.FileSystem)