UncountablePythonSDK 0.0.111__py3-none-any.whl → 0.0.112__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.
- docs/conf.py +2 -2
- docs/justfile +1 -1
- examples/integration-server/jobs/materials_auto/example_runsheet_wh.py +35 -0
- examples/integration-server/jobs/materials_auto/profile.yaml +9 -0
- examples/integration-server/pyproject.toml +2 -2
- pkgs/argument_parser/argument_parser.py +6 -3
- pkgs/type_spec/emit_python.py +9 -3
- pkgs/type_spec/emit_typescript_util.py +16 -1
- pkgs/type_spec/parts/base.py.prepart +4 -0
- pkgs/type_spec/ui_entry_actions/__init__.py +4 -0
- pkgs/type_spec/ui_entry_actions/generate_ui_entry_actions.py +294 -0
- pkgs/type_spec/value_spec/convert_type.py +13 -0
- uncountable/core/client.py +7 -4
- uncountable/integration/executors/generic_upload_executor.py +3 -2
- uncountable/integration/job.py +24 -1
- uncountable/integration/queue_runner/datastore/datastore_sqlite.py +3 -2
- uncountable/integration/scheduler.py +4 -3
- uncountable/types/__init__.py +2 -0
- uncountable/types/api/batch/execute_batch.py +4 -4
- uncountable/types/api/batch/execute_batch_load_async.py +2 -2
- uncountable/types/api/chemical/convert_chemical_formats.py +3 -3
- uncountable/types/api/condition_parameters/upsert_condition_match.py +4 -3
- uncountable/types/api/entity/create_entities.py +3 -3
- uncountable/types/api/entity/create_entity.py +3 -3
- uncountable/types/api/entity/create_or_update_entity.py +3 -2
- uncountable/types/api/entity/get_entities_data.py +3 -3
- uncountable/types/api/entity/grant_entity_permissions.py +3 -2
- uncountable/types/api/entity/list_entities.py +4 -4
- uncountable/types/api/entity/lock_entity.py +3 -2
- uncountable/types/api/entity/lookup_entity.py +5 -5
- uncountable/types/api/entity/resolve_entity_ids.py +3 -3
- uncountable/types/api/entity/set_entity_field_values.py +3 -2
- uncountable/types/api/entity/set_values.py +3 -2
- uncountable/types/api/entity/transition_entity_phase.py +5 -4
- uncountable/types/api/entity/unlock_entity.py +3 -2
- uncountable/types/api/equipment/associate_equipment_input.py +2 -2
- uncountable/types/api/field_options/upsert_field_options.py +4 -3
- uncountable/types/api/files/download_file.py +4 -3
- uncountable/types/api/id_source/list_id_source.py +3 -3
- uncountable/types/api/id_source/match_id_source.py +3 -3
- uncountable/types/api/input_groups/get_input_group_names.py +3 -3
- uncountable/types/api/inputs/create_inputs.py +4 -4
- uncountable/types/api/inputs/get_input_data.py +6 -6
- uncountable/types/api/inputs/get_input_names.py +3 -3
- uncountable/types/api/inputs/get_inputs_data.py +6 -6
- uncountable/types/api/inputs/set_input_attribute_values.py +3 -3
- uncountable/types/api/inputs/set_input_category.py +3 -2
- uncountable/types/api/inputs/set_input_subcategories.py +3 -2
- uncountable/types/api/inputs/set_intermediate_type.py +3 -2
- uncountable/types/api/material_families/update_entity_material_families.py +2 -2
- uncountable/types/api/outputs/get_output_data.py +6 -6
- uncountable/types/api/outputs/get_output_names.py +3 -3
- uncountable/types/api/outputs/resolve_output_conditions.py +5 -5
- uncountable/types/api/permissions/set_core_permissions.py +7 -6
- uncountable/types/api/project/get_projects.py +3 -3
- uncountable/types/api/project/get_projects_data.py +3 -3
- uncountable/types/api/recipe_links/create_recipe_link.py +3 -2
- uncountable/types/api/recipe_links/remove_recipe_link.py +3 -2
- uncountable/types/api/recipe_metadata/get_recipe_metadata_data.py +3 -3
- uncountable/types/api/recipes/add_recipe_to_project.py +3 -2
- uncountable/types/api/recipes/add_time_series_data.py +4 -3
- uncountable/types/api/recipes/archive_recipes.py +3 -2
- uncountable/types/api/recipes/associate_recipe_as_input.py +3 -2
- uncountable/types/api/recipes/associate_recipe_as_lot.py +3 -2
- uncountable/types/api/recipes/clear_recipe_outputs.py +3 -2
- uncountable/types/api/recipes/create_recipe.py +2 -2
- uncountable/types/api/recipes/create_recipes.py +4 -4
- uncountable/types/api/recipes/disassociate_recipe_as_input.py +3 -2
- uncountable/types/api/recipes/edit_recipe_inputs.py +17 -16
- uncountable/types/api/recipes/get_column_calculation_values.py +3 -3
- uncountable/types/api/recipes/get_curve.py +2 -2
- uncountable/types/api/recipes/get_recipe_calculations.py +3 -3
- uncountable/types/api/recipes/get_recipe_links.py +2 -2
- uncountable/types/api/recipes/get_recipe_names.py +3 -3
- uncountable/types/api/recipes/get_recipe_output_metadata.py +3 -3
- uncountable/types/api/recipes/get_recipes_data.py +11 -11
- uncountable/types/api/recipes/lock_recipes.py +4 -3
- uncountable/types/api/recipes/remove_recipe_from_project.py +3 -2
- uncountable/types/api/recipes/set_recipe_inputs.py +3 -3
- uncountable/types/api/recipes/set_recipe_metadata.py +3 -2
- uncountable/types/api/recipes/set_recipe_output_annotations.py +6 -6
- uncountable/types/api/recipes/set_recipe_output_file.py +3 -3
- uncountable/types/api/recipes/set_recipe_outputs.py +4 -4
- uncountable/types/api/recipes/set_recipe_tags.py +6 -6
- uncountable/types/api/recipes/unarchive_recipes.py +3 -2
- uncountable/types/api/recipes/unlock_recipes.py +3 -2
- uncountable/types/api/runsheet/__init__.py +1 -0
- uncountable/types/api/runsheet/complete_async_upload.py +41 -0
- uncountable/types/api/triggers/run_trigger.py +3 -2
- uncountable/types/api/uploader/invoke_uploader.py +2 -2
- uncountable/types/async_batch_processor.py +34 -0
- uncountable/types/async_batch_t.py +6 -5
- uncountable/types/auth_retrieval_t.py +4 -3
- uncountable/types/base_t.py +4 -0
- uncountable/types/calculations_t.py +1 -1
- uncountable/types/chemical_structure_t.py +2 -1
- uncountable/types/client_base.py +21 -0
- uncountable/types/client_config_t.py +2 -1
- uncountable/types/curves_t.py +2 -2
- uncountable/types/data_t.py +7 -6
- uncountable/types/entity_t.py +3 -3
- uncountable/types/experiment_groups_t.py +1 -1
- uncountable/types/field_values_t.py +20 -20
- uncountable/types/fields_t.py +1 -1
- uncountable/types/generic_upload_t.py +7 -6
- uncountable/types/id_source_t.py +5 -4
- uncountable/types/identifier_t.py +3 -3
- uncountable/types/input_attributes_t.py +1 -1
- uncountable/types/inputs_t.py +1 -1
- uncountable/types/integration_server_t.py +2 -1
- uncountable/types/job_definition_t.py +14 -13
- uncountable/types/outputs_t.py +1 -1
- uncountable/types/overrides_t.py +3 -2
- uncountable/types/phases_t.py +1 -1
- uncountable/types/queued_job_t.py +7 -7
- uncountable/types/recipe_identifiers_t.py +3 -3
- uncountable/types/recipe_links_t.py +1 -1
- uncountable/types/recipe_metadata_t.py +3 -3
- uncountable/types/recipe_output_metadata_t.py +1 -1
- uncountable/types/recipe_tags_t.py +1 -1
- uncountable/types/recipe_workflow_steps_t.py +5 -4
- uncountable/types/recipes_t.py +2 -1
- uncountable/types/response_t.py +2 -1
- uncountable/types/secret_retrieval_t.py +4 -3
- uncountable/types/units_t.py +1 -1
- uncountable/types/users_t.py +1 -1
- uncountable/types/webhook_job_t.py +4 -3
- uncountable/types/workflows_t.py +2 -2
- {uncountablepythonsdk-0.0.111.dist-info → uncountablepythonsdk-0.0.112.dist-info}/METADATA +2 -1
- {uncountablepythonsdk-0.0.111.dist-info → uncountablepythonsdk-0.0.112.dist-info}/RECORD +132 -127
- {uncountablepythonsdk-0.0.111.dist-info → uncountablepythonsdk-0.0.112.dist-info}/WHEEL +1 -1
- {uncountablepythonsdk-0.0.111.dist-info → uncountablepythonsdk-0.0.112.dist-info}/top_level.txt +0 -0
|
@@ -37,7 +37,7 @@ class InvocationContextType(StrEnum):
|
|
|
37
37
|
@serial_class(
|
|
38
38
|
named_type_path="sdk.queued_job.InvocationContextBase",
|
|
39
39
|
)
|
|
40
|
-
@dataclasses.dataclass(kw_only=True)
|
|
40
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
41
41
|
class InvocationContextBase:
|
|
42
42
|
type: InvocationContextType
|
|
43
43
|
|
|
@@ -47,7 +47,7 @@ class InvocationContextBase:
|
|
|
47
47
|
named_type_path="sdk.queued_job.InvocationContextCron",
|
|
48
48
|
parse_require={"type"},
|
|
49
49
|
)
|
|
50
|
-
@dataclasses.dataclass(kw_only=True)
|
|
50
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
51
51
|
class InvocationContextCron(InvocationContextBase):
|
|
52
52
|
type: typing.Literal[InvocationContextType.CRON] = InvocationContextType.CRON
|
|
53
53
|
|
|
@@ -57,7 +57,7 @@ class InvocationContextCron(InvocationContextBase):
|
|
|
57
57
|
named_type_path="sdk.queued_job.InvocationContextManual",
|
|
58
58
|
parse_require={"type"},
|
|
59
59
|
)
|
|
60
|
-
@dataclasses.dataclass(kw_only=True)
|
|
60
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
61
61
|
class InvocationContextManual(InvocationContextBase):
|
|
62
62
|
type: typing.Literal[InvocationContextType.MANUAL] = InvocationContextType.MANUAL
|
|
63
63
|
|
|
@@ -68,7 +68,7 @@ class InvocationContextManual(InvocationContextBase):
|
|
|
68
68
|
unconverted_values={"webhook_payload"},
|
|
69
69
|
parse_require={"type"},
|
|
70
70
|
)
|
|
71
|
-
@dataclasses.dataclass(kw_only=True)
|
|
71
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
72
72
|
class InvocationContextWebhook(InvocationContextBase):
|
|
73
73
|
type: typing.Literal[InvocationContextType.WEBHOOK] = InvocationContextType.WEBHOOK
|
|
74
74
|
webhook_payload: base_t.JsonValue
|
|
@@ -93,7 +93,7 @@ InvocationContext = typing.Annotated[
|
|
|
93
93
|
@serial_class(
|
|
94
94
|
named_type_path="sdk.queued_job.QueuedJobPayload",
|
|
95
95
|
)
|
|
96
|
-
@dataclasses.dataclass(kw_only=True)
|
|
96
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
97
97
|
class QueuedJobPayload:
|
|
98
98
|
invocation_context: InvocationContext
|
|
99
99
|
|
|
@@ -102,7 +102,7 @@ class QueuedJobPayload:
|
|
|
102
102
|
@serial_class(
|
|
103
103
|
named_type_path="sdk.queued_job.QueuedJobResult",
|
|
104
104
|
)
|
|
105
|
-
@dataclasses.dataclass(kw_only=True)
|
|
105
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
106
106
|
class QueuedJobResult:
|
|
107
107
|
queued_job_uuid: str
|
|
108
108
|
job_result: job_definition_t.JobResult
|
|
@@ -112,7 +112,7 @@ class QueuedJobResult:
|
|
|
112
112
|
@serial_class(
|
|
113
113
|
named_type_path="sdk.queued_job.QueuedJob",
|
|
114
114
|
)
|
|
115
|
-
@dataclasses.dataclass(kw_only=True)
|
|
115
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
116
116
|
class QueuedJob:
|
|
117
117
|
queued_job_uuid: str
|
|
118
118
|
job_ref_name: str
|
|
@@ -25,7 +25,7 @@ __all__: list[str] = [
|
|
|
25
25
|
named_type_path="sdk.recipe_identifiers.RecipeIdentifierEditableName",
|
|
26
26
|
parse_require={"type"},
|
|
27
27
|
)
|
|
28
|
-
@dataclasses.dataclass(kw_only=True)
|
|
28
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
29
29
|
class RecipeIdentifierEditableName:
|
|
30
30
|
type: typing.Literal["name"] = "name"
|
|
31
31
|
editable_name: str
|
|
@@ -37,7 +37,7 @@ class RecipeIdentifierEditableName:
|
|
|
37
37
|
to_string_values={"quantity_dec"},
|
|
38
38
|
parse_require={"type"},
|
|
39
39
|
)
|
|
40
|
-
@dataclasses.dataclass(kw_only=True)
|
|
40
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
41
41
|
class RecipeIdentifierMetadata:
|
|
42
42
|
type: typing.Literal["metadata"] = "metadata"
|
|
43
43
|
recipe_metadata_id: base_t.ObjectId
|
|
@@ -50,7 +50,7 @@ class RecipeIdentifierMetadata:
|
|
|
50
50
|
named_type_path="sdk.recipe_identifiers.RecipeIdentifierMaterialFamily",
|
|
51
51
|
parse_require={"type"},
|
|
52
52
|
)
|
|
53
|
-
@dataclasses.dataclass(kw_only=True)
|
|
53
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
54
54
|
class RecipeIdentifierMaterialFamily:
|
|
55
55
|
type: typing.Literal["material_family_id"] = "material_family_id"
|
|
56
56
|
material_family_id: base_t.ObjectId
|
|
@@ -44,7 +44,7 @@ class RecipeLinkType(StrEnum):
|
|
|
44
44
|
@serial_class(
|
|
45
45
|
named_type_path="sdk.recipe_links.RecipeLink",
|
|
46
46
|
)
|
|
47
|
-
@dataclasses.dataclass(kw_only=True, frozen=True, eq=True)
|
|
47
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True, frozen=True, eq=True) # type: ignore[literal-required]
|
|
48
48
|
class RecipeLink:
|
|
49
49
|
recipe_id_from: base_t.ObjectId
|
|
50
50
|
recipe_id_to: base_t.ObjectId
|
|
@@ -23,7 +23,7 @@ __all__: list[str] = [
|
|
|
23
23
|
unconverted_values={"value_json"},
|
|
24
24
|
to_string_values={"value_numeric"},
|
|
25
25
|
)
|
|
26
|
-
@dataclasses.dataclass(kw_only=True)
|
|
26
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
27
27
|
class MetadataValue:
|
|
28
28
|
metadata_id: base_t.ObjectId
|
|
29
29
|
value_numeric: Decimal | None = None
|
|
@@ -36,7 +36,7 @@ class MetadataValue:
|
|
|
36
36
|
@serial_class(
|
|
37
37
|
named_type_path="sdk.recipe_metadata.SimpleRecipeMetadataField",
|
|
38
38
|
)
|
|
39
|
-
@dataclasses.dataclass(kw_only=True)
|
|
39
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
40
40
|
class SimpleRecipeMetadataField:
|
|
41
41
|
metadata_id: base_t.ObjectId
|
|
42
42
|
name: str
|
|
@@ -49,7 +49,7 @@ class SimpleRecipeMetadataField:
|
|
|
49
49
|
unconverted_values={"quantity_json"},
|
|
50
50
|
to_string_values={"quantity_dec"},
|
|
51
51
|
)
|
|
52
|
-
@dataclasses.dataclass(kw_only=True)
|
|
52
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
53
53
|
class RecipeMetadata:
|
|
54
54
|
metadata_id: base_t.ObjectId
|
|
55
55
|
quantity_dec: Decimal | None = None
|
|
@@ -19,7 +19,7 @@ __all__: list[str] = [
|
|
|
19
19
|
@serial_class(
|
|
20
20
|
named_type_path="sdk.recipe_output_metadata.RecipeOutputMetadataField",
|
|
21
21
|
)
|
|
22
|
-
@dataclasses.dataclass(kw_only=True)
|
|
22
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
23
23
|
class RecipeOutputMetadataField:
|
|
24
24
|
id: base_t.ObjectId
|
|
25
25
|
name: str
|
|
@@ -19,7 +19,7 @@ __all__: list[str] = [
|
|
|
19
19
|
@serial_class(
|
|
20
20
|
named_type_path="sdk.recipe_tags.SimpleRecipeTag",
|
|
21
21
|
)
|
|
22
|
-
@dataclasses.dataclass(kw_only=True)
|
|
22
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
23
23
|
class SimpleRecipeTag:
|
|
24
24
|
recipe_tag_id: base_t.ObjectId
|
|
25
25
|
name: str
|
|
@@ -10,6 +10,7 @@ from enum import StrEnum
|
|
|
10
10
|
import dataclasses
|
|
11
11
|
from pkgs.serialization import serial_class
|
|
12
12
|
from pkgs.serialization import serial_union_annotation
|
|
13
|
+
from . import base_t
|
|
13
14
|
from . import identifier_t
|
|
14
15
|
|
|
15
16
|
__all__: list[str] = [
|
|
@@ -34,7 +35,7 @@ class RecipeWorkflowStepIdentifierType(StrEnum):
|
|
|
34
35
|
@serial_class(
|
|
35
36
|
named_type_path="sdk.recipe_workflow_steps.RecipeWorkflowStepIdentifierBase",
|
|
36
37
|
)
|
|
37
|
-
@dataclasses.dataclass(kw_only=True)
|
|
38
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
38
39
|
class RecipeWorkflowStepIdentifierBase:
|
|
39
40
|
type: RecipeWorkflowStepIdentifierType
|
|
40
41
|
|
|
@@ -44,7 +45,7 @@ class RecipeWorkflowStepIdentifierBase:
|
|
|
44
45
|
named_type_path="sdk.recipe_workflow_steps.RecipeWorkflowStepIdentifierDefault",
|
|
45
46
|
parse_require={"type"},
|
|
46
47
|
)
|
|
47
|
-
@dataclasses.dataclass(kw_only=True)
|
|
48
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
48
49
|
class RecipeWorkflowStepIdentifierDefault(RecipeWorkflowStepIdentifierBase):
|
|
49
50
|
type: typing.Literal[RecipeWorkflowStepIdentifierType.DEFAULT] = RecipeWorkflowStepIdentifierType.DEFAULT
|
|
50
51
|
|
|
@@ -60,7 +61,7 @@ class RecipeWorkflowStepPosition(StrEnum):
|
|
|
60
61
|
named_type_path="sdk.recipe_workflow_steps.RecipeWorkflowStepIdentifierWorkflowStep",
|
|
61
62
|
parse_require={"type"},
|
|
62
63
|
)
|
|
63
|
-
@dataclasses.dataclass(kw_only=True)
|
|
64
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
64
65
|
class RecipeWorkflowStepIdentifierWorkflowStep(RecipeWorkflowStepIdentifierBase):
|
|
65
66
|
type: typing.Literal[RecipeWorkflowStepIdentifierType.WORKFLOW_STEP] = RecipeWorkflowStepIdentifierType.WORKFLOW_STEP
|
|
66
67
|
workflow_step_key: identifier_t.IdentifierKey
|
|
@@ -72,7 +73,7 @@ class RecipeWorkflowStepIdentifierWorkflowStep(RecipeWorkflowStepIdentifierBase)
|
|
|
72
73
|
named_type_path="sdk.recipe_workflow_steps.RecipeWorkflowStepIdentifierKey",
|
|
73
74
|
parse_require={"type"},
|
|
74
75
|
)
|
|
75
|
-
@dataclasses.dataclass(kw_only=True)
|
|
76
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
76
77
|
class RecipeWorkflowStepIdentifierKey:
|
|
77
78
|
type: typing.Literal[RecipeWorkflowStepIdentifierType.IDENTIFIER_KEY] = RecipeWorkflowStepIdentifierType.IDENTIFIER_KEY
|
|
78
79
|
recipe_workflow_step_key: identifier_t.IdentifierKey
|
uncountable/types/recipes_t.py
CHANGED
|
@@ -8,6 +8,7 @@ import datetime # noqa: F401
|
|
|
8
8
|
from decimal import Decimal # noqa: F401
|
|
9
9
|
import dataclasses
|
|
10
10
|
from pkgs.serialization import serial_class
|
|
11
|
+
from . import base_t
|
|
11
12
|
|
|
12
13
|
__all__: list[str] = [
|
|
13
14
|
"RecipeAttributeFormatting",
|
|
@@ -18,7 +19,7 @@ __all__: list[str] = [
|
|
|
18
19
|
@serial_class(
|
|
19
20
|
named_type_path="sdk.recipes.RecipeAttributeFormatting",
|
|
20
21
|
)
|
|
21
|
-
@dataclasses.dataclass(kw_only=True)
|
|
22
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
22
23
|
class RecipeAttributeFormatting:
|
|
23
24
|
background_color: str
|
|
24
25
|
# DO NOT MODIFY -- This file is generated by type_spec
|
uncountable/types/response_t.py
CHANGED
|
@@ -8,6 +8,7 @@ import datetime # noqa: F401
|
|
|
8
8
|
from decimal import Decimal # noqa: F401
|
|
9
9
|
import dataclasses
|
|
10
10
|
from pkgs.serialization import serial_class
|
|
11
|
+
from . import base_t
|
|
11
12
|
|
|
12
13
|
__all__: list[str] = [
|
|
13
14
|
"Response",
|
|
@@ -19,7 +20,7 @@ __all__: list[str] = [
|
|
|
19
20
|
named_type_path="sdk.response.Response",
|
|
20
21
|
parse_require={"status"},
|
|
21
22
|
)
|
|
22
|
-
@dataclasses.dataclass(kw_only=True)
|
|
23
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
23
24
|
class Response:
|
|
24
25
|
status: typing.Literal["ok"] = "ok"
|
|
25
26
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
@@ -10,6 +10,7 @@ from enum import StrEnum
|
|
|
10
10
|
import dataclasses
|
|
11
11
|
from pkgs.serialization import serial_class
|
|
12
12
|
from pkgs.serialization import serial_union_annotation
|
|
13
|
+
from . import base_t
|
|
13
14
|
|
|
14
15
|
__all__: list[str] = [
|
|
15
16
|
"SecretRetrieval",
|
|
@@ -24,7 +25,7 @@ __all__: list[str] = [
|
|
|
24
25
|
@serial_class(
|
|
25
26
|
named_type_path="sdk.secret_retrieval.SecretRetrievalBase",
|
|
26
27
|
)
|
|
27
|
-
@dataclasses.dataclass(kw_only=True, frozen=True, eq=True)
|
|
28
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True, frozen=True, eq=True) # type: ignore[literal-required]
|
|
28
29
|
class SecretRetrievalBase:
|
|
29
30
|
type: SecretRetrievalType
|
|
30
31
|
|
|
@@ -40,7 +41,7 @@ class SecretRetrievalType(StrEnum):
|
|
|
40
41
|
named_type_path="sdk.secret_retrieval.SecretRetrievalEnv",
|
|
41
42
|
parse_require={"type"},
|
|
42
43
|
)
|
|
43
|
-
@dataclasses.dataclass(kw_only=True, frozen=True, eq=True)
|
|
44
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True, frozen=True, eq=True) # type: ignore[literal-required]
|
|
44
45
|
class SecretRetrievalEnv(SecretRetrievalBase):
|
|
45
46
|
type: typing.Literal[SecretRetrievalType.ENV] = SecretRetrievalType.ENV
|
|
46
47
|
env_key: str
|
|
@@ -51,7 +52,7 @@ class SecretRetrievalEnv(SecretRetrievalBase):
|
|
|
51
52
|
named_type_path="sdk.secret_retrieval.SecretRetrievalAWS",
|
|
52
53
|
parse_require={"type"},
|
|
53
54
|
)
|
|
54
|
-
@dataclasses.dataclass(kw_only=True, frozen=True, eq=True)
|
|
55
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True, frozen=True, eq=True) # type: ignore[literal-required]
|
|
55
56
|
class SecretRetrievalAWS(SecretRetrievalBase):
|
|
56
57
|
type: typing.Literal[SecretRetrievalType.AWS] = SecretRetrievalType.AWS
|
|
57
58
|
secret_name: str
|
uncountable/types/units_t.py
CHANGED
|
@@ -19,7 +19,7 @@ __all__: list[str] = [
|
|
|
19
19
|
@serial_class(
|
|
20
20
|
named_type_path="sdk.units.SimpleUnit",
|
|
21
21
|
)
|
|
22
|
-
@dataclasses.dataclass(kw_only=True)
|
|
22
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
23
23
|
class SimpleUnit:
|
|
24
24
|
unit_id: base_t.ObjectId
|
|
25
25
|
name: str
|
uncountable/types/users_t.py
CHANGED
|
@@ -19,7 +19,7 @@ __all__: list[str] = [
|
|
|
19
19
|
@serial_class(
|
|
20
20
|
named_type_path="sdk.users.SimpleUser",
|
|
21
21
|
)
|
|
22
|
-
@dataclasses.dataclass(kw_only=True)
|
|
22
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
23
23
|
class SimpleUser:
|
|
24
24
|
user_id: base_t.ObjectId
|
|
25
25
|
display_name: str
|
|
@@ -23,7 +23,7 @@ __all__: list[str] = [
|
|
|
23
23
|
named_type_path="sdk.webhook_job.WebhookEventPayload",
|
|
24
24
|
unconverted_values={"data"},
|
|
25
25
|
)
|
|
26
|
-
@dataclasses.dataclass(kw_only=True)
|
|
26
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
27
27
|
class WebhookEventPayload:
|
|
28
28
|
data: dict[str, base_t.JsonValue]
|
|
29
29
|
|
|
@@ -32,7 +32,7 @@ class WebhookEventPayload:
|
|
|
32
32
|
@serial_class(
|
|
33
33
|
named_type_path="sdk.webhook_job.WebhookEventBody",
|
|
34
34
|
)
|
|
35
|
-
@dataclasses.dataclass(kw_only=True)
|
|
35
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
36
36
|
class WebhookEventBody(WebhookEventPayload):
|
|
37
37
|
event_id: str
|
|
38
38
|
|
|
@@ -41,7 +41,8 @@ class WebhookEventBody(WebhookEventPayload):
|
|
|
41
41
|
@serial_class(
|
|
42
42
|
named_type_path="sdk.webhook_job.RunsheetWebhookPayload",
|
|
43
43
|
)
|
|
44
|
-
@dataclasses.dataclass(kw_only=True)
|
|
44
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
45
45
|
class RunsheetWebhookPayload:
|
|
46
46
|
entities: list[entity_t.Entity]
|
|
47
|
+
async_job_id: base_t.ObjectId
|
|
47
48
|
# DO NOT MODIFY -- This file is generated by type_spec
|
uncountable/types/workflows_t.py
CHANGED
|
@@ -20,7 +20,7 @@ __all__: list[str] = [
|
|
|
20
20
|
@serial_class(
|
|
21
21
|
named_type_path="sdk.workflows.SimpleWorkflowStep",
|
|
22
22
|
)
|
|
23
|
-
@dataclasses.dataclass(kw_only=True)
|
|
23
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
24
24
|
class SimpleWorkflowStep:
|
|
25
25
|
workflow_step_id: base_t.ObjectId
|
|
26
26
|
name: str | None
|
|
@@ -30,7 +30,7 @@ class SimpleWorkflowStep:
|
|
|
30
30
|
@serial_class(
|
|
31
31
|
named_type_path="sdk.workflows.SimpleWorkflow",
|
|
32
32
|
)
|
|
33
|
-
@dataclasses.dataclass(kw_only=True)
|
|
33
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
34
34
|
class SimpleWorkflow:
|
|
35
35
|
workflow_id: base_t.ObjectId
|
|
36
36
|
name: str
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: UncountablePythonSDK
|
|
3
|
-
Version: 0.0.
|
|
3
|
+
Version: 0.0.112
|
|
4
4
|
Summary: Uncountable SDK
|
|
5
5
|
Project-URL: Homepage, https://github.com/uncountableinc/uncountable-python-sdk
|
|
6
6
|
Project-URL: Repository, https://github.com/uncountableinc/uncountable-python-sdk.git
|
|
@@ -39,6 +39,7 @@ Requires-Dist: grpcio==1.67.1
|
|
|
39
39
|
Requires-Dist: protobuf>=4.21.1
|
|
40
40
|
Requires-Dist: azure-storage-blob==12.*
|
|
41
41
|
Requires-Dist: boto3-stubs[essential,ses]==1.*
|
|
42
|
+
Requires-Dist: msgspec==0.19.*
|
|
42
43
|
Provides-Extra: test
|
|
43
44
|
Requires-Dist: mypy==1.*; extra == "test"
|
|
44
45
|
Requires-Dist: ruff==0.*; extra == "test"
|