Skip to content

Commit

Permalink
Use audbackend>=2.0.0
Browse files Browse the repository at this point in the history
  • Loading branch information
hagenw committed May 2, 2024
1 parent e1957e1 commit a548f78
Show file tree
Hide file tree
Showing 3 changed files with 37 additions and 50 deletions.
17 changes: 6 additions & 11 deletions audbcards/core/dataset.py
Original file line number Diff line number Diff line change
Expand Up @@ -109,7 +109,7 @@ def _save_pickled(obj, path: str):
pickle.dump(obj, f, protocol=4)

@property
def backend(self) -> audbackend.Backend:
def backend(self) -> audbackend.interface.Base:
r"""Dataset backend object."""
if not hasattr(self, "_backend"): # when loaded from cache
self._backend = self._load_backend()
Expand Down Expand Up @@ -419,16 +419,11 @@ def _cached_properties(self):
)
return props

def _load_backend(self) -> audbackend.Backend:
r"""Load backend containing dataset."""
backend = audbackend.access(
name=self.repository_object.backend,
host=self.repository_object.host,
repository=self.repository,
)
if isinstance(backend, audbackend.Artifactory):
backend._use_legacy_file_structure()
return backend
def _load_backend(self) -> audbackend.interface.Base:
r"""Load backend object containing dataset."""
backend_interface = self.repository_object()
backend_interface.backend.open()
return backend_interface

def _load_dependencies(self) -> audb.Dependencies:
r"""Load dataset dependencies."""
Expand Down
4 changes: 2 additions & 2 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -32,8 +32,8 @@ classifiers = [
]
requires-python = '>=3.9'
dependencies = [
'audb >=1.6.0',
'audbackend >=1.0.1',
'audb @ git+https://github.com/audeering/[email protected].0',
# 'audbackend[artifactory] @ git+https://github.com/audeering/audbackend.git@dev'
'audplot >=1.4.6',
'jinja2',
'pandas >=2.1.0',
Expand Down
66 changes: 29 additions & 37 deletions tests/test_dataset.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@
import pytest

import audb
import audbackend
import audeer
import audformat
import audiofile
Expand Down Expand Up @@ -66,17 +65,13 @@ def test_dataset(audb_cache, tmpdir, repository, db, request):
pytest.VERSION,
cache_root=dataset_cache,
)
backend = audbackend.access(
name=repository.backend,
host=repository.host,
repository=repository.name,
)

# __init__
assert dataset.name == db.name
assert dataset.version == pytest.VERSION
assert dataset.repository_object == repository
assert dataset.backend == backend
with repository() as backend:
assert dataset.backend == backend
expected_header = audb.info.header(
db.name,
version=pytest.VERSION,
Expand Down Expand Up @@ -146,19 +141,20 @@ def test_dataset(audb_cache, tmpdir, repository, db, request):
expected_license_link = db.license_url
assert dataset.license_link == expected_license_link

# publication_date:
expected_publication_date = backend.date(
backend.join("/", db.name, "db.yaml"),
pytest.VERSION,
)
assert dataset.publication_date == expected_publication_date
with repository() as backend:
# publication_date:
expected_publication_date = backend.date(
backend.join("/", db.name, "db.yaml"),
pytest.VERSION,
)
assert dataset.publication_date == expected_publication_date

# publication_owner
expected_publication_owner = backend.owner(
backend.join("/", db.name, "db.yaml"),
pytest.VERSION,
)
assert dataset.publication_owner == expected_publication_owner
# publication_owner
expected_publication_owner = backend.owner(
backend.join("/", db.name, "db.yaml"),
pytest.VERSION,
)
assert dataset.publication_owner == expected_publication_owner

# repository
assert dataset.repository == repository.name
Expand Down Expand Up @@ -426,21 +422,17 @@ def test_dataset_cache_loading(audb_cache, tmpdir, repository, db, request):
version=pytest.VERSION,
cache_root=audb_cache,
)
backend = audbackend.access(
name=repository.backend,
host=repository.host,
repository=repository.name,
)
header = audb.info.header(
db.name,
version=pytest.VERSION,
load_tables=True,
cache_root=audb_cache,
)
assert dataset.backend == backend
assert dataset.deps == deps
# The dataset header is a not fully loaded `audformat.Database` object,
# so we cannot directly use `audformat.Database.__eq__()`
# to compare it.
assert str(dataset.header) == str(header)
assert dataset.repository_object == repository
with repository() as backend:
header = audb.info.header(
db.name,
version=pytest.VERSION,
load_tables=True,
cache_root=audb_cache,
)
assert dataset.backend == backend
assert dataset.deps == deps
# The dataset header is a not fully loaded `audformat.Database` object,
# so we cannot directly use `audformat.Database.__eq__()`
# to compare it.
assert str(dataset.header) == str(header)
assert dataset.repository_object == repository

0 comments on commit a548f78

Please sign in to comment.