UncountablePythonSDK 0.0.24__py3-none-any.whl → 0.0.131__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 (373) hide show
  1. docs/conf.py +60 -8
  2. docs/index.md +107 -4
  3. docs/integration_examples/create_ingredient.md +43 -0
  4. docs/integration_examples/create_output.md +56 -0
  5. docs/integration_examples/index.md +6 -0
  6. docs/justfile +2 -2
  7. docs/requirements.txt +7 -5
  8. examples/async_batch.py +5 -6
  9. examples/basic_auth.py +7 -0
  10. examples/create_entity.py +4 -6
  11. examples/create_ingredient_sdk.py +34 -0
  12. examples/download_files.py +26 -0
  13. examples/edit_recipe_inputs.py +50 -0
  14. examples/integration-server/jobs/materials_auto/concurrent_cron.py +11 -0
  15. examples/integration-server/jobs/materials_auto/example_cron.py +21 -0
  16. examples/integration-server/jobs/materials_auto/example_http.py +47 -0
  17. examples/integration-server/jobs/materials_auto/example_instrument.py +100 -0
  18. examples/integration-server/jobs/materials_auto/example_parse.py +140 -0
  19. examples/integration-server/jobs/materials_auto/example_predictions.py +61 -0
  20. examples/integration-server/jobs/materials_auto/example_runsheet_wh.py +39 -0
  21. examples/integration-server/jobs/materials_auto/example_wh.py +23 -0
  22. examples/integration-server/jobs/materials_auto/profile.yaml +104 -0
  23. examples/integration-server/pyproject.toml +224 -0
  24. examples/invoke_uploader.py +26 -0
  25. examples/oauth.py +7 -0
  26. examples/set_recipe_metadata_file.py +40 -0
  27. examples/set_recipe_output_file_sdk.py +26 -0
  28. examples/upload_files.py +2 -3
  29. pkgs/argument_parser/__init__.py +9 -0
  30. pkgs/argument_parser/_is_namedtuple.py +3 -0
  31. pkgs/argument_parser/argument_parser.py +295 -74
  32. pkgs/argument_parser/case_convert.py +4 -3
  33. pkgs/filesystem_utils/__init__.py +20 -0
  34. pkgs/filesystem_utils/_blob_session.py +144 -0
  35. pkgs/filesystem_utils/_gdrive_session.py +309 -0
  36. pkgs/filesystem_utils/_local_session.py +69 -0
  37. pkgs/filesystem_utils/_s3_session.py +118 -0
  38. pkgs/filesystem_utils/_sftp_session.py +151 -0
  39. pkgs/filesystem_utils/file_type_utils.py +91 -0
  40. pkgs/filesystem_utils/filesystem_session.py +39 -0
  41. pkgs/py.typed +0 -0
  42. pkgs/serialization/__init__.py +8 -1
  43. pkgs/serialization/annotation.py +64 -0
  44. pkgs/serialization/missing_sentry.py +1 -1
  45. pkgs/serialization/opaque_key.py +1 -1
  46. pkgs/serialization/serial_alias.py +47 -0
  47. pkgs/serialization/serial_class.py +69 -54
  48. pkgs/serialization/serial_generic.py +16 -0
  49. pkgs/serialization/serial_union.py +84 -0
  50. pkgs/serialization/yaml.py +57 -0
  51. pkgs/serialization_util/__init__.py +7 -7
  52. pkgs/serialization_util/convert_to_snakecase.py +27 -0
  53. pkgs/serialization_util/dataclasses.py +14 -0
  54. pkgs/serialization_util/serialization_helpers.py +117 -71
  55. pkgs/type_spec/actions_registry/__main__.py +0 -4
  56. pkgs/type_spec/actions_registry/emit_typescript.py +5 -5
  57. pkgs/type_spec/builder.py +438 -109
  58. pkgs/type_spec/builder_types.py +9 -0
  59. pkgs/type_spec/config.py +52 -24
  60. pkgs/type_spec/cross_output_links.py +99 -0
  61. pkgs/type_spec/emit_io_ts.py +1 -1
  62. pkgs/type_spec/emit_open_api.py +160 -41
  63. pkgs/type_spec/emit_open_api_util.py +13 -7
  64. pkgs/type_spec/emit_python.py +450 -136
  65. pkgs/type_spec/emit_typescript.py +117 -250
  66. pkgs/type_spec/emit_typescript_util.py +293 -4
  67. pkgs/type_spec/load_types.py +20 -5
  68. pkgs/type_spec/non_discriminated_union_exceptions.py +14 -0
  69. pkgs/type_spec/open_api_util.py +29 -4
  70. pkgs/type_spec/parts/base.py.prepart +13 -10
  71. pkgs/type_spec/parts/base.ts.prepart +4 -0
  72. pkgs/type_spec/type_info/__main__.py +3 -1
  73. pkgs/type_spec/type_info/emit_type_info.py +161 -32
  74. pkgs/type_spec/ui_entry_actions/__init__.py +4 -0
  75. pkgs/type_spec/ui_entry_actions/generate_ui_entry_actions.py +308 -0
  76. pkgs/type_spec/util.py +4 -4
  77. pkgs/type_spec/value_spec/__main__.py +27 -10
  78. pkgs/type_spec/value_spec/convert_type.py +21 -1
  79. pkgs/type_spec/value_spec/emit_python.py +25 -7
  80. pkgs/type_spec/value_spec/types.py +1 -1
  81. uncountable/__init__.py +1 -2
  82. uncountable/core/__init__.py +11 -3
  83. uncountable/core/async_batch.py +16 -1
  84. uncountable/core/client.py +247 -52
  85. uncountable/core/environment.py +41 -0
  86. uncountable/core/file_upload.py +67 -22
  87. uncountable/core/types.py +8 -13
  88. uncountable/integration/cli.py +142 -0
  89. uncountable/integration/construct_client.py +43 -27
  90. uncountable/integration/cron.py +12 -11
  91. uncountable/integration/db/connect.py +12 -2
  92. uncountable/integration/db/session.py +25 -0
  93. uncountable/integration/entrypoint.py +4 -34
  94. uncountable/integration/executors/executors.py +147 -0
  95. uncountable/integration/executors/generic_upload_executor.py +336 -0
  96. uncountable/integration/executors/script_executor.py +15 -9
  97. uncountable/integration/http_server/__init__.py +5 -0
  98. uncountable/integration/http_server/types.py +69 -0
  99. uncountable/integration/job.py +246 -19
  100. uncountable/integration/queue_runner/__init__.py +0 -0
  101. uncountable/integration/queue_runner/command_server/__init__.py +28 -0
  102. uncountable/integration/queue_runner/command_server/command_client.py +133 -0
  103. uncountable/integration/queue_runner/command_server/command_server.py +142 -0
  104. uncountable/integration/queue_runner/command_server/constants.py +4 -0
  105. uncountable/integration/queue_runner/command_server/protocol/__init__.py +0 -0
  106. uncountable/integration/queue_runner/command_server/protocol/command_server.proto +58 -0
  107. uncountable/integration/queue_runner/command_server/protocol/command_server_pb2.py +57 -0
  108. uncountable/integration/queue_runner/command_server/protocol/command_server_pb2.pyi +114 -0
  109. uncountable/integration/queue_runner/command_server/protocol/command_server_pb2_grpc.py +264 -0
  110. uncountable/integration/queue_runner/command_server/types.py +75 -0
  111. uncountable/integration/queue_runner/datastore/__init__.py +3 -0
  112. uncountable/integration/queue_runner/datastore/datastore_sqlite.py +250 -0
  113. uncountable/integration/queue_runner/datastore/interface.py +29 -0
  114. uncountable/integration/queue_runner/datastore/model.py +24 -0
  115. uncountable/integration/queue_runner/job_scheduler.py +200 -0
  116. uncountable/integration/queue_runner/queue_runner.py +34 -0
  117. uncountable/integration/queue_runner/types.py +7 -0
  118. uncountable/integration/queue_runner/worker.py +116 -0
  119. uncountable/integration/scan_profiles.py +67 -0
  120. uncountable/integration/scheduler.py +199 -0
  121. uncountable/integration/secret_retrieval/__init__.py +3 -0
  122. uncountable/integration/secret_retrieval/retrieve_secret.py +93 -0
  123. uncountable/integration/server.py +103 -54
  124. uncountable/integration/telemetry.py +251 -0
  125. uncountable/integration/webhook_server/entrypoint.py +97 -0
  126. uncountable/types/__init__.py +149 -30
  127. uncountable/types/api/batch/execute_batch.py +16 -9
  128. uncountable/types/api/batch/execute_batch_load_async.py +13 -7
  129. uncountable/types/api/chemical/convert_chemical_formats.py +20 -8
  130. uncountable/types/api/condition_parameters/__init__.py +1 -0
  131. uncountable/types/api/condition_parameters/upsert_condition_match.py +72 -0
  132. uncountable/types/api/entity/create_entities.py +24 -12
  133. uncountable/types/api/entity/create_entity.py +22 -13
  134. uncountable/types/api/entity/create_or_update_entity.py +48 -0
  135. uncountable/types/api/entity/export_entities.py +59 -0
  136. uncountable/types/api/entity/get_entities_data.py +18 -9
  137. uncountable/types/api/entity/grant_entity_permissions.py +48 -0
  138. uncountable/types/api/entity/list_aggregate.py +79 -0
  139. uncountable/types/api/entity/list_entities.py +53 -14
  140. uncountable/types/api/entity/lock_entity.py +45 -0
  141. uncountable/types/api/entity/lookup_entity.py +116 -0
  142. uncountable/types/api/entity/resolve_entity_ids.py +19 -10
  143. uncountable/types/api/entity/set_entity_field_values.py +44 -0
  144. uncountable/types/api/entity/set_values.py +15 -8
  145. uncountable/types/api/entity/transition_entity_phase.py +27 -12
  146. uncountable/types/api/entity/unlock_entity.py +44 -0
  147. uncountable/types/api/equipment/__init__.py +1 -0
  148. uncountable/types/api/equipment/associate_equipment_input.py +43 -0
  149. uncountable/types/api/field_options/__init__.py +1 -0
  150. uncountable/types/api/field_options/upsert_field_options.py +55 -0
  151. uncountable/types/api/files/__init__.py +1 -0
  152. uncountable/types/api/files/download_file.py +77 -0
  153. uncountable/types/api/id_source/list_id_source.py +20 -11
  154. uncountable/types/api/id_source/match_id_source.py +15 -10
  155. uncountable/types/api/input_groups/get_input_group_names.py +16 -7
  156. uncountable/types/api/inputs/create_inputs.py +28 -14
  157. uncountable/types/api/inputs/get_input_data.py +34 -16
  158. uncountable/types/api/inputs/get_input_names.py +19 -10
  159. uncountable/types/api/inputs/get_inputs_data.py +29 -11
  160. uncountable/types/api/inputs/set_input_attribute_values.py +16 -10
  161. uncountable/types/api/inputs/set_input_category.py +44 -0
  162. uncountable/types/api/inputs/set_input_subcategories.py +45 -0
  163. uncountable/types/api/inputs/set_intermediate_type.py +50 -0
  164. uncountable/types/api/integrations/__init__.py +1 -0
  165. uncountable/types/api/integrations/publish_realtime_data.py +41 -0
  166. uncountable/types/api/integrations/push_notification.py +49 -0
  167. uncountable/types/api/integrations/register_sockets_token.py +41 -0
  168. uncountable/types/api/listing/__init__.py +1 -0
  169. uncountable/types/api/listing/fetch_listing.py +58 -0
  170. uncountable/types/api/material_families/__init__.py +1 -0
  171. uncountable/types/api/material_families/update_entity_material_families.py +47 -0
  172. uncountable/types/api/notebooks/__init__.py +1 -0
  173. uncountable/types/api/notebooks/add_notebook_content.py +119 -0
  174. uncountable/types/api/outputs/get_output_data.py +32 -17
  175. uncountable/types/api/outputs/get_output_names.py +18 -9
  176. uncountable/types/api/outputs/get_output_organization.py +173 -0
  177. uncountable/types/api/outputs/resolve_output_conditions.py +23 -11
  178. uncountable/types/api/permissions/set_core_permissions.py +31 -15
  179. uncountable/types/api/project/get_projects.py +20 -11
  180. uncountable/types/api/project/get_projects_data.py +23 -14
  181. uncountable/types/api/recipe_links/create_recipe_link.py +17 -10
  182. uncountable/types/api/recipe_links/remove_recipe_link.py +45 -0
  183. uncountable/types/api/recipe_metadata/get_recipe_metadata_data.py +19 -10
  184. uncountable/types/api/recipes/add_recipe_to_project.py +42 -0
  185. uncountable/types/api/recipes/add_time_series_data.py +64 -0
  186. uncountable/types/api/recipes/archive_recipes.py +14 -7
  187. uncountable/types/api/recipes/associate_recipe_as_input.py +16 -8
  188. uncountable/types/api/recipes/associate_recipe_as_lot.py +14 -7
  189. uncountable/types/api/recipes/clear_recipe_outputs.py +42 -0
  190. uncountable/types/api/recipes/create_mix_order.py +44 -0
  191. uncountable/types/api/recipes/create_recipe.py +21 -14
  192. uncountable/types/api/recipes/create_recipes.py +25 -13
  193. uncountable/types/api/recipes/disassociate_recipe_as_input.py +14 -7
  194. uncountable/types/api/recipes/edit_recipe_inputs.py +208 -19
  195. uncountable/types/api/recipes/get_column_calculation_values.py +57 -0
  196. uncountable/types/api/recipes/get_curve.py +15 -9
  197. uncountable/types/api/recipes/get_recipe_calculations.py +17 -11
  198. uncountable/types/api/recipes/get_recipe_links.py +14 -8
  199. uncountable/types/api/recipes/get_recipe_names.py +16 -7
  200. uncountable/types/api/recipes/get_recipe_output_metadata.py +16 -10
  201. uncountable/types/api/recipes/get_recipes_data.py +96 -45
  202. uncountable/types/api/recipes/lock_recipes.py +64 -0
  203. uncountable/types/api/recipes/remove_recipe_from_project.py +42 -0
  204. uncountable/types/api/recipes/set_recipe_inputs.py +19 -13
  205. uncountable/types/api/recipes/set_recipe_metadata.py +14 -7
  206. uncountable/types/api/recipes/set_recipe_output_annotations.py +114 -0
  207. uncountable/types/api/recipes/set_recipe_output_file.py +55 -0
  208. uncountable/types/api/recipes/set_recipe_outputs.py +40 -15
  209. uncountable/types/api/recipes/set_recipe_tags.py +30 -13
  210. uncountable/types/api/recipes/set_recipe_total.py +59 -0
  211. uncountable/types/api/recipes/unarchive_recipes.py +41 -0
  212. uncountable/types/api/recipes/unlock_recipes.py +51 -0
  213. uncountable/types/api/runsheet/__init__.py +1 -0
  214. uncountable/types/api/runsheet/complete_async_upload.py +41 -0
  215. uncountable/types/api/triggers/run_trigger.py +15 -8
  216. uncountable/types/api/uploader/__init__.py +1 -0
  217. uncountable/types/api/uploader/complete_async_parse.py +46 -0
  218. uncountable/types/api/uploader/invoke_uploader.py +46 -0
  219. uncountable/types/api/user/__init__.py +1 -0
  220. uncountable/types/api/user/get_current_user_info.py +40 -0
  221. uncountable/types/async_batch.py +8 -52
  222. uncountable/types/async_batch_processor.py +694 -18
  223. uncountable/types/async_batch_t.py +108 -0
  224. uncountable/types/async_jobs.py +8 -0
  225. uncountable/types/async_jobs_t.py +52 -0
  226. uncountable/types/auth_retrieval.py +11 -0
  227. uncountable/types/auth_retrieval_t.py +75 -0
  228. uncountable/types/base.py +5 -80
  229. uncountable/types/base_t.py +87 -0
  230. uncountable/types/calculations.py +3 -19
  231. uncountable/types/calculations_t.py +26 -0
  232. uncountable/types/chemical_structure.py +3 -23
  233. uncountable/types/chemical_structure_t.py +28 -0
  234. uncountable/types/client_base.py +1170 -88
  235. uncountable/types/client_config.py +8 -0
  236. uncountable/types/client_config_t.py +36 -0
  237. uncountable/types/curves.py +5 -43
  238. uncountable/types/curves_t.py +50 -0
  239. uncountable/types/data.py +12 -0
  240. uncountable/types/data_t.py +103 -0
  241. uncountable/types/entity.py +8 -270
  242. uncountable/types/entity_t.py +446 -0
  243. uncountable/types/experiment_groups.py +3 -19
  244. uncountable/types/experiment_groups_t.py +26 -0
  245. uncountable/types/exports.py +8 -0
  246. uncountable/types/exports_t.py +34 -0
  247. uncountable/types/field_values.py +25 -61
  248. uncountable/types/field_values_t.py +302 -0
  249. uncountable/types/fields.py +3 -20
  250. uncountable/types/fields_t.py +27 -0
  251. uncountable/types/generic_upload.py +14 -0
  252. uncountable/types/generic_upload_t.py +119 -0
  253. uncountable/types/id_source.py +7 -45
  254. uncountable/types/id_source_t.py +68 -0
  255. uncountable/types/identifier.py +6 -50
  256. uncountable/types/identifier_t.py +62 -0
  257. uncountable/types/input_attributes.py +3 -25
  258. uncountable/types/input_attributes_t.py +29 -0
  259. uncountable/types/inputs.py +6 -57
  260. uncountable/types/inputs_t.py +82 -0
  261. uncountable/types/integration_server.py +8 -0
  262. uncountable/types/integration_server_t.py +46 -0
  263. uncountable/types/integration_session.py +10 -0
  264. uncountable/types/integration_session_t.py +60 -0
  265. uncountable/types/integrations.py +10 -0
  266. uncountable/types/integrations_t.py +62 -0
  267. uncountable/types/job_definition.py +28 -0
  268. uncountable/types/job_definition_t.py +285 -0
  269. uncountable/types/listing.py +9 -0
  270. uncountable/types/listing_t.py +51 -0
  271. uncountable/types/notices.py +8 -0
  272. uncountable/types/notices_t.py +37 -0
  273. uncountable/types/notifications.py +11 -0
  274. uncountable/types/notifications_t.py +74 -0
  275. uncountable/types/outputs.py +3 -22
  276. uncountable/types/outputs_t.py +29 -0
  277. uncountable/types/overrides.py +9 -0
  278. uncountable/types/overrides_t.py +49 -0
  279. uncountable/types/permissions.py +3 -42
  280. uncountable/types/permissions_t.py +45 -0
  281. uncountable/types/phases.py +3 -19
  282. uncountable/types/phases_t.py +26 -0
  283. uncountable/types/post_base.py +3 -26
  284. uncountable/types/post_base_t.py +29 -0
  285. uncountable/types/queued_job.py +17 -0
  286. uncountable/types/queued_job_t.py +140 -0
  287. uncountable/types/recipe_identifiers.py +7 -58
  288. uncountable/types/recipe_identifiers_t.py +75 -0
  289. uncountable/types/recipe_inputs.py +4 -26
  290. uncountable/types/recipe_inputs_t.py +29 -0
  291. uncountable/types/recipe_links.py +4 -46
  292. uncountable/types/recipe_links_t.py +53 -0
  293. uncountable/types/recipe_metadata.py +5 -48
  294. uncountable/types/recipe_metadata_t.py +57 -0
  295. uncountable/types/recipe_output_metadata.py +3 -20
  296. uncountable/types/recipe_output_metadata_t.py +27 -0
  297. uncountable/types/recipe_tags.py +3 -19
  298. uncountable/types/recipe_tags_t.py +26 -0
  299. uncountable/types/recipe_workflow_steps.py +9 -73
  300. uncountable/types/recipe_workflow_steps_t.py +95 -0
  301. uncountable/types/recipes.py +7 -0
  302. uncountable/types/recipes_t.py +25 -0
  303. uncountable/types/response.py +3 -21
  304. uncountable/types/response_t.py +26 -0
  305. uncountable/types/secret_retrieval.py +11 -0
  306. uncountable/types/secret_retrieval_t.py +75 -0
  307. uncountable/types/sockets.py +20 -0
  308. uncountable/types/sockets_t.py +169 -0
  309. uncountable/types/structured_filters.py +25 -0
  310. uncountable/types/structured_filters_t.py +248 -0
  311. uncountable/types/units.py +3 -19
  312. uncountable/types/units_t.py +26 -0
  313. uncountable/types/uploader.py +24 -0
  314. uncountable/types/uploader_t.py +222 -0
  315. uncountable/types/users.py +3 -20
  316. uncountable/types/users_t.py +27 -0
  317. uncountable/types/webhook_job.py +9 -0
  318. uncountable/types/webhook_job_t.py +48 -0
  319. uncountable/types/workflows.py +4 -28
  320. uncountable/types/workflows_t.py +38 -0
  321. uncountablepythonsdk-0.0.131.dist-info/METADATA +64 -0
  322. uncountablepythonsdk-0.0.131.dist-info/RECORD +363 -0
  323. {UncountablePythonSDK-0.0.24.dist-info → uncountablepythonsdk-0.0.131.dist-info}/WHEEL +1 -1
  324. {UncountablePythonSDK-0.0.24.dist-info → uncountablepythonsdk-0.0.131.dist-info}/top_level.txt +0 -1
  325. UncountablePythonSDK-0.0.24.dist-info/METADATA +0 -47
  326. UncountablePythonSDK-0.0.24.dist-info/RECORD +0 -216
  327. docs/quickstart.md +0 -19
  328. examples/recipe-import/importer.py +0 -39
  329. type_spec/external/api/batch/execute_batch.yaml +0 -56
  330. type_spec/external/api/batch/execute_batch_load_async.yaml +0 -18
  331. type_spec/external/api/chemical/convert_chemical_formats.yaml +0 -33
  332. type_spec/external/api/entity/create_entities.yaml +0 -45
  333. type_spec/external/api/entity/create_entity.yaml +0 -51
  334. type_spec/external/api/entity/get_entities_data.yaml +0 -29
  335. type_spec/external/api/entity/list_entities.yaml +0 -52
  336. type_spec/external/api/entity/resolve_entity_ids.yaml +0 -29
  337. type_spec/external/api/entity/set_values.yaml +0 -18
  338. type_spec/external/api/entity/transition_entity_phase.yaml +0 -44
  339. type_spec/external/api/id_source/list_id_source.yaml +0 -35
  340. type_spec/external/api/id_source/match_id_source.yaml +0 -32
  341. type_spec/external/api/input_groups/get_input_group_names.yaml +0 -29
  342. type_spec/external/api/inputs/create_inputs.yaml +0 -48
  343. type_spec/external/api/inputs/get_input_data.yaml +0 -95
  344. type_spec/external/api/inputs/get_input_names.yaml +0 -38
  345. type_spec/external/api/inputs/get_inputs_data.yaml +0 -82
  346. type_spec/external/api/inputs/set_input_attribute_values.yaml +0 -33
  347. type_spec/external/api/outputs/get_output_data.yaml +0 -92
  348. type_spec/external/api/outputs/get_output_names.yaml +0 -35
  349. type_spec/external/api/outputs/resolve_output_conditions.yaml +0 -50
  350. type_spec/external/api/permissions/set_core_permissions.yaml +0 -69
  351. type_spec/external/api/project/get_projects.yaml +0 -42
  352. type_spec/external/api/project/get_projects_data.yaml +0 -50
  353. type_spec/external/api/recipe_links/create_recipe_link.yaml +0 -25
  354. type_spec/external/api/recipe_metadata/get_recipe_metadata_data.yaml +0 -41
  355. type_spec/external/api/recipes/archive_recipes.yaml +0 -20
  356. type_spec/external/api/recipes/associate_recipe_as_input.yaml +0 -19
  357. type_spec/external/api/recipes/associate_recipe_as_lot.yaml +0 -19
  358. type_spec/external/api/recipes/create_recipe.yaml +0 -39
  359. type_spec/external/api/recipes/create_recipes.yaml +0 -47
  360. type_spec/external/api/recipes/disassociate_recipe_as_input.yaml +0 -16
  361. type_spec/external/api/recipes/edit_recipe_inputs.yaml +0 -85
  362. type_spec/external/api/recipes/get_curve.yaml +0 -21
  363. type_spec/external/api/recipes/get_recipe_calculations.yaml +0 -39
  364. type_spec/external/api/recipes/get_recipe_links.yaml +0 -26
  365. type_spec/external/api/recipes/get_recipe_names.yaml +0 -29
  366. type_spec/external/api/recipes/get_recipe_output_metadata.yaml +0 -36
  367. type_spec/external/api/recipes/get_recipes_data.yaml +0 -244
  368. type_spec/external/api/recipes/set_recipe_inputs.yaml +0 -42
  369. type_spec/external/api/recipes/set_recipe_metadata.yaml +0 -20
  370. type_spec/external/api/recipes/set_recipe_outputs.yaml +0 -52
  371. type_spec/external/api/recipes/set_recipe_tags.yaml +0 -62
  372. type_spec/external/api/triggers/run_trigger.yaml +0 -18
  373. uncountable/integration/types.py +0 -89
