Repository

class audmodel.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
  • name (str) – repository name

  • host (str) – repository host

  • backend (str) – repository backend

Examples

>>> Repository("data-local", "/data", "file-system")
Repository('data-local', '/data', 'file-system')

backend

Repository.backend

Repository backend.

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.Maven interface around the backend.

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 the open() and close() methods of the backend class. The backend is stored as the inside the backend attribute of the returned backend interface.

Return type

type[Base]

Returns

interface to repository

Raises
  • ValueError – if an artifactory backend is requested in Python>=3.12

  • ValueError – if a non-supported backend is requested

host

Repository.host

Repository host.

name

Repository.name

Repository name.

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
  • backend_name (str) – name of the backend, e.g. "file-system"

  • backend_class (type[Base]) – class of the backend, that should be associated with backend_name, e.g. "audbackend.backend.Filesystem"

Examples

>>> import audbackend
>>> Repository.register("file-system", audbackend.backend.FileSystem)