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,238 +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<ObjectId>>
12
- desc: "The recipes to get the data from. Either these or project_id must be filled in"
13
- project_id?:
14
- type: Optional<ObjectId>
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
- RecipeOutput:
24
- type: Object
25
- desc: "A representation of a single measurement associated with a recipe / experiment within Uncountable system"
26
- properties:
27
- id:
28
- type: ObjectId
29
- desc: "The global unique identifier for the recipe output. For cross-reference elsewhere."
30
- output_id:
31
- type: ObjectId
32
- desc: "The output specifically measured in this case"
33
- replicate_num:
34
- type: Integer
35
- desc: "The replicate number (1-indexed) of the output in question within the recipe. (Output, Output condition, Replicate_Num) form a unique index"
36
- quantity_dec:
37
- type: Decimal
38
- desc: "The quantity of the output, if numeric or ordinal"
39
- quantity_json:
40
- type: JsonValue
41
- desc: "The quantity of the output, if not numeric"
42
- curve_id:
43
- type: ObjectId
44
- desc: "The id of the curve associated with the output if the output is of curve type."
45
- output_condition_id:
46
- type: ObjectId
47
- 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."
48
-
49
- ConditionParameterValue:
50
- type: Object
51
- desc: "A condition parameter value represents a single association of value with a parameter. For instance, Test Method: ISO 23"
52
- properties:
53
- condition_parameter_id:
54
- type: ObjectId
55
- desc: "The globally unique identifier for the condition parameter, i.e. Test Method or Aging Time"
56
- condition_parameter_name:
57
- type: String
58
- desc: "The name of the condition parameter"
59
- quantity_dec:
60
- type: Decimal
61
- desc: "The quantity associated with the parameter if the parameter is of numeric type. If this is filled in, quantity_json will be null"
62
- quantity_json:
63
- type: JsonValue
64
- 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"
65
-
66
- SimpleOutputCondition:
67
- type: Object
68
- 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"
69
- properties:
70
- output_condition_id:
71
- type: ObjectId
72
- desc: "The globally unique ID for the Output Condition, used for cross reference elsewhere"
73
- condition_parameter_values:
74
- type: List<ConditionParameterValue>
75
- desc: "The list of parameters and values that comprise this condition"
76
-
77
- RecipeInput:
78
- type: Object
79
- properties:
80
- input_id:
81
- type: ObjectId
82
- desc: "The globally unique ID for the input, allowing for cross reference elsewhere"
83
- input_lot_recipe_id:
84
- type: Optional<ObjectId>
85
- desc: "The recipe id of the lot associated with the input"
86
- recipe_step_id:
87
- type: ObjectId
88
- desc: "The unique Recipe Step ID for the input, allowing for placement within the workflow"
89
- quantity_dec:
90
- type: Decimal
91
- 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"
92
- quantity_json:
93
- type: JsonValue
94
- 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"
95
- actual_quantity_dec:
96
- type: Decimal
97
- 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"
98
- actual_quantity_json:
99
- type: JsonValue
100
- 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"
101
- input_type:
102
- type: String
103
- desc: "The type of the input on the platform, for example process parameter, equipment or ingredient."
104
- behavior:
105
- type: String
106
- desc: "The behavior of the input relative to the experiment. For example 'inclusion' or 'use quantity'."
107
-
108
- RecipeStep:
109
- type: Object
110
- properties:
111
- name:
112
- type: Optional<String>
113
- desc: "An optional name for the recipe step"
114
- recipe_step_id:
115
- type: ObjectId
116
- desc: "An ID value for the recipe step, used elsewhere to reference the part of the recipe / experiment that the input was placed in"
117
- recipe_step_number:
118
- type: Integer
119
- desc: "An ordering for the recipe step, allowing the user to determine the ordering of the steps"
120
- instructions?:
121
- type: String
122
- desc: "Instructions associated with the recipe step"
123
-
124
- RecipeStepGroup:
125
- type: Object
126
- properties:
127
- name:
128
- type: Optional<String>
129
- 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"
130
- recipe_steps:
131
- type: List<RecipeStep>
132
- desc: "A listing of recipe steps. Recipe Steps are the base component in Uncountables recipe structure, where inputs are directly placed"
133
-
134
- RecipeWorkflowStep:
135
- type: Object
136
- 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"
137
- properties:
138
- recipe_workflow_step_id:
139
- type: ObjectId
140
- desc: "A unique reference for the workflow step within the recipe."
141
- workflow_step_id:
142
- type: ObjectId
143
- 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."
144
- recipe_step_groups:
145
- type: List<RecipeStepGroup>
146
- desc: "A listing of recipe step groups within the recipe / experiment"
147
-
148
- RecipeStepRelationship:
149
- type: Object
150
- properties:
151
- step_relationship_id:
152
- type: ObjectId
153
- desc: "The unique ID for the relationship"
154
- name:
155
- type: Optional<String>
156
- desc: "The name of this relationship"
157
- quantity_dec?:
158
- type: Decimal
159
- desc: "The current quantity for the relationship"
160
- actual_quantity_dec?:
161
- type: Decimal
162
- desc: "The current actual quantity for the relationship"
163
- source_recipe_workflow_step_id:
164
- type: ObjectId
165
- desc: "The ID of the workflow step used as the source of this preceding step."
166
- target_recipe_step_id:
167
- type: ObjectId
168
- desc: "The ID of the recipe step used as the target of this preceding step."
169
-
170
- Recipe:
171
- type: Object
172
- properties:
173
- recipe_id:
174
- type: ObjectId
175
- desc: "A unique identifier for the recipe / experiment. Used for joining elsewhere"
176
- creating_user_id?:
177
- type: ObjectId
178
- 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."
179
- create_datetime:
180
- type: String
181
- desc: "When the recipe / experiment was created"
182
- last_modified_datetime:
183
- type: String
184
- desc: "when the recipe / experiment was last modified"
185
- name:
186
- type: String
187
- desc: "The full name in the system of the recipe / experiment"
188
- notes:
189
- type: Optional<String>
190
- desc: "Any notes associated with the recipe / experiment. This may be null if there are no notes present"
191
- barcode_value?:
192
- type: String
193
- desc: "The value used in the barcoding system to lookup this experiment."
194
- workflow_id:
195
- type: ObjectId
196
- 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"
197
- metadata:
198
- type: List<recipe_metadata.RecipeMetadata>
199
- desc: "Metadata associated with a recipe / experimen. Metadata includes values that are neither ingredients nor process parameters, such as a location of an experiment"
200
- inputs:
201
- type: List<RecipeInput>
202
- desc: "Inputs and quantities of those inputs associated with a recipe / experimen. Uncountable refers to inputs as either ingredients or process parameters."
203
- outputs:
204
- type: List<RecipeOutput>
205
- desc: "Outputs and quantities of those outputs associated with a recipe / experimen. These can be of any form referred to in the Uncountable system."
206
- workflow_steps:
207
- type: List<RecipeWorkflowStep>
208
- 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."
209
- tag_ids:
210
- type: List<ObjectId>
211
- desc: A list of Tag IDs associated with the recipe / experiment
212
- experiment_group_ids:
213
- type: List<ObjectId>
214
- desc: A list of experiment group IDs associated with the recipe / experiment
215
- step_relationships:
216
- type: List<RecipeStepRelationship>
217
-
218
- Data:
219
- type: Object
220
- properties:
221
- recipes:
222
- type: List<Recipe>
223
- workflows:
224
- type: List<workflows.SimpleWorkflow>
225
- metadata:
226
- type: List<recipe_metadata.SimpleRecipeMetadataField>
227
- inputs:
228
- type: List<inputs.SimpleInput>
229
- outputs:
230
- type: List<outputs.SimpleOutput>
231
- output_conditions:
232
- type: List<SimpleOutputCondition>
233
- users:
234
- type: List<users.SimpleUser>
235
- recipe_tags:
236
- type: List<recipe_tags.SimpleRecipeTag>
237
- experiment_groups:
238
- type: List<experiment_groups.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: ObjectId
13
- desc: "A unique identifier for the recipe / experiment. Used for joining elsewhere"
14
- recipe_step_id?:
15
- type: Optional<ObjectId>
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: ObjectId
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,52 +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: ObjectId
23
- desc: "A unique identifier for the recipe / experiment. Used for joining elsewhere"
24
- output_id:
25
- type: ObjectId
26
- desc: "A unique identifier for the output. Used for joining and identification"
27
- condition_id?:
28
- type: ObjectId
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: response.Response
52
- properties: