Skip to content

Dataset

CLASS DESCRIPTION
DatasetCreate

DatasetCreate

DatasetExport

Class for Dataset export.

DatasetImport

Class for Dataset import.

DatasetRead

DatasetRead

DatasetReadExpanded

DatasetReadExpanded

DatasetUpdate

DatasetUpdate

Attributes

Classes

DatasetCreate pydantic-model

Bases: BaseModel

DatasetCreate

ATTRIBUTE DESCRIPTION
name

TYPE: SafeNonEmptyStr

project_dir

TYPE: AbsolutePathStr | S3PathStr | None

zarr_subfolder

TYPE: SafeRelativePathStr | None

Config:

  • extra: forbid

Fields:

Validators:

  • validate_zarr_dir
Source code in fractal_server/app/schemas/v2/dataset.py
class DatasetCreate(BaseModel):
    """
    DatasetCreate

    Attributes:
        name:
        project_dir:
        zarr_subfolder:
    """

    model_config = ConfigDict(extra="forbid")

    name: SafeNonEmptyStr
    project_dir: AbsolutePathStr | S3PathStr | None = None
    zarr_subfolder: SafeRelativePathStr | None = None

    @model_validator(mode="after")
    def validate_zarr_dir(self) -> Self:
        if (self.project_dir is None) and (self.zarr_subfolder is not None):
            raise ValueError(
                "Cannot provide `zarr_subfolder` without `project_dir`"
            )
        return self

DatasetExport pydantic-model

Bases: BaseModel

Class for Dataset export.

ATTRIBUTE DESCRIPTION
name

TYPE: str

zarr_dir

TYPE: str

images

TYPE: list[SingleImage]

Fields:

Source code in fractal_server/app/schemas/v2/dataset.py
class DatasetExport(BaseModel):
    """
    Class for `Dataset` export.

    Attributes:
        name:
        zarr_dir:
        images:
    """

    name: str
    zarr_dir: str
    images: list[SingleImage]

DatasetImport pydantic-model

Bases: BaseModel

Class for Dataset import.

We are dropping model_config = ConfigDict(extra="forbid") so that any kind of legacy filters can be included in the payload, and ignored in the API.

ATTRIBUTE DESCRIPTION
name

TYPE: SafeNonEmptyStr

zarr_dir

TYPE: ZarrDirStr

images

TYPE: list[SingleImage]

Fields:

Validators:

  • validate_image_zarr_url
Source code in fractal_server/app/schemas/v2/dataset.py
class DatasetImport(BaseModel):
    """
    Class for `Dataset` import.

    We are dropping `model_config = ConfigDict(extra="forbid")` so that any
    kind of legacy filters can be included in the payload, and ignored in the
    API.

    Attributes:
        name:
        zarr_dir:
        images:
    """

    name: SafeNonEmptyStr
    zarr_dir: ZarrDirStr
    images: list[SingleImage] = Field(default_factory=list)

    @model_validator(mode="after")
    def validate_image_zarr_url(self) -> Self:
        for image in self.images:
            if not url_is_relative_to(url=image.zarr_url, base=self.zarr_dir):
                raise ValueError(
                    f"{image.zarr_url=} is not relative to {self.zarr_dir=}."
                )
        return self

DatasetRead pydantic-model

Bases: BaseModel

DatasetRead

ATTRIBUTE DESCRIPTION
id

TYPE: int

name

TYPE: str

project_id

TYPE: int

project

TYPE: ProjectRead

timestamp_created

TYPE: AwareDatetime

zarr_dir

TYPE: str

is_starred

TYPE: bool

Fields:

Source code in fractal_server/app/schemas/v2/dataset.py
class DatasetRead(BaseModel):
    """
    DatasetRead

    Attributes:
        id:
        name:
        project_id:
        project:
        timestamp_created:
        zarr_dir:
        is_starred:
    """

    id: int
    name: str

    project_id: int
    project: ProjectRead

    timestamp_created: AwareDatetime

    zarr_dir: str
    is_starred: bool

    @field_serializer("timestamp_created")
    def serialize_datetime(v: datetime) -> str:
        return v.isoformat()

DatasetReadExpanded pydantic-model

Bases: DatasetRead

DatasetReadExpanded

ATTRIBUTE DESCRIPTION
id

TYPE: int

name

TYPE: str

project_id

TYPE: int

project

TYPE: ProjectRead

timestamp_created

TYPE: AwareDatetime

zarr_dir

TYPE: str

is_starred

TYPE: bool

owner_email

TYPE: str

image_count

TYPE: int

Fields:

Source code in fractal_server/app/schemas/v2/dataset.py
class DatasetReadExpanded(DatasetRead):
    """
    DatasetReadExpanded

    Attributes:
        id:
        name:
        project_id:
        project:
        timestamp_created:
        zarr_dir:
        is_starred:
        owner_email:
        image_count:
    """

    owner_email: str
    image_count: int

DatasetUpdate pydantic-model

Bases: BaseModel

DatasetUpdate

ATTRIBUTE DESCRIPTION
name

TYPE: SafeNonEmptyStr

zarr_dir

TYPE: SafeNonEmptyStr

Config:

  • extra: forbid

Fields:

Source code in fractal_server/app/schemas/v2/dataset.py
class DatasetUpdate(BaseModel):
    """
    DatasetUpdate

    Attributes:
        name:
        zarr_dir:
    """

    model_config = ConfigDict(extra="forbid")

    name: SafeNonEmptyStr = None

Functions: