33from datetime import datetime
44from pathlib import Path
55import re
6+ from typing import TYPE_CHECKING
67
7- from dandischema import models
88from pydantic import ByteSize
99
10- from .util import extract_model , get_generator
1110from .. import get_logger
12- from ..misctypes import Digest , LocalReadableFile , Readable
1311from ..utils import get_mime_type , get_utcnow_datetime
1412
13+ if TYPE_CHECKING :
14+ from dandischema import models
15+
16+ from ..misctypes import Digest , Readable
17+
1518lgr = get_logger ()
1619
1720
1821def get_default_metadata (
1922 path : str | Path | Readable , digest : Digest | None = None
2023) -> models .BareAsset :
24+ from dandischema import models
25+
2126 metadata = models .BareAsset .model_construct () # type: ignore[call-arg]
2227 start_time = end_time = datetime .now ().astimezone ()
2328 add_common_metadata (metadata , path , start_time , end_time , digest )
@@ -35,6 +40,11 @@ def add_common_metadata(
3540 Update a `dict` of raw "schemadata" with the fields that are common to both
3641 NWB assets and non-NWB assets
3742 """
43+ from dandischema import models
44+
45+ from .util import get_generator
46+ from ..misctypes import LocalReadableFile , Readable
47+
3848 if digest is not None :
3949 metadata .digest = digest .asdict ()
4050 else :
@@ -73,4 +83,8 @@ def prepare_metadata(metadata: dict) -> models.BareAsset:
7383
7484 .. [2] metadata in the form used by the ``dandischema`` library
7585 """
86+ from dandischema import models
87+
88+ from .util import extract_model
89+
7690 return extract_model (models .BareAsset , metadata )
0 commit comments