UncountablePythonSDK 0.0.90__py3-none-any.whl → 0.0.91__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.

Files changed (34) hide show
  1. {UncountablePythonSDK-0.0.90.dist-info → UncountablePythonSDK-0.0.91.dist-info}/METADATA +2 -2
  2. {UncountablePythonSDK-0.0.90.dist-info → UncountablePythonSDK-0.0.91.dist-info}/RECORD +34 -27
  3. {UncountablePythonSDK-0.0.90.dist-info → UncountablePythonSDK-0.0.91.dist-info}/WHEEL +1 -1
  4. docs/requirements.txt +1 -1
  5. examples/download_files.py +26 -0
  6. pkgs/argument_parser/argument_parser.py +57 -25
  7. pkgs/serialization/__init__.py +7 -3
  8. pkgs/serialization/annotation.py +64 -0
  9. pkgs/serialization/serial_alias.py +47 -0
  10. pkgs/serialization/serial_class.py +26 -32
  11. pkgs/serialization/serial_generic.py +16 -0
  12. pkgs/serialization/serial_union.py +9 -9
  13. pkgs/serialization_util/__init__.py +4 -0
  14. pkgs/serialization_util/dataclasses.py +14 -0
  15. pkgs/serialization_util/serialization_helpers.py +11 -3
  16. pkgs/type_spec/builder.py +41 -5
  17. pkgs/type_spec/emit_python.py +34 -6
  18. pkgs/type_spec/type_info/emit_type_info.py +7 -2
  19. uncountable/core/client.py +58 -1
  20. uncountable/core/environment.py +2 -2
  21. uncountable/integration/scheduler.py +4 -4
  22. uncountable/types/__init__.py +2 -0
  23. uncountable/types/api/chemical/convert_chemical_formats.py +7 -1
  24. uncountable/types/api/entity/transition_entity_phase.py +7 -1
  25. uncountable/types/api/files/__init__.py +1 -0
  26. uncountable/types/api/files/download_file.py +77 -0
  27. uncountable/types/api/permissions/set_core_permissions.py +7 -1
  28. uncountable/types/api/recipes/set_recipe_tags.py +7 -1
  29. uncountable/types/entity_t.py +13 -2
  30. uncountable/types/id_source_t.py +7 -1
  31. uncountable/types/identifier_t.py +7 -1
  32. uncountable/types/overrides_t.py +7 -1
  33. uncountable/types/recipe_identifiers_t.py +13 -2
  34. {UncountablePythonSDK-0.0.90.dist-info → UncountablePythonSDK-0.0.91.dist-info}/top_level.txt +0 -0
@@ -9,6 +9,7 @@ import datetime # noqa: F401
9
9
  from decimal import Decimal # noqa: F401
10
10
  import dataclasses
11
11
  from pkgs.serialization import serial_class
12
+ from pkgs.serialization import serial_alias_annotation
12
13
  from ... import entity_t
13
14
  from ... import identifier_t
14
15
  from ... import response_t
@@ -51,7 +52,12 @@ class TransitionIdentifierTransition:
51
52
 
52
53
 
53
54
  # DO NOT MODIFY -- This file is generated by type_spec
54
- TransitionIdentifier = typing.Union[TransitionIdentifierPhases, TransitionIdentifierTransition]
55
+ TransitionIdentifier = typing.Annotated[
56
+ typing.Union[TransitionIdentifierPhases, TransitionIdentifierTransition],
57
+ serial_alias_annotation(
58
+ named_type_path="sdk.api.entity.transition_entity_phase.TransitionIdentifier",
59
+ ),
60
+ ]
55
61
 
56
62
 
57
63
  # DO NOT MODIFY -- This file is generated by type_spec
