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,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
@@ -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 .experiment_groups_t import SimpleExperimentGroup as SimpleExperimentGroup
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,28 +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
- "FieldRefNameValue",
16
- ]
17
-
18
-
19
5
  # DO NOT MODIFY -- This file is generated by type_spec
20
- @serial_class(
21
- unconverted_values={"value"},
22
- )
23
- @dataclass(kw_only=True)
24
- class FieldRefNameValue:
25
- field_ref_name: str
26
- value: base_t.JsonValue
27
- 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
28
22
  # DO NOT MODIFY -- This file is generated by type_spec
@@ -0,0 +1,204 @@
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_union_annotation
14
+ from . import base_t
15
+ from . import entity_t
16
+ from . import identifier_t
17
+
18
+ __all__: list[str] = [
19
+ "ArgumentValueId",
20
+ "ArgumentValueRefName",
21
+ "FieldArgumentValue",
22
+ "FieldRefIdNameValue",
23
+ "FieldRefNameValue",
24
+ "FieldValue",
25
+ "FieldValueBase",
26
+ "FieldValueBatchReference",
27
+ "FieldValueBoolean",
28
+ "FieldValueFiles",
29
+ "FieldValueId",
30
+ "FieldValueIds",
31
+ "FieldValueNumeric",
32
+ "FieldValueText",
33
+ "FieldValueType",
34
+ ]
35
+
36
+
37
+ # DO NOT MODIFY -- This file is generated by type_spec
38
+ @serial_class(
39
+ named_type_path="sdk.field_values.FieldRefNameValue",
40
+ unconverted_values={"value"},
41
+ )
42
+ @dataclasses.dataclass(kw_only=True)
43
+ class FieldRefNameValue:
44
+ field_ref_name: str
45
+ value: base_t.JsonValue
46
+ row_index: typing.Optional[int] | None = None
47
+
48
+
49
+ # DO NOT MODIFY -- This file is generated by type_spec
50
+ @serial_class(
51
+ named_type_path="sdk.field_values.FieldRefIdNameValue",
52
+ unconverted_values={"value"},
53
+ )
54
+ @dataclasses.dataclass(kw_only=True)
55
+ class FieldRefIdNameValue:
56
+ field_id: base_t.ObjectId
57
+ field_ref_name: str
58
+ value: base_t.JsonValue
59
+ row_index: typing.Optional[int] | None = None
60
+
61
+
62
+ # DO NOT MODIFY -- This file is generated by type_spec
63
+ @serial_class(
64
+ named_type_path="sdk.field_values.ArgumentValueRefName",
65
+ unconverted_values={"value"},
66
+ )
67
+ @dataclasses.dataclass(kw_only=True)
68
+ class ArgumentValueRefName:
69
+ field_ref_name: str
70
+ value: base_t.JsonValue
71
+ row_index: typing.Optional[int] | None = None
72
+
73
+
74
+ # DO NOT MODIFY -- This file is generated by type_spec
75
+ @serial_class(
76
+ named_type_path="sdk.field_values.ArgumentValueId",
77
+ unconverted_values={"value"},
78
+ )
79
+ @dataclasses.dataclass(kw_only=True)
80
+ class ArgumentValueId:
81
+ field_id: base_t.ObjectId
82
+ value: base_t.JsonValue
83
+ row_index: typing.Optional[int] | None = None
84
+
85
+
86
+ # DO NOT MODIFY -- This file is generated by type_spec
87
+ class FieldValueType(StrEnum):
88
+ FILES = "files"
89
+ TEXT = "text"
90
+ ID = "id"
91
+ IDS = "ids"
92
+ BOOLEAN = "boolean"
93
+ NUMERIC = "numeric"
94
+ BATCH_REFERENCE = "batch_reference"
95
+
96
+
97
+ # DO NOT MODIFY -- This file is generated by type_spec
98
+ @serial_class(
99
+ named_type_path="sdk.field_values.FieldValueBase",
100
+ )
101
+ @dataclasses.dataclass(kw_only=True)
102
+ class FieldValueBase:
103
+ type: FieldValueType
104
+
105
+
106
+ # DO NOT MODIFY -- This file is generated by type_spec
107
+ @serial_class(
108
+ named_type_path="sdk.field_values.FieldValueFiles",
109
+ parse_require={"type"},
110
+ )
111
+ @dataclasses.dataclass(kw_only=True)
112
+ class FieldValueFiles(FieldValueBase):
113
+ type: typing.Literal[FieldValueType.FILES] = FieldValueType.FILES
114
+ file_ids: list[base_t.ObjectId]
115
+
116
+
117
+ # DO NOT MODIFY -- This file is generated by type_spec
118
+ @serial_class(
119
+ named_type_path="sdk.field_values.FieldValueId",
120
+ parse_require={"type"},
121
+ )
122
+ @dataclasses.dataclass(kw_only=True)
123
+ class FieldValueId(FieldValueBase):
124
+ type: typing.Literal[FieldValueType.ID] = FieldValueType.ID
125
+ entity_type: entity_t.EntityType
126
+ identifier_key: identifier_t.IdentifierKey
127
+
128
+
129
+ # DO NOT MODIFY -- This file is generated by type_spec
130
+ @serial_class(
131
+ named_type_path="sdk.field_values.FieldValueIds",
132
+ parse_require={"type"},
133
+ )
134
+ @dataclasses.dataclass(kw_only=True)
135
+ class FieldValueIds(FieldValueBase):
136
+ type: typing.Literal[FieldValueType.IDS] = FieldValueType.IDS
137
+ entity_type: entity_t.EntityType
138
+ identifier_keys: list[identifier_t.IdentifierKey]
139
+
140
+
141
+ # DO NOT MODIFY -- This file is generated by type_spec
142
+ @serial_class(
143
+ named_type_path="sdk.field_values.FieldValueText",
144
+ parse_require={"type"},
145
+ )
146
+ @dataclasses.dataclass(kw_only=True)
147
+ class FieldValueText(FieldValueBase):
148
+ type: typing.Literal[FieldValueType.TEXT] = FieldValueType.TEXT
149
+ value: str
150
+
151
+
152
+ # DO NOT MODIFY -- This file is generated by type_spec
153
+ @serial_class(
154
+ named_type_path="sdk.field_values.FieldValueBoolean",
155
+ parse_require={"type"},
156
+ )
157
+ @dataclasses.dataclass(kw_only=True)
158
+ class FieldValueBoolean(FieldValueBase):
159
+ type: typing.Literal[FieldValueType.BOOLEAN] = FieldValueType.BOOLEAN
160
+ value: bool
161
+
162
+
163
+ # DO NOT MODIFY -- This file is generated by type_spec
164
+ @serial_class(
165
+ named_type_path="sdk.field_values.FieldValueNumeric",
166
+ to_string_values={"value"},
167
+ parse_require={"type"},
168
+ )
169
+ @dataclasses.dataclass(kw_only=True)
170
+ class FieldValueNumeric(FieldValueBase):
171
+ type: typing.Literal[FieldValueType.NUMERIC] = FieldValueType.NUMERIC
172
+ value: Decimal
173
+
174
+
175
+ # DO NOT MODIFY -- This file is generated by type_spec
176
+ @serial_class(
177
+ named_type_path="sdk.field_values.FieldValueBatchReference",
178
+ parse_require={"type"},
179
+ )
180
+ @dataclasses.dataclass(kw_only=True)
181
+ class FieldValueBatchReference(FieldValueBase):
182
+ type: typing.Literal[FieldValueType.BATCH_REFERENCE] = FieldValueType.BATCH_REFERENCE
183
+ reference_key: identifier_t.IdentifierKeyBatchReference
184
+ data_key: str
185
+
186
+
187
+ # DO NOT MODIFY -- This file is generated by type_spec
188
+ FieldValue = typing.Annotated[
189
+ typing.Union[FieldValueFiles, FieldValueId, FieldValueIds, FieldValueText, FieldValueBoolean, FieldValueNumeric, FieldValueBatchReference],
190
+ serial_union_annotation(
191
+ named_type_path="sdk.field_values.FieldValue",
192
+ ),
193
+ ]
194
+
195
+
196
+ # DO NOT MODIFY -- This file is generated by type_spec
197
+ @serial_class(
198
+ named_type_path="sdk.field_values.FieldArgumentValue",
199
+ )
200
+ @dataclasses.dataclass(kw_only=True)
201
+ class FieldArgumentValue:
202
+ field_key: identifier_t.IdentifierKey
203
+ value: FieldValue
204
+ # DO NOT MODIFY -- This file is generated by type_spec