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
@@ -1,372 +0,0 @@
1
- $endpoint:
2
- is_sdk: true
3
- method: get
4
- path: ${external}/recipes/external_get_recipes_data
5
- function: main.site.app.external.recipes.get_recipes_data.get_recipes_data
6
- desc: "Gets all data associated with a set of recipes / experiments. 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
- recipe_ids:
11
- type: Optional<List<Integer>>
12
- desc: "The recipes to get the data from. Either these or project_id must be filled in"
13
- project_id:
14
- type: Optional<Integer>
15
- desc: "The projects to get the data from. Either these or recipe_ids must be filled in"
16
- offset:
17
- type: Optional<Integer>
18
- desc: "Used for pagination. All pagination is done in order of Recipe ID"
19
- limit:
20
- type: Optional<Integer>
21
- 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"
22
-
23
- SimpleRecipeMetadataField:
24
- type: Object
25
- desc: "A descriptor of metadata. Metadata includes values that are neither ingredients nor process parameters, such as a location of an experiment"
26
- properties:
27
- metadata_id:
28
- type: Integer
29
- desc: "A unique ID for the metadata, referenceable elsewhere"
30
- name:
31
- type: String
32
- desc: "The name of the metadata"
33
- quantity_type:
34
- type: String
35
- desc: "The quantity type of the metadata, such as numeric or text"
36
-
37
- RecipeMetadata:
38
- type: Object
39
- desc: "The specific value of a metadata for a recipe. Recipe may only have 1 instance of each metadata"
40
- properties:
41
- metadata_id:
42
- type: Integer
43
- desc: "The unique ID for the metadata"
44
- quantity_dec:
45
- type: Decimal
46
- desc: "The value for the metadata, if it is of numeric type"
47
- quantity_json:
48
- type: JsonValue
49
- desc: "The value for the metadata, if it is not of numeric type"
50
-
51
- SimpleRecipeTag:
52
- type: Object
53
- desc: "A representation of recipe tags within Uncountable system"
54
- properties:
55
- recipe_tag_id:
56
- type: Integer
57
- desc: "A unique ID for the tag, referenceable elsewhere"
58
- name:
59
- type: String
60
- desc: "The name of the tag"
61
-
62
- SimpleExperimentGroup:
63
- type: Object
64
- desc: "A representation of experiment groups within Uncountable system"
65
- properties:
66
- experiment_group_id:
67
- type: Integer
68
- desc: "A unique ID for the group, referenceable elsewhere"
69
- name:
70
- type: String
71
- desc: "The name of the group"
72
-
73
- SimpleUnit:
74
- type: Object
75
- desc: "A representation of units within Uncountable system"
76
- properties:
77
- unit_id:
78
- type: Integer
79
- desc: "A unique ID for the unit, referenceable elsewhere"
80
- name:
81
- type: String
82
- desc: "The name of the unit"
83
-
84
- RecipeOutput:
85
- type: Object
86
- desc: "A representation of a single measurement associated with a recipe / experiment within Uncountable system"
87
- properties:
88
- id:
89
- type: Integer
90
- desc: "The global unique identifier for the recipe output. For cross-reference elsewhere."
91
- output_id:
92
- type: Integer
93
- desc: "The output specifically measured in this case"
94
- replicate_num:
95
- type: Integer
96
- desc: "The replicate number (1-indexed) of the output in question within the recipe. (Output, Output condition, Replicate_Num) form a unique index"
97
- quantity_dec:
98
- type: Decimal
99
- desc: "The quantity of the output, if numeric or ordinal"
100
- quantity_json:
101
- type: JsonValue
102
- desc: "The quantity of the output, if not numeric"
103
- curve_id:
104
- type: Integer
105
- desc: "The id of the curve associated with the output if the output is of curve type."
106
- output_condition_id:
107
- type: Integer
108
- desc: "A reference to the condition ID for the output (null if there are no conditions). Used to encode complicated test settings such as test standard, aging time, etc."
109
-
110
- SimpleOutput:
111
- type: Object
112
- desc: "A condensed object representing an output / measurement within Uncountables system"
113
- properties:
114
- output_id:
115
- type: Integer
116
- desc: "The globally unique identifier for the output"
117
- name:
118
- type: String
119
- desc: "The name of the output"
120
- unit:
121
- type: Optional<SimpleUnit>
122
- desc: "The units for the output, if filled in"
123
- quantity_type:
124
- type: String
125
- desc: "The quantity type of the output, with common types including numeric, text, categorical, curve"
126
-
127
- ConditionParameterValue:
128
- type: Object
129
- desc: "A condition parameter value represents a single association of value with a parameter. For instance, Test Method: ISO 23"
130
- properties:
131
- condition_parameter_id:
132
- type: Integer
133
- desc: "The globally unique identifier for the condition parameter, i.e. Test Method or Aging Time"
134
- condition_parameter_name:
135
- type: String
136
- desc: "The name of the condition parameter"
137
- quantity_dec:
138
- type: Decimal
139
- desc: "The quantity associated with the parameter if the parameter is of numeric type. If this is filled in, quantity_json will be null"
140
- quantity_json:
141
- type: JsonValue
142
- desc: "The quantity associated with the parameter if the parameter is not of numeric type. If this is filled in, quantity_json will not be null"
143
-
144
- SimpleOutputCondition:
145
- type: Object
146
- desc: "Within Uncountable, Output conditions represent how an output is measured. Common use cases include the test temperature, test standard, aging time, etc. An outputcondition is the full description of these parameters"
147
- properties:
148
- output_condition_id:
149
- type: Integer
150
- desc: "The globally unique ID for the Output Condition, used for cross reference elsewhere"
151
- condition_parameter_values:
152
- type: List<ConditionParameterValue>
153
- desc: "The list of parameters and values that comprise this condition"
154
- SimpleWorkflowStep:
155
- type: Object
156
- desc: "A step associated with a workflow, representing where inputs are placed in the context of a recipe / experiment."
157
- properties:
158
- workflow_step_id:
159
- type: Integer
160
- desc: "The globally unique ID for the workflow step, used for cross reference elsewhere"
161
- name:
162
- type: String
163
- desc: "The name of the workflow step"
164
-
165
- SimpleWorkflow:
166
- type: Object
167
- desc: "A workflow object. Workflows represent broad flowcharts for how experimental creation is done, including a graph of steps that lead into each other."
168
- properties:
169
- workflow_id:
170
- type: Integer
171
- desc: "The globally unique ID for the workflow, used for cross reference elsewhere"
172
- name:
173
- type: String
174
- desc: "The name of the workflow"
175
- workflow_steps:
176
- type: List<SimpleWorkflowStep>
177
- desc: "The steps associated with the workflow, representing where inputs are placed in the context of a recipe / experiment."
178
-
179
- RecipeInput:
180
- type: Object
181
- properties:
182
- input_id:
183
- type: Integer
184
- desc: "The globally unique ID for the input, allowing for cross reference elsewhere"
185
- input_lot_recipe_id:
186
- type: Optional<Integer>
187
- desc: "The recipe id of the lot associated with the input"
188
- recipe_step_id:
189
- type: Integer
190
- desc: "The unique Recipe Step ID for the input, allowing for placement within the workflow"
191
- quantity_dec:
192
- type: Decimal
193
- desc: "The quantity of the input if it is numeric or recipe type. If this is filled in, quantity_json will not be filled in"
194
- quantity_json:
195
- type: JsonValue
196
- desc: "The quantity of the input if it is not numeric or recipe type. If this is filled in, quantity_dec will not be filled in"
197
- actual_quantity_dec:
198
- type: Decimal
199
- desc: "The actual quantity of the input if it is numeric or recipe type. If this is filled in, actual_quantity_json will not be filled in"
200
- actual_quantity_json:
201
- type: JsonValue
202
- desc: "The actual quantity of the input if it is not numeric or recipe type. If this is filled in, actual_quantity_dec will not be filled in"
203
- input_type:
204
- type: String
205
- desc: "The type of the input on the platform, for example process parameter, equipment or ingredient."
206
- behavior:
207
- type: String
208
- desc: "The behavior of the input relative to the experiment. For example 'inclusion' or 'use quantity'."
209
-
210
- SimpleInput:
211
- type: Object
212
- properties:
213
- input_id:
214
- type: Integer
215
- desc: "The globally unique ID for the input, allowing for cross reference elsewhere"
216
- quantity_type:
217
- type: String
218
- desc: "The quantity type of the input in string form. Common types are numeric, recipe (representing a nested input), text, categorical"
219
- name:
220
- type: String
221
- desc: "The name of the input"
222
- is_parameter:
223
- type: Boolean
224
- desc: "Whether the input is a process parameter (true) or an ingredient (false)"
225
- intermediate_recipe_id:
226
- type: Optional<Integer>
227
- desc: "The recipe ID of the input if the input is a a recipe (intermediate)."
228
-
229
- RecipeStep:
230
- type: Object
231
- properties:
232
- name:
233
- type: Optional<String>
234
- desc: "An optional name for the recipe step"
235
- recipe_step_id:
236
- type: Integer
237
- desc: "An ID value for the recipe step, used elsewhere to reference the part of the recipe / experiment that the input was placed in"
238
- recipe_step_number:
239
- type: Integer
240
- desc: "An ordering for the recipe step, allowing the user to determine the ordering of the steps"
241
- instructions?:
242
- type: String
243
- desc: "Instructions associated with the recipe step"
244
-
245
- RecipeStepGroup:
246
- type: Object
247
- properties:
248
- name:
249
- type: Optional<String>
250
- desc: "An optional name for the recipe step group. These names are on a per recipe basis, allowing users to individually name sub-components of recipes / experiments"
251
- recipe_steps:
252
- type: List<RecipeStep>
253
- desc: "A listing of recipe steps. Recipe Steps are the base component in Uncountables recipe structure, where inputs are directly placed"
254
-
255
- RecipeWorkflowStep:
256
- type: Object
257
- desc: "A workflow step associated with a recipe / experiment. Workflow steps are comprised of recipe step groups, in turn comprised of recipe steps, where inputs are located. These groupings exists to give customers the ability to flexibly place inputs into the correct process ordering"
258
- properties:
259
- recipe_workflow_step_id:
260
- type: Integer
261
- desc: "A unique reference for the workflow step within the recipe."
262
- workflow_step_id:
263
- type: Integer
264
- desc: "A reference to the workflow_step_id for the workflow. This will be shared across recipes / experiments, and can be used to do analysis about what part of a generic process inputs are located in."
265
- recipe_step_groups:
266
- type: List<RecipeStepGroup>
267
- desc: "A listing of recipe step groups within the recipe / experiment"
268
-
269
- SimpleUser:
270
- type: Object
271
- properties:
272
- user_id:
273
- type: Integer
274
- desc: "The globally unique ID for the user, allowing for cross reference elsewhere"
275
- display_name:
276
- type: String
277
- desc: "The display name of the user within Uncountable."
278
- email:
279
- type: String
280
- desc: "The email address of the user in Uncountable's system."
281
-
282
- RecipeStepRelationship:
283
- type: Object
284
- properties:
285
- step_relationship_id:
286
- type: ObjectId
287
- desc: "The unique ID for the relationship"
288
- name:
289
- type: Optional<String>
290
- desc: "The name of this relationship"
291
- quantity_dec?:
292
- type: Decimal
293
- desc: "The current quantity for the relationship"
294
- actual_quantity_dec?:
295
- type: Decimal
296
- desc: "The current actual quantity for the relationship"
297
- source_recipe_workflow_step_id:
298
- type: ObjectId
299
- desc: "The ID of the workflow step used as the source of this preceding step."
300
- target_recipe_step_id:
301
- type: ObjectId
302
- desc: "The ID of the recipe step used as the target of this preceding step."
303
-
304
- Recipe:
305
- type: Object
306
- properties:
307
- recipe_id:
308
- type: Integer
309
- desc: "A unique identifier for the recipe / experiment. Used for joining elsewhere"
310
- creating_user_id?:
311
- type: Integer
312
- desc: "The user ID who originally created the recipe / experiment. Null when created from automated scripts, such as data transfers, or from the Uncountable implementation team."
313
- create_datetime:
314
- type: String
315
- desc: "When the recipe / experiment was created"
316
- last_modified_datetime:
317
- type: String
318
- desc: "when the recipe / experiment was last modified"
319
- name:
320
- type: String
321
- desc: "The full name in the system of the recipe / experiment"
322
- notes:
323
- type: Optional<String>
324
- desc: "Any notes associated with the recipe / experiment. This may be null if there are no notes present"
325
- barcode_value?:
326
- type: String
327
- desc: "The value used in the barcoding system to lookup this experiment."
328
- workflow_id:
329
- type: Integer
330
- desc: "The workflow ID associated with the recipe / experiment. Workflows correspond to a set of experimental steps performed, and are referenced in the workflows return object"
331
- metadata:
332
- type: List<RecipeMetadata>
333
- desc: "Metadata associated with a recipe / experimen. Metadata includes values that are neither ingredients nor process parameters, such as a location of an experiment"
334
- inputs:
335
- type: List<RecipeInput>
336
- desc: "Inputs and quantities of those inputs associated with a recipe / experimen. Uncountable refers to inputs as either ingredients or process parameters."
337
- outputs:
338
- type: List<RecipeOutput>
339
- desc: "Outputs and quantities of those outputs associated with a recipe / experimen. These can be of any form referred to in the Uncountable system."
340
- workflow_steps:
341
- type: List<RecipeWorkflowStep>
342
- desc: "A reference of workflow steps in the recipe / experimen. This is used to reference input values to where they occurred in the experimental process."
343
- tag_ids:
344
- type: List<Integer>
345
- desc: A list of Tag IDs associated with the recipe / experiment
346
- experiment_group_ids:
347
- type: List<Integer>
348
- desc: A list of experiment group IDs associated with the recipe / experiment
349
- step_relationships:
350
- type: List<RecipeStepRelationship>
351
-
352
- Data:
353
- type: Object
354
- properties:
355
- recipes:
356
- type: List<Recipe>
357
- workflows:
358
- type: List<SimpleWorkflow>
359
- metadata:
360
- type: List<SimpleRecipeMetadataField>
361
- inputs:
362
- type: List<SimpleInput>
363
- outputs:
364
- type: List<SimpleOutput>
365
- output_conditions:
366
- type: List<SimpleOutputCondition>
367
- users:
368
- type: List<SimpleUser>
369
- recipe_tags:
370
- type: List<SimpleRecipeTag>
371
- experiment_groups:
372
- type: List<SimpleExperimentGroup>
@@ -1,36 +0,0 @@
1
- $endpoint:
2
- is_sdk: true
3
- method: post
4
- path: ${external}/recipes/external_set_recipe_inputs
5
- function: main.site.app.external.recipes.set_recipe_inputs.set_recipe_inputs
6
- desc: "Sets inputs values for an experiment. Values set can be numeric, text or categorical types in the Uncountable system"
7
-
8
- RecipeInputValue:
9
- type: Object
10
- properties:
11
- recipe_id:
12
- type: Integer
13
- desc: "A unique identifier for the recipe / experiment. Used for joining elsewhere"
14
- recipe_step_id?:
15
- type: Optional<Integer>
16
- desc: "Optionally the step id for the step of the recipe to be written to. If none is passed, the input will be written to first recipe workflow step"
17
- input_id:
18
- type: Integer
19
- desc: "A unique identifier for the input. Used for joining and identification"
20
- value_numeric?:
21
- type: Decimal
22
- desc: "The numeric value for the output. Should be none if output is not of type numeric."
23
- value_str?:
24
- type: String
25
- set_actual_value?:
26
- type: Boolean
27
- desc: "If True, modify the actual value for the input. If not provided or False, modify the set value for the input."
28
-
29
- Arguments:
30
- type: Object
31
- properties:
32
- input_data:
33
- type: List<RecipeInputValue>
34
- desc: "The inputs to set. Must be at most 100 entries long"
35
- Data:
36
- type: Object
@@ -1,56 +0,0 @@
1
- $endpoint:
2
- is_sdk: true
3
- method: post
4
- path: ${external}/recipes/external_set_recipe_outputs
5
- function: main.site.app.external.recipes.set_recipe_outputs.set_recipe_outputs
6
- desc: "Sets output values for an experiment. Values set can be numeric, text or categorical types in the Uncountable system"
7
-
8
- CurveValues:
9
- type: Object
10
- properties:
11
- x_values:
12
- type: List<Optional<LossyDecimal>>
13
- desc: List of x values for the curve
14
- y_values:
15
- type: List<Optional<LossyDecimal>>
16
- desc: List of y or response values for the curve
17
-
18
- RecipeOutputValue:
19
- type: Object
20
- properties:
21
- recipe_id:
22
- type: Integer
23
- desc: "A unique identifier for the recipe / experiment. Used for joining elsewhere"
24
- output_id:
25
- type: Integer
26
- desc: "A unique identifier for the output. Used for joining and identification"
27
- condition_id?:
28
- type: Integer
29
- desc: "A unique identifier the set of condition parameters associated with the output."
30
- experiment_num:
31
- type: Integer
32
- desc: "The experiment number for the output in the experiment. 1 Indexed"
33
- value_numeric?:
34
- type: Decimal
35
- desc: "The numeric value for the output. Should be none if output is not of type numeric."
36
- value_str?:
37
- type: String
38
- desc: "A string value for the output. Should be none if output is not of type string or categorical."
39
- value_curve?:
40
- type: CurveValues
41
- desc: "The values for the curve in two lists"
42
-
43
- Arguments:
44
- type: Object
45
- properties:
46
- output_data:
47
- type: List<RecipeOutputValue>
48
- desc: "The outputs to set. Must be at most 100 entries long"
49
-
50
- Data:
51
- type: Object
52
- properties:
53
- status:
54
- type: Literal<'ok'>
55
- default: "ok"
56
- desc: "'ok' indicates the post request was successful"