@@ -0,0 +1 @@
1
+ # DO NOT MODIFY -- This file is generated by type_spec
@@ -0,0 +1,77 @@
1
+ # DO NOT MODIFY -- This file is generated by type_spec
2
+ # flake8: noqa: F821
3
+ # ruff: noqa: E402 Q003
4
+ # fmt: off
5
+ # isort: skip_file
6
+ from __future__ import annotations
7
+ import typing # noqa: F401
8
+ import datetime # noqa: F401
9
+ from decimal import Decimal # noqa: F401
10
+ from pkgs.strenum_compat import StrEnum
11
+ import dataclasses
12
+ from pkgs.serialization import serial_class
13
+ from pkgs.serialization import serial_union_annotation
14
+ from ... import entity_t
15
+ from ... import identifier_t
16
+
17
+ __all__: list[str] = [
18
+ "Arguments",
19
+ "ENDPOINT_METHOD",
20
+ "ENDPOINT_PATH",
21
+ "FileDownloadQuery",
22
+ "FileDownloadQueryBase",
23
+ "FileDownloadQueryEntityField",
24
+ "FileDownloadQueryType",
25
+ ]
26
+
27
+ ENDPOINT_METHOD = "GET"
28
+ ENDPOINT_PATH = "api/external/files/download_file"
29
+
30
+
31
+ # DO NOT MODIFY -- This file is generated by type_spec
32
+ class FileDownloadQueryType(StrEnum):
33
+ ENTITY_FIELD = "entity_field"
34
+
35
+
36
+ # DO NOT MODIFY -- This file is generated by type_spec
37
+ @serial_class(
38
+ named_type_path="sdk.api.files.download_file.FileDownloadQueryBase",
39
+ )
40
+ @dataclasses.dataclass(kw_only=True)
41
+ class FileDownloadQueryBase:
42
+ type: FileDownloadQueryType
43
+
44
+
45
+ # DO NOT MODIFY -- This file is generated by type_spec
46
+ @serial_class(
47
+ named_type_path="sdk.api.files.download_file.FileDownloadQueryEntityField",
48
+ parse_require={"type"},
49
+ )
50
+ @dataclasses.dataclass(kw_only=True)
51
+ class FileDownloadQueryEntityField(FileDownloadQueryBase):
52
+ type: typing.Literal[FileDownloadQueryType.ENTITY_FIELD] = FileDownloadQueryType.ENTITY_FIELD
53
+ entity: entity_t.EntityIdentifier
54
+ field_key: identifier_t.IdentifierKey
55
+
56
+
57
+ # DO NOT MODIFY -- This file is generated by type_spec
58
+ FileDownloadQuery = typing.Annotated[
59
+ typing.Union[FileDownloadQueryEntityField],
60
+ serial_union_annotation(
61
+ named_type_path="sdk.api.files.download_file.FileDownloadQuery",
62
+ discriminator="type",
63
+ discriminator_map={
64
+ "entity_field": FileDownloadQueryEntityField,
65
+ },
66
+ ),
67
+ ]
68
+
69
+
70
+ # DO NOT MODIFY -- This file is generated by type_spec
71
+ @serial_class(
72
+ named_type_path="sdk.api.files.download_file.Arguments",
73
+ )
74
+ @dataclasses.dataclass(kw_only=True)
75
+ class Arguments:
76
+ file_query: FileDownloadQuery
77
+ # DO NOT MODIFY -- This file is generated by type_spec
@@ -9,6 +9,7 @@ import datetime # noqa: F401
9
9
  from decimal import Decimal # noqa: F401
10
10
  import dataclasses
11
11
  from pkgs.serialization import serial_class
12
+ from pkgs.serialization import serial_alias_annotation
12
13
  from ... import identifier_t
13
14
  from ... import permissions_t
14
15
  from ... import post_base_t
@@ -73,7 +74,12 @@ class PermissionsScopeAllMaterialFamilies:
73
74
 
74
75
 
75
76
  # DO NOT MODIFY -- This file is generated by type_spec
76
- PermissionsScope = typing.Union[PermissionsScopeProject, PermissionsScopeRecipe, PermissionsScopeMaterialFamily, PermissionsScopeAllMaterialFamilies]
77
+ PermissionsScope = typing.Annotated[
78
+ typing.Union[PermissionsScopeProject, PermissionsScopeRecipe, PermissionsScopeMaterialFamily, PermissionsScopeAllMaterialFamilies],
79
+ serial_alias_annotation(
80
+ named_type_path="sdk.api.permissions.set_core_permissions.PermissionsScope",
81
+ ),
82
+ ]
77
83
 