@@ -0,0 +1,446 @@
1
+ # DO NOT MODIFY -- This file is generated by type_spec
2
+ # ruff: noqa: E402 Q003
3
+ # fmt: off
4
+ # isort: skip_file
5
+ from __future__ import annotations
6
+ import typing # noqa: F401
7
+ import datetime # noqa: F401
8
+ from decimal import Decimal # noqa: F401
9
+ from enum import StrEnum
10
+ import dataclasses
11
+ from pkgs.serialization import serial_class
12
+ from pkgs.serialization import serial_alias_annotation
13
+ from pkgs.serialization import serial_string_enum
14
+ from . import base_t
15
+ from . import identifier_t
16
+
17
+ __all__: list[str] = [
18
+ "Entity",
19
+ "EntityIdentifier",
20
+ "EntityPermissionType",
21
+ "EntityType",
22
+ "GrantableEntityPermissionType",
23
+ "LimitedEntityType",
24
+ ]
25
+
26
+
27
+ # DO NOT MODIFY -- This file is generated by type_spec
28
+ @serial_string_enum(
29
+ labels={
30
+ "analytical_method": "Analytical Method",
31
+ "analytical_method_category": "Analytical Method Category",
32
+ "annotation_type": "Annotation Type",
33
+ "approval": "Approval",
34
+ "async_job": "Async Job",
35
+ "barcode": "Barcode",
36
+ "calculation": "Calculation",
37
+ "calendar": "Calendar",
38
+ "calendar_event": "Calendar Event",
39
+ "certification": "Certification",
40
+ "characterization": "Characterization",
41
+ "comment": "Comment",
42
+ "comment_thread": "Comment Thread",
43
+ "condition_match": "Condition Match",
44
+ "condition_parameter": "Condition Parameter",
45
+ "condition_parameter_mat_family": "Condition Parameter Material Family",
46
+ "condition_parameter_matches": "Condition Parameter Matches",
47
+ "condition_parameter_rule": "Condition Parameter Rule",
48
+ "condition_parameter_value": "Condition Parameter Value",
49
+ "constraint": "Constraint",
50
+ "constraint_set": "Constraint Set",
51
+ "control_type": "Control Type",
52
+ "curve_settings": "Curve Settings",
53
+ "custom_entity": "Custom Entity",
54
+ "default_permissions_new_project": "Default Permissions New Project",
55
+ "doe_run": "Suggest Experiments",
56
+ "email_record_external": "External Emails",
57
+ "email_relay_server": "Email Relay Server",
58
+ "enter_recipe_view_preference": "Enter Recipe View Preference",
59
+ "enter_measurement_view_preference": "Enter Measurement View Preference",
60
+ "entities_viewed": "Entities Viewed",
61
+ "entity_annotation": "Annotation",
62
+ "entity_definition_field_group": "Entity Definition Field Group",
63
+ "entity_field": "Field",
64
+ "entity_field_audit_log": "Entity Field Audit Log",
65
+ "entity_link": "Entity Link",
66
+ "entity_phase_event": "Entity Phase Event",
67
+ "entity_search": "Entity Search",
68
+ "entity_tag": "Entity Tag",
69
+ "equipment": "Equipment",
70
+ "equipment_maintenance": "Equipment Maintenance",
71
+ "equipment_type": "Equipment Type",
72
+ "experiment_group": "Experiment Group",
73
+ "experiment_group_member": "Experiment Group Member",
74
+ "experiment_group_type": "Experiment Group Type",
75
+ "favorite_link": "Favorite Link",
76
+ "field_option_set": "Field Option Set",
77
+ "field_option": "Field Option",
78
+ "file_folder": "File Folder",
79
+ "file_folder_membership": "File Folder Membership",
80
+ "goal": "Goal",
81
+ "ingredient": "Ingredient",
82
+ "ingredient_attribute": "Ingredient Attribute",
83
+ "ingredient_attribute_category": "Ingredient Attribute Category",
84
+ "ingredient_attribute_value": "Ingredient Attribute Value",
85
+ "ingredient_category": "Ingredient Category (Project)",
86
+ "ingredient_category_all": "Ingredient Category",
87
+ "ingredient_category_all_material_family": "Ingredient Category Material Family",
88
+ "ingredient_lot": "Ingredient Lot",
89
+ "ingredient_mat_family": "Ingredient Material Family",
90
+ "ingredient_role": "Ingredient Role",
91
+ "ingredient_tag": "Ingredient Subcategory",
92
+ "ingredient_tag_map": "Ingredient Subcategory Mapping",
93
+ "input_group": "Input Group",
94
+ "inv_local_locations": "Inventory Location",
95
+ "inventory_amount": "Inventory Item",
96
+ "inventory_limit": "Inventory Limit",
97
+ "inventory_history": "Inventory History",
98
+ "lab_location": "Lab Location",
99
+ "lab_request": "Lab Request",
100
+ "license": "License",
101
+ "maintenance_schedule": "Equipment Action Type",
102
+ "material_family": "Material Family",
103
+ "measurement_group": "Measurement Group",
104
+ "measurement_group_input": "Measurement Group Input",
105
+ "measurement_group_recipe": "Measurement Group Recipe",
106
+ "ml_job": "Batch Processing Job",
107
+ "naming_scheme": "Naming Scheme",
108
+ "naming_counter": "Naming Counter",
109
+ "notebook": "Notebook",
110
+ "notebook_cell": "Notebook Cell",
111
+ "output": "Output",
112
+ "output_calculation_entity_mapping": "Output Calculation Entity Mapping",
113
+ "output_category_all": "Output Category",
114
+ "output_condition": "Output Condition",
115
+ "output_condition_condition_parameter": "Output Condition Condition Parameter",
116
+ "output_default_condition": "Output Default Condition",
117
+ "output_condition_parameter": "Output Condition Parameter",
118
+ "output_condition_parameter_analytical_method_category": "Output Condition Parameter Analytical Method Category",
119
+ "output_condition_parameter_analytical_method": "Output Condition Parameter Analytical Method",
120
+ "output_group": "Output Group",
121
+ "output_group_member": "Output Group Member",
122
+ "output_preferences": "Output Preferences",
123
+ "permission": "Permission",
124
+ "permissions_recipe_link_inheritance": "Permissions Recipe Link Inheritance",
125
+ "phase_workflow": "Phase Workflow",
126
+ "platform_config": "Platform Config",
127
+ "portal_form": "Portal Form",
128
+ "predictive_model": "Predictive Model",
129
+ "product": "Product",
130
+ "product_material_family": "Product Material Family",
131
+ "project": "Project",
132
+ "project_workbook_comment": "Notebook Cell Comment",
133
+ "recipe": "Experiment",
134
+ "recipe_audit_log": "Experiment Audit Log",
135
+ "recipe_calculation": "Recipe Calculation",
136
+ "recipe_check": "Experiment Check",
137
+ "recipe_component_witness": "Recipe Component Witness",
138
+ "recipe_export": "Recipe Export",
139
+ "recipe_goal": "Experiment Goal",
140
+ "recipe_ingredient": "Recipe Ingredient",
141
+ "recipe_ingredient_actual": "Recipe Ingredient Actual",
142
+ "recipe_ingredients_compounded": "Recipe Ingredients Compounded",
143
+ "recipe_ingredients_compounded_calculation": "Recipe Ingredients Compounded Calculation",
144
+ "recipe_link": "Experiment Link",
145
+ "recipe_output": "Recipe Output",
146
+ "recipe_output_annotation": "Recipe Output Annotation",
147
+ "recipe_output_metadata": "Recipe Output Metadata",
148
+ "recipe_permission_view": "Recipe Permission View",
149
+ "recipe_project": "Recipe Project",
150
+ "recipe_step": "Recipe Step",
151
+ "recipe_workflow_step": "Recipe Workflow Step",
152
+ "recipe_tag": "Recipe Tag",
153
+ "recipe_metadata": "Experiment Metadata",
154
+ "recipe_metadata_mapping": "Experiment Metadata Mapping",
155
+ "metadata_value": "Metadata Value",
156
+ "review": "Review",
157
+ "review_entity_user_status": "Review Entity User Status",
158
+ "review_user": "Review User",
159
+ "rlw_audit_log": "Rlw Audit Log",
160
+ "rlw_phase": "Phase",
161
+ "rlw_trigger": "Trigger",
162
+ "rlw_trigger_set": "Trigger Set",
163
+ "runsheet_configuration": "Runsheet Configuration",
164
+ "safety_data_sheet": "Safety Data Sheet",
165
+ "scheduled_notification": "Scheduled Notification",
166
+ "scratch_pad": "Scratch Pad",
167
+ "specs": "Spec",
168
+ "save": "Save",
169
+ "split_template": "Test Method",
170
+ "structured_loading_user_config": "List Config",
171
+ "subscription": "Subscription",
172
+ "table_builder_config": "Table Builder Config",
173
+ "task": "Task",
174
+ "task_board": "Task Board",
175
+ "template": "Template",
176
+ "test_entity": "Test Entity",
177
+ "time_series_segment": "Time Series Segment",
178
+ "timesheet_entry": "Timesheet Entry",
179
+ "training_run": "Analyze Experiment",
180
+ "training_run_template": "Scheduled Training Run",
181
+ "training_set": "Training Set",
182
+ "time_series": "Time Series",
183
+ "time_series_stage": "Time Series Stage",
184
+ "units": "Units",
185
+ "user_favorite": "User Favorite",
186
+ "user": "User",
187
+ "user_analytics_event": "User Analytics Event",
188
+ "user_certification": "User Certification",
189
+ "user_group": "User Group",
190
+ "user_list_set": "User List Set",
191
+ "value_spec_property": "Value Spec Property",
192
+ "webhook": "Webhook",
193
+ "webhook_event": "Webhook Event",
194
+ "workflow": "Workflow",
195
+ "workflow_step": "Workflow Step",
196
+ "workflow_variant": "Workflow Variant",
197
+ "platform_notification": "Platform Notification",
198
+ "inventory_location_type": "Inventory Location Type",
199
+ "entity_definition": "Entity Definition",
200
+ "phase_transition": "Phase Transition",
201
+ "public_data_entity_link": "Public Data Entity Link",
202
+ "public_data_sourced_output": "ChemQuery Property",
203
+ "public_data_sourced_project": "ChemQuery Category",
204
+ "public_data_sourced_recipe": "ChemQuery Product",
205
+ "public_data_sourced_raw_material": "ChemQuery Raw Materials",
206
+ "public_data_sourced_recipe_project": "ChemQuery Product Category",
207
+ "public_data_sourced_recipe_metadata": "ChemQuery Product Information",
208
+ "public_data_sourced_units": "ChemQuery Units",
209
+ "public_data_sourced_condition_parameter": "ChemQuery Condition Parameter",
210
+ "public_data_sourced_company": "ChemQuery Company",
211
+ "uploader": "Uploader",
212
+ "calculation_material_family": "Calculation Material Family",
213
+ },
214
+ )
215
+ class EntityType(StrEnum):
216
+ ANALYTICAL_METHOD = "analytical_method"
217
+ ANALYTICAL_METHOD_CATEGORY = "analytical_method_category"
218
+ ANNOTATION_TYPE = "annotation_type"
219
+ APPROVAL = "approval"
220
+ ASYNC_JOB = "async_job"
221
+ BARCODE = "barcode"
222
+ CALCULATION = "calculation"
223
+ CALENDAR = "calendar"
224
+ CALENDAR_EVENT = "calendar_event"
225
+ CERTIFICATION = "certification"
226
+ CHARACTERIZATION = "characterization"
227
+ COMMENT = "comment"
228
+ COMMENT_THREAD = "comment_thread"
229
+ CONDITION_MATCH = "condition_match"
230
+ CONDITION_PARAMETER = "condition_parameter"
231
+ CONDITION_PARAMETER_MAT_FAMILY = "condition_parameter_mat_family"
232
+ CONDITION_PARAMETER_MATCHES = "condition_parameter_matches"
233
+ CONDITION_PARAMETER_RULE = "condition_parameter_rule"
234
+ CONDITION_PARAMETER_VALUE = "condition_parameter_value"
235
+ CONSTRAINT = "constraint"
236
+ CONSTRAINT_SET = "constraint_set"
237
+ CONTROL_TYPE = "control_type"
238
+ CURVE_SETTINGS = "curve_settings"
239
+ CUSTOM_ENTITY = "custom_entity"
240
+ DEFAULT_PERMISSIONS_NEW_PROJECT = "default_permissions_new_project"
241
+ DOE_RUN = "doe_run"
242
+ EMAIL_RECORD_EXTERNAL = "email_record_external"
243
+ EMAIL_RELAY_SERVER = "email_relay_server"
244
+ ENTER_RECIPE_VIEW_PREFERENCE = "enter_recipe_view_preference"
245
+ ENTER_MEASUREMENT_VIEW_PREFERENCE = "enter_measurement_view_preference"
246
+ ENTITIES_VIEWED = "entities_viewed"
247
+ ENTITY_ANNOTATION = "entity_annotation"
248
+ ENTITY_DEFINITION_FIELD_GROUP = "entity_definition_field_group"
249
+ ENTITY_FIELD = "entity_field"
250
+ ENTITY_FIELD_AUDIT_LOG = "entity_field_audit_log"
251
+ ENTITY_LINK = "entity_link"
252
+ ENTITY_PHASE_EVENT = "entity_phase_event"
253
+ ENTITY_SEARCH = "entity_search"
254
+ ENTITY_TAG = "entity_tag"
255
+ EQUIPMENT = "equipment"
256
+ EQUIPMENT_MAINTENANCE = "equipment_maintenance"
257
+ EQUIPMENT_TYPE = "equipment_type"
258
+ EXPERIMENT_GROUP = "experiment_group"
259
+ EXPERIMENT_GROUP_MEMBER = "experiment_group_member"
260
+ EXPERIMENT_GROUP_TYPE = "experiment_group_type"
261
+ FAVORITE_LINK = "favorite_link"
262
+ FIELD_OPTION_SET = "field_option_set"
263
+ FIELD_OPTION = "field_option"
264
+ FILE_FOLDER = "file_folder"
265
+ FILE_FOLDER_MEMBERSHIP = "file_folder_membership"
266
+ GOAL = "goal"
267
+ INGREDIENT = "ingredient"
268
+ INGREDIENT_ATTRIBUTE = "ingredient_attribute"
269
+ INGREDIENT_ATTRIBUTE_CATEGORY = "ingredient_attribute_category"
270
+ INGREDIENT_ATTRIBUTE_VALUE = "ingredient_attribute_value"
271
+ INGREDIENT_CATEGORY = "ingredient_category"
272
+ INGREDIENT_CATEGORY_ALL = "ingredient_category_all"
273
+ INGREDIENT_CATEGORY_ALL_MATERIAL_FAMILY = "ingredient_category_all_material_family"
274
+ INGREDIENT_LOT = "ingredient_lot"
275
+ INGREDIENT_MAT_FAMILY = "ingredient_mat_family"
276
+ INGREDIENT_ROLE = "ingredient_role"
277
+ INGREDIENT_TAG = "ingredient_tag"
278
+ INGREDIENT_TAG_MAP = "ingredient_tag_map"
279
+ INPUT_GROUP = "input_group"
280
+ INV_LOCAL_LOCATIONS = "inv_local_locations"
281
+ INVENTORY_AMOUNT = "inventory_amount"
282
+ INVENTORY_LIMIT = "inventory_limit"
283
+ INVENTORY_HISTORY = "inventory_history"
284
+ LAB_LOCATION = "lab_location"
285
+ LAB_REQUEST = "lab_request"
286
+ LICENSE = "license"
287
+ MAINTENANCE_SCHEDULE = "maintenance_schedule"
288
+ MATERIAL_FAMILY = "material_family"
289
+ MEASUREMENT_GROUP = "measurement_group"
290
+ MEASUREMENT_GROUP_INPUT = "measurement_group_input"
291
+ MEASUREMENT_GROUP_RECIPE = "measurement_group_recipe"
292
+ ML_JOB = "ml_job"
293
+ NAMING_SCHEME = "naming_scheme"
294
+ NAMING_COUNTER = "naming_counter"
295
+ NOTEBOOK = "notebook"
296
+ NOTEBOOK_CELL = "notebook_cell"
297
+ OUTPUT = "output"
298
+ OUTPUT_CALCULATION_ENTITY_MAPPING = "output_calculation_entity_mapping"
299
+ OUTPUT_CATEGORY_ALL = "output_category_all"
300
+ OUTPUT_CONDITION = "output_condition"
301
+ OUTPUT_CONDITION_CONDITION_PARAMETER = "output_condition_condition_parameter"
302
+ OUTPUT_DEFAULT_CONDITION = "output_default_condition"
303
+ OUTPUT_CONDITION_PARAMETER = "output_condition_parameter"
304
+ OUTPUT_CONDITION_PARAMETER_ANALYTICAL_METHOD_CATEGORY = "output_condition_parameter_analytical_method_category"
305
+ OUTPUT_CONDITION_PARAMETER_ANALYTICAL_METHOD = "output_condition_parameter_analytical_method"
306
+ OUTPUT_GROUP = "output_group"
307
+ OUTPUT_GROUP_MEMBER = "output_group_member"
308
+ OUTPUT_PREFERENCES = "output_preferences"
309
+ PERMISSION = "permission"
310
+ PERMISSIONS_RECIPE_LINK_INHERITANCE = "permissions_recipe_link_inheritance"
311
+ PHASE_WORKFLOW = "phase_workflow"
312
+ PLATFORM_CONFIG = "platform_config"
313
+ PORTAL_FORM = "portal_form"
314
+ PREDICTIVE_MODEL = "predictive_model"
315
+ PRODUCT = "product"
316
+ PRODUCT_MATERIAL_FAMILY = "product_material_family"
317
+ PROJECT = "project"
318
+ PROJECT_WORKBOOK_COMMENT = "project_workbook_comment"
319
+ RECIPE = "recipe"
320
+ RECIPE_AUDIT_LOG = "recipe_audit_log"
321
+ RECIPE_CALCULATION = "recipe_calculation"
322
+ RECIPE_CHECK = "recipe_check"
323
+ RECIPE_COMPONENT_WITNESS = "recipe_component_witness"
324
+ RECIPE_EXPORT = "recipe_export"
325
+ RECIPE_GOAL = "recipe_goal"
326
+ RECIPE_INGREDIENT = "recipe_ingredient"
327
+ RECIPE_INGREDIENT_ACTUAL = "recipe_ingredient_actual"
328
+ RECIPE_INGREDIENTS_COMPOUNDED = "recipe_ingredients_compounded"
329
+ RECIPE_INGREDIENTS_COMPOUNDED_CALCULATION = "recipe_ingredients_compounded_calculation"
330
+ RECIPE_LINK = "recipe_link"
331
+ RECIPE_OUTPUT = "recipe_output"
332
+ RECIPE_OUTPUT_ANNOTATION = "recipe_output_annotation"
333
+ RECIPE_OUTPUT_METADATA = "recipe_output_metadata"
334
+ RECIPE_PERMISSION_VIEW = "recipe_permission_view"
335
+ RECIPE_PROJECT = "recipe_project"
336
+ RECIPE_STEP = "recipe_step"
337
+ RECIPE_WORKFLOW_STEP = "recipe_workflow_step"
338
+ RECIPE_TAG = "recipe_tag"
339
+ RECIPE_METADATA = "recipe_metadata"
340
+ RECIPE_METADATA_MAPPING = "recipe_metadata_mapping"
341
+ METADATA_VALUE = "metadata_value"
342
+ REVIEW = "review"
343
+ REVIEW_ENTITY_USER_STATUS = "review_entity_user_status"
344
+ REVIEW_USER = "review_user"
345
+ RLW_AUDIT_LOG = "rlw_audit_log"
346
+ RLW_PHASE = "rlw_phase"
347
+ RLW_TRIGGER = "rlw_trigger"
348
+ RLW_TRIGGER_SET = "rlw_trigger_set"
349
+ RUNSHEET_CONFIGURATION = "runsheet_configuration"
350
+ SAFETY_DATA_SHEET = "safety_data_sheet"
351
+ SCHEDULED_NOTIFICATION = "scheduled_notification"
352
+ SCRATCH_PAD = "scratch_pad"
353
+ SPECS = "specs"
354
+ SAVE = "save"
355
+ SPLIT_TEMPLATE = "split_template"
356
+ STRUCTURED_LOADING_USER_CONFIG = "structured_loading_user_config"
357
+ SUBSCRIPTION = "subscription"
358
+ TABLE_BUILDER_CONFIG = "table_builder_config"
359
+ TASK = "task"
360
+ TASK_BOARD = "task_board"
361
+ TEMPLATE = "template"
362
+ TEST_ENTITY = "test_entity"
363
+ TIME_SERIES_SEGMENT = "time_series_segment"
364
+ TIMESHEET_ENTRY = "timesheet_entry"
365
+ TRAINING_RUN = "training_run"
366
+ TRAINING_RUN_TEMPLATE = "training_run_template"
367
+ TRAINING_SET = "training_set"
368
+ TIME_SERIES = "time_series"
369
+ TIME_SERIES_STAGE = "time_series_stage"
370
+ UNITS = "units"
371
+ USER_FAVORITE = "user_favorite"
372
+ USER = "user"
373
+ USER_ANALYTICS_EVENT = "user_analytics_event"
374
+ USER_CERTIFICATION = "user_certification"
375
+ USER_GROUP = "user_group"
376
+ USER_LIST_SET = "user_list_set"
377
+ VALUE_SPEC_PROPERTY = "value_spec_property"
378
+ WEBHOOK = "webhook"
379
+ WEBHOOK_EVENT = "webhook_event"
380
+ WORKFLOW = "workflow"
381
+ WORKFLOW_STEP = "workflow_step"
382
+ WORKFLOW_VARIANT = "workflow_variant"
383
+ PLATFORM_NOTIFICATION = "platform_notification"
384
+ INVENTORY_LOCATION_TYPE = "inventory_location_type"
385
+ ENTITY_DEFINITION = "entity_definition"
386
+ PHASE_TRANSITION = "phase_transition"
387
+ PUBLIC_DATA_ENTITY_LINK = "public_data_entity_link"
388
+ PUBLIC_DATA_SOURCED_OUTPUT = "public_data_sourced_output"
389
+ PUBLIC_DATA_SOURCED_PROJECT = "public_data_sourced_project"
390
+ PUBLIC_DATA_SOURCED_RECIPE = "public_data_sourced_recipe"
391
+ PUBLIC_DATA_SOURCED_RAW_MATERIAL = "public_data_sourced_raw_material"
392
+ PUBLIC_DATA_SOURCED_RECIPE_PROJECT = "public_data_sourced_recipe_project"
393
+ PUBLIC_DATA_SOURCED_RECIPE_METADATA = "public_data_sourced_recipe_metadata"
394
+ PUBLIC_DATA_SOURCED_UNITS = "public_data_sourced_units"
395
+ PUBLIC_DATA_SOURCED_CONDITION_PARAMETER = "public_data_sourced_condition_parameter"
396
+ PUBLIC_DATA_SOURCED_COMPANY = "public_data_sourced_company"
397
+ UPLOADER = "uploader"
398
+ CALCULATION_MATERIAL_FAMILY = "calculation_material_family"
399
+
400
+
401
+ # DO NOT MODIFY -- This file is generated by type_spec
402
+ LimitedEntityType = typing.Annotated[
403
+ typing.Literal[EntityType.LAB_REQUEST] | typing.Literal[EntityType.APPROVAL] | typing.Literal[EntityType.CUSTOM_ENTITY] | typing.Literal[EntityType.INGREDIENT_ATTRIBUTE] | typing.Literal[EntityType.INVENTORY_AMOUNT] | typing.Literal[EntityType.TASK] | typing.Literal[EntityType.PROJECT] | typing.Literal[EntityType.EQUIPMENT] | typing.Literal[EntityType.INV_LOCAL_LOCATIONS] | typing.Literal[EntityType.FIELD_OPTION_SET] | typing.Literal[EntityType.WEBHOOK] | typing.Literal[EntityType.SPECS] | typing.Literal[EntityType.GOAL] | typing.Literal[EntityType.INGREDIENT_TAG_MAP] | typing.Literal[EntityType.INGREDIENT_TAG] | typing.Literal[EntityType.CONDITION_PARAMETER] | typing.Literal[EntityType.NOTEBOOK] | typing.Literal[EntityType.OUTPUT] | typing.Literal[EntityType.OUTPUT_CONDITION_PARAMETER] | typing.Literal[EntityType.ASYNC_JOB] | typing.Literal[EntityType.CONSTRAINT] | typing.Literal[EntityType.INGREDIENT_CATEGORY_ALL] | typing.Literal[EntityType.TIME_SERIES_SEGMENT] | typing.Literal[EntityType.EQUIPMENT_MAINTENANCE] | typing.Literal[EntityType.MAINTENANCE_SCHEDULE] | typing.Literal[EntityType.CONDITION_PARAMETER_RULE] | typing.Literal[EntityType.INGREDIENT] | typing.Literal[EntityType.TIMESHEET_ENTRY] | typing.Literal[EntityType.SAVE] | typing.Literal[EntityType.RECIPE_CHECK] | typing.Literal[EntityType.EXPERIMENT_GROUP_MEMBER],
404
+ serial_alias_annotation(
405
+ named_type_path="sdk.entity.LimitedEntityType",
406
+ ),
407
+ ]
408
+
409
+
410
+ # DO NOT MODIFY -- This file is generated by type_spec
411
+ class EntityPermissionType(StrEnum):
412
+ READ = "read"
413
+ WRITE = "write"
414
+ CREATE = "create"
415
+ REOPEN = "reopen"
416
+ ADMIN = "admin"
417
+
418
+
419
+ # DO NOT MODIFY -- This file is generated by type_spec
420
+ GrantableEntityPermissionType = typing.Annotated[
421
+ typing.Literal[EntityPermissionType.READ] | typing.Literal[EntityPermissionType.WRITE],
422
+ serial_alias_annotation(
423
+ named_type_path="sdk.entity.GrantableEntityPermissionType",
424
+ ),
425
+ ]
426
+
427
+
428
+ # DO NOT MODIFY -- This file is generated by type_spec
429
+ @serial_class(
430
+ named_type_path="sdk.entity.Entity",
431
+ )
432
+ @dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
433
+ class Entity:
434
+ id: base_t.ObjectId
435
+ type: EntityType
436
+
437
+
438
+ # DO NOT MODIFY -- This file is generated by type_spec
439
+ @serial_class(
440
+ named_type_path="sdk.entity.EntityIdentifier",
441
+ )
442
+ @dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True, frozen=True, eq=True) # type: ignore[literal-required]
443
+ class EntityIdentifier:
444
+ identifier_key: identifier_t.IdentifierKey
445
+ type: EntityType
446
+ # DO NOT MODIFY -- This file is generated by type_spec
@@ -1,23 +1,7 @@
1
- # DO NOT MODIFY -- This file is generated by type_spec
2
- # flake8: noqa: F821
3
- # ruff: noqa: E402
1
+ # ruff: noqa: E402 Q003
4
2
  # fmt: off
5
3
  # isort: skip_file
6
- from __future__ import annotations
7
- import typing # noqa: F401
8
- import datetime # noqa: F401
9
- from decimal import Decimal # noqa: F401
10
- from dataclasses import dataclass
11
- from . import base as base_t
12
-
13
- __all__: list[str] = [
14
- "SimpleExperimentGroup",
15
- ]
16
-
17
-
18
4
  # DO NOT MODIFY -- This file is generated by type_spec
19
- @dataclass(kw_only=True)
20
- class SimpleExperimentGroup:
21
- experiment_group_id: base_t.ObjectId
22
- name: str
5
+ # Kept only for SDK backwards compatibility
6
+ from .experiment_groups_t import SimpleExperimentGroup as SimpleExperimentGroup
23
7
  # DO NOT MODIFY -- This file is generated by type_spec
@@ -0,0 +1,26 @@
1
+ # DO NOT MODIFY -- This file is generated by type_spec
2
+ # ruff: noqa: E402 Q003
3
+ # fmt: off
4
+ # isort: skip_file
5
+ from __future__ import annotations
6
+ import typing # noqa: F401
7
+ import datetime # noqa: F401
8
+ from decimal import Decimal # noqa: F401
9
+ import dataclasses
10
+ from pkgs.serialization import serial_class
11
+ from . import base_t
12
+
13
+ __all__: list[str] = [
14
+ "SimpleExperimentGroup",
15
+ ]
16
+
17
+
18
+ # DO NOT MODIFY -- This file is generated by type_spec
19
+ @serial_class(
20
+ named_type_path="sdk.experiment_groups.SimpleExperimentGroup",
21
+ )
22
+ @dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
23
+ class SimpleExperimentGroup:
24
+ experiment_group_id: base_t.ObjectId
25
+ name: str
26
+ # DO NOT MODIFY -- This file is generated by type_spec
@@ -0,0 +1,8 @@
1
+ # ruff: noqa: E402 Q003
2
+ # fmt: off
3
+ # isort: skip_file
4
+ # DO NOT MODIFY -- This file is generated by type_spec
5
+ # Kept only for SDK backwards compatibility
6
+ from .exports_t import ListingExportUserTimezone as ListingExportUserTimezone
7
+ from .exports_t import ExportType as ExportType
8
+ # DO NOT MODIFY -- This file is generated by type_spec
@@ -0,0 +1,34 @@
1
+ # DO NOT MODIFY -- This file is generated by type_spec
2
+ # ruff: noqa: E402 Q003
3
+ # fmt: off
4
+ # isort: skip_file
5
+ from __future__ import annotations
6
+ import typing # noqa: F401
7
+ import datetime # noqa: F401
8
+ from decimal import Decimal # noqa: F401
9
+ from enum import StrEnum
10
+ import dataclasses
11
+ from pkgs.serialization import serial_class
12
+ from . import base_t
13
+
14
+ __all__: list[str] = [
15
+ "ExportType",
16
+ "ListingExportUserTimezone",
17
+ ]
18
+
19
+
20
+ # DO NOT MODIFY -- This file is generated by type_spec
21
+ @serial_class(
22
+ named_type_path="sdk.exports.ListingExportUserTimezone",
23
+ )
24
+ @dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
25
+ class ListingExportUserTimezone:
26
+ timezone_name: str
27
+
28
+
29
+ # DO NOT MODIFY -- This file is generated by type_spec
30
+ class ExportType(StrEnum):
31
+ EXCEL = "excel"
32
+ PDF = "pdf"
33
+ JSON = "json"
34
+ # DO NOT MODIFY -- This file is generated by type_spec
@@ -1,65 +1,29 @@
1
- # DO NOT MODIFY -- This file is generated by type_spec
2
- # flake8: noqa: F821
3
- # ruff: noqa: E402
1
+ # ruff: noqa: E402 Q003
4
2
  # fmt: off
5
3
  # isort: skip_file
6
- from __future__ import annotations
7
- import typing # noqa: F401
8
- import datetime # noqa: F401
9
- from decimal import Decimal # noqa: F401
10
- from dataclasses import dataclass
11
- from pkgs.serialization import serial_class
12
- from . import base as base_t
13
-
14
- __all__: list[str] = [
15
- "ArgumentValueId",
16
- "ArgumentValueRefName",
17
- "FieldRefIdNameValue",
18
- "FieldRefNameValue",
19
- ]
20
-
21
-
22
- # DO NOT MODIFY -- This file is generated by type_spec
23
- @serial_class(
24
- unconverted_values={"value"},
25
- )
26
- @dataclass(kw_only=True)
27
- class FieldRefNameValue:
28
- field_ref_name: str
29
- value: base_t.JsonValue
30
- row_index: typing.Optional[typing.Optional[int]] = None
31
-
32
-
33
- # DO NOT MODIFY -- This file is generated by type_spec
34
- @serial_class(
35
- unconverted_values={"value"},
36
- )
37
- @dataclass(kw_only=True)
38
- class FieldRefIdNameValue:
39
- field_id: base_t.ObjectId
40
- field_ref_name: str
41
- value: base_t.JsonValue
42
- row_index: typing.Optional[typing.Optional[int]] = None
43
-
44
-
45
- # DO NOT MODIFY -- This file is generated by type_spec
46
- @serial_class(
47
- unconverted_values={"value"},
48
- )
49
- @dataclass(kw_only=True)
50
- class ArgumentValueRefName:
51
- field_ref_name: str
52
- value: base_t.JsonValue
53
- row_index: typing.Optional[typing.Optional[int]] = None
54
-
55
-
56
4
  # DO NOT MODIFY -- This file is generated by type_spec
