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.
@@ -1 +1 @@
1
- __VERSION__ = "2.11.0a2"
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
- # Validators
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
- _dict_keys = root_validator(pre=True, allow_reuse=True)(
188
- root_validate_dict_keys
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,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: fractal-server
3
- Version: 2.11.0a2
3
+ Version: 2.11.0a3
4
4
  Summary: Backend component of the Fractal analytics platform
5
5
  Home-page: https://github.com/fractal-analytics-platform/fractal-server
6
6
  License: BSD-3-Clause
@@ -1,4 +1,4 @@
1
- fractal_server/__init__.py,sha256=cLEMnMolltFsZpt1oovn_8aqXHHx58LNsl6plIarbDM,25
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=qf8JtNbJUSeCTNlR0dXu9iIpkSEM_18StUmc7hcSXls,4049
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=EBmKuLmQeXsM-20DAOWFSxu3EPXRAb5RV66tkGRAiF8,6686
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.0a2.dist-info/LICENSE,sha256=QKAharUuhxL58kSoLizKJeZE3mTCBnX6ucmz8W0lxlk,1576
245
- fractal_server-2.11.0a2.dist-info/METADATA,sha256=JeUj4i-iNqKHT2UD0H9a7WuGNmEM44jzbD79zjsvf-Q,4564
246
- fractal_server-2.11.0a2.dist-info/WHEEL,sha256=RaoafKOydTQ7I_I3JTrPCg6kUmTgtm4BornzOqyEfJ8,88
247
- fractal_server-2.11.0a2.dist-info/entry_points.txt,sha256=8tV2kynvFkjnhbtDnxAqImL6HMVKsopgGfew0DOp5UY,58
248
- fractal_server-2.11.0a2.dist-info/RECORD,,
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,,