UncountablePythonSDK 0.0.8__py3-none-any.whl → 0.0.92__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 (312) hide show
  1. UncountablePythonSDK-0.0.92.dist-info/METADATA +61 -0
  2. UncountablePythonSDK-0.0.92.dist-info/RECORD +301 -0
  3. {UncountablePythonSDK-0.0.8.dist-info → UncountablePythonSDK-0.0.92.dist-info}/WHEEL +1 -1
  4. {UncountablePythonSDK-0.0.8.dist-info → UncountablePythonSDK-0.0.92.dist-info}/top_level.txt +1 -1
  5. docs/.gitignore +1 -0
  6. docs/conf.py +57 -0
  7. docs/index.md +13 -0
  8. docs/justfile +12 -0
  9. docs/quickstart.md +19 -0
  10. docs/requirements.txt +7 -0
  11. docs/static/favicons/android-chrome-192x192.png +0 -0
  12. docs/static/favicons/android-chrome-512x512.png +0 -0
  13. docs/static/favicons/apple-touch-icon.png +0 -0
  14. docs/static/favicons/browserconfig.xml +9 -0
  15. docs/static/favicons/favicon-16x16.png +0 -0
  16. docs/static/favicons/favicon-32x32.png +0 -0
  17. docs/static/favicons/manifest.json +18 -0
  18. docs/static/favicons/mstile-150x150.png +0 -0
  19. docs/static/favicons/safari-pinned-tab.svg +32 -0
  20. docs/static/logo_blue.png +0 -0
  21. examples/async_batch.py +35 -0
  22. examples/create_entity.py +22 -17
  23. examples/download_files.py +26 -0
  24. examples/edit_recipe_inputs.py +50 -0
  25. examples/integration-server/jobs/materials_auto/example_cron.py +18 -0
  26. examples/integration-server/jobs/materials_auto/example_wh.py +15 -0
  27. examples/integration-server/jobs/materials_auto/profile.yaml +43 -0
  28. examples/integration-server/pyproject.toml +224 -0
  29. examples/invoke_uploader.py +26 -0
  30. examples/set_recipe_metadata_file.py +40 -0
  31. examples/set_recipe_output_file_sdk.py +26 -0
  32. examples/upload_files.py +18 -0
  33. pkgs/argument_parser/__init__.py +5 -0
  34. pkgs/argument_parser/_is_enum.py +1 -6
  35. pkgs/argument_parser/argument_parser.py +232 -76
  36. pkgs/argument_parser/case_convert.py +4 -3
  37. pkgs/filesystem_utils/__init__.py +20 -0
  38. pkgs/filesystem_utils/_blob_session.py +137 -0
  39. pkgs/filesystem_utils/_gdrive_session.py +309 -0
  40. pkgs/filesystem_utils/_local_session.py +69 -0
  41. pkgs/filesystem_utils/_s3_session.py +117 -0
  42. pkgs/filesystem_utils/_sftp_session.py +147 -0
  43. pkgs/filesystem_utils/file_type_utils.py +91 -0
  44. pkgs/filesystem_utils/filesystem_session.py +39 -0
  45. pkgs/py.typed +0 -0
  46. pkgs/serialization/__init__.py +8 -1
  47. pkgs/serialization/annotation.py +64 -0
  48. pkgs/serialization/missing_sentry.py +1 -1
  49. pkgs/serialization/opaque_key.py +1 -1
  50. pkgs/serialization/serial_alias.py +47 -0
  51. pkgs/serialization/serial_class.py +65 -50
  52. pkgs/serialization/serial_generic.py +16 -0
  53. pkgs/serialization/serial_union.py +84 -0
  54. pkgs/serialization/yaml.py +57 -0
  55. pkgs/serialization_util/__init__.py +7 -7
  56. pkgs/serialization_util/_get_type_for_serialization.py +1 -3
  57. pkgs/serialization_util/convert_to_snakecase.py +27 -0
  58. pkgs/serialization_util/dataclasses.py +14 -0
  59. pkgs/serialization_util/serialization_helpers.py +116 -74
  60. pkgs/strenum_compat/strenum_compat.py +1 -9
  61. pkgs/type_spec/actions_registry/__init__.py +0 -0
  62. pkgs/type_spec/actions_registry/__main__.py +126 -0
  63. pkgs/type_spec/actions_registry/emit_typescript.py +182 -0
  64. pkgs/type_spec/builder.py +475 -89
  65. pkgs/type_spec/config.py +24 -19
  66. pkgs/type_spec/emit_io_ts.py +5 -2
  67. pkgs/type_spec/emit_open_api.py +266 -32
  68. pkgs/type_spec/emit_open_api_util.py +32 -13
  69. pkgs/type_spec/emit_python.py +599 -151
  70. pkgs/type_spec/emit_typescript.py +74 -273
  71. pkgs/type_spec/emit_typescript_util.py +239 -5
  72. pkgs/type_spec/load_types.py +55 -10
  73. pkgs/type_spec/open_api_util.py +30 -41
  74. pkgs/type_spec/parts/base.py.prepart +4 -3
  75. pkgs/type_spec/type_info/emit_type_info.py +178 -16
  76. pkgs/type_spec/util.py +11 -11
  77. pkgs/type_spec/value_spec/__main__.py +3 -3
  78. pkgs/type_spec/value_spec/convert_type.py +8 -1
  79. pkgs/type_spec/value_spec/emit_python.py +13 -4
  80. uncountable/__init__.py +1 -2
  81. uncountable/core/__init__.py +12 -2
  82. uncountable/core/async_batch.py +37 -0
  83. uncountable/core/client.py +293 -43
  84. uncountable/core/environment.py +41 -0
  85. uncountable/core/file_upload.py +135 -0
  86. uncountable/core/types.py +17 -0
  87. uncountable/integration/__init__.py +0 -0
  88. uncountable/integration/cli.py +49 -0
  89. uncountable/integration/construct_client.py +51 -0
  90. uncountable/integration/cron.py +29 -0
  91. uncountable/integration/db/__init__.py +0 -0
  92. uncountable/integration/db/connect.py +18 -0
  93. uncountable/integration/db/session.py +25 -0
  94. uncountable/integration/entrypoint.py +13 -0
  95. uncountable/integration/executors/__init__.py +0 -0
  96. uncountable/integration/executors/executors.py +148 -0
  97. uncountable/integration/executors/generic_upload_executor.py +284 -0
  98. uncountable/integration/executors/script_executor.py +25 -0
  99. uncountable/integration/job.py +87 -0
  100. uncountable/integration/queue_runner/__init__.py +0 -0
  101. uncountable/integration/queue_runner/command_server/__init__.py +24 -0
  102. uncountable/integration/queue_runner/command_server/command_client.py +68 -0
  103. uncountable/integration/queue_runner/command_server/command_server.py +64 -0
  104. uncountable/integration/queue_runner/command_server/protocol/__init__.py +0 -0
  105. uncountable/integration/queue_runner/command_server/protocol/command_server.proto +22 -0
  106. uncountable/integration/queue_runner/command_server/protocol/command_server_pb2.py +40 -0
  107. uncountable/integration/queue_runner/command_server/protocol/command_server_pb2.pyi +38 -0
  108. uncountable/integration/queue_runner/command_server/protocol/command_server_pb2_grpc.py +129 -0
  109. uncountable/integration/queue_runner/command_server/types.py +52 -0
  110. uncountable/integration/queue_runner/datastore/__init__.py +3 -0
  111. uncountable/integration/queue_runner/datastore/datastore_sqlite.py +93 -0
  112. uncountable/integration/queue_runner/datastore/interface.py +19 -0
  113. uncountable/integration/queue_runner/datastore/model.py +17 -0
  114. uncountable/integration/queue_runner/job_scheduler.py +163 -0
  115. uncountable/integration/queue_runner/queue_runner.py +26 -0
  116. uncountable/integration/queue_runner/types.py +7 -0
  117. uncountable/integration/queue_runner/worker.py +119 -0
  118. uncountable/integration/scan_profiles.py +67 -0
  119. uncountable/integration/scheduler.py +150 -0
  120. uncountable/integration/secret_retrieval/__init__.py +3 -0
  121. uncountable/integration/secret_retrieval/retrieve_secret.py +93 -0
  122. uncountable/integration/server.py +117 -0
  123. uncountable/integration/telemetry.py +209 -0
  124. uncountable/integration/webhook_server/entrypoint.py +170 -0
  125. uncountable/types/__init__.py +136 -20
  126. uncountable/types/api/batch/execute_batch.py +15 -7
  127. uncountable/types/api/batch/execute_batch_load_async.py +42 -0
  128. uncountable/types/api/chemical/__init__.py +1 -0
  129. uncountable/types/api/chemical/convert_chemical_formats.py +63 -0
  130. uncountable/types/api/entity/create_entities.py +23 -11
  131. uncountable/types/api/entity/create_entity.py +21 -12
  132. uncountable/types/api/entity/get_entities_data.py +18 -8
  133. uncountable/types/api/entity/grant_entity_permissions.py +48 -0
  134. uncountable/types/api/entity/list_entities.py +27 -12
  135. uncountable/types/api/entity/lock_entity.py +45 -0
  136. uncountable/types/api/entity/resolve_entity_ids.py +17 -7
  137. uncountable/types/api/entity/set_entity_field_values.py +44 -0
  138. uncountable/types/api/entity/set_values.py +14 -7
  139. uncountable/types/api/entity/transition_entity_phase.py +80 -0
  140. uncountable/types/api/entity/unlock_entity.py +44 -0
  141. uncountable/types/api/equipment/__init__.py +1 -0
  142. uncountable/types/api/equipment/associate_equipment_input.py +44 -0
  143. uncountable/types/api/field_options/__init__.py +1 -0
  144. uncountable/types/api/field_options/upsert_field_options.py +55 -0
  145. uncountable/types/api/files/__init__.py +1 -0
  146. uncountable/types/api/files/download_file.py +77 -0
  147. uncountable/types/api/id_source/__init__.py +1 -0
  148. uncountable/types/api/id_source/list_id_source.py +56 -0
  149. uncountable/types/api/id_source/match_id_source.py +54 -0
  150. uncountable/types/api/input_groups/get_input_group_names.py +16 -6
  151. uncountable/types/api/inputs/create_inputs.py +24 -11
  152. uncountable/types/api/inputs/get_input_data.py +32 -13
  153. uncountable/types/api/inputs/get_input_names.py +18 -8
  154. uncountable/types/api/inputs/get_inputs_data.py +29 -10
  155. uncountable/types/api/inputs/set_input_attribute_values.py +16 -9
  156. uncountable/types/api/inputs/set_input_category.py +44 -0
  157. uncountable/types/api/inputs/set_input_subcategories.py +45 -0
  158. uncountable/types/api/inputs/set_intermediate_type.py +50 -0
  159. uncountable/types/api/material_families/__init__.py +1 -0
  160. uncountable/types/api/material_families/update_entity_material_families.py +48 -0
  161. uncountable/types/api/outputs/get_output_data.py +32 -16
  162. uncountable/types/api/outputs/get_output_names.py +18 -8
  163. uncountable/types/api/outputs/resolve_output_conditions.py +23 -10
  164. uncountable/types/api/permissions/__init__.py +1 -0
  165. uncountable/types/api/permissions/set_core_permissions.py +105 -0
  166. uncountable/types/api/project/get_projects.py +17 -7
  167. uncountable/types/api/project/get_projects_data.py +21 -11
  168. uncountable/types/api/recipe_links/__init__.py +1 -0
  169. uncountable/types/api/recipe_links/create_recipe_link.py +46 -0
  170. uncountable/types/api/recipe_links/remove_recipe_link.py +45 -0
  171. uncountable/types/api/recipe_metadata/get_recipe_metadata_data.py +18 -8
  172. uncountable/types/api/recipes/add_recipe_to_project.py +42 -0
  173. uncountable/types/api/recipes/archive_recipes.py +42 -0
  174. uncountable/types/api/recipes/associate_recipe_as_input.py +44 -0
  175. uncountable/types/api/recipes/associate_recipe_as_lot.py +43 -0
  176. uncountable/types/api/recipes/clear_recipe_outputs.py +42 -0
  177. uncountable/types/api/recipes/create_recipe.py +51 -0
  178. uncountable/types/api/recipes/create_recipes.py +25 -12
  179. uncountable/types/api/recipes/disassociate_recipe_as_input.py +42 -0
  180. uncountable/types/api/recipes/edit_recipe_inputs.py +283 -0
  181. uncountable/types/api/recipes/get_column_calculation_values.py +58 -0
  182. uncountable/types/api/recipes/get_curve.py +15 -7
  183. uncountable/types/api/recipes/get_recipe_calculations.py +17 -10
  184. uncountable/types/api/recipes/get_recipe_links.py +13 -6
  185. uncountable/types/api/recipes/get_recipe_names.py +16 -6
  186. uncountable/types/api/recipes/get_recipe_output_metadata.py +14 -7
  187. uncountable/types/api/recipes/get_recipes_data.py +63 -38
  188. uncountable/types/api/recipes/lock_recipes.py +63 -0
  189. uncountable/types/api/recipes/remove_recipe_from_project.py +42 -0
  190. uncountable/types/api/recipes/set_recipe_inputs.py +19 -10
  191. uncountable/types/api/recipes/set_recipe_metadata.py +43 -0
  192. uncountable/types/api/recipes/set_recipe_output_annotations.py +115 -0
  193. uncountable/types/api/recipes/set_recipe_output_file.py +56 -0
  194. uncountable/types/api/recipes/set_recipe_outputs.py +26 -12
  195. uncountable/types/api/recipes/set_recipe_tags.py +109 -0
  196. uncountable/types/api/recipes/unarchive_recipes.py +41 -0
  197. uncountable/types/api/recipes/unlock_recipes.py +50 -0
  198. uncountable/types/api/triggers/__init__.py +1 -0
  199. uncountable/types/api/triggers/run_trigger.py +43 -0
  200. uncountable/types/api/uploader/__init__.py +1 -0
  201. uncountable/types/api/uploader/invoke_uploader.py +47 -0
  202. uncountable/types/async_batch.py +13 -0
  203. uncountable/types/async_batch_processor.py +384 -0
  204. uncountable/types/async_batch_t.py +97 -0
  205. uncountable/types/async_jobs.py +9 -0
  206. uncountable/types/async_jobs_t.py +53 -0
  207. uncountable/types/auth_retrieval.py +12 -0
  208. uncountable/types/auth_retrieval_t.py +75 -0
  209. uncountable/types/base.py +5 -78
  210. uncountable/types/base_t.py +85 -0
  211. uncountable/types/calculations.py +3 -18
  212. uncountable/types/calculations_t.py +27 -0
  213. uncountable/types/chemical_structure.py +8 -0
  214. uncountable/types/chemical_structure_t.py +28 -0
  215. uncountable/types/client_base.py +1093 -54
  216. uncountable/types/client_config.py +8 -0
  217. uncountable/types/client_config_t.py +26 -0
  218. uncountable/types/curves.py +5 -42
  219. uncountable/types/curves_t.py +51 -0
  220. uncountable/types/entity.py +8 -269
  221. uncountable/types/entity_t.py +393 -0
  222. uncountable/types/experiment_groups.py +3 -18
  223. uncountable/types/experiment_groups_t.py +27 -0
  224. uncountable/types/field_values.py +17 -60
  225. uncountable/types/field_values_t.py +204 -0
  226. uncountable/types/fields.py +3 -19
  227. uncountable/types/fields_t.py +28 -0
  228. uncountable/types/generic_upload.py +15 -0
  229. uncountable/types/generic_upload_t.py +119 -0
  230. uncountable/types/id_source.py +12 -0
  231. uncountable/types/id_source_t.py +68 -0
  232. uncountable/types/identifier.py +11 -0
  233. uncountable/types/identifier_t.py +63 -0
  234. uncountable/types/input_attributes.py +3 -24
  235. uncountable/types/input_attributes_t.py +30 -0
  236. uncountable/types/inputs.py +6 -56
  237. uncountable/types/inputs_t.py +83 -0
  238. uncountable/types/integration_server.py +9 -0
  239. uncountable/types/integration_server_t.py +42 -0
  240. uncountable/types/job_definition.py +27 -0
  241. uncountable/types/job_definition_t.py +260 -0
  242. uncountable/types/outputs.py +3 -21
  243. uncountable/types/outputs_t.py +30 -0
  244. uncountable/types/overrides.py +10 -0
  245. uncountable/types/overrides_t.py +49 -0
  246. uncountable/types/permissions.py +8 -0
  247. uncountable/types/permissions_t.py +46 -0
  248. uncountable/types/phases.py +3 -18
  249. uncountable/types/phases_t.py +27 -0
  250. uncountable/types/post_base.py +8 -0
  251. uncountable/types/post_base_t.py +30 -0
  252. uncountable/types/queued_job.py +16 -0
  253. uncountable/types/queued_job_t.py +123 -0
  254. uncountable/types/recipe_identifiers.py +12 -0
  255. uncountable/types/recipe_identifiers_t.py +76 -0
  256. uncountable/types/recipe_inputs.py +9 -0
  257. uncountable/types/recipe_inputs_t.py +30 -0
  258. uncountable/types/recipe_links.py +4 -45
  259. uncountable/types/recipe_links_t.py +54 -0
  260. uncountable/types/recipe_metadata.py +5 -45
  261. uncountable/types/recipe_metadata_t.py +58 -0
  262. uncountable/types/recipe_output_metadata.py +3 -19
  263. uncountable/types/recipe_output_metadata_t.py +28 -0
  264. uncountable/types/recipe_tags.py +3 -18
  265. uncountable/types/recipe_tags_t.py +27 -0
  266. uncountable/types/recipe_workflow_steps.py +14 -0
  267. uncountable/types/recipe_workflow_steps_t.py +95 -0
  268. uncountable/types/recipes.py +8 -0
  269. uncountable/types/recipes_t.py +25 -0
  270. uncountable/types/response.py +3 -20
  271. uncountable/types/response_t.py +26 -0
  272. uncountable/types/secret_retrieval.py +12 -0
  273. uncountable/types/secret_retrieval_t.py +75 -0
  274. uncountable/types/units.py +3 -18
  275. uncountable/types/units_t.py +27 -0
  276. uncountable/types/users.py +3 -19
  277. uncountable/types/users_t.py +28 -0
  278. uncountable/types/webhook_job.py +9 -0
  279. uncountable/types/webhook_job_t.py +37 -0
  280. uncountable/types/workflows.py +4 -27
  281. uncountable/types/workflows_t.py +39 -0
  282. UncountablePythonSDK-0.0.8.dist-info/METADATA +0 -27
  283. UncountablePythonSDK-0.0.8.dist-info/RECORD +0 -134
  284. examples/recipe-import/importer.py +0 -39
  285. type_spec/external/api/batch/execute_batch.yaml +0 -56
  286. type_spec/external/api/entity/create_entities.yaml +0 -33
  287. type_spec/external/api/entity/create_entity.yaml +0 -39
  288. type_spec/external/api/entity/get_entities_data.yaml +0 -29
  289. type_spec/external/api/entity/list_entities.yaml +0 -52
  290. type_spec/external/api/entity/resolve_entity_ids.yaml +0 -29
  291. type_spec/external/api/entity/set_values.yaml +0 -18
  292. type_spec/external/api/input_groups/get_input_group_names.yaml +0 -29
  293. type_spec/external/api/inputs/create_inputs.yaml +0 -48
  294. type_spec/external/api/inputs/get_input_data.yaml +0 -95
  295. type_spec/external/api/inputs/get_input_names.yaml +0 -38
  296. type_spec/external/api/inputs/get_inputs_data.yaml +0 -82
  297. type_spec/external/api/inputs/set_input_attribute_values.yaml +0 -33
  298. type_spec/external/api/outputs/get_output_data.yaml +0 -92
  299. type_spec/external/api/outputs/get_output_names.yaml +0 -35
  300. type_spec/external/api/outputs/resolve_output_conditions.yaml +0 -50
  301. type_spec/external/api/project/get_projects.yaml +0 -42
  302. type_spec/external/api/project/get_projects_data.yaml +0 -50
  303. type_spec/external/api/recipe_metadata/get_recipe_metadata_data.yaml +0 -41
  304. type_spec/external/api/recipes/create_recipes.yaml +0 -47
  305. type_spec/external/api/recipes/get_curve.yaml +0 -18
  306. type_spec/external/api/recipes/get_recipe_calculations.yaml +0 -39
  307. type_spec/external/api/recipes/get_recipe_links.yaml +0 -26
  308. type_spec/external/api/recipes/get_recipe_names.yaml +0 -29
  309. type_spec/external/api/recipes/get_recipe_output_metadata.yaml +0 -36
  310. type_spec/external/api/recipes/get_recipes_data.yaml +0 -238
  311. type_spec/external/api/recipes/set_recipe_inputs.yaml +0 -36
  312. type_spec/external/api/recipes/set_recipe_outputs.yaml +0 -52
@@ -1,20 +1,40 @@
1
1
  # DO NOT MODIFY -- This file is generated by type_spec
2
2
  # flake8: noqa: F821
3
- # ruff: noqa: E402
3
+ # ruff: noqa: E402 Q003
4
4
  # fmt: off
5
5
  # isort: skip_file
6
- from . import base as base_t
7
- from . import calculations as calculations_t
6
+ from .api.recipes import add_recipe_to_project as add_recipe_to_project_t
7
+ from .api.recipes import archive_recipes as archive_recipes_t
8
+ from .api.equipment import associate_equipment_input as associate_equipment_input_t
9
+ from .api.recipes import associate_recipe_as_input as associate_recipe_as_input_t
10
+ from .api.recipes import associate_recipe_as_lot as associate_recipe_as_lot_t
11
+ from . import async_batch_t as async_batch_t
12
+ from . import async_jobs_t as async_jobs_t
13
+ from . import auth_retrieval_t as auth_retrieval_t
14
+ from . import base_t as base_t
15
+ from . import calculations_t as calculations_t
16
+ from . import chemical_structure_t as chemical_structure_t
17
+ from .api.recipes import clear_recipe_outputs as clear_recipe_outputs_t
18
+ from . import client_config_t as client_config_t
19
+ from .api.chemical import convert_chemical_formats as convert_chemical_formats_t
8
20
  from .api.entity import create_entities as create_entities_t
9
21
  from .api.entity import create_entity as create_entity_t
10
22
  from .api.inputs import create_inputs as create_inputs_t
23
+ from .api.recipes import create_recipe as create_recipe_t
24
+ from .api.recipe_links import create_recipe_link as create_recipe_link_t
11
25
  from .api.recipes import create_recipes as create_recipes_t
12
- from . import curves as curves_t
13
- from . import entity as entity_t
26
+ from . import curves_t as curves_t
27
+ from .api.recipes import disassociate_recipe_as_input as disassociate_recipe_as_input_t
28
+ from .api.files import download_file as download_file_t
29
+ from .api.recipes import edit_recipe_inputs as edit_recipe_inputs_t
30
+ from . import entity_t as entity_t
14
31
  from .api.batch import execute_batch as execute_batch_t
15
- from . import experiment_groups as experiment_groups_t
16
- from . import field_values as field_values_t
17
- from . import fields as fields_t
32
+ from .api.batch import execute_batch_load_async as execute_batch_load_async_t
33
+ from . import experiment_groups_t as experiment_groups_t
34
+ from . import field_values_t as field_values_t
35
+ from . import fields_t as fields_t
36
+ from . import generic_upload_t as generic_upload_t
37
+ from .api.recipes import get_column_calculation_values as get_column_calculation_values_t
18
38
  from .api.recipes import get_curve as get_curve_t