78
84
 
79
85
  # DO NOT MODIFY -- This file is generated by type_spec
@@ -10,6 +10,7 @@ from decimal import Decimal # noqa: F401
10
10
  from pkgs.strenum_compat import StrEnum
11
11
  import dataclasses
12
12
  from pkgs.serialization import serial_class
13
+ from pkgs.serialization import serial_alias_annotation
13
14
  from ... import base_t
14
15
  from ... import identifier_t
15
16
 
@@ -80,7 +81,12 @@ class RecipeTagOverride(RecipeTagUpdateBase):
80
81
 
81
82
 
82
83
  # DO NOT MODIFY -- This file is generated by type_spec
83
- RecipeTagUpdate = typing.Union[RecipeTagAppend, RecipeTagRemove, RecipeTagOverride]
84
+ RecipeTagUpdate = typing.Annotated[
85
+ typing.Union[RecipeTagAppend, RecipeTagRemove, RecipeTagOverride],
86
+ serial_alias_annotation(
87
+ named_type_path="sdk.api.recipes.set_recipe_tags.RecipeTagUpdate",
88
+ ),
89
+ ]
84
90
 
85
91
 
86
92
  # DO NOT MODIFY -- This file is generated by type_spec
@@ -10,6 +10,7 @@ from decimal import Decimal # noqa: F401
10
10
  from pkgs.strenum_compat import StrEnum
11
11
  import dataclasses
12
12
  from pkgs.serialization import serial_class
13
+ from pkgs.serialization import serial_alias_annotation
13
14
  from pkgs.serialization import serial_string_enum
14
15
  from . import base_t
15
16
  from . import identifier_t
@@ -345,7 +346,12 @@ class EntityType(StrEnum):
345
346
 
346
347
 
347
348
  # DO NOT MODIFY -- This file is generated by type_spec
348
- LimitedEntityType = typing.Union[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]]
349
+ LimitedEntityType = typing.Annotated[
350
+ typing.Union[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
+ serial_alias_annotation(
352
+ named_type_path="sdk.entity.LimitedEntityType",
353
+ ),
354
+ ]
349
355
 
350
356
 
351
357
  # DO NOT MODIFY -- This file is generated by type_spec
@@ -358,7 +364,12 @@ class EntityPermissionType(StrEnum):
358
364
 
359
365
 
360
366
  # DO NOT MODIFY -- This file is generated by type_spec
361
- GrantableEntityPermissionType = typing.Union[typing.Literal[EntityPermissionType.READ], typing.Literal[EntityPermissionType.WRITE]]
367
+ GrantableEntityPermissionType = typing.Annotated[
368
+ typing.Union[typing.Literal[EntityPermissionType.READ], typing.Literal[EntityPermissionType.WRITE]],
369
+ serial_alias_annotation(
370
+ named_type_path="sdk.entity.GrantableEntityPermissionType",
371
+ ),
372
+ ]
362
373
 
363
374
 
364
375
  # DO NOT MODIFY -- This file is generated by type_spec
@@ -9,6 +9,7 @@ import datetime # noqa: F401
9
9
  from decimal import Decimal # noqa: F401
10
10
  import dataclasses
11
11
  from pkgs.serialization import serial_class
12
+ from pkgs.serialization import serial_alias_annotation
12
13
  from . import entity_t
13
14
 
14
15
  __all__: list[str] = [
@@ -58,5 +59,10 @@ class IdSourceSpecFieldOptions(IdSourceSpecBase):
58
59
 
59
60
 
60
61
  # DO NOT MODIFY -- This file is generated by type_spec
61
- IdSourceSpec = typing.Union[IdSourceSpecEntity, IdSourceSpecCustomEntity, IdSourceSpecFieldOptions]
62
+ IdSourceSpec = typing.Annotated[
63
+ typing.Union[IdSourceSpecEntity, IdSourceSpecCustomEntity, IdSourceSpecFieldOptions],
64
+ serial_alias_annotation(
65
+ named_type_path="sdk.id_source.IdSourceSpec",
66
+ ),
67
+ ]
62
68
  # DO NOT MODIFY -- This file is generated by type_spec
@@ -9,6 +9,7 @@ import datetime # noqa: F401
9
9
  from decimal import Decimal # noqa: F401
10
10
  import dataclasses
11
11
  from pkgs.serialization import serial_class
12
+ from pkgs.serialization import serial_alias_annotation
12
13
  from . import base_t
13
14
 
14
15
  __all__: list[str] = [
@@ -53,5 +54,10 @@ class IdentifierKeyBatchReference:
53
54
 
54
55
 
55
56
  # DO NOT MODIFY -- This file is generated by type_spec
56
- IdentifierKey = typing.Union[IdentifierKeyId, IdentifierKeyBatchReference, IdentifierKeyRefName]
57
+ IdentifierKey = typing.Annotated[
58
+ typing.Union[IdentifierKeyId, IdentifierKeyBatchReference, IdentifierKeyRefName],
59
+ serial_alias_annotation(
60
+ named_type_path="sdk.identifier.IdentifierKey",
61
+ ),
62
+ ]
57
63
  # DO NOT MODIFY -- This file is generated by type_spec
@@ -9,6 +9,7 @@ import datetime # noqa: F401
9
9
  from decimal import Decimal # noqa: F401
10
10
  import dataclasses
11
11
  from pkgs.serialization import serial_class
12
+ from pkgs.serialization import serial_alias_annotation
12
13
  from . import secret_retrieval_t
13
14
 
14
15
  __all__: list[str] = [
@@ -30,7 +31,12 @@ class SecretRetrievalOverride:
30
31
 
31
32
 
32
33
  # DO NOT MODIFY -- This file is generated by type_spec
33
- SecretRetrievalOverrides = list[SecretRetrievalOverride]
34
+ SecretRetrievalOverrides = typing.Annotated[
35
+ list[SecretRetrievalOverride],
36
+ serial_alias_annotation(
37
+ named_type_path="sdk.overrides.SecretRetrievalOverrides",
38
+ ),
39
+ ]
34
40
 
35
41
 
36
42
  # DO NOT MODIFY -- This file is generated by type_spec
@@ -9,6 +9,7 @@ import datetime # noqa: F401
9
9
  from decimal import Decimal # noqa: F401
10
10
  import dataclasses
11
11
  from pkgs.serialization import serial_class
12
+ from pkgs.serialization import serial_alias_annotation
12
13
  from . import base_t
13
14
 
14
15
  __all__: list[str] = [
@@ -57,9 +58,19 @@ class RecipeIdentifierMaterialFamily:
57
58
 
58
59
 
59
60
  # DO NOT MODIFY -- This file is generated by type_spec
60
- RecipeIdentifier = typing.Union[RecipeIdentifierEditableName, RecipeIdentifierMetadata, RecipeIdentifierMaterialFamily]
61
+ RecipeIdentifier = typing.Annotated[
62
+ typing.Union[RecipeIdentifierEditableName, RecipeIdentifierMetadata, RecipeIdentifierMaterialFamily],
63
+ serial_alias_annotation(
64
+ named_type_path="sdk.recipe_identifiers.RecipeIdentifier",
65
+ ),
66
+ ]
61
67
 
62
68
 
63
69
  # DO NOT MODIFY -- This file is generated by type_spec
64
- RecipeIdentifiers = list[RecipeIdentifier]
70
+ RecipeIdentifiers = typing.Annotated[
71
+ list[RecipeIdentifier],
72
+ serial_alias_annotation(
73
+ named_type_path="sdk.recipe_identifiers.RecipeIdentifiers",
74
+ ),
75
+ ]
65
76
  # DO NOT MODIFY -- This file is generated by type_spec