Skip to content

Commit 7b86d31

Browse files
committed
update tests, clean up
1 parent 260cac2 commit 7b86d31

File tree

23 files changed

+151
-131
lines changed

23 files changed

+151
-131
lines changed

bioimageio/spec/_description.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -214,7 +214,7 @@ def _get_rd_class(type_: str, /, format_version: str = LATEST) -> Union[Type[Res
214214

215215
ma, mi, _pa = rd_class.implemented_format_version_tuple
216216
key = f"{ma}.{mi}"
217-
assert key not in per_fv
217+
assert key not in per_fv, (key, per_fv)
218218
per_fv[key] = rd_class
219219

220220
for typ, rd_class in _iterate_over_latest_rd_classes():
@@ -245,7 +245,7 @@ def _iterate_over_rd_classes() -> Iterable[Tuple[str, Type[ResourceDescription]]
245245
if typ is PydanticUndefined:
246246
typ = "generic"
247247

248-
assert isinstance(typ, str)
248+
assert isinstance(typ, str), typ
249249
yield typ, rd_class
250250

251251

@@ -255,5 +255,5 @@ def _iterate_over_latest_rd_classes() -> Iterable[Tuple[str, Type[ResourceDescri
255255
if typ is PydanticUndefined:
256256
typ = "generic"
257257

258-
assert isinstance(typ, str)
258+
assert isinstance(typ, str), typ
259259
yield typ, rd_class

bioimageio/spec/_internal/base_nodes.py

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -88,9 +88,9 @@ def _set_undefined_field_descriptions_from_var_docstrings_impl(cls, klass: Type[
8888

8989
unindented_source = unindent(source)
9090
module = ast.parse(unindented_source)
91-
assert isinstance(module, ast.Module)
91+
assert isinstance(module, ast.Module), module
9292
class_def = module.body[0]
93-
assert isinstance(class_def, ast.ClassDef)
93+
assert isinstance(class_def, ast.ClassDef), class_def
9494
if len(class_def.body) < 2:
9595
return
9696

@@ -163,8 +163,8 @@ def validation_summaries(self) -> List[ValidationSummary]:
163163
def root(self) -> Union[AnyUrl, DirectoryPath]:
164164
return self._internal_validation_context["root"]
165165

166-
@abstractmethod
167166
@classmethod
167+
@abstractmethod
168168
def convert_from_older_format(cls, data: BioimageioYamlContent, context: InternalValidationContext) -> None:
169169
...
170170

@@ -191,7 +191,7 @@ def __pydantic_init_subclass__(cls, **kwargs: Any):
191191
cls.implemented_format_version_tuple = cast(
192192
Tuple[int, int, int], tuple(int(x) for x in cls.implemented_format_version.split("."))
193193
)
194-
assert len(cls.implemented_format_version_tuple) == 3
194+
assert len(cls.implemented_format_version_tuple) == 3, cls.implemented_format_version_tuple
195195

196196
@classmethod
197197
def _update_context(cls, context: InternalValidationContext, data: BioimageioYamlContent) -> None:
@@ -228,7 +228,7 @@ def model_validate(
228228

229229
context = get_internal_validation_context(context)
230230
if isinstance(obj, dict):
231-
assert all(isinstance(k, str) for k in obj)
231+
assert all(isinstance(k, str) for k in obj), obj
232232
cls._update_context(context, obj)
233233

234234
return super().model_validate(
@@ -349,7 +349,7 @@ def __getattr__(self, name: str):
349349

350350
@classmethod
351351
def __get_pydantic_core_schema__(cls, source: Type[Any], handler: GetCoreSchemaHandler) -> core_schema.CoreSchema:
352-
assert issubclass(source, StringNode)
352+
assert issubclass(source, StringNode), source
353353
return core_schema.with_info_after_validator_function(
354354
cls._validate,
355355
core_schema.str_schema(pattern=cls._pattern),

bioimageio/spec/_internal/constants.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121

2222
with files("bioimageio.spec").joinpath("VERSION").open("r", encoding="utf-8") as f:
2323
VERSION: str = json.load(f)["version"]
24-
assert isinstance(VERSION, str)
24+
assert isinstance(VERSION, str), VERSION
2525

2626
DOI_REGEX = r"^10\.[0-9]{4}.+$" # lax DOI regex validating the first 7 DOI characters only
2727

bioimageio/spec/_internal/types/_file_source.py

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
from __future__ import annotations
22

33
import pathlib
4-
from pathlib import Path, PurePosixPath
4+
from pathlib import Path, PurePath, PurePosixPath
55
from typing import Any, Union
6-
from urllib.parse import urlsplit, urlunsplit
6+
from urllib.parse import urlparse, urlsplit, urlunsplit
77

88
from annotated_types import Predicate
99
from pydantic import (
@@ -119,3 +119,12 @@ def _check_exists(self, root: Union[DirectoryPath, HttpUrl]) -> None:
119119
FileSource = Union[HttpUrl, AbsoluteFilePath, RelativeFilePath]
120120
PermissiveFileSource = Union[FileSource, str]
121121
StrictFileSource = Union[HttpUrl, AbsoluteFilePath]
122+
123+
124+
def extract_file_name(src: Union[HttpUrl, PurePath, RelativeFilePath]) -> str:
125+
if isinstance(src, RelativeFilePath):
126+
return src.path.name
127+
elif isinstance(src, PurePath):
128+
return src.name
129+
else:
130+
return urlparse(str(src)).path.split("/")[-1]

bioimageio/spec/_internal/utils.py

Lines changed: 3 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,13 @@
11
from __future__ import annotations
22

33
import sys
4-
from pathlib import Path, PurePath
4+
from pathlib import Path
55
from typing import Any, Dict, Iterator, Tuple, Type, TypeVar, Union, get_args, get_origin
6-
from urllib.parse import urlparse, urlsplit, urlunsplit
6+
from urllib.parse import urlsplit, urlunsplit
77

88
from pydantic import AnyUrl, HttpUrl
99
from typing_extensions import Annotated
1010

11-
from bioimageio.spec._internal.types._file_source import RelativeFilePath
12-
1311
K = TypeVar("K")
1412
V = TypeVar("V")
1513
NestedDict = Dict[K, "NestedDict[K, V] | V"]
@@ -18,7 +16,7 @@
1816
if sys.version_info < (3, 9):
1917

2018
def files(package_name: str):
21-
assert package_name == "bioimageio.spec"
19+
assert package_name == "bioimageio.spec", package_name
2220
return Path(__file__).parent.parent
2321

2422
else:
@@ -106,12 +104,3 @@ def unindent(text: str, ignore_first_line: bool = False):
106104

107105
indent = min(len(line) - len(line.lstrip(" ")) for line in filled_lines)
108106
return "\n".join(lines[:first] + [line[indent:] for line in lines[first:]])
109-
110-
111-
def extract_file_name(src: Union[HttpUrl, PurePath, RelativeFilePath]) -> str:
112-
if isinstance(src, RelativeFilePath):
113-
return src.path.name
114-
elif isinstance(src, PurePath):
115-
return src.name
116-
else:
117-
return urlparse(str(src)).path.split("/")[-1]

bioimageio/spec/_io.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,8 @@
2828
StrictFileSource,
2929
YamlValue,
3030
)
31-
from bioimageio.spec._internal.utils import extract_file_name, get_parent_url
31+
from bioimageio.spec._internal.types._file_source import extract_file_name
32+
from bioimageio.spec._internal.utils import get_parent_url
3233
from bioimageio.spec._internal.validation_context import ValidationContext
3334

3435
if platform.machine() == "wasm32":

bioimageio/spec/_package.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,8 @@
1313
from bioimageio.spec._internal.base_nodes import Node, ResourceDescriptionBase
1414
from bioimageio.spec._internal.constants import IN_PACKAGE_MESSAGE
1515
from bioimageio.spec._internal.types import BioimageioYamlContent, FileName, RelativeFilePath, YamlValue
16-
from bioimageio.spec._internal.utils import extract_file_name, nest_dict_with_narrow_first_key
16+
from bioimageio.spec._internal.types._file_source import extract_file_name
17+
from bioimageio.spec._internal.utils import nest_dict_with_narrow_first_key
1718
from bioimageio.spec._internal.validation_context import ValidationContext
1819
from bioimageio.spec._io import (
1920
BIOIMAGEIO_YAML,

bioimageio/spec/application/v0_2.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,15 +4,16 @@
44
from pydantic import HttpUrl as HttpUrl
55
from typing_extensions import Annotated
66

7-
from bioimageio.spec._internal.types import FileSource as FileSource
8-
from bioimageio.spec._internal.types import RelativeFilePath as RelativeFilePath
7+
from bioimageio.spec.generic.v0_2 import AbsoluteFilePath as AbsoluteFilePath
98
from bioimageio.spec.generic.v0_2 import Attachments as Attachments
109
from bioimageio.spec.generic.v0_2 import Author as Author
1110
from bioimageio.spec.generic.v0_2 import Badge as Badge
1211
from bioimageio.spec.generic.v0_2 import CiteEntry as CiteEntry
12+
from bioimageio.spec.generic.v0_2 import FileSource as FileSource
1313
from bioimageio.spec.generic.v0_2 import GenericBase
1414
from bioimageio.spec.generic.v0_2 import LinkedResource as LinkedResource
1515
from bioimageio.spec.generic.v0_2 import Maintainer as Maintainer
16+
from bioimageio.spec.generic.v0_2 import RelativeFilePath as RelativeFilePath
1617

1718

1819
class Application(GenericBase, title="bioimage.io application specification"):

bioimageio/spec/application/v0_3.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,15 +4,16 @@
44
from pydantic import HttpUrl as HttpUrl
55
from typing_extensions import Annotated
66

7-
from bioimageio.spec._internal.types import FileSource as FileSource
8-
from bioimageio.spec._internal.types import RelativeFilePath as RelativeFilePath
7+
from bioimageio.spec.generic.v0_3 import AbsoluteFilePath as AbsoluteFilePath
98
from bioimageio.spec.generic.v0_3 import Attachment as Attachment
109
from bioimageio.spec.generic.v0_3 import Author as Author
1110
from bioimageio.spec.generic.v0_3 import Badge as Badge
1211
from bioimageio.spec.generic.v0_3 import CiteEntry as CiteEntry
12+
from bioimageio.spec.generic.v0_3 import FileSource as FileSource
1313
from bioimageio.spec.generic.v0_3 import GenericBase
1414
from bioimageio.spec.generic.v0_3 import LinkedResource as LinkedResource
1515
from bioimageio.spec.generic.v0_3 import Maintainer as Maintainer
16+
from bioimageio.spec.generic.v0_3 import RelativeFilePath as RelativeFilePath
1617

1718

1819
class Application(GenericBase, title="bioimage.io application specification"):

bioimageio/spec/collection/v0_2.py

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,18 +18,22 @@
1818
from bioimageio.spec._internal.base_nodes import Node
1919
from bioimageio.spec._internal.constants import ALERT
2020
from bioimageio.spec._internal.field_warning import warn
21-
from bioimageio.spec._internal.types import BioimageioYamlContent, NotEmpty, RelativeFilePath, ResourceId, YamlValue
21+
from bioimageio.spec._internal.types import BioimageioYamlContent, NotEmpty, YamlValue
2222
from bioimageio.spec._internal.validation_context import InternalValidationContext
2323
from bioimageio.spec.application.v0_2 import Application as Application
2424
from bioimageio.spec.dataset.v0_2 import Dataset as Dataset
25+
from bioimageio.spec.generic.v0_2 import AbsoluteFilePath as AbsoluteFilePath
2526
from bioimageio.spec.generic.v0_2 import Attachments as Attachments
2627
from bioimageio.spec.generic.v0_2 import Author as Author
2728
from bioimageio.spec.generic.v0_2 import Badge as Badge
2829
from bioimageio.spec.generic.v0_2 import CiteEntry as CiteEntry
30+
from bioimageio.spec.generic.v0_2 import FileSource as FileSource
2931
from bioimageio.spec.generic.v0_2 import Generic as Generic
3032
from bioimageio.spec.generic.v0_2 import GenericBase
3133
from bioimageio.spec.generic.v0_2 import LinkedResource as LinkedResource
3234
from bioimageio.spec.generic.v0_2 import Maintainer as Maintainer
35+
from bioimageio.spec.generic.v0_2 import RelativeFilePath as RelativeFilePath
36+
from bioimageio.spec.generic.v0_2 import ResourceId as ResourceId
3337
from bioimageio.spec.model.v0_4 import Model as Model
3438
from bioimageio.spec.notebook.v0_2 import Notebook as Notebook
3539

@@ -161,7 +165,9 @@ def check_unique_ids_impl(value: NotEmpty[Sequence[CollectionEntryBase]]):
161165
def _update_context(cls, context: InternalValidationContext, data: BioimageioYamlContent) -> None:
162166
super()._update_context(context, data)
163167
collection_base_content = {k: v for k, v in data.items() if k != "collection"}
164-
assert "collection_base_content" not in context or context["collection_base_content"] == collection_base_content
168+
assert (
169+
"collection_base_content" not in context or context["collection_base_content"] == collection_base_content
170+
), context
165171
context["collection_base_content"] = collection_base_content
166172

167173
@staticmethod

0 commit comments

Comments
 (0)