19
39
  from .api.entity import get_entities_data as get_entities_data_t
20
40
  from .api.inputs import get_input_data as get_input_data_t
@@ -31,40 +51,98 @@ from .api.recipe_metadata import get_recipe_metadata_data as get_recipe_metadata
31
51
  from .api.recipes import get_recipe_names as get_recipe_names_t
32
52
  from .api.recipes import get_recipe_output_metadata as get_recipe_output_metadata_t
33
53
  from .api.recipes import get_recipes_data as get_recipes_data_t
34
- from . import input_attributes as input_attributes_t
35
- from . import inputs as inputs_t
54
+ from .api.entity import grant_entity_permissions as grant_entity_permissions_t
55
+ from . import id_source_t as id_source_t
56
+ from . import identifier_t as identifier_t
57
+ from . import input_attributes_t as input_attributes_t
58
+ from . import inputs_t as inputs_t
59
+ from . import integration_server_t as integration_server_t
60
+ from .api.uploader import invoke_uploader as invoke_uploader_t
61
+ from . import job_definition_t as job_definition_t
36
62
  from .api.entity import list_entities as list_entities_t
37
- from . import outputs as outputs_t
38
- from . import phases as phases_t
39
- from . import recipe_links as recipe_links_t
40
- from . import recipe_metadata as recipe_metadata_t
41
- from . import recipe_output_metadata as recipe_output_metadata_t
42
- from . import recipe_tags as recipe_tags_t
63
+ from .api.id_source import list_id_source as list_id_source_t
64
+ from .api.entity import lock_entity as lock_entity_t
65
+ from .api.recipes import lock_recipes as lock_recipes_t
66
+ from .api.id_source import match_id_source as match_id_source_t
67
+ from . import outputs_t as outputs_t
68
+ from . import overrides_t as overrides_t
69
+ from . import permissions_t as permissions_t
70
+ from . import phases_t as phases_t
71
+ from . import post_base_t as post_base_t
72
+ from . import queued_job_t as queued_job_t
73
+ from . import recipe_identifiers_t as recipe_identifiers_t
74
+ from . import recipe_inputs_t as recipe_inputs_t
75
+ from . import recipe_links_t as recipe_links_t
76
+ from . import recipe_metadata_t as recipe_metadata_t
77
+ from . import recipe_output_metadata_t as recipe_output_metadata_t
78
+ from . import recipe_tags_t as recipe_tags_t
79
+ from . import recipe_workflow_steps_t as recipe_workflow_steps_t
80
+ from . import recipes_t as recipes_t
81
+ from .api.recipes import remove_recipe_from_project as remove_recipe_from_project_t
82
+ from .api.recipe_links import remove_recipe_link as remove_recipe_link_t
43
83
  from .api.entity import resolve_entity_ids as resolve_entity_ids_t
