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
@@ -1,82 +0,0 @@
1
- $endpoint:
2
- is_sdk: true
3
- method: get
4
- path: ${external}/inputs/external_get_inputs_data
5
- function: main.site.app.external.inputs.get_inputs_data.get_inputs_data
6
- desc: "Gets the details for passed input ids"
7
-
8
- Arguments:
9
- type: Object
10
- properties:
11
- input_ids:
12
- type: List<ObjectId>
13
- desc: "Ids of the inputs to retrieve"
14
-
15
- AttributeDetails:
16
- type: Object
17
- properties:
18
- attribute_id:
19
- type: ObjectId
20
- desc: "A unique identifier for the attribute."
21
- name:
22
- type: String
23
- desc: "The name of the attribute"
24
- quantity_type:
25
- type: String
26
- desc: "The value type of the attribute"
27
-
28
- InputTag:
29
- type: Object
30
- properties:
31
- tag_id:
32
- type: ObjectId
33
- desc: "A unique identifier for the tag."
34
- tag_name:
35
- type: String
36
- desc: "A name for the tag"
37
-
38
- InputCategory:
39
- type: Object
40
- properties:
41
- material_family_id:
42
- type: ObjectId
43
- desc: "A unique identifier for the material family id where the category assignment is made."
44
- category_id:
45
- type: ObjectId
46
- desc: "A unique identifer for the category"
47
- category_name:
48
- type: String
49
- desc: "A name for the category"
50
-
51
- InputDetails:
52
- type: Object
53
- properties:
54
- input_id:
55
- type: ObjectId
56
- desc: "A unique identifier for the input."
57
- name:
58
- type: String
59
- desc: "The name of the input."
60
- quantity_type:
61
- type: String
62
- desc: "The quantity type of the input. Always numeric for standard inputs"
63
- type:
64
- type: String
65
- desc: "The type of the input. E.g. input, process parameter, equipment"
66
- attributes:
67
- type: List<input_attributes.InputAttributeValue>
68
- desc: "The attributes of the input"
69
- categories:
70
- type: List<InputCategory>
71
- desc: "The categories for the input for each material family"
72
- tags:
73
- type: List<InputTag>
74
- desc: "The tags (subcategories) for the input"
75
-
76
- Data:
77
- type: Object
78
- properties:
79
- input_details:
80
- type: List<InputDetails>
81
- input_attributes:
82
- type: List<AttributeDetails>
@@ -1,33 +0,0 @@
1
- $endpoint:
2
- is_sdk: true
3
- method: post
4
- path: ${external}/inputs/external_set_input_attribute_values
5
- function: main.site.app.external.inputs.set_input_attribute_values.set_input_attribute_values
6
- desc: "Sets attribute values for an input"
7
-
8
- Arguments:
9
- type: Object
10
- properties:
11
- attribute_values:
12
- type: List<InputAttributeValue>
13
- desc: "The attributes of the input to set"
14
-
15
- InputAttributeValue:
16
- type: Object
17
- properties:
18
- input_id:
19
- type: ObjectId
20
- desc: "A unique identifier for the input to set the attribute value on"
21
- attribute_id:
22
- type: ObjectId
23
- desc: "A unique identifier for the attribute."
24
- quantity_dec?:
25
- type: Decimal
26
- desc: "The value for the attribute, if it is of numeric type"
27
- quantity_json?:
28
- type: JsonValue
29
- desc: "The value for the attribute, if it is not of numeric type"
30
-
31
- Data:
32
- type: response.Response
33
- properties:
@@ -1,92 +0,0 @@
1
- $endpoint:
2
- is_sdk: true
3
- method: get
4
- path: ${external}/outputs/external_get_output_data
5
- function: main.site.app.external.outputs.get_output_data.get_output_data
6
- desc: "Gets the attribute, categorization and other metadata associated with a set of outputs"
7
-
8
- Arguments:
9
- type: Object
10
- properties:
11
- material_family_id:
12
- type: ObjectId
13
- desc: "The material family ID to get the output values from."
14
- output_ids?:
15
- type: List<ObjectId>
16
- desc: "The output IDs to get the data from. If this is not filled in, all outputs from a material family will be returned (in paginated form)."
17
- offset?:
18
- type: Integer
19
- desc: "Used for pagination, where the number of results returned exceeds the limit. Results are always ordered by the output ID"
20
- limit?:
21
- type: Integer
22
- desc: "The maximum number of results to return. By default this is set to 1,000 and it cannot be set higher than 1,000"
23
-
24
- OutputAttrVal:
25
- type: Object
26
- properties:
27
- attribute_id:
28
- type: ObjectId
29
- desc: "The unique integer ID for the output attribute value. Used for joining and identification elsewhere."
30
- quantity_dec:
31
- type: Decimal
32
- desc: "The value for the attribute, if it is of numeric type"
33
- quantity_json:
34
- type: JsonValue
35
- desc: "The value for the attribute, if it is not of numeric type"
36
-
37
- SimpleOutputAttr:
38
- type: Object
39
- properties:
40
- attribute_id:
41
- type: ObjectId
42
- desc: "The unique integer ID for the output attribute value. Used for joining and identification elsewhere."
43
- name:
44
- type: String
45
- desc: "The name of the output attribute"
46
- quantity_type:
47
- type: String
48
- desc: "The quantity type of the output attribute, such as numeric, categorical or text"
49
-
50
- SimpleOutputGlobalCategory:
51
- type: Object
52
- properties:
53
- category_id:
54
- type: ObjectId
55
- desc: "The unique integer ID for the global category. Used for joining and identification elsewhere."
56
- name:
57
- type: String
58
- desc: "The name of the output global category"
59
-
60
- FullOutput:
61
- type: Object
62
- properties:
63
- output_id:
64
- type: ObjectId
65
- desc: "The unique integer ID of the output value. Used for joining and identification elsewhere"
66
- name:
67
- type: String
68
- desc: "The name of the output"
69
- quantity_type:
70
- type: String
71
- desc: "The quantity type of the output, such as numeric, categorical, text, curve, or calculation"
72
- attributes:
73
- type: List<OutputAttrVal>
74
- desc: "Attributes associated with an output, such as a test documentation"
75
- global_category_id:
76
- type: ObjectId
77
- desc: "The global category ID associated with the output"
78
- unit_id:
79
- type: ObjectId
80
- desc: "The unit for the output, which all data is stored in. This may be different than the users default displayed information for the output"
81
-
82
- Data:
83
- type: Object
84
- properties:
85
- outputs:
86
- type: List<FullOutput>
87
- attrs:
88
- type: List<SimpleOutputAttr>
89
- global_categories:
90
- type: List<SimpleOutputGlobalCategory>
91
- units:
92
- type: List<units.SimpleUnit>
@@ -1,35 +0,0 @@
1
- $endpoint:
2
- is_sdk: true
3
- method: get
4
- path: ${external}/outputs/external_get_output_names
5
- function: main.site.app.external.outputs.get_output_names.get_output_names
6
- desc: "Gets the name of all outputs for a material family. An output represents a measurement value of any time (numeric, text, curve, etc). This includes calculations based off of other outputs, such as a calculated change over time"
7
-
8
- Arguments:
9
- type: Object
10
- properties:
11
- material_family_id:
12
- type: ObjectId
13
- desc: "The material family ID to get the output values from"
14
- offset?:
15
- type: Integer
16
- desc: "Used for pagination, where the number of results returned exceeds the limit. Results are always ordered by the output ID"
17
- limit?:
18
- type: Integer
19
- desc: "The maximum number of results to return. By default this is set to 20,000 and it cannot be set higher than 20,000"
20
-
21
- OutputWithName:
22
- type: Object
23
- properties:
24
- output_id:
25
- type: ObjectId
26
- desc: "The unique integer ID of the output value. Used for joining and identification elsewhere"
27
- name:
28
- type: String
29
- desc: "The name of the output"
30
-
31
- Data:
32
- type: Object
33
- properties:
34
- outputs:
35
- type: List<OutputWithName>
@@ -1,50 +0,0 @@
1
- $endpoint:
2
- is_sdk: true
3
- method: post
4
- path: ${external}/outputs/external_resolve_output_conditions
5
- function: main.site.app.external.outputs.resolve_output_conditions.resolve_output_conditions
6
- desc: For the provided set of condition parameter id and values, returns the existing or newly created output condition id for that value and id pair.
7
-
8
- ConditionParameterValueRecord:
9
- type: Object
10
- properties:
11
- condition_parameter_id:
12
- type: ObjectId
13
- value_numeric?:
14
- type: Decimal
15
- desc: The numeric value for the condition parameter. Should be none if condition parameter is not of type numeric
16
- value_string?:
17
- type: String
18
- desc: The string value for the condition parameter if applicable for this condition parameter
19
-
20
- ConditionRequest:
21
- type: Object
22
- properties:
23
- conditions:
24
- type: List<ConditionParameterValueRecord>
25
-
26
- Arguments:
27
- type: Object
28
- properties:
29
- requested_conditions:
30
- type: List<ConditionRequest>
31
-
32
- ConditionResponse:
33
- type: Object
34
- properties:
35
- conditions:
36
- type: List<ConditionParameterValueRecord>
37
- output_condition_id:
38
- type: ObjectId
39
- desc: The resolved output condition id for this condition parameter id and value pair
40
-
41
- Data:
42
- type: Object
43
- properties:
44
- resolved_conditions:
45
- type: List<ConditionResponse>
46
- desc: Retains the same order as the request and includes the resolve output condition id for each condition request
47
-
48
- max_num_condition_requests:
49
- type: Integer
50
- value: 100
@@ -1,42 +0,0 @@
1
- $endpoint:
2
- is_sdk: true
3
- method: get
4
- path: ${external}/project/external_get_projects
5
- function: main.site.app.external.project.get_projects.get_projects
6
- desc: "Gets either all projects created in the platform, or the projects associated with a material family ID. Projects are where experiments are placed in Uncountable, similar to folders in a directory structure"
7
- Arguments:
8
- type: Object
9
- properties:
10
- all_material_families:
11
- type: Boolean
12
- desc: "Whether to get projects from all material families. Material families are high level groupings of data, usually separated by functional area"
13
- material_family_id:
14
- type: Optional<ObjectId>
15
- desc: "The specific material family ID to get projects from. Only fill this in if all_material_families is set to false"
16
-
17
- Project:
18
- type: Object
19
- properties:
20
- id:
21
- type: ObjectId
22
- desc: "A unique identifier for the project. Used as foreign key to reference elsewhere."
23
- name:
24
- type: String
25
- desc: "The name of the project"
26
- material_family_id:
27
- type: ObjectId
28
- desc: "A unique identifier for the material family. Used as foreign key to reference elsewhere."
29
- project_owner_id:
30
- type: Optional<ObjectId>
31
- desc: "The projects owner, as a user ID within the platform"
32
- phase_id:
33
- type: Optional<ObjectId>
34
- desc: "The phase id corresponding to a phase workflow"
35
-
36
- Data:
37
- type: Object
38
- properties:
39
- projects:
40
- type: List<Project>
41
- phases:
42
- type: List<phases.Phase>
@@ -1,50 +0,0 @@
1
- $endpoint:
2
- is_sdk: true
3
- method: get
4
- path: ${external}/project/external_get_projects_data
5
- function: main.site.app.external.project.get_projects_data.get_projects_data
6
- desc: "Gets either all data associated with a set of projects created in the platform. Because Uncountables recipe structure is complex, various data values are exploded out to increase efficiency in parsing, and this page is paginated to prevent too large of return values"
7
- Arguments:
8
- type: Object
9
- properties:
10
- project_ids:
11
- type: List<ObjectId>
12
- desc: "The projects to get the data from"
13
- offset?:
14
- type: Optional<Integer>
15
- desc: "Used for pagination. All pagination is done in order of Project ID"
16
- limit?:
17
- type: Optional<Integer>
18
- desc: "The number of data points to return. If not filled in, it will be set to 100, and cannot be set higher than 100"
19
-
20
- ProjectDetailed:
21
- type: Object
22
- properties:
23
- id:
24
- type: ObjectId
25
- desc: "A unique identifier for the project. Used as foreign key to reference elsewhere."
26
- name:
27
- type: String
28
- desc: "The name of the project"
29
- material_family_id:
30
- type: ObjectId
31
- desc: "A unique identifier for the material family. Used as foreign key to reference elsewhere."
32
- project_owner_id:
33
- type: Optional<ObjectId>
34
- desc: "The projects owner, as a user ID within the platform"
35
- phase_id:
36
- type: Optional<ObjectId>
37
- desc: "The phase id corresponding to a phase workflow"
38
- values:
39
- type: List<field_values.ArgumentValueId>
40
- desc: "List of fields and values associated with the project"
41
-
42
- Data:
43
- type: Object
44
- properties:
45
- projects:
46
- type: List<ProjectDetailed>
47
- phases:
48
- type: List<phases.Phase>
49
- fields:
50
- type: List<fields.Field>
@@ -1,41 +0,0 @@
1
- $endpoint:
2
- is_sdk: true
3
- method: get
4
- path: ${external}/recipe_metadata/external_get_recipe_metadata_data
5
- function: main.site.app.external.recipe_metadata.get_recipe_metadata_data.get_recipe_metadata_data
6
- desc: "Gets the recipe metadata. Recipe metadata is data associated with experiments that is not an input, output or calculation, such as a sample ID."
7
-
8
- Arguments:
9
- type: Object
10
- properties:
11
- material_family_id:
12
- type: ObjectId
13
- desc: "The material family ID to get the recipe metadata values from."
14
- recipe_metadata_ids:
15
- type: Optional<List<ObjectId>>
16
- desc: "The recipe metadata IDs to get the data from. If this is not filled in, all metadata from a material family will be returned (in paginated form)."
17
- offset?:
18
- type: Optional<Integer>
19
- desc: "Used for pagination, where the number of results returned exceeds the limit. Results are always ordered by the metadata ID"
20
- limit?:
21
- type: Optional<Integer>
22
- desc: "The maximum number of results to return. By default this is set to 1,000 and it cannot be set higher than 1,000"
23
-
24
- FullRecipeMetadataField:
25
- type: Object
26
- properties:
27
- recipe_metadata_id:
28
- type: ObjectId
29
- desc: "The unique integer ID of the recipe metadata value. Used for joining and identification elsewhere"
30
- name:
31
- type: String
32
- desc: "The name of the recipe metadata"
33
- quantity_type:
34
- type: String
35
- desc: "The quantity type of the recipe metadata, such as numeric, categorical or text"
36
-
37
- Data:
38
- type: Object
39
- properties:
40
- recipe_metadata:
41
- type: List<FullRecipeMetadataField>
@@ -1,47 +0,0 @@
1
- $endpoint:
2
- is_sdk: true
3
- method: post
4
- path: ${external}/recipes/external_create_recipes
5
- function: main.site.app.external.recipes.create_recipes.create_recipes
6
- desc: "Sets inputs values for an experiment. Values set can be numeric, text or categorical types in the Uncountable system"
7
-
8
- CreateRecipeDefinition:
9
- type: Object
10
- properties:
11
- name?:
12
- type: String
13
- desc: "The name for the recipe"
14
- workflow_id:
15
- type: ObjectId
16
- desc: "The identifier of the workflow to create the recipe with"
17
- workflow_variant_id?:
18
- type: Optional<ObjectId>
19
- desc: "The identifier of the workflow variant to create the recipe with"
20
- recipe_metadata?:
21
- type: List<recipe_metadata.MetadataValue>
22
- desc: "Metadata values to populate the recipe with"
23
-
24
- Arguments:
25
- type: Object
26
- properties:
27
- material_family_id:
28
- type: ObjectId
29
- desc: "The identifier of the material family to create the recipes in"
30
- project_id?:
31
- type: ObjectId
32
- desc: "The identifier of the project to create the recipes in"
33
- recipe_definitions:
34
- type: List<CreateRecipeDefinition>
35
-
36
- CreateRecipeResult:
37
- type: Object
38
- properties:
39
- recipe_id:
40
- type: ObjectId
41
- desc: The identifier for the created recipe
42
-
43
- Data:
44
- type: Object
45
- properties:
46
- recipes:
47
- type: List<CreateRecipeResult>
@@ -1,18 +0,0 @@
1
- $endpoint:
2
- is_sdk: true
3
- method: get
4
- path: ${external}/recipes/external_get_curve
5
- function: main.site.app.external.recipes.get_curve.get_curve
6
- desc: "Returns an array of values for the specified curve id."
7
- Arguments:
8
- type: Object
9
- properties:
10
- recipe_output_id:
11
- type: ObjectId
12
- desc: "The recipe output ID to fetch the curve for. This must be a curve recipe output. Recipe Outputs can be found from external_get_recipes_data"
13
-
14
- Data:
15
- type: Object
16
- properties:
17
- curve:
18
- type: curves.Curve
@@ -1,39 +0,0 @@
1
- $endpoint:
2
- is_sdk: true
3
- method: get
4
- path: ${external}/recipes/external_get_recipe_calculations
5
- function: main.site.app.external.recipes.get_recipe_calculations.get_recipe_calculations
6
- desc: "Gets the calculations for the passed recipes"
7
- Arguments:
8
- type: Object
9
- properties:
10
- recipe_ids:
11
- type: List<ObjectId>
12
- desc: "Ids of the Recipes to retrieve calculations for"
13
- calculation_ids?:
14
- type: List<ObjectId>
15
- desc: "Optionally a list of ids of calculations to retrieve"
16
-
17
- RecipeCalculation:
18
- type: Object
19
- properties:
20
- recipe_id:
21
- type: ObjectId
22
- desc: "Identifier for the recipe"
23
- calculation_id:
24
- type: ObjectId
25
- desc: "Identifier for the calculation"
26
- quantity_dec?:
27
- type: Decimal
28
- desc: "The value for the calculation, if it is of numeric type"
29
- quantity_json?:
30
- type: JsonValue
31
- desc: "The value for the calculation, if it is not of numeric type"
32
-
33
- Data:
34
- type: Object
35
- properties:
36
- recipe_calculations:
37
- type: List<RecipeCalculation>
38
- calculations:
39
- type: List<calculations.Calculation>
@@ -1,26 +0,0 @@
1
- $endpoint:
2
- is_sdk: true
3
- method: get
4
- path: ${external}/recipes/external_get_recipe_links
5
- function: main.site.app.external.recipes.get_recipe_links.get_recipe_links
6
- desc: "Gets the links for the passed recipes"
7
-
8
- Arguments:
9
- type: Object
10
- properties:
11
- recipe_ids:
12
- type: List<ObjectId>
13
- desc: "Ids of the Recipes to retrieve links for"
14
- depth:
15
- type: Integer
16
- desc: "How many layers deep to look for links"
17
- default: 1
18
- link_types:
19
- type: Optional<List<recipe_links.RecipeLinkType>>
20
- desc: "Optional filter to only desired link types"
21
-
22
- Data:
23
- type: Object
24
- properties:
25
- recipe_links:
26
- type: List<recipe_links.RecipeLink>
@@ -1,29 +0,0 @@
1
- $endpoint:
2
- is_sdk: true
3
- method: get
4
- path: ${external}/recipes/external_get_recipe_names
5
- function: main.site.app.external.recipes.get_recipe_names.get_recipe_names
6
- desc: "Gets the name of all recipes (or experiments, used as synonyms by Uncountable) for a project. The call external_get_projects can be used to find projects"
7
-
8
- Arguments:
9
- type: Object
10
- properties:
11
- project_id:
12
- type: ObjectId
13
- desc: "Required: The project ID to get the recipes/experiments from."
14
-
15
- SimpleRecipe:
16
- type: Object
17
- properties:
18
- id:
19
- type: ObjectId
20
- desc: "The unique integer ID of the recipe/experiment. Used for joining and identification elsewhere"
21
- name:
22
- type: String
23
- desc: "The name of the recipe"
24
-
25
- Data:
26
- type: Object
27
- properties:
28
- recipes:
29
- type: List<SimpleRecipe>
@@ -1,36 +0,0 @@
1
- $endpoint:
2
- is_sdk: true
3
- method: get
4
- path: ${external}/recipes/external_get_recipe_output_metadata
5
- function: main.site.app.external.recipes.get_recipe_output_metadata.get_recipe_output_metadata
6
- desc: "Gets the metadata values for the passed recipe outputs"
7
- Arguments:
8
- type: Object
9
- properties:
10
- recipe_output_ids:
11
- type: List<ObjectId>
12
- desc: "Ids of the Recipe Outputs to retrieve metadata for"
13
-
14
- RecipeOutputMetadata:
15
- type: Object
16
- properties:
17
- recipe_output_id:
18
- type: ObjectId
19
- desc: "Identifier for the recipe output"
20
- recipe_output_metadata_field_id:
21
- type: ObjectId
22
- desc: "Identifier for the metadata field id"
23
- quantity_dec:
24
- type: Decimal
25
- desc: "The value for the metadata, if it is of numeric type"
26
- quantity_json:
27
- type: JsonValue
28
- desc: "The value for the metadata, if it is not of numeric type"
29
-
30
- Data:
31
- type: Object
32
- properties:
33
- recipe_output_metadata:
34
- type: List<RecipeOutputMetadata>
35
- recipe_output_metadata_fields:
36
- type: List<recipe_output_metadata.RecipeOutputMetadataField>