Skip to content

dataset

DatasetExportV2

Bases: BaseModel

Class for Dataset export.

Attributes:

Name Type Description
name str
zarr_dir str
images list[SingleImage]
type_filters dict[str, bool]
attribute_filters AttributeFiltersType
Source code in fractal_server/app/schemas/v2/dataset.py
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
class DatasetExportV2(BaseModel):
    """
    Class for `Dataset` export.

    Attributes:
        name:
        zarr_dir:
        images:
        type_filters:
        attribute_filters:
    """

    name: str
    zarr_dir: str
    images: list[SingleImage]
    type_filters: dict[str, bool]
    attribute_filters: AttributeFiltersType

DatasetImportV2

Bases: BaseModel

Class for Dataset import.

Attributes:

Name Type Description
name str
zarr_dir str
images list[SingleImage]
filters Optional[dict[str, Any]]
type_filters dict[str, bool]
attribute_filters AttributeFiltersType
Source code in fractal_server/app/schemas/v2/dataset.py
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
class DatasetImportV2(BaseModel):
    """
    Class for `Dataset` import.

    Attributes:
        name:
        zarr_dir:
        images:
        filters:
        type_filters:
        attribute_filters:
    """

    model_config = ConfigDict(extra="forbid")

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

    filters: Optional[dict[str, Any]] = None
    type_filters: dict[str, bool] = Field(default_factory=dict)
    attribute_filters: AttributeFiltersType = Field(default_factory=dict)

    @model_validator(mode="before")
    @classmethod
    def update_legacy_filters(cls, values: dict):
        """
        Transform legacy filters (created with fractal-server<2.11.0)
        into attribute/type filters
        """
        if values.get("filters") is not None:
            if (
                "type_filters" in values.keys()
                or "attribute_filters" in values.keys()
            ):
                raise ValueError(
                    "Cannot set filters both through the legacy field "
                    "('filters') and the new ones ('type_filters' and/or "
                    "'attribute_filters')."
                )

            else:
                # Convert legacy filters.types into new type_filters
                values["type_filters"] = values["filters"].get("types", {})
                values["attribute_filters"] = {
                    key: [value]
                    for key, value in values["filters"]
                    .get("attributes", {})
                    .items()
                }
                values["filters"] = None

        return values

    _type_filters = field_validator("type_filters")(
        classmethod(validate_type_filters)
    )
    _attribute_filters = field_validator("attribute_filters")(
        classmethod(validate_attribute_filters)
    )

    @field_validator("zarr_dir")
    @classmethod
    def normalize_zarr_dir(cls, v: str) -> str:
        return normalize_url(v)

update_legacy_filters(values) classmethod

Transform legacy filters (created with fractal-server<2.11.0) into attribute/type filters

Source code in fractal_server/app/schemas/v2/dataset.py
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
@model_validator(mode="before")
@classmethod
def update_legacy_filters(cls, values: dict):
    """
    Transform legacy filters (created with fractal-server<2.11.0)
    into attribute/type filters
    """
    if values.get("filters") is not None:
        if (
            "type_filters" in values.keys()
            or "attribute_filters" in values.keys()
        ):
            raise ValueError(
                "Cannot set filters both through the legacy field "
                "('filters') and the new ones ('type_filters' and/or "
                "'attribute_filters')."
            )

        else:
            # Convert legacy filters.types into new type_filters
            values["type_filters"] = values["filters"].get("types", {})
            values["attribute_filters"] = {
                key: [value]
                for key, value in values["filters"]
                .get("attributes", {})
                .items()
            }
            values["filters"] = None

    return values

_DatasetHistoryItemV2

Bases: BaseModel

Class for an item of Dataset.history.

Source code in fractal_server/app/schemas/v2/dataset.py
25
26
27
28
29
30
31
32
class _DatasetHistoryItemV2(BaseModel):
    """
    Class for an item of `Dataset.history`.
    """

    workflowtask: WorkflowTaskDumpV2
    status: WorkflowTaskStatusTypeV2
    parallelization: Optional[dict] = None