Skip to content

Commit 571de07

Browse files
committed
feat: delay dandischema.models import in dandi/files/bids.py
1 parent 19171a5 commit 571de07

1 file changed

Lines changed: 8 additions & 2 deletions

File tree

dandi/files/bids.py

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,9 @@
55
from datetime import datetime
66
from pathlib import Path
77
from threading import Lock
8+
from typing import TYPE_CHECKING
89
import weakref
910

10-
from dandischema.models import BareAsset
11-
1211
from dandi.bids_validator_deno import bids_validate
1312

1413
from .bases import GenericAsset, LocalFileAsset, NWBAsset
@@ -18,6 +17,9 @@
1817
from ..misctypes import Digest
1918
from ..validate_types import ValidationResult
2019

20+
if TYPE_CHECKING:
21+
from dandischema.models import BareAsset
22+
2123
BIDS_ASSET_ERRORS = ("BIDS.NON_BIDS_PATH_PLACEHOLDER",)
2224
BIDS_DATASET_ERRORS = ("BIDS.MANDATORY_FILE_MISSING_PLACEHOLDER",)
2325

@@ -84,6 +86,8 @@ def _get_metadata(self) -> None:
8486
8587
This populates `self._asset_metadata`
8688
"""
89+
from dandischema.models import BareAsset
90+
8791
with self._lock:
8892
if self._asset_metadata is None:
8993
# Import here to avoid circular import
@@ -236,6 +240,8 @@ def get_metadata(
236240
digest: Digest | None = None,
237241
ignore_errors: bool = True,
238242
) -> BareAsset:
243+
from dandischema.models import BareAsset
244+
239245
bids_metadata = BIDSAsset.get_metadata(self, digest, ignore_errors)
240246
nwb_metadata = NWBAsset.get_metadata(self, digest, ignore_errors)
241247
return BareAsset(

0 commit comments

Comments
 (0)