57
- @serial_class(
58
- unconverted_values={"value"},
59
- )
60
- @dataclass(kw_only=True)
61
- class ArgumentValueId:
62
- field_id: base_t.ObjectId
63
- value: base_t.JsonValue
64
- row_index: typing.Optional[typing.Optional[int]] = None
5
+ # Kept only for SDK backwards compatibility
6
+ from .field_values_t import FieldRefNameValue as FieldRefNameValue
7
+ from .field_values_t import FieldRefIdNameValue as FieldRefIdNameValue
8
+ from .field_values_t import ArgumentValueRefName as ArgumentValueRefName
9
+ from .field_values_t import ArgumentValueId as ArgumentValueId
10
+ from .field_values_t import FieldValueType as FieldValueType
11
+ from .field_values_t import FieldValueBase as FieldValueBase
12
+ from .field_values_t import FieldValueFiles as FieldValueFiles
13
+ from .field_values_t import ValueResolution as ValueResolution
14
+ from .field_values_t import FieldValueFieldOption as FieldValueFieldOption
15
+ from .field_values_t import FieldValueFieldOptions as FieldValueFieldOptions
16
+ from .field_values_t import FieldValueId as FieldValueId
17
+ from .field_values_t import FieldValueIds as FieldValueIds
18
+ from .field_values_t import FieldValueText as FieldValueText
19
+ from .field_values_t import FieldValueTexts as FieldValueTexts
20
+ from .field_values_t import FieldValueBoolean as FieldValueBoolean
21
+ from .field_values_t import FieldValueNumeric as FieldValueNumeric
22
+ from .field_values_t import FieldValueBatchReference as FieldValueBatchReference
23
+ from .field_values_t import FieldValueNull as FieldValueNull
24
+ from .field_values_t import FieldValueNotes as FieldValueNotes
25
+ from .field_values_t import FieldValueDate as FieldValueDate
26
+ from .field_values_t import FieldValueDatetime as FieldValueDatetime
27
+ from .field_values_t import FieldValue as FieldValue
28
+ from .field_values_t import FieldArgumentValue as FieldArgumentValue
65
29
  # DO NOT MODIFY -- This file is generated by type_spec