UncountablePythonSDK 0.0.92__py3-none-any.whl → 0.0.95__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.
Potentially problematic release.
This version of UncountablePythonSDK might be problematic. Click here for more details.
- {UncountablePythonSDK-0.0.92.dist-info → UncountablePythonSDK-0.0.95.dist-info}/METADATA +2 -1
- UncountablePythonSDK-0.0.95.dist-info/RECORD +302 -0
- pkgs/argument_parser/argument_parser.py +7 -7
- pkgs/filesystem_utils/_s3_session.py +2 -1
- pkgs/serialization/annotation.py +3 -3
- pkgs/serialization/missing_sentry.py +1 -1
- pkgs/serialization/serial_alias.py +2 -2
- pkgs/serialization/serial_class.py +1 -1
- pkgs/serialization/serial_generic.py +1 -1
- pkgs/serialization/serial_union.py +3 -3
- pkgs/serialization_util/_env_flags.py +3 -0
- pkgs/serialization_util/serialization_helpers.py +5 -5
- pkgs/type_spec/actions_registry/__main__.py +0 -4
- pkgs/type_spec/builder.py +25 -21
- pkgs/type_spec/config.py +2 -5
- pkgs/type_spec/emit_open_api.py +1 -1
- pkgs/type_spec/emit_python.py +44 -28
- pkgs/type_spec/emit_typescript.py +13 -6
- pkgs/type_spec/parts/base.py.prepart +2 -0
- pkgs/type_spec/util.py +3 -5
- pkgs/type_spec/value_spec/__main__.py +15 -5
- pkgs/type_spec/value_spec/emit_python.py +5 -2
- pkgs/type_spec/value_spec/types.py +1 -1
- uncountable/core/client.py +14 -6
- uncountable/core/file_upload.py +5 -0
- uncountable/integration/job.py +2 -2
- uncountable/integration/queue_runner/command_server/types.py +1 -1
- uncountable/integration/server.py +4 -4
- uncountable/types/__init__.py +0 -1
- uncountable/types/api/batch/execute_batch.py +1 -2
- uncountable/types/api/batch/execute_batch_load_async.py +0 -1
- uncountable/types/api/chemical/convert_chemical_formats.py +0 -1
- uncountable/types/api/entity/create_entities.py +1 -2
- uncountable/types/api/entity/create_entity.py +2 -3
- uncountable/types/api/entity/get_entities_data.py +0 -1
- uncountable/types/api/entity/grant_entity_permissions.py +0 -1
- uncountable/types/api/entity/list_entities.py +3 -4
- uncountable/types/api/entity/lock_entity.py +0 -1
- uncountable/types/api/entity/resolve_entity_ids.py +2 -3
- uncountable/types/api/entity/set_entity_field_values.py +0 -1
- uncountable/types/api/entity/set_values.py +0 -1
- uncountable/types/api/entity/transition_entity_phase.py +1 -2
- uncountable/types/api/entity/unlock_entity.py +0 -1
- uncountable/types/api/equipment/associate_equipment_input.py +0 -1
- uncountable/types/api/field_options/upsert_field_options.py +0 -1
- uncountable/types/api/files/download_file.py +1 -2
- uncountable/types/api/id_source/list_id_source.py +3 -4
- uncountable/types/api/id_source/match_id_source.py +1 -2
- uncountable/types/api/input_groups/get_input_group_names.py +0 -1
- uncountable/types/api/inputs/create_inputs.py +2 -3
- uncountable/types/api/inputs/get_input_data.py +5 -6
- uncountable/types/api/inputs/get_input_names.py +3 -4
- uncountable/types/api/inputs/get_inputs_data.py +0 -1
- uncountable/types/api/inputs/set_input_attribute_values.py +0 -1
- uncountable/types/api/inputs/set_input_category.py +1 -2
- uncountable/types/api/inputs/set_input_subcategories.py +0 -1
- uncountable/types/api/inputs/set_intermediate_type.py +1 -2
- uncountable/types/api/material_families/update_entity_material_families.py +1 -2
- uncountable/types/api/outputs/get_output_data.py +2 -3
- uncountable/types/api/outputs/get_output_names.py +0 -1
- uncountable/types/api/outputs/resolve_output_conditions.py +0 -1
- uncountable/types/api/permissions/set_core_permissions.py +1 -2
- uncountable/types/api/project/get_projects.py +3 -4
- uncountable/types/api/project/get_projects_data.py +4 -5
- uncountable/types/api/recipe_links/create_recipe_link.py +1 -2
- uncountable/types/api/recipe_links/remove_recipe_link.py +1 -2
- uncountable/types/api/recipe_metadata/get_recipe_metadata_data.py +3 -4
- uncountable/types/api/recipes/add_recipe_to_project.py +0 -1
- uncountable/types/api/recipes/archive_recipes.py +0 -1
- uncountable/types/api/recipes/associate_recipe_as_input.py +0 -1
- uncountable/types/api/recipes/associate_recipe_as_lot.py +0 -1
- uncountable/types/api/recipes/clear_recipe_outputs.py +0 -1
- uncountable/types/api/recipes/create_recipe.py +1 -2
- uncountable/types/api/recipes/create_recipes.py +1 -2
- uncountable/types/api/recipes/disassociate_recipe_as_input.py +0 -1
- uncountable/types/api/recipes/edit_recipe_inputs.py +3 -4
- uncountable/types/api/recipes/get_column_calculation_values.py +0 -1
- uncountable/types/api/recipes/get_curve.py +0 -1
- uncountable/types/api/recipes/get_recipe_calculations.py +0 -1
- uncountable/types/api/recipes/get_recipe_links.py +1 -2
- uncountable/types/api/recipes/get_recipe_names.py +0 -1
- uncountable/types/api/recipes/get_recipe_output_metadata.py +0 -1
- uncountable/types/api/recipes/get_recipes_data.py +13 -14
- uncountable/types/api/recipes/lock_recipes.py +1 -2
- uncountable/types/api/recipes/remove_recipe_from_project.py +0 -1
- uncountable/types/api/recipes/set_recipe_inputs.py +1 -2
- uncountable/types/api/recipes/set_recipe_metadata.py +0 -1
- uncountable/types/api/recipes/set_recipe_output_annotations.py +2 -3
- uncountable/types/api/recipes/set_recipe_output_file.py +0 -1
- uncountable/types/api/recipes/set_recipe_outputs.py +3 -4
- uncountable/types/api/recipes/set_recipe_tags.py +2 -3
- uncountable/types/api/recipes/unarchive_recipes.py +0 -1
- uncountable/types/api/recipes/unlock_recipes.py +1 -2
- uncountable/types/api/triggers/run_trigger.py +0 -1
- uncountable/types/api/uploader/invoke_uploader.py +0 -1
- uncountable/types/async_batch.py +0 -1
- uncountable/types/async_batch_processor.py +1 -2
- uncountable/types/async_batch_t.py +1 -2
- uncountable/types/async_jobs.py +0 -1
- uncountable/types/async_jobs_t.py +1 -2
- uncountable/types/auth_retrieval.py +0 -1
- uncountable/types/auth_retrieval_t.py +2 -3
- uncountable/types/base.py +0 -1
- uncountable/types/base_t.py +2 -1
- uncountable/types/calculations.py +0 -1
- uncountable/types/calculations_t.py +0 -1
- uncountable/types/chemical_structure.py +0 -1
- uncountable/types/chemical_structure_t.py +0 -1
- uncountable/types/client_base.py +29 -30
- uncountable/types/client_config.py +0 -1
- uncountable/types/client_config_t.py +1 -2
- uncountable/types/curves.py +0 -1
- uncountable/types/curves_t.py +2 -3
- uncountable/types/entity.py +0 -1
- uncountable/types/entity_t.py +3 -4
- uncountable/types/experiment_groups.py +0 -1
- uncountable/types/experiment_groups_t.py +0 -1
- uncountable/types/field_values.py +0 -1
- uncountable/types/field_values_t.py +6 -7
- uncountable/types/fields.py +0 -1
- uncountable/types/fields_t.py +0 -1
- uncountable/types/generic_upload.py +0 -1
- uncountable/types/generic_upload_t.py +2 -3
- uncountable/types/id_source.py +0 -1
- uncountable/types/id_source_t.py +1 -2
- uncountable/types/identifier.py +0 -1
- uncountable/types/identifier_t.py +1 -2
- uncountable/types/input_attributes.py +0 -1
- uncountable/types/input_attributes_t.py +0 -1
- uncountable/types/inputs.py +0 -1
- uncountable/types/inputs_t.py +2 -3
- uncountable/types/integration_server.py +0 -1
- uncountable/types/integration_server_t.py +1 -2
- uncountable/types/job_definition.py +0 -1
- uncountable/types/job_definition_t.py +5 -6
- uncountable/types/outputs.py +0 -1
- uncountable/types/outputs_t.py +1 -2
- uncountable/types/overrides.py +0 -1
- uncountable/types/overrides_t.py +0 -1
- uncountable/types/permissions.py +0 -1
- uncountable/types/permissions_t.py +1 -2
- uncountable/types/phases.py +0 -1
- uncountable/types/phases_t.py +0 -1
- uncountable/types/post_base.py +0 -1
- uncountable/types/post_base_t.py +1 -2
- uncountable/types/queued_job.py +0 -1
- uncountable/types/queued_job_t.py +2 -3
- uncountable/types/recipe_identifiers.py +0 -1
- uncountable/types/recipe_identifiers_t.py +1 -2
- uncountable/types/recipe_inputs.py +0 -1
- uncountable/types/recipe_inputs_t.py +1 -2
- uncountable/types/recipe_links.py +0 -1
- uncountable/types/recipe_links_t.py +2 -3
- uncountable/types/recipe_metadata.py +0 -1
- uncountable/types/recipe_metadata_t.py +0 -1
- uncountable/types/recipe_output_metadata.py +0 -1
- uncountable/types/recipe_output_metadata_t.py +0 -1
- uncountable/types/recipe_tags.py +0 -1
- uncountable/types/recipe_tags_t.py +0 -1
- uncountable/types/recipe_workflow_steps.py +0 -1
- uncountable/types/recipe_workflow_steps_t.py +2 -3
- uncountable/types/recipes.py +0 -1
- uncountable/types/recipes_t.py +0 -1
- uncountable/types/response.py +0 -1
- uncountable/types/response_t.py +0 -1
- uncountable/types/secret_retrieval.py +0 -1
- uncountable/types/secret_retrieval_t.py +2 -3
- uncountable/types/units.py +0 -1
- uncountable/types/units_t.py +0 -1
- uncountable/types/users.py +0 -1
- uncountable/types/users_t.py +0 -1
- uncountable/types/webhook_job.py +0 -1
- uncountable/types/webhook_job_t.py +0 -1
- uncountable/types/workflows.py +0 -1
- uncountable/types/workflows_t.py +1 -2
- UncountablePythonSDK-0.0.92.dist-info/RECORD +0 -301
- {UncountablePythonSDK-0.0.92.dist-info → UncountablePythonSDK-0.0.95.dist-info}/WHEEL +0 -0
- {UncountablePythonSDK-0.0.92.dist-info → UncountablePythonSDK-0.0.95.dist-info}/top_level.txt +0 -0
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
2
|
-
# flake8: noqa: F821
|
|
3
2
|
# ruff: noqa: E402 Q003
|
|
4
3
|
# fmt: off
|
|
5
4
|
# isort: skip_file
|
|
@@ -43,10 +42,10 @@ ENDPOINT_PATH = "api/external/recipes/external_get_recipes_data"
|
|
|
43
42
|
)
|
|
44
43
|
@dataclasses.dataclass(kw_only=True)
|
|
45
44
|
class Arguments:
|
|
46
|
-
recipe_ids:
|
|
47
|
-
project_id:
|
|
48
|
-
offset:
|
|
49
|
-
limit:
|
|
45
|
+
recipe_ids: list[base_t.ObjectId] | None = None
|
|
46
|
+
project_id: base_t.ObjectId | None = None
|
|
47
|
+
offset: int | None = None
|
|
48
|
+
limit: int | None = None
|
|
50
49
|
|
|
51
50
|
|
|
52
51
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
@@ -61,8 +60,8 @@ class RecipeOutput:
|
|
|
61
60
|
output_id: base_t.ObjectId
|
|
62
61
|
replicate_num: int
|
|
63
62
|
quantity_json: base_t.JsonValue
|
|
64
|
-
curve_id:
|
|
65
|
-
output_condition_id:
|
|
63
|
+
curve_id: base_t.ObjectId | None
|
|
64
|
+
output_condition_id: base_t.ObjectId | None
|
|
66
65
|
quantity_dec: Decimal | None = None
|
|
67
66
|
|
|
68
67
|
|
|
@@ -100,13 +99,13 @@ class SimpleOutputCondition:
|
|
|
100
99
|
class RecipeInput:
|
|
101
100
|
id: base_t.ObjectId
|
|
102
101
|
input_id: base_t.ObjectId
|
|
103
|
-
input_lot_recipe_id:
|
|
102
|
+
input_lot_recipe_id: base_t.ObjectId | None
|
|
104
103
|
recipe_step_id: base_t.ObjectId
|
|
105
104
|
quantity_json: base_t.JsonValue
|
|
106
|
-
curve_id:
|
|
105
|
+
curve_id: base_t.ObjectId | None
|
|
107
106
|
actual_quantity_json: base_t.JsonValue
|
|
108
107
|
behavior: str
|
|
109
|
-
ingredient_role_id:
|
|
108
|
+
ingredient_role_id: base_t.ObjectId | None
|
|
110
109
|
quantity_dec: Decimal | None = None
|
|
111
110
|
actual_quantity_dec: Decimal | None = None
|
|
112
111
|
|
|
@@ -117,7 +116,7 @@ class RecipeInput:
|
|
|
117
116
|
)
|
|
118
117
|
@dataclasses.dataclass(kw_only=True)
|
|
119
118
|
class RecipeStep:
|
|
120
|
-
name:
|
|
119
|
+
name: str | None
|
|
121
120
|
recipe_step_id: base_t.ObjectId
|
|
122
121
|
recipe_step_number: int
|
|
123
122
|
instructions: str | None = None
|
|
@@ -129,7 +128,7 @@ class RecipeStep:
|
|
|
129
128
|
)
|
|
130
129
|
@dataclasses.dataclass(kw_only=True)
|
|
131
130
|
class RecipeStepGroup:
|
|
132
|
-
name:
|
|
131
|
+
name: str | None
|
|
133
132
|
recipe_steps: list[RecipeStep]
|
|
134
133
|
|
|
135
134
|
|
|
@@ -152,7 +151,7 @@ class RecipeWorkflowStep:
|
|
|
152
151
|
@dataclasses.dataclass(kw_only=True)
|
|
153
152
|
class RecipeStepRelationship:
|
|
154
153
|
step_relationship_id: base_t.ObjectId
|
|
155
|
-
name:
|
|
154
|
+
name: str | None
|
|
156
155
|
source_recipe_workflow_step_id: base_t.ObjectId
|
|
157
156
|
target_recipe_step_id: base_t.ObjectId
|
|
158
157
|
quantity_dec: Decimal | None = None
|
|
@@ -169,7 +168,7 @@ class Recipe:
|
|
|
169
168
|
create_datetime: str
|
|
170
169
|
last_modified_datetime: str
|
|
171
170
|
name: str
|
|
172
|
-
notes:
|
|
171
|
+
notes: str | None
|
|
173
172
|
workflow_id: base_t.ObjectId
|
|
174
173
|
metadata: list[recipe_metadata_t.RecipeMetadata]
|
|
175
174
|
inputs: list[RecipeInput]
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
2
|
-
# flake8: noqa: F821
|
|
3
2
|
# ruff: noqa: E402 Q003
|
|
4
3
|
# fmt: off
|
|
5
4
|
# isort: skip_file
|
|
@@ -7,7 +6,7 @@ from __future__ import annotations
|
|
|
7
6
|
import typing # noqa: F401
|
|
8
7
|
import datetime # noqa: F401
|
|
9
8
|
from decimal import Decimal # noqa: F401
|
|
10
|
-
from
|
|
9
|
+
from enum import StrEnum
|
|
11
10
|
import dataclasses
|
|
12
11
|
from pkgs.serialization import serial_class
|
|
13
12
|
from ... import identifier_t
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
2
|
-
# flake8: noqa: F821
|
|
3
2
|
# ruff: noqa: E402 Q003
|
|
4
3
|
# fmt: off
|
|
5
4
|
# isort: skip_file
|
|
@@ -32,7 +31,7 @@ ENDPOINT_PATH = "api/external/recipes/external_set_recipe_inputs"
|
|
|
32
31
|
class RecipeInputValue:
|
|
33
32
|
recipe_id: base_t.ObjectId
|
|
34
33
|
input_id: base_t.ObjectId
|
|
35
|
-
recipe_step_id:
|
|
34
|
+
recipe_step_id: base_t.ObjectId | None = None
|
|
36
35
|
value_numeric: Decimal | None = None
|
|
37
36
|
value_str: str | None = None
|
|
38
37
|
set_actual_value: bool | None = None
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
2
|
-
# flake8: noqa: F821
|
|
3
2
|
# ruff: noqa: E402 Q003
|
|
4
3
|
# fmt: off
|
|
5
4
|
# isort: skip_file
|
|
@@ -7,7 +6,7 @@ from __future__ import annotations
|
|
|
7
6
|
import typing # noqa: F401
|
|
8
7
|
import datetime # noqa: F401
|
|
9
8
|
from decimal import Decimal # noqa: F401
|
|
10
|
-
from
|
|
9
|
+
from enum import StrEnum
|
|
11
10
|
import dataclasses
|
|
12
11
|
from pkgs.serialization import serial_class
|
|
13
12
|
from pkgs.serialization import serial_union_annotation
|
|
@@ -84,7 +83,7 @@ class RecipeOutputReplaceAnnotations(RecipeOutputEditBase):
|
|
|
84
83
|
|
|
85
84
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
86
85
|
RecipeOutputUpdateAnnotations = typing.Annotated[
|
|
87
|
-
|
|
86
|
+
RecipeOutputMergeAnnotations | RecipeOutputReplaceAnnotations,
|
|
88
87
|
serial_union_annotation(
|
|
89
88
|
named_type_path="sdk.api.recipes.set_recipe_output_annotations.RecipeOutputUpdateAnnotations",
|
|
90
89
|
discriminator="type",
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
2
|
-
# flake8: noqa: F821
|
|
3
2
|
# ruff: noqa: E402 Q003
|
|
4
3
|
# fmt: off
|
|
5
4
|
# isort: skip_file
|
|
@@ -33,8 +32,8 @@ ENDPOINT_PATH = "api/external/recipes/external_set_recipe_outputs"
|
|
|
33
32
|
)
|
|
34
33
|
@dataclasses.dataclass(kw_only=True)
|
|
35
34
|
class CurveValues:
|
|
36
|
-
x_values: list[
|
|
37
|
-
y_values: list[
|
|
35
|
+
x_values: list[Decimal | None]
|
|
36
|
+
y_values: list[Decimal | None]
|
|
38
37
|
|
|
39
38
|
|
|
40
39
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
@@ -52,7 +51,7 @@ class RecipeOutputValue:
|
|
|
52
51
|
value_str: str | None = None
|
|
53
52
|
value_curve: CurveValues | None = None
|
|
54
53
|
formatting: recipes_t.RecipeAttributeFormatting | None = None
|
|
55
|
-
field_values: list[
|
|
54
|
+
field_values: list[field_values_t.ArgumentValueRefName | field_values_t.ArgumentValueId] | None = None
|
|
56
55
|
|
|
57
56
|
|
|
58
57
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
2
|
-
# flake8: noqa: F821
|
|
3
2
|
# ruff: noqa: E402 Q003
|
|
4
3
|
# fmt: off
|
|
5
4
|
# isort: skip_file
|
|
@@ -7,7 +6,7 @@ from __future__ import annotations
|
|
|
7
6
|
import typing # noqa: F401
|
|
8
7
|
import datetime # noqa: F401
|
|
9
8
|
from decimal import Decimal # noqa: F401
|
|
10
|
-
from
|
|
9
|
+
from enum import StrEnum
|
|
11
10
|
import dataclasses
|
|
12
11
|
from pkgs.serialization import serial_class
|
|
13
12
|
from pkgs.serialization import serial_alias_annotation
|
|
@@ -82,7 +81,7 @@ class RecipeTagOverride(RecipeTagUpdateBase):
|
|
|
82
81
|
|
|
83
82
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
84
83
|
RecipeTagUpdate = typing.Annotated[
|
|
85
|
-
|
|
84
|
+
RecipeTagAppend | RecipeTagRemove | RecipeTagOverride,
|
|
86
85
|
serial_alias_annotation(
|
|
87
86
|
named_type_path="sdk.api.recipes.set_recipe_tags.RecipeTagUpdate",
|
|
88
87
|
),
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
2
|
-
# flake8: noqa: F821
|
|
3
2
|
# ruff: noqa: E402 Q003
|
|
4
3
|
# fmt: off
|
|
5
4
|
# isort: skip_file
|
|
@@ -7,7 +6,7 @@ from __future__ import annotations
|
|
|
7
6
|
import typing # noqa: F401
|
|
8
7
|
import datetime # noqa: F401
|
|
9
8
|
from decimal import Decimal # noqa: F401
|
|
10
|
-
from
|
|
9
|
+
from enum import StrEnum
|
|
11
10
|
import dataclasses
|
|
12
11
|
from pkgs.serialization import serial_class
|
|
13
12
|
from ... import identifier_t
|
uncountable/types/async_batch.py
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
2
|
-
# flake8: noqa: F821
|
|
3
2
|
# ruff: noqa: E402 Q003
|
|
4
3
|
# fmt: off
|
|
5
4
|
# isort: skip_file
|
|
@@ -152,7 +151,7 @@ class AsyncBatchProcessorBase(ABC):
|
|
|
152
151
|
workflow_id: base_t.ObjectId,
|
|
153
152
|
name: str | None = None,
|
|
154
153
|
project_id: base_t.ObjectId | None = None,
|
|
155
|
-
workflow_variant_id:
|
|
154
|
+
workflow_variant_id: base_t.ObjectId | None = None,
|
|
156
155
|
recipe_metadata: list[recipe_metadata_t.MetadataValue] | None = None,
|
|
157
156
|
identifiers: recipe_identifiers_t.RecipeIdentifiers | None = None,
|
|
158
157
|
definition_key: identifier_t.IdentifierKey | None = None,
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
2
|
-
# flake8: noqa: F821
|
|
3
2
|
# ruff: noqa: E402 Q003
|
|
4
3
|
# fmt: off
|
|
5
4
|
# isort: skip_file
|
|
@@ -7,7 +6,7 @@ from __future__ import annotations
|
|
|
7
6
|
import typing # noqa: F401
|
|
8
7
|
import datetime # noqa: F401
|
|
9
8
|
from decimal import Decimal # noqa: F401
|
|
10
|
-
from
|
|
9
|
+
from enum import StrEnum
|
|
11
10
|
import dataclasses
|
|
12
11
|
from pkgs.serialization import serial_class
|
|
13
12
|
from . import base_t
|
uncountable/types/async_jobs.py
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
2
|
-
# flake8: noqa: F821
|
|
3
2
|
# ruff: noqa: E402 Q003
|
|
4
3
|
# fmt: off
|
|
5
4
|
# isort: skip_file
|
|
@@ -7,7 +6,7 @@ from __future__ import annotations
|
|
|
7
6
|
import typing # noqa: F401
|
|
8
7
|
import datetime # noqa: F401
|
|
9
8
|
from decimal import Decimal # noqa: F401
|
|
10
|
-
from
|
|
9
|
+
from enum import StrEnum
|
|
11
10
|
from pkgs.serialization import serial_string_enum
|
|
12
11
|
|
|
13
12
|
__all__: list[str] = [
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
2
|
-
# flake8: noqa: F821
|
|
3
2
|
# ruff: noqa: E402 Q003
|
|
4
3
|
# fmt: off
|
|
5
4
|
# isort: skip_file
|
|
@@ -7,7 +6,7 @@ from __future__ import annotations
|
|
|
7
6
|
import typing # noqa: F401
|
|
8
7
|
import datetime # noqa: F401
|
|
9
8
|
from decimal import Decimal # noqa: F401
|
|
10
|
-
from
|
|
9
|
+
from enum import StrEnum
|
|
11
10
|
import dataclasses
|
|
12
11
|
from pkgs.serialization import serial_class
|
|
13
12
|
from pkgs.serialization import serial_union_annotation
|
|
@@ -62,7 +61,7 @@ class AuthRetrievalBasic(AuthRetrievalBase):
|
|
|
62
61
|
|
|
63
62
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
64
63
|
AuthRetrieval = typing.Annotated[
|
|
65
|
-
|
|
64
|
+
AuthRetrievalOAuth | AuthRetrievalBasic,
|
|
66
65
|
serial_union_annotation(
|
|
67
66
|
named_type_path="sdk.auth_retrieval.AuthRetrieval",
|
|
68
67
|
discriminator="type",
|
uncountable/types/base.py
CHANGED
uncountable/types/base_t.py
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
2
|
-
# flake8: noqa: F821
|
|
3
2
|
# ruff: noqa: E402 Q003
|
|
4
3
|
# fmt: off
|
|
5
4
|
# isort: skip_file
|
|
@@ -39,6 +38,8 @@ PureJsonScalar = Union[str, float, bool, None]
|
|
|
39
38
|
# Regular expressions for identifying ref names and IDs. Ref names should be
|
|
40
39
|
# using this regular expression as a constriant in the database.
|
|
41
40
|
REF_NAME_REGEX = r"^[a-zA-Z0-9_/-]+$"
|
|
41
|
+
REF_NAME_STRICT_REGEX_STRING = "^[a-zA-Z_][a-zA-Z0-9_]*$"
|
|
42
|
+
REF_NAME_STRICT_REGEX = rf"{REF_NAME_STRICT_REGEX_STRING}"
|
|
42
43
|
# Ids matching a strict integer number are converted to integers
|
|
43
44
|
ID_REGEX = r"-?[1-9][0-9]{0,20}"
|
|
44
45
|
|
uncountable/types/client_base.py
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
2
|
-
# flake8: noqa: F821
|
|
3
2
|
# ruff: noqa: E402 Q003
|
|
4
3
|
# fmt: off
|
|
5
4
|
# isort: skip_file
|
|
@@ -290,7 +289,7 @@ class ClientMethods(ABC):
|
|
|
290
289
|
entity_type: entity_t.LimitedEntityType,
|
|
291
290
|
definition_id: base_t.ObjectId | None = None,
|
|
292
291
|
definition_key: identifier_t.IdentifierKey | None = None,
|
|
293
|
-
field_values:
|
|
292
|
+
field_values: list[field_values_t.FieldRefNameValue] | None = None,
|
|
294
293
|
) -> create_entity_t.Data:
|
|
295
294
|
"""Creates a new Uncountable entity
|
|
296
295
|
|
|
@@ -337,7 +336,7 @@ class ClientMethods(ABC):
|
|
|
337
336
|
workflow_id: base_t.ObjectId,
|
|
338
337
|
name: str | None = None,
|
|
339
338
|
project_id: base_t.ObjectId | None = None,
|
|
340
|
-
workflow_variant_id:
|
|
339
|
+
workflow_variant_id: base_t.ObjectId | None = None,
|
|
341
340
|
recipe_metadata: list[recipe_metadata_t.MetadataValue] | None = None,
|
|
342
341
|
identifiers: recipe_identifiers_t.RecipeIdentifiers | None = None,
|
|
343
342
|
definition_key: identifier_t.IdentifierKey | None = None,
|
|
@@ -375,7 +374,7 @@ class ClientMethods(ABC):
|
|
|
375
374
|
*,
|
|
376
375
|
recipe_from_key: identifier_t.IdentifierKey,
|
|
377
376
|
recipe_to_key: identifier_t.IdentifierKey,
|
|
378
|
-
link_type: typing.
|
|
377
|
+
link_type: typing.Literal[recipe_links_t.RecipeLinkType.CHILD] | typing.Literal[recipe_links_t.RecipeLinkType.CONTROL] | typing.Literal[recipe_links_t.RecipeLinkType.USER_LINK],
|
|
379
378
|
name: str,
|
|
380
379
|
) -> create_recipe_link_t.Data:
|
|
381
380
|
"""Create a link between two recipes. Skip if the link already exists
|
|
@@ -570,10 +569,10 @@ class ClientMethods(ABC):
|
|
|
570
569
|
self,
|
|
571
570
|
*,
|
|
572
571
|
material_family_id: base_t.ObjectId,
|
|
573
|
-
input_ids:
|
|
574
|
-
is_parameter:
|
|
575
|
-
offset:
|
|
576
|
-
limit:
|
|
572
|
+
input_ids: list[base_t.ObjectId] | None,
|
|
573
|
+
is_parameter: bool | None,
|
|
574
|
+
offset: int | None = None,
|
|
575
|
+
limit: int | None = None,
|
|
577
576
|
) -> get_input_data_t.Data:
|
|
578
577
|
"""Gets the attribute, categorization and other metadata associated with a set of inputs. An input is either an ingredient or process parameter, with metadata and calculations assigned separately
|
|
579
578
|
|
|
@@ -620,9 +619,9 @@ class ClientMethods(ABC):
|
|
|
620
619
|
self,
|
|
621
620
|
*,
|
|
622
621
|
material_family_id: base_t.ObjectId,
|
|
623
|
-
is_parameter:
|
|
624
|
-
offset:
|
|
625
|
-
limit:
|
|
622
|
+
is_parameter: bool | None,
|
|
623
|
+
offset: int | None = None,
|
|
624
|
+
limit: int | None = None,
|
|
626
625
|
) -> get_input_names_t.Data:
|
|
627
626
|
"""Gets the name of all inputs for a material family. An input is either an ingredient or process parameter, with metadata and calculations assigned separately
|
|
628
627
|
|
|
@@ -720,7 +719,7 @@ class ClientMethods(ABC):
|
|
|
720
719
|
self,
|
|
721
720
|
*,
|
|
722
721
|
all_material_families: bool,
|
|
723
|
-
material_family_id:
|
|
722
|
+
material_family_id: base_t.ObjectId | None,
|
|
724
723
|
) -> get_projects_t.Data:
|
|
725
724
|
"""Gets either all projects created in the platform, or the projects associated with a material family ID. Projects are where experiments are placed in Uncountable, similar to folders in a directory structure
|
|
726
725
|
|
|
@@ -742,8 +741,8 @@ class ClientMethods(ABC):
|
|
|
742
741
|
self,
|
|
743
742
|
*,
|
|
744
743
|
project_ids: list[base_t.ObjectId],
|
|
745
|
-
offset:
|
|
746
|
-
limit:
|
|
744
|
+
offset: int | None = None,
|
|
745
|
+
limit: int | None = None,
|
|
747
746
|
) -> get_projects_data_t.Data:
|
|
748
747
|
"""Gets either all data associated with a set of projects created in the platform. Because Uncountables recipe structure is complex, various data values are exploded out to increase efficiency in parsing, and this page is paginated to prevent too large of return values
|
|
749
748
|
|
|
@@ -790,7 +789,7 @@ class ClientMethods(ABC):
|
|
|
790
789
|
*,
|
|
791
790
|
recipe_ids: list[base_t.ObjectId],
|
|
792
791
|
depth: int = 1,
|
|
793
|
-
link_types:
|
|
792
|
+
link_types: list[recipe_links_t.RecipeLinkType] | None,
|
|
794
793
|
) -> get_recipe_links_t.Data:
|
|
795
794
|
"""Gets the links for the passed recipes
|
|
796
795
|
|
|
@@ -814,9 +813,9 @@ class ClientMethods(ABC):
|
|
|
814
813
|
self,
|
|
815
814
|
*,
|
|
816
815
|
material_family_id: base_t.ObjectId,
|
|
817
|
-
recipe_metadata_ids:
|
|
818
|
-
offset:
|
|
819
|
-
limit:
|
|
816
|
+
recipe_metadata_ids: list[base_t.ObjectId] | None,
|
|
817
|
+
offset: int | None = None,
|
|
818
|
+
limit: int | None = None,
|
|
820
819
|
) -> get_recipe_metadata_data_t.Data:
|
|
821
820
|
"""Gets the recipe metadata. Recipe metadata is data associated with experiments that is not an input, output or calculation, such as a sample ID.
|
|
822
821
|
|
|
@@ -879,10 +878,10 @@ class ClientMethods(ABC):
|
|
|
879
878
|
def get_recipes_data(
|
|
880
879
|
self,
|
|
881
880
|
*,
|
|
882
|
-
recipe_ids:
|
|
883
|
-
project_id:
|
|
884
|
-
offset:
|
|
885
|
-
limit:
|
|
881
|
+
recipe_ids: list[base_t.ObjectId] | None = None,
|
|
882
|
+
project_id: base_t.ObjectId | None = None,
|
|
883
|
+
offset: int | None = None,
|
|
884
|
+
limit: int | None = None,
|
|
886
885
|
) -> get_recipes_data_t.Data:
|
|
887
886
|
"""Gets all data associated with a set of recipes. Because Uncountables recipe structure is complex, various data values are exploded out to increase efficiency in parsing, and this page is paginated to prevent too large of return values
|
|
888
887
|
|
|
@@ -963,8 +962,8 @@ class ClientMethods(ABC):
|
|
|
963
962
|
config_reference: str,
|
|
964
963
|
entity_type: entity_t.EntityType | None = None,
|
|
965
964
|
attributes: dict[OpaqueKey, base_t.JsonValue] | None = None,
|
|
966
|
-
offset:
|
|
967
|
-
limit:
|
|
965
|
+
offset: int | None = None,
|
|
966
|
+
limit: int | None = None,
|
|
968
967
|
) -> list_entities_t.Data:
|
|
969
968
|
"""Uses a structured loading configuration to list entities in the system
|
|
970
969
|
|
|
@@ -993,8 +992,8 @@ class ClientMethods(ABC):
|
|
|
993
992
|
*,
|
|
994
993
|
spec: id_source_t.IdSourceSpec,
|
|
995
994
|
search_label: str,
|
|
996
|
-
offset:
|
|
997
|
-
limit:
|
|
995
|
+
offset: int | None = None,
|
|
996
|
+
limit: int | None = None,
|
|
998
997
|
) -> list_id_source_t.Data:
|
|
999
998
|
"""Lists id and label pairs
|
|
1000
999
|
|
|
@@ -1123,7 +1122,7 @@ class ClientMethods(ABC):
|
|
|
1123
1122
|
*,
|
|
1124
1123
|
recipe_from_key: identifier_t.IdentifierKey,
|
|
1125
1124
|
recipe_to_key: identifier_t.IdentifierKey,
|
|
1126
|
-
link_type: typing.
|
|
1125
|
+
link_type: typing.Literal[recipe_links_t.RecipeLinkType.CHILD] | typing.Literal[recipe_links_t.RecipeLinkType.CONTROL] | typing.Literal[recipe_links_t.RecipeLinkType.USER_LINK],
|
|
1127
1126
|
) -> remove_recipe_link_t.Data:
|
|
1128
1127
|
"""Remove a link between two recipes. Skip if the link doesn't already exist
|
|
1129
1128
|
|
|
@@ -1146,7 +1145,7 @@ class ClientMethods(ABC):
|
|
|
1146
1145
|
def resolve_entity_ids(
|
|
1147
1146
|
self,
|
|
1148
1147
|
*,
|
|
1149
|
-
entity_ids: list[
|
|
1148
|
+
entity_ids: list[str | base_t.ObjectId],
|
|
1150
1149
|
entity_type: entity_t.EntityType,
|
|
1151
1150
|
) -> resolve_entity_ids_t.Data:
|
|
1152
1151
|
"""Gets the names for passed in ids
|
|
@@ -1278,7 +1277,7 @@ class ClientMethods(ABC):
|
|
|
1278
1277
|
self,
|
|
1279
1278
|
*,
|
|
1280
1279
|
input_key: identifier_t.IdentifierKey,
|
|
1281
|
-
category_id:
|
|
1280
|
+
category_id: int | None,
|
|
1282
1281
|
material_family_ids: list[int] | None = None,
|
|
1283
1282
|
) -> set_input_category_t.Data:
|
|
1284
1283
|
"""Sets subcategories for an input
|
|
@@ -1575,7 +1574,7 @@ class ClientMethods(ABC):
|
|
|
1575
1574
|
self,
|
|
1576
1575
|
*,
|
|
1577
1576
|
entity_key: identifier_t.IdentifierKey,
|
|
1578
|
-
entity_type: typing.
|
|
1577
|
+
entity_type: typing.Literal[entity_t.EntityType.RECIPE_METADATA] | typing.Literal[entity_t.EntityType.INGREDIENT] | typing.Literal[entity_t.EntityType.OUTPUT] | typing.Literal[entity_t.EntityType.CONDITION_PARAMETER] | typing.Literal[entity_t.EntityType.INGREDIENT_ATTRIBUTE],
|
|
1579
1578
|
material_family_ids: list[base_t.ObjectId],
|
|
1580
1579
|
update_type: post_base_t.UpdateType,
|
|
1581
1580
|
) -> update_entity_material_families_t.Data:
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
2
|
-
# flake8: noqa: F821
|
|
3
2
|
# ruff: noqa: E402 Q003
|
|
4
3
|
# fmt: off
|
|
5
4
|
# isort: skip_file
|
|
@@ -22,5 +21,5 @@ __all__: list[str] = [
|
|
|
22
21
|
@dataclasses.dataclass(kw_only=True)
|
|
23
22
|
class ClientConfigOptions:
|
|
24
23
|
allow_insecure_tls: bool = False
|
|
25
|
-
extra_headers:
|
|
24
|
+
extra_headers: dict[str, str] | None = None
|
|
26
25
|
# DO NOT MODIFY -- This file is generated by type_spec
|
uncountable/types/curves.py
CHANGED
uncountable/types/curves_t.py
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
2
|
-
# flake8: noqa: F821
|
|
3
2
|
# ruff: noqa: E402 Q003
|
|
4
3
|
# fmt: off
|
|
5
4
|
# isort: skip_file
|
|
@@ -7,7 +6,7 @@ from __future__ import annotations
|
|
|
7
6
|
import typing # noqa: F401
|
|
8
7
|
import datetime # noqa: F401
|
|
9
8
|
from decimal import Decimal # noqa: F401
|
|
10
|
-
from
|
|
9
|
+
from enum import StrEnum
|
|
11
10
|
import dataclasses
|
|
12
11
|
from pkgs.serialization import serial_class
|
|
13
12
|
from . import base_t
|
|
@@ -32,7 +31,7 @@ class CurveAxisType(StrEnum):
|
|
|
32
31
|
@dataclasses.dataclass(kw_only=True)
|
|
33
32
|
class Curve:
|
|
34
33
|
id: base_t.ObjectId
|
|
35
|
-
x_type: typing.
|
|
34
|
+
x_type: typing.Literal[CurveAxisType.NUMERIC] | typing.Literal[CurveAxisType.TIMESTAMP]
|
|
36
35
|
x_values: list[CurveValue]
|
|
37
36
|
y_type: typing.Union[typing.Literal[CurveAxisType.NUMERIC]]
|
|
38
37
|
y_values: list[CurveValue]
|
uncountable/types/entity.py
CHANGED
uncountable/types/entity_t.py
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
2
|
-
# flake8: noqa: F821
|
|
3
2
|
# ruff: noqa: E402 Q003
|
|
4
3
|
# fmt: off
|
|
5
4
|
# isort: skip_file
|
|
@@ -7,7 +6,7 @@ from __future__ import annotations
|
|
|
7
6
|
import typing # noqa: F401
|
|
8
7
|
import datetime # noqa: F401
|
|
9
8
|
from decimal import Decimal # noqa: F401
|
|
10
|
-
from
|
|
9
|
+
from enum import StrEnum
|
|
11
10
|
import dataclasses
|
|
12
11
|
from pkgs.serialization import serial_class
|
|
13
12
|
from pkgs.serialization import serial_alias_annotation
|
|
@@ -347,7 +346,7 @@ class EntityType(StrEnum):
|
|
|
347
346
|
|
|
348
347
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
349
348
|
LimitedEntityType = typing.Annotated[
|
|
350
|
-
typing.
|
|
349
|
+
typing.Literal[EntityType.LAB_REQUEST] | typing.Literal[EntityType.APPROVAL] | typing.Literal[EntityType.CUSTOM_ENTITY] | typing.Literal[EntityType.INVENTORY_AMOUNT] | typing.Literal[EntityType.TASK] | typing.Literal[EntityType.PROJECT] | typing.Literal[EntityType.EQUIPMENT] | typing.Literal[EntityType.INV_LOCAL_LOCATIONS] | typing.Literal[EntityType.FIELD_OPTION_SET] | typing.Literal[EntityType.WEBHOOK] | typing.Literal[EntityType.SPECS] | typing.Literal[EntityType.GOAL] | typing.Literal[EntityType.INGREDIENT_TAG_MAP] | typing.Literal[EntityType.INGREDIENT_TAG] | typing.Literal[EntityType.CONDITION_PARAMETER] | typing.Literal[EntityType.OUTPUT] | typing.Literal[EntityType.OUTPUT_CONDITION_PARAMETER] | typing.Literal[EntityType.ASYNC_JOB],
|
|
351
350
|
serial_alias_annotation(
|
|
352
351
|
named_type_path="sdk.entity.LimitedEntityType",
|
|
353
352
|
),
|
|
@@ -365,7 +364,7 @@ class EntityPermissionType(StrEnum):
|
|
|
365
364
|
|
|
366
365
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
367
366
|
GrantableEntityPermissionType = typing.Annotated[
|
|
368
|
-
typing.
|
|
367
|
+
typing.Literal[EntityPermissionType.READ] | typing.Literal[EntityPermissionType.WRITE],
|
|
369
368
|
serial_alias_annotation(
|
|
370
369
|
named_type_path="sdk.entity.GrantableEntityPermissionType",
|
|
371
370
|
),
|