bioimageio.spec.dataset

implementaions of all released minor versions are available in submodules:

 1# autogen: start
 2"""
 3implementaions of all released minor versions are available in submodules:
 4- dataset v0_2: `bioimageio.spec.dataset.v0_2.DatasetDescr`
 5- dataset v0_3: `bioimageio.spec.dataset.v0_3.DatasetDescr`
 6"""
 7
 8from typing import Union
 9
10from pydantic import Discriminator, Field
11from typing_extensions import Annotated
12
13from . import v0_2, v0_3
14
15DatasetDescr = v0_3.DatasetDescr
16DatasetDescr_v0_2 = v0_2.DatasetDescr
17DatasetDescr_v0_3 = v0_3.DatasetDescr
18
19AnyDatasetDescr = Annotated[
20    Union[
21        Annotated[DatasetDescr_v0_2, Field(title="dataset 0.2")],
22        Annotated[DatasetDescr_v0_3, Field(title="dataset 0.3")],
23    ],
24    Discriminator("format_version"),
25    Field(title="dataset"),
26]
27"""Union of any released dataset desription"""
28# autogen: stop
class DatasetDescr(bioimageio.spec.generic.v0_3.GenericDescrBase):
 40class DatasetDescr(GenericDescrBase):
 41    """A bioimage.io dataset resource description file (dataset RDF) describes a dataset relevant to bioimage
 42    processing.
 43    """
 44
 45    implemented_type: ClassVar[Literal["dataset"]] = "dataset"
 46    if TYPE_CHECKING:
 47        type: Literal["dataset"] = "dataset"
 48    else:
 49        type: Literal["dataset"]
 50
 51    id: Optional[DatasetId] = None
 52    """bioimage.io-wide unique resource identifier
 53    assigned by bioimage.io; version **un**specific."""
 54
 55    parent: Optional[DatasetId] = None
 56    """The description from which this one is derived"""
 57
 58    source: FAIR[Optional[HttpUrl]] = None
 59    """"URL to the source of the dataset."""
 60
 61    @model_validator(mode="before")
 62    @classmethod
 63    def _convert(cls, data: Dict[str, Any], /) -> Dict[str, Any]:
 64        if (
 65            data.get("type") == "dataset"
 66            and isinstance(fv := data.get("format_version"), str)
 67            and fv.startswith("0.2.")
 68        ):
 69            old = DatasetDescr02.load(data)
 70            if isinstance(old, InvalidDescr):
 71                return data
 72
 73            return cast(
 74                Dict[str, Any],
 75                (cls if TYPE_CHECKING else dict)(
 76                    attachments=(
 77                        []
 78                        if old.attachments is None
 79                        else [FileDescr(source=f) for f in old.attachments.files]
 80                    ),
 81                    authors=[
 82                        _author_conv.convert_as_dict(a) for a in old.authors
 83                    ],  # pyright: ignore[reportArgumentType]
 84                    badges=old.badges,
 85                    cite=[
 86                        {"text": c.text, "doi": c.doi, "url": c.url} for c in old.cite
 87                    ],  # pyright: ignore[reportArgumentType]
 88                    config=old.config,  # pyright: ignore[reportArgumentType]
 89                    covers=old.covers,
 90                    description=old.description,
 91                    documentation=old.documentation,
 92                    format_version="0.3.0",
 93                    git_repo=old.git_repo,  # pyright: ignore[reportArgumentType]
 94                    icon=old.icon,
 95                    id=None if old.id is None else DatasetId(old.id),
 96                    license=old.license,  # type: ignore
 97                    links=old.links,
 98                    maintainers=[
 99                        _maintainer_conv.convert_as_dict(m) for m in old.maintainers
100                    ],  # pyright: ignore[reportArgumentType]
101                    name=old.name,
102                    source=old.source,
103                    tags=old.tags,
104                    type=old.type,
105                    uploader=old.uploader,
106                    version=old.version,
107                    **(old.model_extra or {}),
108                ),
109            )
110
111        return data

A bioimage.io dataset resource description file (dataset RDF) describes a dataset relevant to bioimage processing.

implemented_type: ClassVar[Literal['dataset']] = 'dataset'

bioimage.io-wide unique resource identifier assigned by bioimage.io; version unspecific.

The description from which this one is derived

source: Annotated[Optional[bioimageio.spec._internal.url.HttpUrl], AfterWarner(func=<function as_warning.<locals>.wrapper at 0x7f83b7cd1080>, severity=35, msg=None, context=None)]

"URL to the source of the dataset.

implemented_format_version_tuple: ClassVar[Tuple[int, int, int]] = (0, 3, 0)
model_config: ClassVar[pydantic.config.ConfigDict] = {'allow_inf_nan': False, 'extra': 'forbid', 'frozen': False, 'model_title_generator': <function _node_title_generator>, 'populate_by_name': True, 'revalidate_instances': 'always', 'use_attribute_docstrings': True, 'validate_assignment': True, 'validate_default': True, 'validate_return': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

def model_post_init(self: pydantic.main.BaseModel, context: Any, /) -> None:
337def init_private_attributes(self: BaseModel, context: Any, /) -> None:
338    """This function is meant to behave like a BaseModel method to initialise private attributes.
339
340    It takes context as an argument since that's what pydantic-core passes when calling it.
341
342    Args:
343        self: The BaseModel instance.
344        context: The context.
345    """
346    if getattr(self, '__pydantic_private__', None) is None:
347        pydantic_private = {}
348        for name, private_attr in self.__private_attributes__.items():
349            default = private_attr.get_default()
350            if default is not PydanticUndefined:
351                pydantic_private[name] = default
352        object_setattr(self, '__pydantic_private__', pydantic_private)

This function is meant to behave like a BaseModel method to initialise private attributes.

It takes context as an argument since that's what pydantic-core passes when calling it.

Arguments:
  • self: The BaseModel instance.
  • context: The context.
DatasetDescr_v0_2 = <class 'bioimageio.spec.dataset.v0_2.DatasetDescr'>
DatasetDescr_v0_3 = <class 'DatasetDescr'>
AnyDatasetDescr = typing.Annotated[typing.Union[typing.Annotated[bioimageio.spec.dataset.v0_2.DatasetDescr, FieldInfo(annotation=NoneType, required=True, title='dataset 0.2')], typing.Annotated[DatasetDescr, FieldInfo(annotation=NoneType, required=True, title='dataset 0.3')]], Discriminator(discriminator='format_version', custom_error_type=None, custom_error_message=None, custom_error_context=None), FieldInfo(annotation=NoneType, required=True, title='dataset')]

Union of any released dataset desription