44
84
  from .api.outputs import resolve_output_conditions as resolve_output_conditions_t
45
- from . import response as response_t
85
+ from . import response_t as response_t
86
+ from .api.triggers import run_trigger as run_trigger_t
87
+ from . import secret_retrieval_t as secret_retrieval_t
88
+ from .api.permissions import set_core_permissions as set_core_permissions_t
89
+ from .api.entity import set_entity_field_values as set_entity_field_values_t
46
90
  from .api.inputs import set_input_attribute_values as set_input_attribute_values_t
91
+ from .api.inputs import set_input_category as set_input_category_t
92
+ from .api.inputs import set_input_subcategories as set_input_subcategories_t
93
+ from .api.inputs import set_intermediate_type as set_intermediate_type_t
47
94
  from .api.recipes import set_recipe_inputs as set_recipe_inputs_t
95
+ from .api.recipes import set_recipe_metadata as set_recipe_metadata_t
96
+ from .api.recipes import set_recipe_output_annotations as set_recipe_output_annotations_t
97
+ from .api.recipes import set_recipe_output_file as set_recipe_output_file_t
48
98
  from .api.recipes import set_recipe_outputs as set_recipe_outputs_t
99
+ from .api.recipes import set_recipe_tags as set_recipe_tags_t
49
100
  from .api.entity import set_values as set_values_t
50
- from . import units as units_t
51
- from . import users as users_t
52
- from . import workflows as workflows_t
101
+ from .api.entity import transition_entity_phase as transition_entity_phase_t
102
+ from .api.recipes import unarchive_recipes as unarchive_recipes_t
103
+ from . import units_t as units_t
104
+ from .api.entity import unlock_entity as unlock_entity_t
105
+ from .api.recipes import unlock_recipes as unlock_recipes_t
106
+ from .api.material_families import update_entity_material_families as update_entity_material_families_t
107
+ from .api.field_options import upsert_field_options as upsert_field_options_t
108
+ from . import users_t as users_t
109
+ from . import webhook_job_t as webhook_job_t
110
+ from . import workflows_t as workflows_t
53
111
 
54
112
 
55
113
  __all__: list[str] = [
114
+ "add_recipe_to_project_t",
115
+ "archive_recipes_t",
116
+ "associate_equipment_input_t",
117
+ "associate_recipe_as_input_t",
118
+ "associate_recipe_as_lot_t",
119
+ "async_batch_t",
120
+ "async_jobs_t",
121
+ "auth_retrieval_t",
56
122
  "base_t",
57
123
  "calculations_t",
124
+ "chemical_structure_t",
125
+ "clear_recipe_outputs_t",
126
+ "client_config_t",
127
+ "convert_chemical_formats_t",
58
128
  "create_entities_t",
59
129
  "create_entity_t",
60
130
  "create_inputs_t",
131
+ "create_recipe_t",
132
+ "create_recipe_link_t",
61
133
  "create_recipes_t",
62
134
  "curves_t",
135
+ "disassociate_recipe_as_input_t",
136
+ "download_file_t",
137
+ "edit_recipe_inputs_t",
63
138
  "entity_t",
64
139
  "execute_batch_t",
140
+ "execute_batch_load_async_t",
65
141
  "experiment_groups_t",
66
142
  "field_values_t",
67
143
  "fields_t",
144
+ "generic_upload_t",
145
+ "get_column_calculation_values_t",
68
146
  "get_curve_t",
69
147
  "get_entities_data_t",
70
148
  "get_input_data_t",
@@ -81,23 +159,61 @@ __all__: list[str] = [
81
159
  "get_recipe_names_t",
82
160
  "get_recipe_output_metadata_t",
83
161
  "get_recipes_data_t",
162
+ "grant_entity_permissions_t",
163
+ "id_source_t",
164
+ "identifier_t",
84
165
  "input_attributes_t",
85
166
  "inputs_t",
167
+ "integration_server_t",
168
+ "invoke_uploader_t",
169
+ "job_definition_t",
86
170
  "list_entities_t",
171
+ "list_id_source_t",
172
+ "lock_entity_t",
173
+ "lock_recipes_t",
174
+ "match_id_source_t",
87
175
  "outputs_t",
176
+ "overrides_t",
177
+ "permissions_t",
88
178
  "phases_t",
179
+ "post_base_t",
180
+ "queued_job_t",
181
+ "recipe_identifiers_t",
182
+ "recipe_inputs_t",
89
183
  "recipe_links_t",
90
184
  "recipe_metadata_t",
91
185
  "recipe_output_metadata_t",
92
186
  "recipe_tags_t",
187
+ "recipe_workflow_steps_t",
188
+ "recipes_t",
189
+ "remove_recipe_from_project_t",
190
+ "remove_recipe_link_t",
93
191
  "resolve_entity_ids_t",
94
192
  "resolve_output_conditions_t",
95
193
  "response_t",
194
+ "run_trigger_t",
195
+ "secret_retrieval_t",
196
+ "set_core_permissions_t",
197
+ "set_entity_field_values_t",
96
198
  "set_input_attribute_values_t",
199
+ "set_input_category_t",
200
+ "set_input_subcategories_t",
201
+ "set_intermediate_type_t",
97
202
  "set_recipe_inputs_t",
203
+ "set_recipe_metadata_t",
204
+ "set_recipe_output_annotations_t",
205
+ "set_recipe_output_file_t",
98
206
  "set_recipe_outputs_t",
207
+ "set_recipe_tags_t",
99
208
  "set_values_t",
209
+ "transition_entity_phase_t",
210
+ "unarchive_recipes_t",
100
211
  "units_t",
212
+ "unlock_entity_t",
213
+ "unlock_recipes_t",
214
+ "update_entity_material_families_t",
215
+ "upsert_field_options_t",
101
216
  "users_t",
217
+ "webhook_job_t",
102
218
  "workflows_t",
103
219
  ]
@@ -1,6 +1,6 @@
1
1
  # DO NOT MODIFY -- This file is generated by type_spec
2
2
  # flake8: noqa: F821
3
- # ruff: noqa: E402
3
+ # ruff: noqa: E402 Q003
4
4
  # fmt: off
5
5
  # isort: skip_file
6
6
  from __future__ import annotations
@@ -8,9 +8,9 @@ import typing # noqa: F401
8
8
  import datetime # noqa: F401
9
9
  from decimal import Decimal # noqa: F401
10
10
  from pkgs.strenum_compat import StrEnum
11
- from dataclasses import dataclass
11
+ import dataclasses
12
12
  from pkgs.serialization import serial_class
13
- from ... import base as base_t
13
+ from ... import base_t
14
14
 
15
15
  __all__: list[str] = [
16
16
  "Arguments",
@@ -41,9 +41,10 @@ class RequestMethod(StrEnum):
41
41
 
42
42
  # DO NOT MODIFY -- This file is generated by type_spec
43
43
  @serial_class(
44
+ named_type_path="sdk.api.batch.execute_batch.BatchRequest",
44
45
  unconverted_values={"data"},
45
46
  )
46
- @dataclass(kw_only=True)
47
+ @dataclasses.dataclass(kw_only=True)
47
48
  class BatchRequest:
48
49
  path: str
49
50
  method: RequestMethod
@@ -51,16 +52,20 @@ class BatchRequest:
51
52
 
52
53
 
53
54
  # DO NOT MODIFY -- This file is generated by type_spec
54
- @dataclass(kw_only=True)
55
+ @serial_class(
56
+ named_type_path="sdk.api.batch.execute_batch.Arguments",
57
+ )
58
+ @dataclasses.dataclass(kw_only=True)
55
59
  class Arguments:
56
60
  requests: list[BatchRequest]
57
61
 
58
62
 
59
63
  # DO NOT MODIFY -- This file is generated by type_spec
60
64
  @serial_class(
65
+ named_type_path="sdk.api.batch.execute_batch.BatchResponse",
61
66
  unconverted_values={"response"},
62
67
  )
63
- @dataclass(kw_only=True)
68
+ @dataclasses.dataclass(kw_only=True)
64
69
  class BatchResponse:
65
70
  path: str
66
71
  method: RequestMethod
@@ -69,7 +74,10 @@ class BatchResponse:
69
74
 
70
75
 
71
76
  # DO NOT MODIFY -- This file is generated by type_spec
72
- @dataclass(kw_only=True)
77
+ @serial_class(
78
+ named_type_path="sdk.api.batch.execute_batch.Data",
79
+ )
80
+ @dataclasses.dataclass(kw_only=True)
73
81
  class Data:
74
82
  responses: list[BatchResponse]
75
83
  # DO NOT MODIFY -- This file is generated by type_spec
@@ -0,0 +1,42 @@
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
+ import dataclasses
11
+ from pkgs.serialization import serial_class
12
+ from ... import async_batch_t
13
+ from ... import base_t
14
+
15
+ __all__: list[str] = [
16
+ "Arguments",
17
+ "Data",
18
+ "ENDPOINT_METHOD",
19
+ "ENDPOINT_PATH",
20
+ ]
21
+
22
+ ENDPOINT_METHOD = "POST"
23
+ ENDPOINT_PATH = "api/external/batch/execute_batch_load_async"
24
+
25
+
26
+ # DO NOT MODIFY -- This file is generated by type_spec
27
+ @serial_class(
28
+ named_type_path="sdk.api.batch.execute_batch_load_async.Arguments",
29
+ )
30
+ @dataclasses.dataclass(kw_only=True)
31
+ class Arguments:
32
+ requests: list[async_batch_t.AsyncBatchRequest]
33
+
34
+
35
+ # DO NOT MODIFY -- This file is generated by type_spec
36
+ @serial_class(
37
+ named_type_path="sdk.api.batch.execute_batch_load_async.Data",
38
+ )
39
+ @dataclasses.dataclass(kw_only=True)
40
+ class Data:
41
+ job_id: base_t.ObjectId
42
+ # 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,63 @@
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
+ import dataclasses
11
+ from pkgs.serialization import serial_class
12
+ from pkgs.serialization import serial_alias_annotation
13
+ from ... import base_t
14
+
15
+ __all__: list[str] = [
16
+ "Arguments",
17
+ "ChemicalStructureFile",
18
+ "Data",
19
+ "ENDPOINT_METHOD",
20
+ "ENDPOINT_PATH",
21
+ "UncountableChemicalStructure",
22
+ ]
23
+
24
+ ENDPOINT_METHOD = "POST"
25
+ ENDPOINT_PATH = "api/external/chemical/convert_chemical_formats"
26
+
27
+
28
+ # DO NOT MODIFY -- This file is generated by type_spec
29
+ @serial_class(
30
+ named_type_path="sdk.api.chemical.convert_chemical_formats.ChemicalStructureFile",
31
+ )
32
+ @dataclasses.dataclass(kw_only=True)
33
+ class ChemicalStructureFile:
34
+ struct_file: str
35
+
36
+
37
+ # DO NOT MODIFY -- This file is generated by type_spec
38
+ @serial_class(
39
+ named_type_path="sdk.api.chemical.convert_chemical_formats.Arguments",
40
+ )
41
+ @dataclasses.dataclass(kw_only=True)
42
+ class Arguments:
43
+ source_chemical_structures: list[ChemicalStructureFile]
44
+
45
+
46
+ # DO NOT MODIFY -- This file is generated by type_spec
47
+ UncountableChemicalStructure = typing.Annotated[
48
+ dict[str, base_t.JsonValue],
49
+ serial_alias_annotation(
50
+ named_type_path="sdk.api.chemical.convert_chemical_formats.UncountableChemicalStructure",
51
+ ),
52
+ ]
53
+
54
+
55
+ # DO NOT MODIFY -- This file is generated by type_spec
56
+ @serial_class(
57
+ named_type_path="sdk.api.chemical.convert_chemical_formats.Data",
58
+ unconverted_values={"chemical_structures"},
59
+ )
60
+ @dataclasses.dataclass(kw_only=True)
61
+ class Data:
62
+ chemical_structures: list[UncountableChemicalStructure]
63
+ # DO NOT MODIFY -- This file is generated by type_spec
@@ -1,16 +1,18 @@
1
1
  # DO NOT MODIFY -- This file is generated by type_spec
2
2
  # flake8: noqa: F821
3
- # ruff: noqa: E402
3
+ # ruff: noqa: E402 Q003
4
4
  # fmt: off
5
5
  # isort: skip_file
6
6
  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 dataclasses import dataclass
11
- from ... import base as base_t
12
- from ... import entity as entity_t
13
- from ... import field_values as field_values_t
10
+ import dataclasses
11
+ from pkgs.serialization import serial_class
12
+ from ... import base_t
13
+ from ... import entity_t
14
+ from ... import field_values_t
15
+ from ... import identifier_t
14
16
 
15
17
  __all__: list[str] = [
16
18
  "Arguments",
@@ -25,21 +27,31 @@ ENDPOINT_PATH = "api/external/entity/external_create_entities"
25
27
 
26
28
 
27
29
  # DO NOT MODIFY -- This file is generated by type_spec
28
- @dataclass(kw_only=True)
30
+ @serial_class(
31
+ named_type_path="sdk.api.entity.create_entities.EntityToCreate",
32
+ )
33
+ @dataclasses.dataclass(kw_only=True)
29
34
  class EntityToCreate:
30
- field_values: typing.Optional[typing.Optional[list[field_values_t.FieldRefNameValue]]] = None
35
+ field_values: typing.Optional[list[field_values_t.FieldRefNameValue]] | None = None
31
36
 
32
37
 
33
38
  # DO NOT MODIFY -- This file is generated by type_spec
34
- @dataclass(kw_only=True)
39
+ @serial_class(
40
+ named_type_path="sdk.api.entity.create_entities.Arguments",
41
+ )
42
+ @dataclasses.dataclass(kw_only=True)
35
43
  class Arguments:
36
- definition_id: base_t.ObjectId
37
- entity_type: typing.Union[typing.Literal[entity_t.EntityType.LAB_REQUEST], typing.Literal[entity_t.EntityType.APPROVAL], typing.Literal[entity_t.EntityType.CUSTOM_ENTITY], typing.Literal[entity_t.EntityType.TASK], typing.Literal[entity_t.EntityType.PROJECT]]
44
+ entity_type: entity_t.LimitedEntityType
38
45
  entities_to_create: list[EntityToCreate]
46
+ definition_id: base_t.ObjectId | None = None
47
+ definition_key: identifier_t.IdentifierKey | None = None
39
48
 
40
49
 
41
50
  # DO NOT MODIFY -- This file is generated by type_spec
42
- @dataclass(kw_only=True)
51
+ @serial_class(
52
+ named_type_path="sdk.api.entity.create_entities.Data",
53
+ )
54
+ @dataclasses.dataclass(kw_only=True)
43
55
  class Data:
44
56
  entities: list[entity_t.Entity]
45
57
  # DO NOT MODIFY -- This file is generated by type_spec
@@ -1,17 +1,18 @@
1
1
  # DO NOT MODIFY -- This file is generated by type_spec
2
2
  # flake8: noqa: F821
3
- # ruff: noqa: E402
3
+ # ruff: noqa: E402 Q003
4
4
  # fmt: off
5
5
  # isort: skip_file
6
6
  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 dataclasses import dataclass
10
+ import dataclasses
11
11
  from pkgs.serialization import serial_class
12
- from ... import base as base_t
13
- from ... import entity as entity_t
14
- from ... import field_values as field_values_t
12
+ from ... import base_t
13
+ from ... import entity_t
14
+ from ... import field_values_t
15
+ from ... import identifier_t
15
16
 
16
17
  __all__: list[str] = [
17
18
  "Arguments",
@@ -27,25 +28,33 @@ ENDPOINT_PATH = "api/external/entity/external_create_entity"
27
28
 
28
29
  # DO NOT MODIFY -- This file is generated by type_spec
29
30
  @serial_class(
31
+ named_type_path="sdk.api.entity.create_entity.EntityFieldInitialValue",
30
32
  unconverted_values={"value"},
31
33
  )
32
- @dataclass(kw_only=True)
34
+ @dataclasses.dataclass(kw_only=True)
33
35
  class EntityFieldInitialValue:
34
36
  field_ref_name: str
35
37
  value: base_t.JsonValue
36
- row_index: typing.Optional[typing.Optional[int]] = None
38
+ row_index: typing.Optional[int] | None = None
37
39
 
38
40
 
39
41
  # DO NOT MODIFY -- This file is generated by type_spec
40
- @dataclass(kw_only=True)
42
+ @serial_class(
43
+ named_type_path="sdk.api.entity.create_entity.Arguments",
44
+ )
45
+ @dataclasses.dataclass(kw_only=True)
41
46
  class Arguments:
42
- definition_id: base_t.ObjectId
43
- entity_type: typing.Union[typing.Literal[entity_t.EntityType.LAB_REQUEST], typing.Literal[entity_t.EntityType.APPROVAL], typing.Literal[entity_t.EntityType.CUSTOM_ENTITY], typing.Literal[entity_t.EntityType.TASK], typing.Literal[entity_t.EntityType.PROJECT]]
44
- field_values: typing.Optional[typing.Optional[list[field_values_t.FieldRefNameValue]]] = None
47
+ entity_type: entity_t.LimitedEntityType
48
+ definition_id: base_t.ObjectId | None = None
49
+ definition_key: identifier_t.IdentifierKey | None = None
50
+ field_values: typing.Optional[list[field_values_t.FieldRefNameValue]] | None = None
45
51
 
46
52
 
47
53
  # DO NOT MODIFY -- This file is generated by type_spec
48
- @dataclass(kw_only=True)
54
+ @serial_class(
55
+ named_type_path="sdk.api.entity.create_entity.Data",
56
+ )
57
+ @dataclasses.dataclass(kw_only=True)
49
58
  class Data:
50
59
  entity: entity_t.Entity
51
60
  # DO NOT MODIFY -- This file is generated by type_spec
@@ -1,16 +1,17 @@
1
1
  # DO NOT MODIFY -- This file is generated by type_spec
2
2
  # flake8: noqa: F821
3
- # ruff: noqa: E402
3
+ # ruff: noqa: E402 Q003
4
4
  # fmt: off
5
5
  # isort: skip_file
6
6
  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 dataclasses import dataclass
11
- from ... import base as base_t
12
- from ... import entity as entity_t
13
- from ... import field_values as field_values_t
10
+ import dataclasses
11
+ from pkgs.serialization import serial_class
12
+ from ... import base_t
13
+ from ... import entity_t
14
+ from ... import field_values_t
14
15
 
15
16
  __all__: list[str] = [
16
17
  "Arguments",
@@ -25,21 +26,30 @@ ENDPOINT_PATH = "api/external/entity/external_get_entities_data"
25
26
 
26
27
 
27
28
  # DO NOT MODIFY -- This file is generated by type_spec
28
- @dataclass(kw_only=True)
29
+ @serial_class(
30
+ named_type_path="sdk.api.entity.get_entities_data.Arguments",
31
+ )
32
+ @dataclasses.dataclass(kw_only=True)
29
33
  class Arguments:
30
34
  entity_ids: list[base_t.ObjectId]
31
35
  entity_type: entity_t.EntityType
32
36
 
33
37
 
34
38
  # DO NOT MODIFY -- This file is generated by type_spec
35
- @dataclass(kw_only=True)
39
+ @serial_class(
40
+ named_type_path="sdk.api.entity.get_entities_data.EntityDetails",
41
+ )
42
+ @dataclasses.dataclass(kw_only=True)
36
43
  class EntityDetails:
37
44
  entity: entity_t.Entity
38
45
  field_values: list[field_values_t.FieldRefIdNameValue]
39
46
 
40
47
 
41
48
  # DO NOT MODIFY -- This file is generated by type_spec
42
- @dataclass(kw_only=True)
49
+ @serial_class(
50
+ named_type_path="sdk.api.entity.get_entities_data.Data",
51
+ )
52
+ @dataclasses.dataclass(kw_only=True)
43
53
  class Data:
44
54
  entity_details: list[EntityDetails]
45
55
  # DO NOT MODIFY -- This file is generated by type_spec
@@ -0,0 +1,48 @@
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
+ import dataclasses
11
+ from pkgs.serialization import serial_class
12
+ from ... import async_batch_t
13
+ from ... import entity_t
14
+ from ... import identifier_t
15
+
16
+ __all__: list[str] = [
17
+ "Arguments",
18
+ "Data",
19
+ "ENDPOINT_METHOD",
20
+ "ENDPOINT_PATH",
21
+ ]
22
+
23
+ ENDPOINT_METHOD = "POST"
24
+ ENDPOINT_PATH = "api/external/entity/grant_entity_permissions"
25
+
26
+
27
+ # DO NOT MODIFY -- This file is generated by type_spec
28
+ @serial_class(
29
+ named_type_path="sdk.api.entity.grant_entity_permissions.Arguments",
30
+ )
31
+ @dataclasses.dataclass(kw_only=True)
32
+ class Arguments:
33
+ entity_type: entity_t.LimitedEntityType
34
+ entity_key: identifier_t.IdentifierKey
35
+ permission_types: list[entity_t.GrantableEntityPermissionType]
36
+ user_keys: list[identifier_t.IdentifierKey] | None = None
37
+ user_group_keys: list[identifier_t.IdentifierKey] | None = None
38
+ all_users: bool | None = None
39
+
40
+
41
+ # DO NOT MODIFY -- This file is generated by type_spec
42
+ @serial_class(
43
+ named_type_path="sdk.api.entity.grant_entity_permissions.Data",
44
+ )
45
+ @dataclasses.dataclass(kw_only=True)
46
+ class Data(async_batch_t.AsyncBatchActionReturn):
47
+ pass
48
+ # DO NOT MODIFY -- This file is generated by type_spec