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,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 .client_config_t import ClientConfigOptions as ClientConfigOptions
8
+ # 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
+ # 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
+
13
+ __all__: list[str] = [
14
+ "ClientConfigOptions",
15
+ ]
16
+
17
+
18
+ # DO NOT MODIFY -- This file is generated by type_spec
19
+ @serial_class(
20
+ named_type_path="sdk.client_config.ClientConfigOptions",
21
+ )
22
+ @dataclasses.dataclass(kw_only=True)
23
+ class ClientConfigOptions:
24
+ allow_insecure_tls: bool = False
25
+ extra_headers: typing.Optional[dict[str, str]] | None = None
26
+ # DO NOT MODIFY -- This file is generated by type_spec
@@ -1,47 +1,10 @@
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 pkgs.strenum_compat import StrEnum
11
- from dataclasses import dataclass
12
- from pkgs.serialization import serial_class
13
- from . import base as base_t
14
-
15
- __all__: list[str] = [
16
- "Curve",
17
- "CurveAxisType",
18
- "CurveValue",
19
- ]
20
-
21
-
22
- # DO NOT MODIFY -- This file is generated by type_spec
23
- class CurveAxisType(StrEnum):
24
- NUMERIC = "numeric"
25
- TIMESTAMP = "timestamp"
26
-
27
-
28
- # DO NOT MODIFY -- This file is generated by type_spec
29
- @dataclass(kw_only=True)
30
- class Curve:
31
- id: base_t.ObjectId
32
- x_type: typing.Union[typing.Literal[CurveAxisType.NUMERIC], typing.Literal[CurveAxisType.TIMESTAMP]]
33
- x_values: list[CurveValue]
34
- y_type: typing.Union[typing.Literal[CurveAxisType.NUMERIC]]
35
- y_values: list[CurveValue]
36
-
37
-
38
5
  # DO NOT MODIFY -- This file is generated by type_spec
39
- @serial_class(
40
- to_string_values={"quantity"},
41
- )
42
- @dataclass(kw_only=True)
43
- class CurveValue:
44
- index: int
45
- quantity: typing.Optional[Decimal] = None
46
- quantity_timestamp: typing.Optional[datetime.datetime] = None
6
+ # Kept only for SDK backwards compatibility
7
+ from .curves_t import CurveAxisType as CurveAxisType
8
+ from .curves_t import Curve as Curve
9
+ from .curves_t import CurveValue as CurveValue
47
10
  # DO NOT MODIFY -- This file is generated by type_spec
@@ -0,0 +1,51 @@
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 . import base_t
14
+
15
+ __all__: list[str] = [
16
+ "Curve",
17
+ "CurveAxisType",
18
+ "CurveValue",
19
+ ]
20
+
21
+
22
+ # DO NOT MODIFY -- This file is generated by type_spec
23
+ class CurveAxisType(StrEnum):
24
+ NUMERIC = "numeric"
25
+ TIMESTAMP = "timestamp"
26
+
27
+
28
+ # DO NOT MODIFY -- This file is generated by type_spec
29
+ @serial_class(
30
+ named_type_path="sdk.curves.Curve",
31
+ )
32
+ @dataclasses.dataclass(kw_only=True)
33
+ class Curve:
34
+ id: base_t.ObjectId
35
+ x_type: typing.Union[typing.Literal[CurveAxisType.NUMERIC], typing.Literal[CurveAxisType.TIMESTAMP]]
36
+ x_values: list[CurveValue]
37
+ y_type: typing.Union[typing.Literal[CurveAxisType.NUMERIC]]
38
+ y_values: list[CurveValue]
39
+
40
+
41
+ # DO NOT MODIFY -- This file is generated by type_spec
42
+ @serial_class(
43
+ named_type_path="sdk.curves.CurveValue",
44
+ to_string_values={"quantity"},
45
+ )
46
+ @dataclasses.dataclass(kw_only=True)
47
+ class CurveValue:
48
+ index: int
49
+ quantity: Decimal | None = None
50
+ quantity_timestamp: datetime.datetime | None = None
51
+ # DO NOT MODIFY -- This file is generated by type_spec
@@ -1,274 +1,13 @@
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 pkgs.strenum_compat import StrEnum
11
- from dataclasses import dataclass
12
- from pkgs.serialization import serial_string_enum
13
- from . import base as base_t
14
-
15
- __all__: list[str] = [
16
- "Entity",
17
- "EntityType",
18
- ]
19
-
20
-
21
- # DO NOT MODIFY -- This file is generated by type_spec
22
- @serial_string_enum(
23
- labels={
24
- "analytical_method": "Analytical Method",
25
- "analytical_method_category": "Analytical Method Category",
26
- "annotation_type": "Annotation Type",
27
- "approval": "Approval",
28
- "calculation": "Calculation",
29
- "calendar": "Calendar",
30
- "calendar_event": "Calendar Event",
31
- "certification": "Certification",
32
- "comment": "Comment",
33
- "comment_thread": "Comment Thread",
34
- "condition_parameter": "Condition Parameter",
35
- "condition_parameter_mat_family": "Condition Parameter Material Family",
36
- "constraint": "Constraint",
37
- "constraint_set": "Constraint Set",
38
- "curve_settings": "Curve Settings",
39
- "custom_entity": "Custom Entity",
40
- "doe_run": "Suggest Experiments",
41
- "entities_viewed": "Entities Viewed",
42
- "entity_field": "Field",
43
- "entity_field_audit_log": "Entity Field Audit Log",
44
- "entity_phase_event": "Entity Phase Event",
45
- "entity_tag": "Entity Tag",
46
- "equipment": "Equipment",
47
- "equipment_type": "Equipment Type",
48
- "experiment_group": "Experiment Group",
49
- "experiment_group_type": "Experiment Group Type",
50
- "favorite_link": "Favorite Link",
51
- "field_option_set": "Field Option Set",
52
- "file_folder": "File Folder",
53
- "file_folder_membership": "File Folder Membership",
54
- "goal": "Goal",
55
- "ingredient": "Ingredient",
56
- "ingredient_attribute": "Ingredient Attribute",
57
- "ingredient_attribute_category": "Ingredient Attribute Category",
58
- "ingredient_category": "Ingredient Category",
59
- "ingredient_category_all": "Ingredient Category",
60
- "ingredient_lot": "Ingredient Lot",
61
- "ingredient_role": "Ingredient Role",
62
- "ingredient_tag": "Ingredient Subcategory",
63
- "input_group": "Input Group",
64
- "inv_local_locations": "Inventory Location",
65
- "inventory_amount": "Inventory Amount",
66
- "lab_location": "Lab Location",
67
- "lab_request": "Lab Request",
68
- "license": "License",
69
- "maintenance_schedule": "Maintenance Schedule",
70
- "material_family": "Material Family",
71
- "ml_job": "Batch Processing Job",
72
- "naming_scheme": "Naming Scheme",
73
- "naming_counter": "Naming Counter",
74
- "notebook": "Notebook",
75
- "notebook_cell": "Notebook Cell",
76
- "output": "Output",
77
- "output_calculation_entity_mapping": "Output Calculation Entity Mapping",
78
- "output_category_all": "Output Category",
79
- "output_condition": "Output Condition",
80
- "output_default_condition": "Output Default Condition",
81
- "output_condition_parameter": "Output Condition Parameter",
82
- "output_condition_parameter_analytical_method_category": "Output Condition Parameter Analytical Method Category",
83
- "output_condition_parameter_analytical_method": "Output Condition Parameter Analytical Method",
84
- "output_group": "Output Group",
85
- "recipe_output_metadata": "Recipe Output Metadata",
86
- "permission": "Permission",
87
- "phase_workflow": "Phase Workflow",
88
- "predictive_model": "Predictive Model",
89
- "product": "Product",
90
- "project": "Project",
91
- "recipe": "Experiment",
92
- "recipe_calculation": "Recipe Calculation",
93
- "recipe_permission_view": "Recipe Permission View",
94
- "recipe_project": "Recipe Project",
95
- "recipe_check": "Experiment Check",
96
- "recipe_export": "Recipe Export",
97
- "recipe_ingredients_compounded": "Recipe Ingredients Compounded",
98
- "recipe_ingredients_compounded_calculation": "Recipe Ingredients Compounded Caclulation",
99
- "recipe_step": "Recipe Step",
100
- "recipe_tag": "Recipe Tag",
101
- "recipe_metadata": "Experiment Metadata",
102
- "review": "Review",
103
- "review_entity_user_status": "Review Entity User Status",
104
- "review_user": "Review User",
105
- "rlw_phase": "Phase",
106
- "rlw_trigger_set": "Trigger Set",
107
- "safety_data_sheet": "Safety Data Sheet",
108
- "scheduled_notification": "Scheduled Notification",
109
- "specs": "Spec",
110
- "split_template": "Split Template",
111
- "structured_loading_user_config": "List Config",
112
- "task": "Task",
113
- "task_board": "Task Board",
114
- "template": "Template",
115
- "timesheet_entry": "Timesheet Entry",
116
- "training_run": "Analyze Experiment",
117
- "training_set": "Training Set",
118
- "time_series": "Time Series",
119
- "units": "Units",
120
- "user_favorite": "User Favorite",
121
- "user": "User",
122
- "user_certification": "User Certification",
123
- "user_group": "User Group",
124
- "user_list_set": "User List Set",
125
- "webhook": "Webhook",
126
- "webhook_event": "Webhook Event",
127
- "workflow": "Workflow",
128
- "workflow_step": "Workflow Step",
129
- "workflow_variant": "Workflow Variant",
130
- "platform_notification": "Platform Notification",
131
- "inventory_location_type": "Inventory Location Type",
132
- "entity_definition": "Entity Definition",
133
- "phase_transition": "Phase Transition",
134
- "public_data_entity_link": "Public Data Entity Link",
135
- "public_data_sourced_output": "ChemQuery Property",
136
- "public_data_sourced_project": "ChemQuery Category",
137
- "public_data_sourced_recipe": "ChemQuery Product",
138
- "public_data_sourced_recipe_project": "ChemQuery Product Category",
139
- "public_data_sourced_recipe_metadata": "ChemQuery Product Information",
140
- "public_data_sourced_units": "ChemQuery Units",
141
- "public_data_sourced_condition_parameter": "ChemQuery Condition Parameter",
142
- "public_data_sourced_company": "ChemQuery Company",
143
- "uploader": "Uploader",
144
- },
145
- )
146
- class EntityType(StrEnum):
147
- ANALYTICAL_METHOD = "analytical_method"
148
- ANALYTICAL_METHOD_CATEGORY = "analytical_method_category"
149
- ANNOTATION_TYPE = "annotation_type"
150
- APPROVAL = "approval"
151
- CALCULATION = "calculation"
152
- CALENDAR = "calendar"
153
- CALENDAR_EVENT = "calendar_event"
154
- CERTIFICATION = "certification"
155
- COMMENT = "comment"
156
- COMMENT_THREAD = "comment_thread"
157
- CONDITION_PARAMETER = "condition_parameter"
158
- CONDITION_PARAMETER_MAT_FAMILY = "condition_parameter_mat_family"
159
- CONSTRAINT = "constraint"
160
- CONSTRAINT_SET = "constraint_set"
161
- CURVE_SETTINGS = "curve_settings"
162
- CUSTOM_ENTITY = "custom_entity"
163
- DOE_RUN = "doe_run"
164
- ENTITIES_VIEWED = "entities_viewed"
165
- ENTITY_FIELD = "entity_field"
166
- ENTITY_FIELD_AUDIT_LOG = "entity_field_audit_log"
167
- ENTITY_PHASE_EVENT = "entity_phase_event"
168
- ENTITY_TAG = "entity_tag"
169
- EQUIPMENT = "equipment"
170
- EQUIPMENT_TYPE = "equipment_type"
171
- EXPERIMENT_GROUP = "experiment_group"
172
- EXPERIMENT_GROUP_TYPE = "experiment_group_type"
173
- FAVORITE_LINK = "favorite_link"
174
- FIELD_OPTION_SET = "field_option_set"
175
- FILE_FOLDER = "file_folder"
176
- FILE_FOLDER_MEMBERSHIP = "file_folder_membership"
177
- GOAL = "goal"
178
- INGREDIENT = "ingredient"
179
- INGREDIENT_ATTRIBUTE = "ingredient_attribute"
180
- INGREDIENT_ATTRIBUTE_CATEGORY = "ingredient_attribute_category"
181
- INGREDIENT_CATEGORY = "ingredient_category"
182
- INGREDIENT_CATEGORY_ALL = "ingredient_category_all"
183
- INGREDIENT_LOT = "ingredient_lot"
184
- INGREDIENT_ROLE = "ingredient_role"
185
- INGREDIENT_TAG = "ingredient_tag"
186
- INPUT_GROUP = "input_group"
187
- INV_LOCAL_LOCATIONS = "inv_local_locations"
188
- INVENTORY_AMOUNT = "inventory_amount"
189
- LAB_LOCATION = "lab_location"
190
- LAB_REQUEST = "lab_request"
191
- LICENSE = "license"
192
- MAINTENANCE_SCHEDULE = "maintenance_schedule"
193
- MATERIAL_FAMILY = "material_family"
194
- ML_JOB = "ml_job"
195
- NAMING_SCHEME = "naming_scheme"
196
- NAMING_COUNTER = "naming_counter"
197
- NOTEBOOK = "notebook"
198
- NOTEBOOK_CELL = "notebook_cell"
199
- OUTPUT = "output"
200
- OUTPUT_CALCULATION_ENTITY_MAPPING = "output_calculation_entity_mapping"
201
- OUTPUT_CATEGORY_ALL = "output_category_all"
202
- OUTPUT_CONDITION = "output_condition"
203
- OUTPUT_DEFAULT_CONDITION = "output_default_condition"
204
- OUTPUT_CONDITION_PARAMETER = "output_condition_parameter"
205
- OUTPUT_CONDITION_PARAMETER_ANALYTICAL_METHOD_CATEGORY = "output_condition_parameter_analytical_method_category"
206
- OUTPUT_CONDITION_PARAMETER_ANALYTICAL_METHOD = "output_condition_parameter_analytical_method"
207
- OUTPUT_GROUP = "output_group"
208
- RECIPE_OUTPUT_METADATA = "recipe_output_metadata"
209
- PERMISSION = "permission"
210
- PHASE_WORKFLOW = "phase_workflow"
211
- PREDICTIVE_MODEL = "predictive_model"
212
- PRODUCT = "product"
213
- PROJECT = "project"
214
- RECIPE = "recipe"
215
- RECIPE_CALCULATION = "recipe_calculation"
216
- RECIPE_PERMISSION_VIEW = "recipe_permission_view"
217
- RECIPE_PROJECT = "recipe_project"
218
- RECIPE_CHECK = "recipe_check"
219
- RECIPE_EXPORT = "recipe_export"
220
- RECIPE_INGREDIENTS_COMPOUNDED = "recipe_ingredients_compounded"
221
- RECIPE_INGREDIENTS_COMPOUNDED_CALCULATION = "recipe_ingredients_compounded_calculation"
222
- RECIPE_STEP = "recipe_step"
223
- RECIPE_TAG = "recipe_tag"
224
- RECIPE_METADATA = "recipe_metadata"
225
- REVIEW = "review"
226
- REVIEW_ENTITY_USER_STATUS = "review_entity_user_status"
227
- REVIEW_USER = "review_user"
228
- RLW_PHASE = "rlw_phase"
229
- RLW_TRIGGER_SET = "rlw_trigger_set"
230
- SAFETY_DATA_SHEET = "safety_data_sheet"
231
- SCHEDULED_NOTIFICATION = "scheduled_notification"
232
- SPECS = "specs"
233
- SPLIT_TEMPLATE = "split_template"
234
- STRUCTURED_LOADING_USER_CONFIG = "structured_loading_user_config"
235
- TASK = "task"
236
- TASK_BOARD = "task_board"
237
- TEMPLATE = "template"
238
- TIMESHEET_ENTRY = "timesheet_entry"
239
- TRAINING_RUN = "training_run"
240
- TRAINING_SET = "training_set"
241
- TIME_SERIES = "time_series"
242
- UNITS = "units"
243
- USER_FAVORITE = "user_favorite"
244
- USER = "user"
245
- USER_CERTIFICATION = "user_certification"
246
- USER_GROUP = "user_group"
247
- USER_LIST_SET = "user_list_set"
248
- WEBHOOK = "webhook"
249
- WEBHOOK_EVENT = "webhook_event"
250
- WORKFLOW = "workflow"
251
- WORKFLOW_STEP = "workflow_step"
252
- WORKFLOW_VARIANT = "workflow_variant"
253
- PLATFORM_NOTIFICATION = "platform_notification"
254
- INVENTORY_LOCATION_TYPE = "inventory_location_type"
255
- ENTITY_DEFINITION = "entity_definition"
256
- PHASE_TRANSITION = "phase_transition"
257
- PUBLIC_DATA_ENTITY_LINK = "public_data_entity_link"
258
- PUBLIC_DATA_SOURCED_OUTPUT = "public_data_sourced_output"
259
- PUBLIC_DATA_SOURCED_PROJECT = "public_data_sourced_project"
260
- PUBLIC_DATA_SOURCED_RECIPE = "public_data_sourced_recipe"
261
- PUBLIC_DATA_SOURCED_RECIPE_PROJECT = "public_data_sourced_recipe_project"
262
- PUBLIC_DATA_SOURCED_RECIPE_METADATA = "public_data_sourced_recipe_metadata"
263
- PUBLIC_DATA_SOURCED_UNITS = "public_data_sourced_units"
264
- PUBLIC_DATA_SOURCED_CONDITION_PARAMETER = "public_data_sourced_condition_parameter"
265
- PUBLIC_DATA_SOURCED_COMPANY = "public_data_sourced_company"
266
- UPLOADER = "uploader"
267
-
268
-
269
5
  # DO NOT MODIFY -- This file is generated by type_spec
270
- @dataclass(kw_only=True)
271
- class Entity:
272
- id: base_t.ObjectId
273
- type: EntityType
6
+ # Kept only for SDK backwards compatibility
7
+ from .entity_t import EntityType as EntityType
8
+ from .entity_t import LimitedEntityType as LimitedEntityType
9
+ from .entity_t import EntityPermissionType as EntityPermissionType
10
+ from .entity_t import GrantableEntityPermissionType as GrantableEntityPermissionType
11
+ from .entity_t import Entity as Entity
12
+ from .entity_t import EntityIdentifier as EntityIdentifier
274
13
  # DO NOT MODIFY -- This file is generated by type_spec