-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Switch to Pydantic V2? #5
Comments
Thanks for the heads up @tcompa. I tried to update everything to pydantic v2.0 on https://github.com/Apricot-Therapeutics/APx_fractal_task_collection/tree/pydantic_v2. Works for me locally, let me know if something is still wrong. |
It does work, thanks! First, our GitHub Action now runs successfully: https://github.com/fractal-analytics-platform/fractal-tasks-core/actions/runs/10037714190/job/27738094738?pr=793. Second, I cloned the apx repo to review how the manifest is changing.
The diff output is below. Apart from the diff --git a/src/apx_fractal_task_collection/__FRACTAL_MANIFEST__.json b/src/apx_fractal_task_collection/__FRACTAL_MANIFEST__.json
index c7fe603..51c7486 100644
--- a/src/apx_fractal_task_collection/__FRACTAL_MANIFEST__.json
+++ b/src/apx_fractal_task_collection/__FRACTAL_MANIFEST__.json
@@ -1,22 +1,21 @@
{
- "args_schema_version": "pydantic_v1",
+ "args_schema_version": "pydantic_v2",
"has_args_schemas": true,
"manifest_version": "2",
"task_list": [
{
"args_schema_parallel": {
- "additionalProperties": false,
- "definitions": {
+ "$defs": {
"ChannelInputModel": {
"description": "A channel which is specified by either `wavelength_id` or `label`.",
"properties": {
"label": {
- "description": "Name of the channel.",
+ "description": "Name of the channel. Can only be specified if wavelength_id is not set.",
"title": "Label",
"type": "string"
},
"wavelength_id": {
- "description": "Unique ID for the channel wavelength, e.g. `A01_C01`.",
+ "description": "Unique ID for the channel wavelength, e.g. `A01_C01`. Can only be specified if label is not set.",
"title": "Wavelength Id",
"type": "string"
}
@@ -55,6 +54,7 @@
"type": "object"
}
},
+ "additionalProperties": false,
"properties": {
"ROI_table_name": {
"description": "Missing description",
@@ -70,7 +70,7 @@
"channels_to_exclude": {
"description": "List of channels to exclude for intensity and texture measurements. Use the channel label to indicate single channels. If None, no channels are excluded.",
"items": {
- "$ref": "#/definitions/ChannelInputModel"
+ "$ref": "#/$defs/ChannelInputModel"
},
"title": "Channels To Exclude",
"type": "array"
@@ -78,7 +78,7 @@
"channels_to_include": {
"description": "List of channels to include for intensity and texture measurements. Use the channel label to indicate single channels. If None, all channels are included.",
"items": {
- "$ref": "#/definitions/ChannelInputModel"
+ "$ref": "#/$defs/ChannelInputModel"
},
"title": "Channels To Include",
"type": "array"
@@ -115,7 +115,7 @@
"measure_texture": {
"allOf": [
{
- "$ref": "#/definitions/TextureFeatures"
+ "$ref": "#/$defs/TextureFeatures"
}
],
"default": {
@@ -210,8 +210,7 @@
"type": "object"
},
"args_schema_parallel": {
- "additionalProperties": false,
- "definitions": {
+ "$defs": {
"InitArgsSegmentSecondary": {
"description": "Segment Secondary HCS Plate init args.",
"properties": {
@@ -250,6 +249,7 @@
"type": "object"
}
},
+ "additionalProperties": false,
"properties": {
"ROI_table_name": {
"description": "Name of the table containing the ROIs.",
@@ -273,9 +273,9 @@
"type": "integer"
},
"init_args": {
- "$ref": "#/definitions/InitArgsSegmentSecondary",
+ "$ref": "#/$defs/InitArgsSegmentSecondary",
"description": "Intialization arguments provided by `init_segment_secondary_objects`.",
- "title": "Init_Args"
+ "title": "Init Args"
},
"level": {
"default": 0,
@@ -330,15 +330,14 @@
},
{
"args_schema_non_parallel": {
- "additionalProperties": false,
- "definitions": {
+ "$defs": {
"MultiplexingAcquisition": {
"description": "Input class for Multiplexing Cellvoyager converter",
"properties": {
"allowed_channels": {
"description": "A list of `OmeroChannel` objects, where each channel must include the `wavelength_id` attribute and where the `wavelength_id` values must be unique across the list.",
"items": {
- "$ref": "#/definitions/OmeroChannel"
+ "$ref": "#/$defs/OmeroChannel"
},
"title": "Allowed Channels",
"type": "array"
@@ -398,7 +397,11 @@
"type": "string"
},
"window": {
- "$ref": "#/definitions/Window",
+ "allOf": [
+ {
+ "$ref": "#/$defs/Window"
+ }
+ ],
"description": "Optional `Window` object to set default display settings for napari.",
"title": "Window"
}
@@ -441,10 +444,11 @@
"type": "object"
}
},
+ "additionalProperties": false,
"properties": {
"acquisitions": {
"additionalProperties": {
- "$ref": "#/definitions/MultiplexingAcquisition"
+ "$ref": "#/$defs/MultiplexingAcquisition"
},
"description": "dictionary of acquisitions. Each key is the acquisition identifier (normally 0, 1, 2, 3 etc.). Each item defines the acquisition by providing the image_dir and the allowed_channels.",
"title": "Acquisitions",
@@ -505,8 +509,7 @@
"type": "object"
},
"args_schema_parallel": {
- "additionalProperties": false,
- "definitions": {
+ "$defs": {
"InitArgsIC6000": {
"description": "Arguments to be passed from IC6000 converter init to compute",
"properties": {
@@ -542,17 +545,20 @@
"image_dir",
"plate_prefix",
"well_ID",
- "image_extension"
+ "image_extension",
+ "image_glob_patterns",
+ "acquisition"
],
"title": "InitArgsIC6000",
"type": "object"
}
},
+ "additionalProperties": false,
"properties": {
"init_args": {
- "$ref": "#/definitions/InitArgsIC6000",
+ "$ref": "#/$defs/InitArgsIC6000",
"description": "Intialization arguments provided by `init_convert_IC600_to_ome_zarr`.",
- "title": "Init_Args"
+ "title": "Init Args"
},
"zarr_url": {
"description": "Path or url to the individual OME-Zarr image to be processed. (standard argument for Fractal tasks, managed by Fractal server).",
@@ -614,8 +620,7 @@
"type": "object"
},
"args_schema_parallel": {
- "additionalProperties": false,
- "definitions": {
+ "$defs": {
"InitArgsLabelAssignment": {
"description": "Arguments to be passed from Label Assignment init to compute",
"properties": {
@@ -646,6 +651,7 @@
"type": "object"
}
},
+ "additionalProperties": false,
"properties": {
"child_table_name": {
"description": "Name of the feature table associated with the child label image.",
@@ -653,9 +659,9 @@
"type": "string"
},
"init_args": {
- "$ref": "#/definitions/InitArgsLabelAssignment",
+ "$ref": "#/$defs/InitArgsLabelAssignment",
"description": "Intialization arguments provided by `init_label_assignment_by_overlap`.",
- "title": "Init_Args"
+ "title": "Init Args"
},
"level": {
"default": 0,
@@ -736,8 +742,7 @@
"type": "object"
},
"args_schema_parallel": {
- "additionalProperties": false,
- "definitions": {
+ "$defs": {
"InitArgsClipLabelImage": {
"description": "Arguments to be passed from Clip Label Image init to compute",
"properties": {
@@ -768,11 +773,12 @@
"type": "object"
}
},
+ "additionalProperties": false,
"properties": {
"init_args": {
- "$ref": "#/definitions/InitArgsClipLabelImage",
+ "$ref": "#/$defs/InitArgsClipLabelImage",
"description": "Intialization arguments provided by `init_clip_label_image`.",
- "title": "Init_Args"
+ "title": "Init Args"
},
"level": {
"default": 0,
@@ -858,8 +864,7 @@
"type": "object"
},
"args_schema_parallel": {
- "additionalProperties": false,
- "definitions": {
+ "$defs": {
"InitArgsMaskLabelImage": {
"description": "Arguments to be passed from Mask Label Image init to compute",
"properties": {
@@ -890,11 +895,12 @@
"type": "object"
}
},
+ "additionalProperties": false,
"properties": {
"init_args": {
- "$ref": "#/definitions/InitArgsMaskLabelImage",
+ "$ref": "#/$defs/InitArgsMaskLabelImage",
"description": "Intialization arguments provided by `init_clip_label_image`.",
- "title": "Init_Args"
+ "title": "Init Args"
},
"level": {
"default": 0,
@@ -974,8 +980,7 @@
"type": "object"
},
"args_schema_parallel": {
- "additionalProperties": false,
- "definitions": {
+ "$defs": {
"InitArgsFilterLabelBySize": {
"description": "Arguments to be passed from Filter Label by Size init to compute",
"properties": {
@@ -996,11 +1001,12 @@
"type": "object"
}
},
+ "additionalProperties": false,
"properties": {
"init_args": {
- "$ref": "#/definitions/InitArgsFilterLabelBySize",
+ "$ref": "#/$defs/InitArgsFilterLabelBySize",
"description": "Intialization arguments provided by `init_filter_label_by_size`.",
- "title": "Init_Args"
+ "title": "Init Args"
},
"level": {
"default": 0,
@@ -1090,8 +1096,7 @@
"type": "object"
},
"args_schema_parallel": {
- "additionalProperties": false,
- "definitions": {
+ "$defs": {
"InitArgsBaSiCPyCalculate": {
"description": "Arguments to be passed from BaSiCPy Calculate init to compute",
"properties": {
@@ -1128,6 +1133,7 @@
"type": "object"
}
},
+ "additionalProperties": false,
"properties": {
"illumination_profiles_folder": {
"description": "Path to folder where illumination profiles will be saved.",
@@ -1135,9 +1141,9 @@
"type": "string"
},
"init_args": {
- "$ref": "#/definitions/InitArgsBaSiCPyCalculate",
+ "$ref": "#/$defs/InitArgsBaSiCPyCalculate",
"description": "Intialization arguments provided by `init_calculate_basicpy_illumination_models`.",
- "title": "Init_Args"
+ "title": "Init Args"
},
"overwrite": {
"default": false,
@@ -1256,8 +1262,7 @@
"type": "object"
},
"args_schema_parallel": {
- "additionalProperties": false,
- "definitions": {
+ "$defs": {
"InitArgsAggregateFeatureTables": {
"description": "Arguments to be passed from BaSiCPy Calculate init to compute",
"properties": {
@@ -1276,11 +1281,12 @@
"type": "object"
}
},
+ "additionalProperties": false,
"properties": {
"init_args": {
- "$ref": "#/definitions/InitArgsAggregateFeatureTables",
+ "$ref": "#/$defs/InitArgsAggregateFeatureTables",
"description": "Missing description",
- "title": "Init_Args"
+ "title": "Init Args"
},
"input_table_name": {
"description": "Name of the feature table.",
@@ -1544,8 +1550,7 @@
"type": "object"
},
"args_schema_parallel": {
- "additionalProperties": false,
- "definitions": {
+ "$defs": {
"InitArgsCorrectChromaticShift": {
"description": "Arguments to be passed from Correct Chromatic Shift init to compute",
"properties": {
@@ -1572,11 +1577,12 @@
"type": "object"
}
},
+ "additionalProperties": false,
"properties": {
"init_args": {
- "$ref": "#/definitions/InitArgsCorrectChromaticShift",
+ "$ref": "#/$defs/InitArgsCorrectChromaticShift",
"description": "Intialization arguments provided by `init_correct_chromatic_shift.py`.",
- "title": "Init_Args"
+ "title": "Init Args"
},
"overwrite_input": {
"default": true,
@@ -1656,8 +1662,7 @@
"type": "object"
},
"args_schema_parallel": {
- "additionalProperties": false,
- "definitions": {
+ "$defs": {
"InitArgsConvertChannelToLabel": {
"description": "Arguments to be passed from Convert Channel to Label init to compute",
"properties": {
@@ -1678,11 +1683,12 @@
"type": "object"
}
},
+ "additionalProperties": false,
"properties": {
"init_args": {
- "$ref": "#/definitions/InitArgsConvertChannelToLabel",
+ "$ref": "#/$defs/InitArgsConvertChannelToLabel",
"description": "Missing description",
- "title": "Init_Args"
+ "title": "Init Args"
},
"output_label_name": {
"description": "Missing description",
@@ -1756,8 +1762,7 @@
"type": "object"
},
"args_schema_parallel": {
- "additionalProperties": false,
- "definitions": {
+ "$defs": {
"InitArgsDetectBlobCentroids": {
"description": "Arguments to be passed from Convert Channel to Label init to compute",
"properties": {
@@ -1778,6 +1783,7 @@
"type": "object"
}
},
+ "additionalProperties": false,
"properties": {
"ROI_table_name": {
"description": "Name of the table containing the ROIs.",
@@ -1785,9 +1791,9 @@
"type": "string"
},
"init_args": {
- "$ref": "#/definitions/InitArgsDetectBlobCentroids",
+ "$ref": "#/$defs/InitArgsDetectBlobCentroids",
"description": "Intialization arguments provided by `init_detect_blob_centroids`.",
- "title": "Init_Args"
+ "title": "Init Args"
},
"level": {
"default": 0,
@@ -1863,24 +1869,23 @@
]
}
{
- "args_schema_version": "pydantic_v1",
+ "args_schema_version": "pydantic_v2",
"has_args_schemas": true,
"manifest_version": "2",
"task_list": [
{
"args_schema_parallel": {
- "additionalProperties": false,
- "definitions": {
+ "$defs": {
"ChannelInputModel": {
"description": "A channel which is specified by either `wavelength_id` or `label`.",
"properties": {
"label": {
- "description": "Name of the channel.",
+ "description": "Name of the channel. Can only be specified if wavelength_id is not set.",
"title": "Label",
"type": "string"
},
"wavelength_id": {
- "description": "Unique ID for the channel wavelength, e.g. `A01_C01`.",
+ "description": "Unique ID for the channel wavelength, e.g. `A01_C01`. Can only be specified if label is not set.",
"title": "Wavelength Id",
"type": "string"
}
@@ -1919,6 +1924,7 @@
"type": "object"
}
},
+ "additionalProperties": false,
"properties": {
"ROI_table_name": {
"description": "Missing description",
@@ -1934,7 +1940,7 @@
"channels_to_exclude": {
"description": "List of channels to exclude for intensity and texture measurements. Use the channel label to indicate single channels. If None, no channels are excluded.",
"items": {
- "$ref": "#/definitions/ChannelInputModel"
+ "$ref": "#/$defs/ChannelInputModel"
},
"title": "Channels To Exclude",
"type": "array"
@@ -1942,7 +1948,7 @@
"channels_to_include": {
"description": "List of channels to include for intensity and texture measurements. Use the channel label to indicate single channels. If None, all channels are included.",
"items": {
- "$ref": "#/definitions/ChannelInputModel"
+ "$ref": "#/$defs/ChannelInputModel"
},
"title": "Channels To Include",
"type": "array"
@@ -1979,7 +1985,7 @@
"measure_texture": {
"allOf": [
{
- "$ref": "#/definitions/TextureFeatures"
+ "$ref": "#/$defs/TextureFeatures"
}
],
"default": {
@@ -2074,8 +2080,7 @@
"type": "object"
},
"args_schema_parallel": {
- "additionalProperties": false,
- "definitions": {
+ "$defs": {
"InitArgsSegmentSecondary": {
"description": "Segment Secondary HCS Plate init args.",
"properties": {
@@ -2114,6 +2119,7 @@
"type": "object"
}
},
+ "additionalProperties": false,
"properties": {
"ROI_table_name": {
"description": "Name of the table containing the ROIs.",
@@ -2137,9 +2143,9 @@
"type": "integer"
},
"init_args": {
- "$ref": "#/definitions/InitArgsSegmentSecondary",
+ "$ref": "#/$defs/InitArgsSegmentSecondary",
"description": "Intialization arguments provided by `init_segment_secondary_objects`.",
- "title": "Init_Args"
+ "title": "Init Args"
},
"level": {
"default": 0,
@@ -2194,15 +2200,14 @@
},
{
"args_schema_non_parallel": {
- "additionalProperties": false,
- "definitions": {
+ "$defs": {
"MultiplexingAcquisition": {
"description": "Input class for Multiplexing Cellvoyager converter",
"properties": {
"allowed_channels": {
"description": "A list of `OmeroChannel` objects, where each channel must include the `wavelength_id` attribute and where the `wavelength_id` values must be unique across the list.",
"items": {
- "$ref": "#/definitions/OmeroChannel"
+ "$ref": "#/$defs/OmeroChannel"
},
"title": "Allowed Channels",
"type": "array"
@@ -2262,7 +2267,11 @@
"type": "string"
},
"window": {
- "$ref": "#/definitions/Window",
+ "allOf": [
+ {
+ "$ref": "#/$defs/Window"
+ }
+ ],
"description": "Optional `Window` object to set default display settings for napari.",
"title": "Window"
}
@@ -2305,10 +2314,11 @@
"type": "object"
}
},
+ "additionalProperties": false,
"properties": {
"acquisitions": {
"additionalProperties": {
- "$ref": "#/definitions/MultiplexingAcquisition"
+ "$ref": "#/$defs/MultiplexingAcquisition"
},
"description": "dictionary of acquisitions. Each key is the acquisition identifier (normally 0, 1, 2, 3 etc.). Each item defines the acquisition by providing the image_dir and the allowed_channels.",
"title": "Acquisitions",
@@ -2369,8 +2379,7 @@
"type": "object"
},
"args_schema_parallel": {
- "additionalProperties": false,
- "definitions": {
+ "$defs": {
"InitArgsIC6000": {
"description": "Arguments to be passed from IC6000 converter init to compute",
"properties": {
@@ -2406,17 +2415,20 @@
"image_dir",
"plate_prefix",
"well_ID",
- "image_extension"
+ "image_extension",
+ "image_glob_patterns",
+ "acquisition"
],
"title": "InitArgsIC6000",
"type": "object"
}
},
+ "additionalProperties": false,
"properties": {
"init_args": {
- "$ref": "#/definitions/InitArgsIC6000",
+ "$ref": "#/$defs/InitArgsIC6000",
"description": "Intialization arguments provided by `init_convert_IC600_to_ome_zarr`.",
- "title": "Init_Args"
+ "title": "Init Args"
},
"zarr_url": {
"description": "Path or url to the individual OME-Zarr image to be processed. (standard argument for Fractal tasks, managed by Fractal server).",
@@ -2478,8 +2490,7 @@
"type": "object"
},
"args_schema_parallel": {
- "additionalProperties": false,
- "definitions": {
+ "$defs": {
"InitArgsLabelAssignment": {
"description": "Arguments to be passed from Label Assignment init to compute",
"properties": {
@@ -2510,6 +2521,7 @@
"type": "object"
}
},
+ "additionalProperties": false,
"properties": {
"child_table_name": {
"description": "Name of the feature table associated with the child label image.",
@@ -2517,9 +2529,9 @@
"type": "string"
},
"init_args": {
- "$ref": "#/definitions/InitArgsLabelAssignment",
+ "$ref": "#/$defs/InitArgsLabelAssignment",
"description": "Intialization arguments provided by `init_label_assignment_by_overlap`.",
- "title": "Init_Args"
+ "title": "Init Args"
},
"level": {
"default": 0,
@@ -2600,8 +2612,7 @@
"type": "object"
},
"args_schema_parallel": {
- "additionalProperties": false,
- "definitions": {
+ "$defs": {
"InitArgsClipLabelImage": {
"description": "Arguments to be passed from Clip Label Image init to compute",
"properties": {
@@ -2632,11 +2643,12 @@
"type": "object"
}
},
+ "additionalProperties": false,
"properties": {
"init_args": {
- "$ref": "#/definitions/InitArgsClipLabelImage",
+ "$ref": "#/$defs/InitArgsClipLabelImage",
"description": "Intialization arguments provided by `init_clip_label_image`.",
- "title": "Init_Args"
+ "title": "Init Args"
},
"level": {
"default": 0,
@@ -2722,8 +2734,7 @@
"type": "object"
},
"args_schema_parallel": {
- "additionalProperties": false,
- "definitions": {
+ "$defs": {
"InitArgsMaskLabelImage": {
"description": "Arguments to be passed from Mask Label Image init to compute",
"properties": {
@@ -2754,11 +2765,12 @@
"type": "object"
}
},
+ "additionalProperties": false,
"properties": {
"init_args": {
- "$ref": "#/definitions/InitArgsMaskLabelImage",
+ "$ref": "#/$defs/InitArgsMaskLabelImage",
"description": "Intialization arguments provided by `init_clip_label_image`.",
- "title": "Init_Args"
+ "title": "Init Args"
},
"level": {
"default": 0,
@@ -2838,8 +2850,7 @@
"type": "object"
},
"args_schema_parallel": {
- "additionalProperties": false,
- "definitions": {
+ "$defs": {
"InitArgsFilterLabelBySize": {
"description": "Arguments to be passed from Filter Label by Size init to compute",
"properties": {
@@ -2860,11 +2871,12 @@
"type": "object"
}
},
+ "additionalProperties": false,
"properties": {
"init_args": {
- "$ref": "#/definitions/InitArgsFilterLabelBySize",
+ "$ref": "#/$defs/InitArgsFilterLabelBySize",
"description": "Intialization arguments provided by `init_filter_label_by_size`.",
- "title": "Init_Args"
+ "title": "Init Args"
},
"level": {
"default": 0,
@@ -2954,8 +2966,7 @@
"type": "object"
},
"args_schema_parallel": {
- "additionalProperties": false,
- "definitions": {
+ "$defs": {
"InitArgsBaSiCPyCalculate": {
"description": "Arguments to be passed from BaSiCPy Calculate init to compute",
"properties": {
@@ -2992,6 +3003,7 @@
"type": "object"
}
},
+ "additionalProperties": false,
"properties": {
"illumination_profiles_folder": {
"description": "Path to folder where illumination profiles will be saved.",
@@ -2999,9 +3011,9 @@
"type": "string"
},
"init_args": {
- "$ref": "#/definitions/InitArgsBaSiCPyCalculate",
+ "$ref": "#/$defs/InitArgsBaSiCPyCalculate",
"description": "Intialization arguments provided by `init_calculate_basicpy_illumination_models`.",
- "title": "Init_Args"
+ "title": "Init Args"
},
"overwrite": {
"default": false,
@@ -3120,8 +3132,7 @@
"type": "object"
},
"args_schema_parallel": {
- "additionalProperties": false,
- "definitions": {
+ "$defs": {
"InitArgsAggregateFeatureTables": {
"description": "Arguments to be passed from BaSiCPy Calculate init to compute",
"properties": {
@@ -3140,11 +3151,12 @@
"type": "object"
}
},
+ "additionalProperties": false,
"properties": {
"init_args": {
- "$ref": "#/definitions/InitArgsAggregateFeatureTables",
+ "$ref": "#/$defs/InitArgsAggregateFeatureTables",
"description": "Missing description",
- "title": "Init_Args"
+ "title": "Init Args"
},
"input_table_name": {
"description": "Name of the feature table.",
@@ -3408,8 +3420,7 @@
"type": "object"
},
"args_schema_parallel": {
- "additionalProperties": false,
- "definitions": {
+ "$defs": {
"InitArgsCorrectChromaticShift": {
"description": "Arguments to be passed from Correct Chromatic Shift init to compute",
"properties": {
@@ -3436,11 +3447,12 @@
"type": "object"
}
},
+ "additionalProperties": false,
"properties": {
"init_args": {
- "$ref": "#/definitions/InitArgsCorrectChromaticShift",
+ "$ref": "#/$defs/InitArgsCorrectChromaticShift",
"description": "Intialization arguments provided by `init_correct_chromatic_shift.py`.",
- "title": "Init_Args"
+ "title": "Init Args"
},
"overwrite_input": {
"default": true,
@@ -3520,8 +3532,7 @@
"type": "object"
},
"args_schema_parallel": {
- "additionalProperties": false,
- "definitions": {
+ "$defs": {
"InitArgsConvertChannelToLabel": {
"description": "Arguments to be passed from Convert Channel to Label init to compute",
"properties": {
@@ -3542,11 +3553,12 @@
"type": "object"
}
},
+ "additionalProperties": false,
"properties": {
"init_args": {
- "$ref": "#/definitions/InitArgsConvertChannelToLabel",
+ "$ref": "#/$defs/InitArgsConvertChannelToLabel",
"description": "Missing description",
- "title": "Init_Args"
+ "title": "Init Args"
},
"output_label_name": {
"description": "Missing description",
@@ -3620,8 +3632,7 @@
"type": "object"
},
"args_schema_parallel": {
- "additionalProperties": false,
- "definitions": {
+ "$defs": {
"InitArgsDetectBlobCentroids": {
"description": "Arguments to be passed from Convert Channel to Label init to compute",
"properties": {
@@ -3642,6 +3653,7 @@
"type": "object"
}
},
+ "additionalProperties": false,
"properties": {
"ROI_table_name": {
"description": "Name of the table containing the ROIs.",
@@ -3649,9 +3661,9 @@
"type": "string"
},
"init_args": {
- "$ref": "#/definitions/InitArgsDetectBlobCentroids",
+ "$ref": "#/$defs/InitArgsDetectBlobCentroids",
"description": "Intialization arguments provided by `init_detect_blob_centroids`.",
- "title": "Init_Args"
+ "title": "Init Args"
},
"level": {
"default": 0, |
As a second check, I replaced
And here is the (more readable) output diff --git a/src/apx_fractal_task_collection/__FRACTAL_MANIFEST__.json b/src/apx_fractal_task_collection/__FRACTAL_MANIFEST__.json
index c7fe603..54ca130 100644
--- a/src/apx_fractal_task_collection/__FRACTAL_MANIFEST__.json
+++ b/src/apx_fractal_task_collection/__FRACTAL_MANIFEST__.json
@@ -1,5 +1,5 @@
{
- "args_schema_version": "pydantic_v1",
+ "args_schema_version": "pydantic_v2",
"has_args_schemas": true,
"manifest_version": "2",
"task_list": [
@@ -11,12 +11,12 @@
"description": "A channel which is specified by either `wavelength_id` or `label`.",
"properties": {
"label": {
- "description": "Name of the channel.",
+ "description": "Name of the channel. Can only be specified if wavelength_id is not set.",
"title": "Label",
"type": "string"
},
"wavelength_id": {
- "description": "Unique ID for the channel wavelength, e.g. `A01_C01`.",
+ "description": "Unique ID for the channel wavelength, e.g. `A01_C01`. Can only be specified if label is not set.",
"title": "Wavelength Id",
"type": "string"
}
@@ -275,7 +275,7 @@
"init_args": {
"$ref": "#/definitions/InitArgsSegmentSecondary",
"description": "Intialization arguments provided by `init_segment_secondary_objects`.",
- "title": "Init_Args"
+ "title": "Init Args"
},
"level": {
"default": 0,
@@ -398,7 +398,11 @@
"type": "string"
},
"window": {
- "$ref": "#/definitions/Window",
+ "allOf": [
+ {
+ "$ref": "#/definitions/Window"
+ }
+ ],
"description": "Optional `Window` object to set default display settings for napari.",
"title": "Window"
}
@@ -542,7 +546,9 @@
"image_dir",
"plate_prefix",
"well_ID",
- "image_extension"
+ "image_extension",
+ "image_glob_patterns",
+ "acquisition"
],
"title": "InitArgsIC6000",
"type": "object"
@@ -552,7 +558,7 @@
"init_args": {
"$ref": "#/definitions/InitArgsIC6000",
"description": "Intialization arguments provided by `init_convert_IC600_to_ome_zarr`.",
- "title": "Init_Args"
+ "title": "Init Args"
},
"zarr_url": {
"description": "Path or url to the individual OME-Zarr image to be processed. (standard argument for Fractal tasks, managed by Fractal server).",
@@ -655,7 +661,7 @@
"init_args": {
"$ref": "#/definitions/InitArgsLabelAssignment",
"description": "Intialization arguments provided by `init_label_assignment_by_overlap`.",
- "title": "Init_Args"
+ "title": "Init Args"
},
"level": {
"default": 0,
@@ -772,7 +778,7 @@
"init_args": {
"$ref": "#/definitions/InitArgsClipLabelImage",
"description": "Intialization arguments provided by `init_clip_label_image`.",
- "title": "Init_Args"
+ "title": "Init Args"
},
"level": {
"default": 0,
@@ -894,7 +900,7 @@
"init_args": {
"$ref": "#/definitions/InitArgsMaskLabelImage",
"description": "Intialization arguments provided by `init_clip_label_image`.",
- "title": "Init_Args"
+ "title": "Init Args"
},
"level": {
"default": 0,
@@ -1000,7 +1006,7 @@
"init_args": {
"$ref": "#/definitions/InitArgsFilterLabelBySize",
"description": "Intialization arguments provided by `init_filter_label_by_size`.",
- "title": "Init_Args"
+ "title": "Init Args"
},
"level": {
"default": 0,
@@ -1137,7 +1143,7 @@
"init_args": {
"$ref": "#/definitions/InitArgsBaSiCPyCalculate",
"description": "Intialization arguments provided by `init_calculate_basicpy_illumination_models`.",
- "title": "Init_Args"
+ "title": "Init Args"
},
"overwrite": {
"default": false,
@@ -1280,7 +1286,7 @@
"init_args": {
"$ref": "#/definitions/InitArgsAggregateFeatureTables",
"description": "Missing description",
- "title": "Init_Args"
+ "title": "Init Args"
},
"input_table_name": {
"description": "Name of the feature table.",
@@ -1576,7 +1582,7 @@
"init_args": {
"$ref": "#/definitions/InitArgsCorrectChromaticShift",
"description": "Intialization arguments provided by `init_correct_chromatic_shift.py`.",
- "title": "Init_Args"
+ "title": "Init Args"
},
"overwrite_input": {
"default": true,
@@ -1682,7 +1688,7 @@
"init_args": {
"$ref": "#/definitions/InitArgsConvertChannelToLabel",
"description": "Missing description",
- "title": "Init_Args"
+ "title": "Init Args"
},
"output_label_name": {
"description": "Missing description",
@@ -1787,7 +1793,7 @@
"init_args": {
"$ref": "#/definitions/InitArgsDetectBlobCentroids",
"description": "Intialization arguments provided by `init_detect_blob_centroids`.",
- "title": "Init_Args"
+ "title": "Init Args"
},
"level": {
"default": 0,
@@ -1863,7 +1869,7 @@
]
}
{
- "args_schema_version": "pydantic_v1",
+ "args_schema_version": "pydantic_v2",
"has_args_schemas": true,
"manifest_version": "2",
"task_list": [
@@ -1875,12 +1881,12 @@
"description": "A channel which is specified by either `wavelength_id` or `label`.",
"properties": {
"label": {
- "description": "Name of the channel.",
+ "description": "Name of the channel. Can only be specified if wavelength_id is not set.",
"title": "Label",
"type": "string"
},
"wavelength_id": {
- "description": "Unique ID for the channel wavelength, e.g. `A01_C01`.",
+ "description": "Unique ID for the channel wavelength, e.g. `A01_C01`. Can only be specified if label is not set.",
"title": "Wavelength Id",
"type": "string"
}
@@ -2139,7 +2145,7 @@
"init_args": {
"$ref": "#/definitions/InitArgsSegmentSecondary",
"description": "Intialization arguments provided by `init_segment_secondary_objects`.",
- "title": "Init_Args"
+ "title": "Init Args"
},
"level": {
"default": 0,
@@ -2262,7 +2268,11 @@
"type": "string"
},
"window": {
- "$ref": "#/definitions/Window",
+ "allOf": [
+ {
+ "$ref": "#/definitions/Window"
+ }
+ ],
"description": "Optional `Window` object to set default display settings for napari.",
"title": "Window"
}
@@ -2406,7 +2416,9 @@
"image_dir",
"plate_prefix",
"well_ID",
- "image_extension"
+ "image_extension",
+ "image_glob_patterns",
+ "acquisition"
],
"title": "InitArgsIC6000",
"type": "object"
@@ -2416,7 +2428,7 @@
"init_args": {
"$ref": "#/definitions/InitArgsIC6000",
"description": "Intialization arguments provided by `init_convert_IC600_to_ome_zarr`.",
- "title": "Init_Args"
+ "title": "Init Args"
},
"zarr_url": {
"description": "Path or url to the individual OME-Zarr image to be processed. (standard argument for Fractal tasks, managed by Fractal server).",
@@ -2519,7 +2531,7 @@
"init_args": {
"$ref": "#/definitions/InitArgsLabelAssignment",
"description": "Intialization arguments provided by `init_label_assignment_by_overlap`.",
- "title": "Init_Args"
+ "title": "Init Args"
},
"level": {
"default": 0,
@@ -2636,7 +2648,7 @@
"init_args": {
"$ref": "#/definitions/InitArgsClipLabelImage",
"description": "Intialization arguments provided by `init_clip_label_image`.",
- "title": "Init_Args"
+ "title": "Init Args"
},
"level": {
"default": 0,
@@ -2758,7 +2770,7 @@
"init_args": {
"$ref": "#/definitions/InitArgsMaskLabelImage",
"description": "Intialization arguments provided by `init_clip_label_image`.",
- "title": "Init_Args"
+ "title": "Init Args"
},
"level": {
"default": 0,
@@ -2864,7 +2876,7 @@
"init_args": {
"$ref": "#/definitions/InitArgsFilterLabelBySize",
"description": "Intialization arguments provided by `init_filter_label_by_size`.",
- "title": "Init_Args"
+ "title": "Init Args"
},
"level": {
"default": 0,
@@ -3001,7 +3013,7 @@
"init_args": {
"$ref": "#/definitions/InitArgsBaSiCPyCalculate",
"description": "Intialization arguments provided by `init_calculate_basicpy_illumination_models`.",
- "title": "Init_Args"
+ "title": "Init Args"
},
"overwrite": {
"default": false,
@@ -3144,7 +3156,7 @@
"init_args": {
"$ref": "#/definitions/InitArgsAggregateFeatureTables",
"description": "Missing description",
- "title": "Init_Args"
+ "title": "Init Args"
},
"input_table_name": {
"description": "Name of the feature table.",
@@ -3440,7 +3452,7 @@
"init_args": {
"$ref": "#/definitions/InitArgsCorrectChromaticShift",
"description": "Intialization arguments provided by `init_correct_chromatic_shift.py`.",
- "title": "Init_Args"
+ "title": "Init Args"
},
"overwrite_input": {
"default": true,
@@ -3546,7 +3558,7 @@
"init_args": {
"$ref": "#/definitions/InitArgsConvertChannelToLabel",
"description": "Missing description",
- "title": "Init_Args"
+ "title": "Init Args"
},
"output_label_name": {
"description": "Missing description",
@@ -3651,7 +3663,7 @@
"init_args": {
"$ref": "#/definitions/InitArgsDetectBlobCentroids",
"description": "Intialization arguments provided by `init_detect_blob_centroids`.",
- "title": "Init_Args"
+ "title": "Init Args"
},
"level": {
"default": 0, |
TL;DR |
Thanks for running the additional checks. Will keep an eye on the PR! |
You may want to update your dependency to fractal-tasks-core 1.2.0, which is now fully using pydantic v2. (and feel free to report any unexpected behavior..) |
Thanks for the update, apx_fractal_tasks_collection main now has all the pydantic v2 changes. |
One of the upcoming
fractal-tasks-core
releases will depend onpydantic>=2
. Using this newfractal-tasks-core
version for generating the manifest ofAPx_fractal_task_collection
currently fails, probably because some Pydantic V1 parts of APx should be updated to work with Pydantic v2 -- see below.This is the failing CI workflow: https://github.com/fractal-analytics-platform/fractal-tasks-core/actions/runs/10006172758/job/27658348914?pr=793.
And here is the relevant bit of traceback for
python src/apx_fractal_task_collection/dev/update_manifest.py
(which points to https://docs.pydantic.dev/2.8/errors/usage_errors/#root-validator-pre-skip):The text was updated successfully, but these errors were encountered: