UncountablePythonSDK 0.0.7__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 (311) 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.7.dist-info → UncountablePythonSDK-0.0.92.dist-info}/WHEEL +1 -1
  4. {UncountablePythonSDK-0.0.7.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/opaque_key.py +1 -1
  49. pkgs/serialization/serial_alias.py +47 -0
  50. pkgs/serialization/serial_class.py +65 -50
  51. pkgs/serialization/serial_generic.py +16 -0
  52. pkgs/serialization/serial_union.py +84 -0
  53. pkgs/serialization/yaml.py +57 -0
  54. pkgs/serialization_util/__init__.py +7 -7
  55. pkgs/serialization_util/_get_type_for_serialization.py +1 -3
  56. pkgs/serialization_util/convert_to_snakecase.py +27 -0
  57. pkgs/serialization_util/dataclasses.py +14 -0
  58. pkgs/serialization_util/serialization_helpers.py +118 -73
  59. pkgs/strenum_compat/strenum_compat.py +1 -9
  60. pkgs/type_spec/actions_registry/__init__.py +0 -0
  61. pkgs/type_spec/actions_registry/__main__.py +126 -0
  62. pkgs/type_spec/actions_registry/emit_typescript.py +182 -0
  63. pkgs/type_spec/builder.py +475 -89
  64. pkgs/type_spec/config.py +24 -19
  65. pkgs/type_spec/emit_io_ts.py +5 -2
  66. pkgs/type_spec/emit_open_api.py +266 -32
  67. pkgs/type_spec/emit_open_api_util.py +32 -13
  68. pkgs/type_spec/emit_python.py +601 -150
  69. pkgs/type_spec/emit_typescript.py +74 -273
  70. pkgs/type_spec/emit_typescript_util.py +239 -5
  71. pkgs/type_spec/load_types.py +55 -10
  72. pkgs/type_spec/open_api_util.py +30 -41
  73. pkgs/type_spec/parts/base.py.prepart +4 -3
  74. pkgs/type_spec/type_info/emit_type_info.py +178 -16
  75. pkgs/type_spec/util.py +11 -11
  76. pkgs/type_spec/value_spec/__main__.py +3 -3
  77. pkgs/type_spec/value_spec/convert_type.py +8 -1
  78. pkgs/type_spec/value_spec/emit_python.py +13 -4
  79. uncountable/__init__.py +1 -2
  80. uncountable/core/__init__.py +12 -2
  81. uncountable/core/async_batch.py +37 -0
  82. uncountable/core/client.py +293 -43
  83. uncountable/core/environment.py +41 -0
  84. uncountable/core/file_upload.py +135 -0
  85. uncountable/core/types.py +17 -0
  86. uncountable/integration/__init__.py +0 -0
  87. uncountable/integration/cli.py +49 -0
  88. uncountable/integration/construct_client.py +51 -0
  89. uncountable/integration/cron.py +29 -0
  90. uncountable/integration/db/__init__.py +0 -0
  91. uncountable/integration/db/connect.py +18 -0
  92. uncountable/integration/db/session.py +25 -0
  93. uncountable/integration/entrypoint.py +13 -0
  94. uncountable/integration/executors/__init__.py +0 -0
  95. uncountable/integration/executors/executors.py +148 -0
  96. uncountable/integration/executors/generic_upload_executor.py +284 -0
  97. uncountable/integration/executors/script_executor.py +25 -0
  98. uncountable/integration/job.py +87 -0
  99. uncountable/integration/queue_runner/__init__.py +0 -0
  100. uncountable/integration/queue_runner/command_server/__init__.py +24 -0
  101. uncountable/integration/queue_runner/command_server/command_client.py +68 -0
  102. uncountable/integration/queue_runner/command_server/command_server.py +64 -0
  103. uncountable/integration/queue_runner/command_server/protocol/__init__.py +0 -0
  104. uncountable/integration/queue_runner/command_server/protocol/command_server.proto +22 -0
  105. uncountable/integration/queue_runner/command_server/protocol/command_server_pb2.py +40 -0
  106. uncountable/integration/queue_runner/command_server/protocol/command_server_pb2.pyi +38 -0
  107. uncountable/integration/queue_runner/command_server/protocol/command_server_pb2_grpc.py +129 -0
  108. uncountable/integration/queue_runner/command_server/types.py +52 -0
  109. uncountable/integration/queue_runner/datastore/__init__.py +3 -0
  110. uncountable/integration/queue_runner/datastore/datastore_sqlite.py +93 -0
  111. uncountable/integration/queue_runner/datastore/interface.py +19 -0
  112. uncountable/integration/queue_runner/datastore/model.py +17 -0
  113. uncountable/integration/queue_runner/job_scheduler.py +163 -0
  114. uncountable/integration/queue_runner/queue_runner.py +26 -0
  115. uncountable/integration/queue_runner/types.py +7 -0
  116. uncountable/integration/queue_runner/worker.py +119 -0
  117. uncountable/integration/scan_profiles.py +67 -0
  118. uncountable/integration/scheduler.py +150 -0
  119. uncountable/integration/secret_retrieval/__init__.py +3 -0
  120. uncountable/integration/secret_retrieval/retrieve_secret.py +93 -0
  121. uncountable/integration/server.py +117 -0
  122. uncountable/integration/telemetry.py +209 -0
  123. uncountable/integration/webhook_server/entrypoint.py +170 -0
  124. uncountable/types/__init__.py +151 -5
  125. uncountable/types/api/batch/execute_batch.py +15 -7
  126. uncountable/types/api/batch/execute_batch_load_async.py +42 -0
  127. uncountable/types/api/chemical/__init__.py +1 -0
  128. uncountable/types/api/chemical/convert_chemical_formats.py +63 -0
  129. uncountable/types/api/entity/create_entities.py +23 -10
  130. uncountable/types/api/entity/create_entity.py +21 -12
  131. uncountable/types/api/entity/get_entities_data.py +19 -29
  132. uncountable/types/api/entity/grant_entity_permissions.py +48 -0
  133. uncountable/types/api/entity/list_entities.py +28 -20
  134. uncountable/types/api/entity/lock_entity.py +45 -0
  135. uncountable/types/api/entity/resolve_entity_ids.py +19 -7
  136. uncountable/types/api/entity/set_entity_field_values.py +44 -0
  137. uncountable/types/api/entity/set_values.py +13 -28
  138. uncountable/types/api/entity/transition_entity_phase.py +80 -0
  139. uncountable/types/api/entity/unlock_entity.py +44 -0
  140. uncountable/types/api/equipment/__init__.py +1 -0
  141. uncountable/types/api/equipment/associate_equipment_input.py +44 -0
  142. uncountable/types/api/field_options/__init__.py +1 -0
  143. uncountable/types/api/field_options/upsert_field_options.py +55 -0
  144. uncountable/types/api/files/__init__.py +1 -0
  145. uncountable/types/api/files/download_file.py +77 -0
  146. uncountable/types/api/id_source/__init__.py +1 -0
  147. uncountable/types/api/id_source/list_id_source.py +56 -0
  148. uncountable/types/api/id_source/match_id_source.py +54 -0
  149. uncountable/types/api/input_groups/get_input_group_names.py +18 -7
  150. uncountable/types/api/inputs/create_inputs.py +25 -24
  151. uncountable/types/api/inputs/get_input_data.py +37 -31
  152. uncountable/types/api/inputs/get_input_names.py +20 -9
  153. uncountable/types/api/inputs/get_inputs_data.py +33 -27
  154. uncountable/types/api/inputs/set_input_attribute_values.py +18 -13
  155. uncountable/types/api/inputs/set_input_category.py +44 -0
  156. uncountable/types/api/inputs/set_input_subcategories.py +45 -0
  157. uncountable/types/api/inputs/set_intermediate_type.py +50 -0
  158. uncountable/types/api/material_families/__init__.py +1 -0
  159. uncountable/types/api/material_families/update_entity_material_families.py +48 -0
  160. uncountable/types/api/outputs/get_output_data.py +38 -29
  161. uncountable/types/api/outputs/get_output_names.py +20 -9
  162. uncountable/types/api/outputs/resolve_output_conditions.py +23 -10
  163. uncountable/types/api/permissions/__init__.py +1 -0
  164. uncountable/types/api/permissions/set_core_permissions.py +105 -0
  165. uncountable/types/api/project/get_projects.py +23 -19
  166. uncountable/types/api/project/get_projects_data.py +26 -43
  167. uncountable/types/api/recipe_links/__init__.py +1 -0
  168. uncountable/types/api/recipe_links/create_recipe_link.py +46 -0
  169. uncountable/types/api/recipe_links/remove_recipe_link.py +45 -0
  170. uncountable/types/api/recipe_metadata/get_recipe_metadata_data.py +21 -10
  171. uncountable/types/api/recipes/add_recipe_to_project.py +42 -0
  172. uncountable/types/api/recipes/archive_recipes.py +42 -0
  173. uncountable/types/api/recipes/associate_recipe_as_input.py +44 -0
  174. uncountable/types/api/recipes/associate_recipe_as_lot.py +43 -0
  175. uncountable/types/api/recipes/clear_recipe_outputs.py +42 -0
  176. uncountable/types/api/recipes/create_recipe.py +51 -0
  177. uncountable/types/api/recipes/create_recipes.py +25 -24
  178. uncountable/types/api/recipes/disassociate_recipe_as_input.py +42 -0
  179. uncountable/types/api/recipes/edit_recipe_inputs.py +283 -0
  180. uncountable/types/api/recipes/get_column_calculation_values.py +58 -0
  181. uncountable/types/api/recipes/get_curve.py +13 -27
  182. uncountable/types/api/recipes/get_recipe_calculations.py +21 -21
  183. uncountable/types/api/recipes/get_recipe_links.py +14 -6
  184. uncountable/types/api/recipes/get_recipe_names.py +18 -7
  185. uncountable/types/api/recipes/get_recipe_output_metadata.py +18 -19
  186. uncountable/types/api/recipes/get_recipes_data.py +83 -144
  187. uncountable/types/api/recipes/lock_recipes.py +63 -0
  188. uncountable/types/api/recipes/remove_recipe_from_project.py +42 -0
  189. uncountable/types/api/recipes/set_recipe_inputs.py +21 -11
  190. uncountable/types/api/recipes/set_recipe_metadata.py +43 -0
  191. uncountable/types/api/recipes/set_recipe_output_annotations.py +115 -0
  192. uncountable/types/api/recipes/set_recipe_output_file.py +56 -0
  193. uncountable/types/api/recipes/set_recipe_outputs.py +28 -15
  194. uncountable/types/api/recipes/set_recipe_tags.py +109 -0
  195. uncountable/types/api/recipes/unarchive_recipes.py +41 -0
  196. uncountable/types/api/recipes/unlock_recipes.py +50 -0
  197. uncountable/types/api/triggers/__init__.py +1 -0
  198. uncountable/types/api/triggers/run_trigger.py +43 -0
  199. uncountable/types/api/uploader/__init__.py +1 -0
  200. uncountable/types/api/uploader/invoke_uploader.py +47 -0
  201. uncountable/types/async_batch.py +13 -0
  202. uncountable/types/async_batch_processor.py +384 -0
  203. uncountable/types/async_batch_t.py +97 -0
  204. uncountable/types/async_jobs.py +9 -0
  205. uncountable/types/async_jobs_t.py +53 -0
  206. uncountable/types/auth_retrieval.py +12 -0
  207. uncountable/types/auth_retrieval_t.py +75 -0
  208. uncountable/types/base.py +5 -78
  209. uncountable/types/base_t.py +85 -0
  210. uncountable/types/calculations.py +8 -0
  211. uncountable/types/calculations_t.py +27 -0
  212. uncountable/types/chemical_structure.py +8 -0
  213. uncountable/types/chemical_structure_t.py +28 -0
  214. uncountable/types/client_base.py +1115 -76
  215. uncountable/types/client_config.py +8 -0
  216. uncountable/types/client_config_t.py +26 -0
  217. uncountable/types/curves.py +10 -0
  218. uncountable/types/curves_t.py +51 -0
  219. uncountable/types/entity.py +8 -266
  220. uncountable/types/entity_t.py +393 -0
  221. uncountable/types/experiment_groups.py +8 -0
  222. uncountable/types/experiment_groups_t.py +27 -0
  223. uncountable/types/field_values.py +17 -23
  224. uncountable/types/field_values_t.py +204 -0
  225. uncountable/types/fields.py +8 -0
  226. uncountable/types/fields_t.py +28 -0
  227. uncountable/types/generic_upload.py +15 -0
  228. uncountable/types/generic_upload_t.py +119 -0
  229. uncountable/types/id_source.py +12 -0
  230. uncountable/types/id_source_t.py +68 -0
  231. uncountable/types/identifier.py +11 -0
  232. uncountable/types/identifier_t.py +63 -0
  233. uncountable/types/input_attributes.py +8 -0
  234. uncountable/types/input_attributes_t.py +30 -0
  235. uncountable/types/inputs.py +11 -0
  236. uncountable/types/inputs_t.py +83 -0
  237. uncountable/types/integration_server.py +9 -0
  238. uncountable/types/integration_server_t.py +42 -0
  239. uncountable/types/job_definition.py +27 -0
  240. uncountable/types/job_definition_t.py +260 -0
  241. uncountable/types/outputs.py +8 -0
  242. uncountable/types/outputs_t.py +30 -0
  243. uncountable/types/overrides.py +10 -0
  244. uncountable/types/overrides_t.py +49 -0
  245. uncountable/types/permissions.py +8 -0
  246. uncountable/types/permissions_t.py +46 -0
  247. uncountable/types/phases.py +8 -0
  248. uncountable/types/phases_t.py +27 -0
  249. uncountable/types/post_base.py +8 -0
  250. uncountable/types/post_base_t.py +30 -0
  251. uncountable/types/queued_job.py +16 -0
  252. uncountable/types/queued_job_t.py +123 -0
  253. uncountable/types/recipe_identifiers.py +12 -0
  254. uncountable/types/recipe_identifiers_t.py +76 -0
  255. uncountable/types/recipe_inputs.py +9 -0
  256. uncountable/types/recipe_inputs_t.py +30 -0
  257. uncountable/types/recipe_links.py +4 -44
  258. uncountable/types/recipe_links_t.py +54 -0
  259. uncountable/types/recipe_metadata.py +10 -0
  260. uncountable/types/recipe_metadata_t.py +58 -0
  261. uncountable/types/recipe_output_metadata.py +8 -0
  262. uncountable/types/recipe_output_metadata_t.py +28 -0
  263. uncountable/types/recipe_tags.py +8 -0
  264. uncountable/types/recipe_tags_t.py +27 -0
  265. uncountable/types/recipe_workflow_steps.py +14 -0
  266. uncountable/types/recipe_workflow_steps_t.py +95 -0
  267. uncountable/types/recipes.py +8 -0
  268. uncountable/types/recipes_t.py +25 -0
  269. uncountable/types/response.py +8 -0
  270. uncountable/types/response_t.py +26 -0
  271. uncountable/types/secret_retrieval.py +12 -0
  272. uncountable/types/secret_retrieval_t.py +75 -0
  273. uncountable/types/units.py +8 -0
  274. uncountable/types/units_t.py +27 -0
  275. uncountable/types/users.py +8 -0
  276. uncountable/types/users_t.py +28 -0
  277. uncountable/types/webhook_job.py +9 -0
  278. uncountable/types/webhook_job_t.py +37 -0
  279. uncountable/types/workflows.py +9 -0
  280. uncountable/types/workflows_t.py +39 -0
  281. UncountablePythonSDK-0.0.7.dist-info/METADATA +0 -27
  282. UncountablePythonSDK-0.0.7.dist-info/RECORD +0 -119
  283. examples/recipe-import/importer.py +0 -39
  284. type_spec/external/api/batch/execute_batch.yaml +0 -56
  285. type_spec/external/api/entity/create_entities.yaml +0 -33
  286. type_spec/external/api/entity/create_entity.yaml +0 -39
  287. type_spec/external/api/entity/get_entities_data.yaml +0 -55
  288. type_spec/external/api/entity/list_entities.yaml +0 -62
  289. type_spec/external/api/entity/resolve_entity_ids.yaml +0 -29
  290. type_spec/external/api/entity/set_values.yaml +0 -45
  291. type_spec/external/api/input_groups/get_input_group_names.yaml +0 -29
  292. type_spec/external/api/inputs/create_inputs.yaml +0 -61
  293. type_spec/external/api/inputs/get_input_data.yaml +0 -108
  294. type_spec/external/api/inputs/get_input_names.yaml +0 -38
  295. type_spec/external/api/inputs/get_inputs_data.yaml +0 -95
  296. type_spec/external/api/inputs/set_input_attribute_values.yaml +0 -37
  297. type_spec/external/api/outputs/get_output_data.yaml +0 -103
  298. type_spec/external/api/outputs/get_output_names.yaml +0 -35
  299. type_spec/external/api/outputs/resolve_output_conditions.yaml +0 -50
  300. type_spec/external/api/project/get_projects.yaml +0 -52
  301. type_spec/external/api/project/get_projects_data.yaml +0 -86
  302. type_spec/external/api/recipe_metadata/get_recipe_metadata_data.yaml +0 -41
  303. type_spec/external/api/recipes/create_recipes.yaml +0 -60
  304. type_spec/external/api/recipes/get_curve.yaml +0 -50
  305. type_spec/external/api/recipes/get_recipe_calculations.yaml +0 -49
  306. type_spec/external/api/recipes/get_recipe_links.yaml +0 -26
  307. type_spec/external/api/recipes/get_recipe_names.yaml +0 -29
  308. type_spec/external/api/recipes/get_recipe_output_metadata.yaml +0 -49
  309. type_spec/external/api/recipes/get_recipes_data.yaml +0 -372
  310. type_spec/external/api/recipes/set_recipe_inputs.yaml +0 -36
  311. type_spec/external/api/recipes/set_recipe_outputs.yaml +0 -56
@@ -0,0 +1,8 @@
1
+ # flake8: noqa: F821
2
+ # ruff: noqa: E402 Q003
3
+ # fmt: off
4
+ # isort: skip_file
5
+ # DO NOT MODIFY -- This file is generated by type_spec
6
+ # Kept only for SDK backwards compatibility
7
+ from .users_t import SimpleUser as SimpleUser
8
+ # DO NOT MODIFY -- This file is generated by type_spec
@@ -0,0 +1,28 @@
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 base_t
13
+
14
+ __all__: list[str] = [
15
+ "SimpleUser",
16
+ ]
17
+
18
+
19
+ # DO NOT MODIFY -- This file is generated by type_spec
20
+ @serial_class(
21
+ named_type_path="sdk.users.SimpleUser",
22
+ )
23
+ @dataclasses.dataclass(kw_only=True)
24
+ class SimpleUser:
25
+ user_id: base_t.ObjectId
26
+ display_name: str
27
+ email: str
28
+ # DO NOT MODIFY -- This file is generated by type_spec
@@ -0,0 +1,9 @@
1
+ # flake8: noqa: F821
2
+ # ruff: noqa: E402 Q003
3
+ # fmt: off
4
+ # isort: skip_file
5
+ # DO NOT MODIFY -- This file is generated by type_spec
6
+ # Kept only for SDK backwards compatibility
7
+ from .webhook_job_t import WebhookEventPayload as WebhookEventPayload
8
+ from .webhook_job_t import WebhookEventBody as WebhookEventBody
9
+ # DO NOT MODIFY -- This file is generated by type_spec
@@ -0,0 +1,37 @@
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 base_t
13
+
14
+ __all__: list[str] = [
15
+ "WebhookEventBody",
16
+ "WebhookEventPayload",
17
+ ]
18
+
19
+
20
+ # DO NOT MODIFY -- This file is generated by type_spec
21
+ @serial_class(
22
+ named_type_path="sdk.webhook_job.WebhookEventPayload",
23
+ unconverted_values={"data"},
24
+ )
25
+ @dataclasses.dataclass(kw_only=True)
26
+ class WebhookEventPayload:
27
+ data: dict[str, base_t.JsonValue]
28
+
29
+
30
+ # DO NOT MODIFY -- This file is generated by type_spec
31
+ @serial_class(
32
+ named_type_path="sdk.webhook_job.WebhookEventBody",
33
+ )
34
+ @dataclasses.dataclass(kw_only=True)
35
+ class WebhookEventBody(WebhookEventPayload):
36
+ event_id: str
37
+ # DO NOT MODIFY -- This file is generated by type_spec
@@ -0,0 +1,9 @@
1
+ # flake8: noqa: F821
2
+ # ruff: noqa: E402 Q003
3
+ # fmt: off
4
+ # isort: skip_file
5
+ # DO NOT MODIFY -- This file is generated by type_spec
6
+ # Kept only for SDK backwards compatibility
7
+ from .workflows_t import SimpleWorkflowStep as SimpleWorkflowStep
8
+ from .workflows_t import SimpleWorkflow as SimpleWorkflow
9
+ # DO NOT MODIFY -- This file is generated by type_spec
@@ -0,0 +1,39 @@
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 base_t
13
+
14
+ __all__: list[str] = [
15
+ "SimpleWorkflow",
16
+ "SimpleWorkflowStep",
17
+ ]
18
+
19
+
20
+ # DO NOT MODIFY -- This file is generated by type_spec
21
+ @serial_class(
22
+ named_type_path="sdk.workflows.SimpleWorkflowStep",
23
+ )
24
+ @dataclasses.dataclass(kw_only=True)
25
+ class SimpleWorkflowStep:
26
+ workflow_step_id: base_t.ObjectId
27
+ name: typing.Optional[str]
28
+
29
+
30
+ # DO NOT MODIFY -- This file is generated by type_spec
31
+ @serial_class(
32
+ named_type_path="sdk.workflows.SimpleWorkflow",
33
+ )
34
+ @dataclasses.dataclass(kw_only=True)
35
+ class SimpleWorkflow:
36
+ workflow_id: base_t.ObjectId
37
+ name: str
38
+ workflow_steps: list[SimpleWorkflowStep]
39
+ # DO NOT MODIFY -- This file is generated by type_spec
@@ -1,27 +0,0 @@
1
- Metadata-Version: 2.1
2
- Name: UncountablePythonSDK
3
- Version: 0.0.7
4
- Summary: Uncountable SDK
5
- Project-URL: Homepage, https://github.com/uncountableinc/uncountable-python-sdk
6
- Project-URL: Repository, https://github.com/uncountableinc/uncountable-python-sdk.git
7
- Project-URL: Issues, https://github.com/uncountableinc/uncountable-python-sdk/issues
8
- Keywords: uncountable,sdk,api,uncountable-sdk
9
- Classifier: Development Status :: 4 - Beta
10
- Classifier: Environment :: Console
11
- Classifier: Intended Audience :: Developers
12
- Classifier: Operating System :: OS Independent
13
- Classifier: Programming Language :: Python :: 3
14
- Classifier: Topic :: Software Development
15
- Classifier: Topic :: Utilities
16
- Classifier: Typing :: Typed
17
- Requires-Python: >=3.11
18
- Description-Content-Type: text/markdown
19
- Requires-Dist: requests >=2.31.0
20
- Provides-Extra: test
21
- Requires-Dist: mypy >=1.8.1 ; extra == 'test'
22
- Requires-Dist: ruff >=0.2.1 ; extra == 'test'
23
- Requires-Dist: pytest >=7.4.3 ; extra == 'test'
24
- Requires-Dist: coverage[toml] >=6.5.0 ; extra == 'test'
25
- Requires-Dist: pytest-cov >=4.1.0 ; extra == 'test'
26
- Requires-Dist: pytest-xdist >=3.5.0 ; extra == 'test'
27
-
@@ -1,119 +0,0 @@
1
- examples/create_entity.py,sha256=0wpH-FvEgZmmlgkqL7tY7wAX6wvHdPQbMMJJvhagBok,622
2
- examples/recipe-import/importer.py,sha256=baD71xuNibxDTe3bGHsMEIZEf9Xtb-IumBNpCEV0RZU,1134
3
- pkgs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
4
- pkgs/argument_parser/__init__.py,sha256=CsQ6QoPKSLLRVl-z6URAmPkiUL9ZPZoV4rJHgy_-RjA,385
5
- pkgs/argument_parser/_is_enum.py,sha256=JQPlVIW0z-N9Qux61TQXaqP3lIHEhOOGwe9--JcM4Ro,393
6
- pkgs/argument_parser/_is_namedtuple.py,sha256=Rjc1bKanIPPogl3qG5JPBxglG1TqWYOo1nxxhBASQWY,265
7
- pkgs/argument_parser/argument_parser.py,sha256=0jXJ_gUNYj9dxpuyFl64o-zRVDwWBiSC9mXKdP53i6I,14446
8
- pkgs/argument_parser/case_convert.py,sha256=J9wahIE-P95LvTqn4M4gDUx_RXeiW2SRo9i_1bz1E6A,558
9
- pkgs/serialization/__init__.py,sha256=quvXMSl1szddLTr4Yxo9KA9oBMoeX7qGpFkkAplFBbY,603
10
- pkgs/serialization/missing_sentry.py,sha256=0r1JF2yt6bF42nVWWnhk5Ohdi1O7K-ghEAIl1SyjmWU,803
11
- pkgs/serialization/opaque_key.py,sha256=FIfXEE0DA1U8R_taFbQ1RCoTSgehrPjP06-qvo-GeNQ,177
12
- pkgs/serialization/serial_class.py,sha256=xTFf5E94bLTcDEQxS0xvc1QZUS6ntQeRqbiuSw12aRI,5182
13
- pkgs/serialization_util/__init__.py,sha256=4vX5j1pvd1NkznSVqwWqunVyOvQtLCgVuwRjVwDk7qg,447
14
- pkgs/serialization_util/_get_type_for_serialization.py,sha256=DSqvDAcf9pHCnDiTF9m4xkvQ38Bsq1i4mSoiJlQWaQc,1209
15
- pkgs/serialization_util/serialization_helpers.py,sha256=rZ5IH2BB4L7dyuWFp-zL3O6pNhftQa382SwshJ9Zdmg,5041
16
- pkgs/strenum_compat/__init__.py,sha256=wXRFeNvBm8RU6dy1PFJ5sRLgUIEeH_DVR95Sv5qpGbk,59
17
- pkgs/strenum_compat/strenum_compat.py,sha256=vGJlrMZpOqiGXvv21IbS0amdB2xQ2CdYKvnfEfHLr8E,156
18
- pkgs/type_spec/__init__.py,sha256=h5DmJTca4QVV10sZR1x0-MlkZfuGYDfapR3zHvXfzto,19
19
- pkgs/type_spec/__main__.py,sha256=5bJaX9Y_-FavP0qwzhk-z-V97UY7uaezJTa1zhO_HHQ,1048
20
- pkgs/type_spec/builder.py,sha256=Pl3UzHYgci3XRYsJ-pEsrdKu26mrJeLQv66OS2KePGc,38993
21
- pkgs/type_spec/config.py,sha256=wXALehQr_CcteOY_KbeI3rtmGgqVzHcveAhgKCDfQoQ,4934
22
- pkgs/type_spec/emit_io_ts.py,sha256=gCEfS81w_ifqjLVJ3_cpy9Gq03o6H5nEsh35WAkqGGE,5606
23
- pkgs/type_spec/emit_open_api.py,sha256=8tidMRWubBmiiq-XCu_2732IvwTc6R3miurdlBCv3-w,16939
24
- pkgs/type_spec/emit_open_api_util.py,sha256=S4eHeryxiGUNujypmwn8UZQSlaCCWn7uMpiZzNJJqCg,2054
25
- pkgs/type_spec/emit_python.py,sha256=Y-3eXhWwWns2wZQwcriMN3rgNN20ad5NDphKbGkdCwI,35459
26
- pkgs/type_spec/emit_typescript.py,sha256=6tlzvyHc7iIEic01AtjYWuzy7Ac3KijtXRQ3IQSN7JE,18670
27
- pkgs/type_spec/emit_typescript_util.py,sha256=MZMigIsYIYOXLjJqp-DSRYsztWbIKd9QQEmYRRqnGQ4,894
28
- pkgs/type_spec/load_types.py,sha256=LMIkrk0n-Kh4I4CUOBzuboYtsAHBYuMrL9d2hkU83f4,2184
29
- pkgs/type_spec/open_api_util.py,sha256=eJBYgKmu6twqParqWUIIywzx8RM-2dOIyoBLRMHMmqo,7414
30
- pkgs/type_spec/test.py,sha256=4ueujBq-pEgnX3Z69HyPmD-bullFXmpixcpVzfOkhP4,489
31
- pkgs/type_spec/util.py,sha256=pTV9EB4_M0tucWwape9_1m5maIi3UKPw44SA_Mc8KNA,4856
32
- pkgs/type_spec/parts/base.py.prepart,sha256=2RsjF9nTwERb7M0LKsPjGbN5cL2QMwMVt4QHpUPPM70,2147
33
- pkgs/type_spec/parts/base.ts.prepart,sha256=2FJJvpg2olCcavxj0nbYWdwKl6KeScour2JjSvN42l8,1001
34
- pkgs/type_spec/type_info/__main__.py,sha256=pmVjVqXyVh8vKTNCTFgz80Sg74C5BKToP3E6GS-X_So,857
35
- pkgs/type_spec/type_info/emit_type_info.py,sha256=xWcZsgdEwApqqvtinZXyyBM61FZ9rmP9oybKapz8xN4,7692
36
- pkgs/type_spec/value_spec/__init__.py,sha256=Z-grlcZtxAfEXhPHsK0nD7PFLGsv4eqvunaPN7_TA84,83
37
- pkgs/type_spec/value_spec/__main__.py,sha256=syggR7J5MjFiULgPKcwb1T9u6eEyJUm9UlkIwP8V5IU,8300
38
- pkgs/type_spec/value_spec/convert_type.py,sha256=SAYyEV6orQJJbkXSE4hhtOQJ2vKUXJCKPeYPrB8G9oA,2272
39
- pkgs/type_spec/value_spec/emit_python.py,sha256=M9NyHi-akTw4cUsHCEK7rsFirb8ngYThiIW7xh2xSko,6943
40
- pkgs/type_spec/value_spec/types.py,sha256=a2zxbbCRWepY1l8OtjeCDKgBKFPFHVgV99oP6pTtaro,441
41
- type_spec/external/api/batch/execute_batch.yaml,sha256=gpdSev3sLEC_cMVSZdj-9bc_XDFDqdPdOII9Ojme2N8,1170
42
- type_spec/external/api/entity/create_entities.yaml,sha256=7DqYSkUPUwAN6e6P9Nx8Fzl7I2xsV5qZZQiRAOsiWG4,1057
43
- type_spec/external/api/entity/create_entity.yaml,sha256=yQpvVJJO7RnLCCpZTztTRmuQncIIobhEQYftLODTljE,1252
44
- type_spec/external/api/entity/get_entities_data.yaml,sha256=-whdM4l4xsAb_kc-bHdNEwJr4pCN7WA4Y7z-CBJXRag,1470
45
- type_spec/external/api/entity/list_entities.yaml,sha256=pMNfFIbnc8onE1I4yiCXJSAXGZa0IaiPTe_cQ1HM27I,2030
46
- type_spec/external/api/entity/resolve_entity_ids.yaml,sha256=Of5zyjHYzxVZEjknTxVlJMnsAxdgOWWaerPdKwdybjc,720
47
- type_spec/external/api/entity/set_values.yaml,sha256=PKDiSrhLQB_k2ea4U5574_C4RKzh_ekI6EoBp-yd7ew,1143
48
- type_spec/external/api/input_groups/get_input_group_names.yaml,sha256=gPIcDivBCgzKCuHvovUx8RTo6wdYCpDUEaDrlmHUj9U,911
49
- type_spec/external/api/inputs/create_inputs.yaml,sha256=lvrbbDadh2r1l5-yn4maLJBDNlJ73KGGf3q-IoDUhDs,1858
50
- type_spec/external/api/inputs/get_input_data.yaml,sha256=fTE2HoULyFkVmpLfyTUXsC3By1xEX9cZVQQWVpHNSZU,4248
51
- type_spec/external/api/inputs/get_input_names.yaml,sha256=9RL7hdH6antPgzm7bHWWcwSQY39Dgqu4yhIJnONwdQE,1518
52
- type_spec/external/api/inputs/get_inputs_data.yaml,sha256=TIn0K3sBgOCzrXygGm_SV7vRiM_vLnmkfV5qzCXPOOI,2756
53
- type_spec/external/api/inputs/set_input_attribute_values.yaml,sha256=EaWfvto6dfhOEOcKThHMwzBsQZfEDrPrNiCnL6ouQSM,1149
54
- type_spec/external/api/outputs/get_output_data.yaml,sha256=HKcqTLwWurzwAxDvysuRAPPVXIdD6cA19xNa8CSW1W0,3754
55
- type_spec/external/api/outputs/get_output_names.yaml,sha256=wz0NU2NjQWwNmiMCBu3St14SMcFb2RBVJcxhqGY2fWw,1332
56
- type_spec/external/api/outputs/resolve_output_conditions.yaml,sha256=lGrG6XPGiQtHx24GccPcO18xxAoMynTSC_2WwxCjFrc,1640
57
- type_spec/external/api/project/get_projects.yaml,sha256=5FAOH0qQPwWiSiQg3PSKjV7-h6znaN10AG4iF4X2RhY,1923
58
- type_spec/external/api/project/get_projects_data.yaml,sha256=Xgoe3yphg1OzHedH-68B0jvRfYNombF-giFqFrgJ-Sk,2913
59
- type_spec/external/api/recipe_metadata/get_recipe_metadata_data.yaml,sha256=MbNIJdz3c7NXhQVkbV8XTAyzWTwGSzXriVU8UH90DhE,1754
60
- type_spec/external/api/recipes/create_recipes.yaml,sha256=8JnRVjQ_vDKYKXbgZ6Z_RBcm5WechFvw_hg8oJ_6zcs,1930
61
- type_spec/external/api/recipes/get_curve.yaml,sha256=Th1HDGN6EXLYAiOusnjAXylfgc6OpKbYlc9MpZnGujQ,1592
62
- type_spec/external/api/recipes/get_recipe_calculations.yaml,sha256=pnZtQH4S8_tAL5a1laI3QhAugJU_AbqMyK7zszIHqj4,1440
63
- type_spec/external/api/recipes/get_recipe_links.yaml,sha256=VXpJndQt04rmTvT7v7FdcyfBhg1u1B3_a7iGeeoSXWk,765
64
- type_spec/external/api/recipes/get_recipe_names.yaml,sha256=lfZGDRl8__cjYPtH9fPFHRnOgmae192x2l5b4xTxBZo,894
65
- type_spec/external/api/recipes/get_recipe_output_metadata.yaml,sha256=Y9fszN16FFnfxo9SfIkzS8fDnZ20L6_iBVyHaPN58uI,1584
66
- type_spec/external/api/recipes/get_recipes_data.yaml,sha256=Q41ci5cbGPuEYR72HLu4f-0Kl_Za4QPmzNbtp2fZtJ0,16291
67
- type_spec/external/api/recipes/set_recipe_inputs.yaml,sha256=i3G5IcdLNlhJI4F8Q4P7awRBrfDMMiutJg_zj1dvLPA,1446
68
- type_spec/external/api/recipes/set_recipe_outputs.yaml,sha256=REqgBpkoayIsP2TB_zmmOUYFWguLuef0N0imDQ4h2Sw,2002
69
- uncountable/__init__.py,sha256=281cC2hs8pbrD0jVKMol-tbWSh7Zcsc8oRT42dKteyE,102
70
- uncountable/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
71
- uncountable/core/__init__.py,sha256=GCXRRhhYv-yKzqKjAij7GcNiOr90BBbgdhhpusWtmUc,100
72
- uncountable/core/client.py,sha256=jcJBGwe31fOqfGiUJzW_KMcfE0hax55jgVVliALBNLQ,4160
73
- uncountable/types/__init__.py,sha256=NXgMS4P3ettpqcV1Hu96i8EliDd9SkcTt9tHU5jPdtg,2955
74
- uncountable/types/base.py,sha256=7yMC3sCQ13wd92896Ga2XbZffCqq98SKv09rFGb1ulg,2682
75
- uncountable/types/client_base.py,sha256=pf8vo7Bl55XCUbXiUmQ4q6JrWZ0qufj_TEP8zNMAw5E,20388
76
- uncountable/types/entity.py,sha256=DypCKRn-xOOQoVkd3JpcEN9DbDZSAIgBVDziS6eM6GQ,11526
77
- uncountable/types/field_values.py,sha256=kBFSZVEMvK-wr1YMyK5RD4mw4LEI6aRIySJstX32ol4,743
78
- uncountable/types/recipe_links.py,sha256=8TfRnV8sWOQaZ57_2VGET5Avsa_k5hGlYqtGBdfEvjM,1353
79
- uncountable/types/api/__init__.py,sha256=gCgbynxG3jA8FQHzercKtrHKHkiIKr8APdZYUniAor8,55
80
- uncountable/types/api/batch/__init__.py,sha256=gCgbynxG3jA8FQHzercKtrHKHkiIKr8APdZYUniAor8,55
81
- uncountable/types/api/batch/execute_batch.py,sha256=cCZo_akwJR4_ET6oOBChdlrCQlxUw8V9i8tDpv7JTIc,1696
82
- uncountable/types/api/entity/__init__.py,sha256=gCgbynxG3jA8FQHzercKtrHKHkiIKr8APdZYUniAor8,55
83
- uncountable/types/api/entity/create_entities.py,sha256=ivhGU4pIVT09H4mtZ8yhBO2SyfbtcdM_hZN4-8KEYVI,1403
84
- uncountable/types/api/entity/create_entity.py,sha256=xEmzm1H1LnMfSIUYvvfKgNKWaMFOBhFOctb1KPsEjdo,1604
85
- uncountable/types/api/entity/get_entities_data.py,sha256=Bp4J_7Gqz-gZtps0ClNHGZti7aGmEmgpaqCWkiYHcc8,1500
86
- uncountable/types/api/entity/list_entities.py,sha256=bCi3CRKw76-lK6qlMjva3ZHBDNnw2jMwjfTEzYAkULg,1542
87
- uncountable/types/api/entity/resolve_entity_ids.py,sha256=HRkW-q5eoin73co-C58HWpHuaODgXimRi4OHsaWOkoQ,992
88
- uncountable/types/api/entity/set_values.py,sha256=iD2rxBRm0VJSSH5SYoUefO0E1IHIZAwWA1FBSEBag1o,1373
89
- uncountable/types/api/input_groups/__init__.py,sha256=gCgbynxG3jA8FQHzercKtrHKHkiIKr8APdZYUniAor8,55
90
- uncountable/types/api/input_groups/get_input_group_names.py,sha256=0mM4MNhSexDjpclHt1njglDVWN3Qx05nx9JO3Q1aEfQ,978
91
- uncountable/types/api/inputs/__init__.py,sha256=gCgbynxG3jA8FQHzercKtrHKHkiIKr8APdZYUniAor8,55
92
- uncountable/types/api/inputs/create_inputs.py,sha256=T8qHw3VPoIZDvgTUyUHOxsfwEDY-I5faHdB_n0RwcVI,1836
93
- uncountable/types/api/inputs/get_input_data.py,sha256=SKOjEGIFru2oqsJAQujVPzCuJ1A5FgzQUcxioFTXj4w,2284
94
- uncountable/types/api/inputs/get_input_names.py,sha256=JZUMefmKdSSxEtpOpQtHw7i-NzRXgkYtYIy4u9CS20w,1050
95
- uncountable/types/api/inputs/get_inputs_data.py,sha256=lE8VgEe7XiKlgsnOEO_3O9afbyvEVYqauEZyUzxCIeg,2057
96
- uncountable/types/api/inputs/set_input_attribute_values.py,sha256=5GYNiyxVoqledEF85DkQLByK-WgD0D4-M20_nrHwJps,1335
97
- uncountable/types/api/outputs/__init__.py,sha256=gCgbynxG3jA8FQHzercKtrHKHkiIKr8APdZYUniAor8,55
98
- uncountable/types/api/outputs/get_output_data.py,sha256=z-gz8i81AwZrU5s-R1GJ9MXvJRm2QKYY_mrFuPVcWOk,2194
99
- uncountable/types/api/outputs/get_output_names.py,sha256=6fWAejFw0Qban9ydrAddZHNkXNuTSXTUkGkOpi-Ye3o,1031
100
- uncountable/types/api/outputs/resolve_output_conditions.py,sha256=XZqUseXcGhApHmPm-2u7a37Y4blLRxoPoLhvYlBfCpI,1799
101
- uncountable/types/api/project/__init__.py,sha256=gCgbynxG3jA8FQHzercKtrHKHkiIKr8APdZYUniAor8,55
102
- uncountable/types/api/project/get_projects.py,sha256=VPknNBC4KFfmUcnQkolKmWmjQPjEoSVg-0sFvLkZlO0,1234
103
- uncountable/types/api/project/get_projects_data.py,sha256=-cTi_r3CYW_4rzHHZcQEwL9f8Aq18at_I7vcPBovh1E,1811
104
- uncountable/types/api/recipe_metadata/__init__.py,sha256=gCgbynxG3jA8FQHzercKtrHKHkiIKr8APdZYUniAor8,55
105
- uncountable/types/api/recipe_metadata/get_recipe_metadata_data.py,sha256=M4KPseNX7K8kWAnR_CXJFg7HgaGrubFQl7_x-TK1OvU,1152
106
- uncountable/types/api/recipes/__init__.py,sha256=gCgbynxG3jA8FQHzercKtrHKHkiIKr8APdZYUniAor8,55
107
- uncountable/types/api/recipes/create_recipes.py,sha256=ZvepPEwH9z5x31G7hYBlaKnYPCBu5sCHWsTajUSs_aM,1765
108
- uncountable/types/api/recipes/get_curve.py,sha256=-N5GUATarAR8eLzMCTuLz6VMx-dU6L741lBN2OzuO-4,1322
109
- uncountable/types/api/recipes/get_recipe_calculations.py,sha256=BltC1nSL0x-mGS1Q7XXp8Eg9WsgXJfjAI4YlNaLDIek,1460
110
- uncountable/types/api/recipes/get_recipe_links.py,sha256=pcET39vQrzXTjCDDYP-3_0T0vFCJy5EIy8CNUSyzzWw,942
111
- uncountable/types/api/recipes/get_recipe_names.py,sha256=XC4FGUnRpvyGiQf3-1NbOD5ngBSpcSFHZ2dlIL6g2v8,931
112
- uncountable/types/api/recipes/get_recipe_output_metadata.py,sha256=z9M3S8QQYi82S3HiDktMYNNdaF4dVNkoLh3tqp7HY1I,1533
113
- uncountable/types/api/recipes/get_recipes_data.py,sha256=YPDNf2l6AdD0tEv2zqP3AK2bDLp7cGh2qiAdFiRWzeA,6608
114
- uncountable/types/api/recipes/set_recipe_inputs.py,sha256=XCt4ZN__OqGkvdwh6C9tKbIwiEPeptnfQVAV2p0cGWs,1259
115
- uncountable/types/api/recipes/set_recipe_outputs.py,sha256=rCs1Gayxon8UY4lTHiErJOLVAVCdMaUsevBX-d1gpo4,1560
116
- UncountablePythonSDK-0.0.7.dist-info/METADATA,sha256=mtk2qN2P0ST2d_sIb6e6XxFOCmOaTFHcUW8_aOKNIZE,1125
117
- UncountablePythonSDK-0.0.7.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
118
- UncountablePythonSDK-0.0.7.dist-info/top_level.txt,sha256=8ga1DCSWt4Uc_XJ5cR0QrDQuyoeo2uoSzaAJdQT2KBo,36
119
- UncountablePythonSDK-0.0.7.dist-info/RECORD,,
@@ -1,39 +0,0 @@
1
- from typing import Iterable, Optional
2
- import itertools
3
- from dataclasses import dataclass
4
- from src.client.requests_client import Client
5
- from src.types.api.recipes.external_create_recipes import (
6
- Arguments,
7
- ExternalCreateRecipeDefinition,
8
- )
9
- from src.types.api.entity.external_resolve_entity_identifiers import (
10
- EntityIdentifier
11
- )
12
- from src.types.base import ObjectId
13
-
14
-
15
-
16
- @dataclass(kw_only=True)
17
- class RecipeIngredientData:
18
- ingredient_identifier: EntityIdentifier
19
- recipe_step_id: Optional[ObjectId] = None
20
- value_numeric: Optional[str] = None
21
- value_str: Optional[str] = None
22
- set_actual_value: bool = False
23
-
24
-
25
- def import_recipes(
26
- client: Client,
27
- material_family_id: ObjectId,
28
- project_id: Optional[ObjectId],
29
- recipe_data: Iterable[ExternalCreateRecipeDefinition],
30
- batch_size: int = 100,
31
- ) -> None:
32
- for batch in itertools.batched(recipe_data, batch_size):
33
- client.external_create_recipes(
34
- Arguments(
35
- material_family_id=material_family_id,
36
- project_id=project_id,
37
- recipe_definitions=list(batch),
38
- )
39
- )
@@ -1,56 +0,0 @@
1
- $endpoint:
2
- is_sdk: true
3
- method: post
4
- path: ${external}/batch/execute_batch
5
- function: main.site.app.external.batch.execute_batch.execute_batch
6
- desc: Run multiple API calls via one request
7
-
8
- RequestMethod:
9
- type: StringEnum
10
- values:
11
- get: GET
12
- head: HEAD
13
- post: POST
14
- put: PUT
15
- delete: DELETE
16
- connect: CONNECT
17
- options: OPTIONS
18
- trace: TRACE
19
- patch: PATCH
20
-
21
- BatchRequest:
22
- type: Object
23
- properties:
24
- path:
25
- type: String
26
- method:
27
- type: RequestMethod
28
- data:
29
- convert_value: no_convert
30
- type: JsonValue
31
- desc: JSON payload for the api call
32
-
33
- Arguments:
34
- type: Object
35
- properties:
36
- requests:
37
- type: List<BatchRequest>
38
-
39
- BatchResponse:
40
- type: Object
41
- properties:
42
- path:
43
- type: String
44
- method:
45
- type: RequestMethod
46
- status_code:
47
- type: Integer
48
- response:
49
- convert_value: no_convert
50
- type: JsonValue
51
-
52
- Data:
53
- type: Object
54
- properties:
55
- responses:
56
- type: List<BatchResponse>
@@ -1,33 +0,0 @@
1
- $endpoint:
2
- is_sdk: true
3
- method: post
4
- path: ${external}/entity/external_create_entities
5
- function: main.site.app.external.entity.create_entities.create_entities
6
- desc: "Creates new Uncountable entities"
7
-
8
-
9
- EntityToCreate:
10
- type: Object
11
- properties:
12
- field_values?:
13
- type: Optional<List<field_values.FieldRefNameValue>>
14
-
15
- Arguments:
16
- type: Object
17
- properties:
18
- definition_id:
19
- type: Integer
20
- desc: "Definition id for the entities to create"
21
- entity_type:
22
- type: Union<Literal<entity.EntityType.lab_request>, Literal<entity.EntityType.approval>, Literal<entity.EntityType.custom_entity>, Literal<entity.EntityType.task>, Literal<entity.EntityType.project>>
23
- desc: "The type of the entities to create"
24
- entities_to_create:
25
- type: List<EntityToCreate>
26
- desc: "A list of the entities to create"
27
-
28
- Data:
29
- type: Object
30
- properties:
31
- entities:
32
- type: List<entity.Entity>
33
- desc: The entities created
@@ -1,39 +0,0 @@
1
- $endpoint:
2
- is_sdk: true
3
- method: post
4
- path: ${external}/entity/external_create_entity
5
- function: main.site.app.external.entity.create_entity.create_entity
6
- desc: "Creates a new Uncountable entity"
7
- is_sdk: true
8
-
9
- EntityFieldInitialValue:
10
- type: Object
11
- properties:
12
- field_ref_name:
13
- type: String
14
- desc: "A unique identifer string for the field"
15
- row_index?:
16
- type: Optional<Integer>
17
- desc: "The index in the table for the field"
18
- value:
19
- type: JsonValue
20
- desc: "The value for the field"
21
-
22
- Arguments:
23
- type: Object
24
- properties:
25
- definition_id:
26
- type: Integer
27
- desc: "Definition id of the entity to create"
28
- entity_type:
29
- type: Union<Literal<entity.EntityType.lab_request>, Literal<entity.EntityType.approval>, Literal<entity.EntityType.custom_entity>, Literal<entity.EntityType.task>, Literal<entity.EntityType.project>>
30
- desc: "The type of the entities requested"
31
- field_values?:
32
- type: Optional<List<field_values.FieldRefNameValue>>
33
-
34
- Data:
35
- type: Object
36
- properties:
37
- entity:
38
- type: entity.Entity
39
- desc: The entity created
@@ -1,55 +0,0 @@
1
- $endpoint:
2
- is_sdk: true
3
- method: get
4
- path: ${external}/entity/external_get_entities_data
5
- function: main.site.app.external.entity.get_entities_data.get_entities_data
6
- desc: "Gets the details for a passed entity"
7
- Arguments:
8
- type: Object
9
- properties:
10
- entity_ids:
11
- type: List<Integer>
12
- desc: "Ids of the entity to retrieve"
13
- entity_type:
14
- type: String
15
- desc: "The type of the entities requested, e.g. lab_request or approval"
16
-
17
- EntityFieldValue:
18
- type: Object
19
- properties:
20
- field_id:
21
- type: Integer
22
- desc: "A unique identifier of the field"
23
- field_ref_name:
24
- type: String
25
- desc: "A unique identifer string for the field"
26
- row_index:
27
- type: Optional<Integer>
28
- desc: "The index in the table for the field"
29
- value:
30
- type: JsonValue
31
- desc: "The value for the field"
32
-
33
- Entity:
34
- type: Object
35
- properties:
36
- id:
37
- type: Integer
38
- desc: "A unique identifier for the entity. Used in conjunction with entity type"
39
- type:
40
- type: String
41
- desc: "The type of entity"
42
-
43
- EntityDetails:
44
- type: Object
45
- properties:
46
- entity:
47
- type: Entity
48
- field_values:
49
- type: List<EntityFieldValue>
50
-
51
- Data:
52
- type: Object
53
- properties:
54
- entity_details:
55
- type: List<EntityDetails>
@@ -1,62 +0,0 @@
1
- $endpoint:
2
- is_sdk: true
3
- method: get
4
- path: ${external}/entity/external_list_entities
5
- function: main.site.app.external.entity.list_entities.list_entities
6
- desc: "Uses a structured loading configuration to list entities in the system"
7
- Arguments:
8
- type: Object
9
- properties:
10
- entity_type:
11
- type: String
12
- desc: "The type of the entities requested, e.g. lab_request, recipe"
13
- config_reference:
14
- type: String
15
- desc: "The configuration reference name for the listing config"
16
- attributes?:
17
- type: Dict<OpaqueKey, JsonValue>
18
- desc: "Attributes to pass to the configuration for parameterizing filters"
19
- offset:
20
- type: Optional<Integer>
21
- desc: "Used for pagination. Pagination is done based on the sorting of the config"
22
- limit:
23
- type: Optional<Integer>
24
- desc: "The number of data points to return. If not filled in, it will be set to 100, and cannot be set higher than 100"
25
-
26
- Entity:
27
- type: Object
28
- properties:
29
- id:
30
- type: Integer
31
- desc: "A unique identifier for the entity. Used in conjunction with entity type"
32
- type:
33
- type: String
34
- desc: "The type of entity"
35
-
36
- EntityResult:
37
- type: Object
38
- properties:
39
- entity:
40
- type: Entity
41
- desc: "The entity represented by the record"
42
- column_values:
43
- type: List<JsonValue>
44
- desc: "The column values loaded from the configuration"
45
-
46
- ColumnAccess:
47
- type: Object
48
- properties:
49
- name:
50
- type: String
51
- desc: "The name for the identifier for this column. Note that this will be replaced with the label in the future"
52
- table_label:
53
- type: Optional<String>
54
- desc: "The name manually set for the column"
55
-
56
- Data:
57
- type: Object
58
- properties:
59
- columns:
60
- type: List<ColumnAccess>
61
- results:
62
- type: List<EntityResult>
@@ -1,29 +0,0 @@
1
- $endpoint:
2
- is_sdk: true
3
- method: get
4
- path: ${external}/entity/external_resolve_entity_ids
5
- function: main.site.app.external.entity.resolve_entity_ids.resolve_entity_ids
6
- desc: "Gets the names for passed in ids"
7
- Arguments:
8
- type: Object
9
- properties:
10
- entity_ids:
11
- type: List<Union<String, Integer>>
12
- desc: "Ids of the entity to retrieve"
13
- entity_type:
14
- type: String
15
- desc: "The type of the entities requested"
16
-
17
- EntityNames:
18
- type: Object
19
- properties:
20
- id:
21
- type: Union<String, Integer>
22
- name:
23
- type: String
24
-
25
- Data:
26
- type: Object
27
- properties:
28
- items:
29
- type: List<EntityNames>
@@ -1,45 +0,0 @@
1
- $endpoint:
2
- is_sdk: true
3
- method: post
4
- path: ${external}/entity/external_set_values
5
- function: main.site.app.external.entity.set_values.set_values
6
- desc: "Sets field values for an entity"
7
-
8
- EntityFieldValues:
9
- type: Object
10
- properties:
11
- field_ref_name:
12
- type: String
13
- desc: "A unique identifer string for the field"
14
- row_index?:
15
- type: Optional<Integer>
16
- desc: "The index in the table for the field"
17
- value:
18
- type: JsonValue
19
- desc: "The value for the field"
20
-
21
- Entity:
22
- type: Object
23
- properties:
24
- id:
25
- type: Integer
26
- desc: "A unique identifier for the entity. Used in conjunction with entity type"
27
- type:
28
- type: String
29
- desc: "The type of entity"
30
-
31
- Arguments:
32
- type: Object
33
- properties:
34
- entity:
35
- type: Entity
36
- values:
37
- type: List<EntityFieldValues>
38
-
39
- Data:
40
- type: Object
41
- properties:
42
- status:
43
- type: Literal<'ok'>
44
- default: "ok"
45
- desc: "'ok' indicates the post request was successful"