UncountablePythonSDK 0.0.8__py3-none-any.whl → 0.0.92__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of UncountablePythonSDK might be problematic. Click here for more details.

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