UncountablePythonSDK 0.0.54__py3-none-any.whl → 0.0.56__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 (42) hide show
  1. {UncountablePythonSDK-0.0.54.dist-info → UncountablePythonSDK-0.0.56.dist-info}/METADATA +1 -1
  2. {UncountablePythonSDK-0.0.54.dist-info → UncountablePythonSDK-0.0.56.dist-info}/RECORD +42 -41
  3. {UncountablePythonSDK-0.0.54.dist-info → UncountablePythonSDK-0.0.56.dist-info}/WHEEL +1 -1
  4. examples/create_entity.py +3 -1
  5. examples/edit_recipe_inputs.py +4 -2
  6. examples/invoke_uploader.py +4 -1
  7. pkgs/argument_parser/argument_parser.py +4 -2
  8. pkgs/filesystem_utils/_gdrive_session.py +5 -2
  9. pkgs/filesystem_utils/_s3_session.py +2 -1
  10. pkgs/filesystem_utils/_sftp_session.py +5 -4
  11. pkgs/serialization/serial_class.py +6 -2
  12. pkgs/serialization/yaml.py +4 -1
  13. pkgs/type_spec/actions_registry/emit_typescript.py +3 -1
  14. pkgs/type_spec/builder.py +16 -6
  15. pkgs/type_spec/config.py +3 -1
  16. pkgs/type_spec/emit_io_ts.py +5 -5
  17. pkgs/type_spec/emit_open_api.py +10 -6
  18. pkgs/type_spec/emit_open_api_util.py +3 -4
  19. pkgs/type_spec/emit_python.py +9 -5
  20. pkgs/type_spec/emit_typescript.py +17 -8
  21. pkgs/type_spec/type_info/emit_type_info.py +5 -3
  22. pkgs/type_spec/value_spec/convert_type.py +3 -1
  23. pkgs/type_spec/value_spec/emit_python.py +12 -4
  24. uncountable/core/client.py +3 -1
  25. uncountable/core/file_upload.py +3 -1
  26. uncountable/integration/construct_client.py +2 -1
  27. uncountable/integration/executors/generic_upload_executor.py +11 -9
  28. uncountable/integration/secret_retrieval/retrieve_secret.py +1 -3
  29. uncountable/integration/telemetry.py +12 -4
  30. uncountable/types/__init__.py +2 -0
  31. uncountable/types/api/entity/create_entities.py +1 -1
  32. uncountable/types/api/entity/create_entity.py +1 -1
  33. uncountable/types/api/recipes/clear_recipe_outputs.py +35 -0
  34. uncountable/types/api/uploader/invoke_uploader.py +2 -2
  35. uncountable/types/async_batch.py +1 -0
  36. uncountable/types/async_batch_processor.py +75 -4
  37. uncountable/types/async_batch_t.py +9 -0
  38. uncountable/types/client_base.py +25 -6
  39. uncountable/types/entity_t.py +2 -0
  40. uncountable/types/generic_upload.py +6 -0
  41. uncountable/types/generic_upload_t.py +67 -1
  42. {UncountablePythonSDK-0.0.54.dist-info → UncountablePythonSDK-0.0.56.dist-info}/top_level.txt +0 -0
@@ -7,12 +7,21 @@ from __future__ import annotations
7
7
  import typing # noqa: F401
8
8
  import datetime # noqa: F401
9
9
  from decimal import Decimal # noqa: F401
10
+ from pkgs.strenum_compat import StrEnum
10
11
  import dataclasses
12
+ from pkgs.serialization import serial_class
13
+ from pkgs.serialization import serial_union_annotation
11
14
  from . import identifier_t
12
15
 
13
16
  __all__: list[str] = [
14
17
  "GenericRemoteDirectoryScope",
15
18
  "GenericUploadStrategy",
19
+ "UploadDestination",
20
+ "UploadDestinationBase",
21
+ "UploadDestinationMaterialFamily",
22
+ "UploadDestinationProject",
23
+ "UploadDestinationRecipe",
24
+ "UploadDestinationType",
16
25
  ]
17
26
 
18
27
 
@@ -31,10 +40,67 @@ class GenericRemoteDirectoryScope:
31
40
  delimiter: typing.Optional[str] = None
32
41
 
33
42
 
43
+ # DO NOT MODIFY -- This file is generated by type_spec
44
+ class UploadDestinationType(StrEnum):
45
+ PROJECT = "project"
46
+ MATERIAL_FAMILY = "material_family"
47
+ RECIPE = "recipe"
48
+
49
+
50
+ # DO NOT MODIFY -- This file is generated by type_spec
51
+ @dataclasses.dataclass(kw_only=True)
52
+ class UploadDestinationBase:
53
+ type: UploadDestinationType
54
+
55
+
56
+ # DO NOT MODIFY -- This file is generated by type_spec
57
+ @serial_class(
58
+ parse_require={"type"},
59
+ )
60
+ @dataclasses.dataclass(kw_only=True)
61
+ class UploadDestinationProject(UploadDestinationBase):
62
+ type: typing.Literal[UploadDestinationType.PROJECT] = UploadDestinationType.PROJECT
63
+ project_key: identifier_t.IdentifierKey
64
+
65
+
66
+ # DO NOT MODIFY -- This file is generated by type_spec
67
+ @serial_class(
68
+ parse_require={"type"},
69
+ )
70
+ @dataclasses.dataclass(kw_only=True)
71
+ class UploadDestinationMaterialFamily(UploadDestinationBase):
72
+ type: typing.Literal[UploadDestinationType.MATERIAL_FAMILY] = UploadDestinationType.MATERIAL_FAMILY
73
+ material_family_key: identifier_t.IdentifierKey
74
+
75
+
76
+ # DO NOT MODIFY -- This file is generated by type_spec
77
+ @serial_class(
78
+ parse_require={"type"},
79
+ )
80
+ @dataclasses.dataclass(kw_only=True)
81
+ class UploadDestinationRecipe(UploadDestinationBase):
82
+ type: typing.Literal[UploadDestinationType.RECIPE] = UploadDestinationType.RECIPE
83
+ recipe_key: identifier_t.IdentifierKey
84
+
85
+
86
+ # DO NOT MODIFY -- This file is generated by type_spec
87
+ UploadDestination = typing.Annotated[
88
+ typing.Union[UploadDestinationProject, UploadDestinationMaterialFamily, UploadDestinationRecipe],
89
+ serial_union_annotation(
90
+ discriminator="type",
91
+ discriminator_map={
92
+ "project": UploadDestinationProject,
93
+ "material_family": UploadDestinationMaterialFamily,
94
+ "recipe": UploadDestinationRecipe,
95
+ },
96
+ ),
97
+ ]
98
+
99
+
34
100
  # DO NOT MODIFY -- This file is generated by type_spec
35
101
  @dataclasses.dataclass(kw_only=True)
36
102
  class GenericUploadStrategy:
37
103
  uploader_key: identifier_t.IdentifierKey
38
- material_family_keys: list[identifier_t.IdentifierKey]
104
+ destinations: list[UploadDestination]
39
105
  skip_moving_files: bool = False
40
106
  # DO NOT MODIFY -- This file is generated by type_spec