fractal-server 2.11.0a2__py3-none-any.whl → 2.11.0a3__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- fractal_server/__init__.py +1 -1
- fractal_server/app/schemas/v2/dataset.py +31 -4
- fractal_server/app/schemas/v2/workflowtask.py +28 -4
- {fractal_server-2.11.0a2.dist-info → fractal_server-2.11.0a3.dist-info}/METADATA +1 -1
- {fractal_server-2.11.0a2.dist-info → fractal_server-2.11.0a3.dist-info}/RECORD +8 -8
- {fractal_server-2.11.0a2.dist-info → fractal_server-2.11.0a3.dist-info}/LICENSE +0 -0
- {fractal_server-2.11.0a2.dist-info → fractal_server-2.11.0a3.dist-info}/WHEEL +0 -0
- {fractal_server-2.11.0a2.dist-info → fractal_server-2.11.0a3.dist-info}/entry_points.txt +0 -0
fractal_server/__init__.py
CHANGED
@@ -1 +1 @@
|
|
1
|
-
__VERSION__ = "2.11.
|
1
|
+
__VERSION__ = "2.11.0a3"
|
@@ -116,6 +116,7 @@ class DatasetImportV2(BaseModel, extra=Extra.forbid):
|
|
116
116
|
name:
|
117
117
|
zarr_dir:
|
118
118
|
images:
|
119
|
+
filters:
|
119
120
|
type_filters:
|
120
121
|
attribute_filters:
|
121
122
|
"""
|
@@ -124,14 +125,40 @@ class DatasetImportV2(BaseModel, extra=Extra.forbid):
|
|
124
125
|
zarr_dir: str
|
125
126
|
images: list[SingleImage] = Field(default_factory=list)
|
126
127
|
|
128
|
+
filters: Optional[dict[str, Any]] = None
|
127
129
|
type_filters: dict[str, bool] = Field(default_factory=dict)
|
128
130
|
attribute_filters: AttributeFiltersType = Field(default_factory=dict)
|
129
131
|
|
130
|
-
|
132
|
+
@root_validator(pre=True)
|
133
|
+
def update_legacy_filters(cls, values: dict):
|
134
|
+
"""
|
135
|
+
Transform legacy filters (created with fractal-server<2.11.0)
|
136
|
+
into attribute/type filters
|
137
|
+
"""
|
138
|
+
if values.get("filters") is not None:
|
139
|
+
if (
|
140
|
+
"type_filters" in values.keys()
|
141
|
+
or "attribute_filters" in values.keys()
|
142
|
+
):
|
143
|
+
raise ValueError(
|
144
|
+
"Cannot set filters both through the legacy field "
|
145
|
+
"('filters') and the new ones ('type_filters' and/or "
|
146
|
+
"'attribute_filters')."
|
147
|
+
)
|
148
|
+
|
149
|
+
else:
|
150
|
+
# Convert legacy filters.types into new type_filters
|
151
|
+
values["type_filters"] = values["filters"].get("types", {})
|
152
|
+
values["attribute_filters"] = {
|
153
|
+
key: [value]
|
154
|
+
for key, value in values["filters"]
|
155
|
+
.get("attributes", {})
|
156
|
+
.items()
|
157
|
+
}
|
158
|
+
values["filters"] = None
|
159
|
+
|
160
|
+
return values
|
131
161
|
|
132
|
-
_dict_keys = root_validator(pre=True, allow_reuse=True)(
|
133
|
-
root_validate_dict_keys
|
134
|
-
)
|
135
162
|
_type_filters = validator("type_filters", allow_reuse=True)(
|
136
163
|
validate_type_filters
|
137
164
|
)
|
@@ -179,14 +179,38 @@ class WorkflowTaskImportV2(BaseModel, extra=Extra.forbid):
|
|
179
179
|
meta_parallel: Optional[dict[str, Any]] = None
|
180
180
|
args_non_parallel: Optional[dict[str, Any]] = None
|
181
181
|
args_parallel: Optional[dict[str, Any]] = None
|
182
|
-
|
183
182
|
type_filters: Optional[dict[str, bool]] = None
|
183
|
+
filters: Optional[dict[str, Any]] = None
|
184
184
|
|
185
185
|
task: Union[TaskImportV2, TaskImportV2Legacy]
|
186
186
|
|
187
|
-
|
188
|
-
|
189
|
-
)
|
187
|
+
# Validators
|
188
|
+
@root_validator(pre=True)
|
189
|
+
def update_legacy_filters(cls, values: dict):
|
190
|
+
"""
|
191
|
+
Transform legacy filters (created with fractal-server<2.11.0)
|
192
|
+
into type filters
|
193
|
+
"""
|
194
|
+
if values.get("filters") is not None:
|
195
|
+
if "type_filters" in values.keys():
|
196
|
+
raise ValueError(
|
197
|
+
"Cannot set filters both through the legacy field "
|
198
|
+
"('filters') and the new one ('type_filters')."
|
199
|
+
)
|
200
|
+
|
201
|
+
else:
|
202
|
+
# As of 2.11.0, WorkflowTask do not have attribute filters
|
203
|
+
# any more.
|
204
|
+
if values["filters"]["attributes"] != {}:
|
205
|
+
raise ValueError(
|
206
|
+
"Cannot set attribute filters for WorkflowTasks."
|
207
|
+
)
|
208
|
+
# Convert legacy filters.types into new type_filters
|
209
|
+
values["type_filters"] = values["filters"].get("types", {})
|
210
|
+
values["filters"] = None
|
211
|
+
|
212
|
+
return values
|
213
|
+
|
190
214
|
_type_filters = validator("type_filters", allow_reuse=True)(
|
191
215
|
validate_type_filters
|
192
216
|
)
|
@@ -1,4 +1,4 @@
|
|
1
|
-
fractal_server/__init__.py,sha256=
|
1
|
+
fractal_server/__init__.py,sha256=o_3QCs2FdlBclhmQ7GWAIcInUjrL307BrDoHMarxuSE,25
|
2
2
|
fractal_server/__main__.py,sha256=D2YTmSowmXNyvqOjW_HeItCZT2UliWlySl_owicaZg0,8026
|
3
3
|
fractal_server/alembic.ini,sha256=MWwi7GzjzawI9cCAK1LW7NxIBQDUqD12-ptJoq5JpP0,3153
|
4
4
|
fractal_server/app/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
@@ -150,7 +150,7 @@ fractal_server/app/schemas/v1/task.py,sha256=7BxOZ_qoRQ8n3YbQpDvB7VMcxB5fSYQmR5R
|
|
150
150
|
fractal_server/app/schemas/v1/task_collection.py,sha256=uvq9bcMaGD_qHsh7YtcpoSAkVAbw12eY4DocIO3MKOg,3057
|
151
151
|
fractal_server/app/schemas/v1/workflow.py,sha256=oRKamLSuAgrTcv3gMMxGcotDloLL2c3NNgPA39UEmmM,4467
|
152
152
|
fractal_server/app/schemas/v2/__init__.py,sha256=IT2a6fbRx3rt8h6jri_4gZWzTN9EVXewiWoIuBcZ-xA,2618
|
153
|
-
fractal_server/app/schemas/v2/dataset.py,sha256=
|
153
|
+
fractal_server/app/schemas/v2/dataset.py,sha256=FKzQyMBAdFo9hnR4HzXQML7VbkM8YlKE4OLKjpo-Pdw,5085
|
154
154
|
fractal_server/app/schemas/v2/dumps.py,sha256=Yiyma6pMnEk1c-Ekf0e-IWgM20_R4qWyHuoqfdc6brE,1635
|
155
155
|
fractal_server/app/schemas/v2/job.py,sha256=qIisYTznE1mU6z65zxbOqSTOlkeFvncqbFLzyVyN12Y,3589
|
156
156
|
fractal_server/app/schemas/v2/manifest.py,sha256=Uqtd7DbyOkf9bxBOKkU7Sv7nToBIFGUcfjY7rd5iO7c,6981
|
@@ -160,7 +160,7 @@ fractal_server/app/schemas/v2/task.py,sha256=9W4xe-p19pbLpjsNJrYVIMpkrlwuCxGAJNO
|
|
160
160
|
fractal_server/app/schemas/v2/task_collection.py,sha256=9c_yyFcVBXdAZpQQniy1bROhYnQT7G1BflOpMY1joPE,6250
|
161
161
|
fractal_server/app/schemas/v2/task_group.py,sha256=zZfvAH7c3MZC4_An09TMuOkNE_e1Z9XsYEnmN-axHdU,3217
|
162
162
|
fractal_server/app/schemas/v2/workflow.py,sha256=-KWvXnbHBFA3pj5n7mfSyLKJQSqkJmoziIEe7mpLl3M,1875
|
163
|
-
fractal_server/app/schemas/v2/workflowtask.py,sha256=
|
163
|
+
fractal_server/app/schemas/v2/workflowtask.py,sha256=RLAoKIpc7WFYp20N3Pr6lUu6BkOHpPf4Yvs77FH_Uzg,7658
|
164
164
|
fractal_server/app/security/__init__.py,sha256=qn6idYgl-p5HWea0gTVnz4JnkoxGEkmQjPzvKpDWT0I,14035
|
165
165
|
fractal_server/app/security/signup_email.py,sha256=DrL51UdTSrgjleynMD5CRZwTSOpPrZ96fasRV0fvxDE,1165
|
166
166
|
fractal_server/app/user_settings.py,sha256=OP1yiYKtPadxwM51_Q0hdPk3z90TCN4z1BLpQsXyWiU,1316
|
@@ -241,8 +241,8 @@ fractal_server/tasks/v2/utils_templates.py,sha256=07TZpJ0Mh_A4lXVXrrH2o1VLFFGwxe
|
|
241
241
|
fractal_server/urls.py,sha256=QjIKAC1a46bCdiPMu3AlpgFbcv6a4l3ABcd5xz190Og,471
|
242
242
|
fractal_server/utils.py,sha256=utvmBx8K9I8hRWFquxna2pBaOqe0JifDL_NVPmihEJI,3525
|
243
243
|
fractal_server/zip_tools.py,sha256=GjDgo_sf6V_DDg6wWeBlZu5zypIxycn_l257p_YVKGc,4876
|
244
|
-
fractal_server-2.11.
|
245
|
-
fractal_server-2.11.
|
246
|
-
fractal_server-2.11.
|
247
|
-
fractal_server-2.11.
|
248
|
-
fractal_server-2.11.
|
244
|
+
fractal_server-2.11.0a3.dist-info/LICENSE,sha256=QKAharUuhxL58kSoLizKJeZE3mTCBnX6ucmz8W0lxlk,1576
|
245
|
+
fractal_server-2.11.0a3.dist-info/METADATA,sha256=PpEo4R-FpyRduTHTutRl1UdRHHwtb1dyFUKmLT2Zm1I,4564
|
246
|
+
fractal_server-2.11.0a3.dist-info/WHEEL,sha256=RaoafKOydTQ7I_I3JTrPCg6kUmTgtm4BornzOqyEfJ8,88
|
247
|
+
fractal_server-2.11.0a3.dist-info/entry_points.txt,sha256=8tV2kynvFkjnhbtDnxAqImL6HMVKsopgGfew0DOp5UY,58
|
248
|
+
fractal_server-2.11.0a3.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|