UncountablePythonSDK 0.0.7__py3-none-any.whl → 0.0.92__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of UncountablePythonSDK might be problematic. Click here for more details.

Files changed (311) hide show
  1. UncountablePythonSDK-0.0.92.dist-info/METADATA +61 -0
  2. UncountablePythonSDK-0.0.92.dist-info/RECORD +301 -0
  3. {UncountablePythonSDK-0.0.7.dist-info → UncountablePythonSDK-0.0.92.dist-info}/WHEEL +1 -1
  4. {UncountablePythonSDK-0.0.7.dist-info → UncountablePythonSDK-0.0.92.dist-info}/top_level.txt +1 -1
  5. docs/.gitignore +1 -0
  6. docs/conf.py +57 -0
  7. docs/index.md +13 -0
  8. docs/justfile +12 -0
  9. docs/quickstart.md +19 -0
  10. docs/requirements.txt +7 -0
  11. docs/static/favicons/android-chrome-192x192.png +0 -0
  12. docs/static/favicons/android-chrome-512x512.png +0 -0
  13. docs/static/favicons/apple-touch-icon.png +0 -0
  14. docs/static/favicons/browserconfig.xml +9 -0
  15. docs/static/favicons/favicon-16x16.png +0 -0
  16. docs/static/favicons/favicon-32x32.png +0 -0
  17. docs/static/favicons/manifest.json +18 -0
  18. docs/static/favicons/mstile-150x150.png +0 -0
  19. docs/static/favicons/safari-pinned-tab.svg +32 -0
  20. docs/static/logo_blue.png +0 -0
  21. examples/async_batch.py +35 -0
  22. examples/create_entity.py +22 -17
  23. examples/download_files.py +26 -0
  24. examples/edit_recipe_inputs.py +50 -0
  25. examples/integration-server/jobs/materials_auto/example_cron.py +18 -0
  26. examples/integration-server/jobs/materials_auto/example_wh.py +15 -0
  27. examples/integration-server/jobs/materials_auto/profile.yaml +43 -0
  28. examples/integration-server/pyproject.toml +224 -0
  29. examples/invoke_uploader.py +26 -0
  30. examples/set_recipe_metadata_file.py +40 -0
  31. examples/set_recipe_output_file_sdk.py +26 -0
  32. examples/upload_files.py +18 -0
  33. pkgs/argument_parser/__init__.py +5 -0
  34. pkgs/argument_parser/_is_enum.py +1 -6
  35. pkgs/argument_parser/argument_parser.py +232 -76
  36. pkgs/argument_parser/case_convert.py +4 -3
  37. pkgs/filesystem_utils/__init__.py +20 -0
  38. pkgs/filesystem_utils/_blob_session.py +137 -0
  39. pkgs/filesystem_utils/_gdrive_session.py +309 -0
  40. pkgs/filesystem_utils/_local_session.py +69 -0
  41. pkgs/filesystem_utils/_s3_session.py +117 -0
  42. pkgs/filesystem_utils/_sftp_session.py +147 -0
  43. pkgs/filesystem_utils/file_type_utils.py +91 -0
  44. pkgs/filesystem_utils/filesystem_session.py +39 -0
  45. pkgs/py.typed +0 -0
  46. pkgs/serialization/__init__.py +8 -1
  47. pkgs/serialization/annotation.py +64 -0
  48. pkgs/serialization/opaque_key.py +1 -1
  49. pkgs/serialization/serial_alias.py +47 -0
  50. pkgs/serialization/serial_class.py +65 -50
  51. pkgs/serialization/serial_generic.py +16 -0
  52. pkgs/serialization/serial_union.py +84 -0
  53. pkgs/serialization/yaml.py +57 -0
  54. pkgs/serialization_util/__init__.py +7 -7
  55. pkgs/serialization_util/_get_type_for_serialization.py +1 -3
  56. pkgs/serialization_util/convert_to_snakecase.py +27 -0
  57. pkgs/serialization_util/dataclasses.py +14 -0
  58. pkgs/serialization_util/serialization_helpers.py +118 -73
  59. pkgs/strenum_compat/strenum_compat.py +1 -9
  60. pkgs/type_spec/actions_registry/__init__.py +0 -0
  61. pkgs/type_spec/actions_registry/__main__.py +126 -0
  62. pkgs/type_spec/actions_registry/emit_typescript.py +182 -0
  63. pkgs/type_spec/builder.py +475 -89
  64. pkgs/type_spec/config.py +24 -19
  65. pkgs/type_spec/emit_io_ts.py +5 -2
  66. pkgs/type_spec/emit_open_api.py +266 -32
  67. pkgs/type_spec/emit_open_api_util.py +32 -13
  68. pkgs/type_spec/emit_python.py +601 -150
  69. pkgs/type_spec/emit_typescript.py +74 -273
  70. pkgs/type_spec/emit_typescript_util.py +239 -5
  71. pkgs/type_spec/load_types.py +55 -10
  72. pkgs/type_spec/open_api_util.py +30 -41
  73. pkgs/type_spec/parts/base.py.prepart +4 -3
  74. pkgs/type_spec/type_info/emit_type_info.py +178 -16
  75. pkgs/type_spec/util.py +11 -11
  76. pkgs/type_spec/value_spec/__main__.py +3 -3
  77. pkgs/type_spec/value_spec/convert_type.py +8 -1
  78. pkgs/type_spec/value_spec/emit_python.py +13 -4
  79. uncountable/__init__.py +1 -2
  80. uncountable/core/__init__.py +12 -2
  81. uncountable/core/async_batch.py +37 -0
  82. uncountable/core/client.py +293 -43
  83. uncountable/core/environment.py +41 -0
  84. uncountable/core/file_upload.py +135 -0
  85. uncountable/core/types.py +17 -0
  86. uncountable/integration/__init__.py +0 -0
  87. uncountable/integration/cli.py +49 -0
  88. uncountable/integration/construct_client.py +51 -0
  89. uncountable/integration/cron.py +29 -0
  90. uncountable/integration/db/__init__.py +0 -0
  91. uncountable/integration/db/connect.py +18 -0
  92. uncountable/integration/db/session.py +25 -0
  93. uncountable/integration/entrypoint.py +13 -0
  94. uncountable/integration/executors/__init__.py +0 -0
  95. uncountable/integration/executors/executors.py +148 -0
  96. uncountable/integration/executors/generic_upload_executor.py +284 -0
  97. uncountable/integration/executors/script_executor.py +25 -0
  98. uncountable/integration/job.py +87 -0
  99. uncountable/integration/queue_runner/__init__.py +0 -0
  100. uncountable/integration/queue_runner/command_server/__init__.py +24 -0
  101. uncountable/integration/queue_runner/command_server/command_client.py +68 -0
  102. uncountable/integration/queue_runner/command_server/command_server.py +64 -0
  103. uncountable/integration/queue_runner/command_server/protocol/__init__.py +0 -0
  104. uncountable/integration/queue_runner/command_server/protocol/command_server.proto +22 -0
  105. uncountable/integration/queue_runner/command_server/protocol/command_server_pb2.py +40 -0
  106. uncountable/integration/queue_runner/command_server/protocol/command_server_pb2.pyi +38 -0
  107. uncountable/integration/queue_runner/command_server/protocol/command_server_pb2_grpc.py +129 -0
  108. uncountable/integration/queue_runner/command_server/types.py +52 -0
  109. uncountable/integration/queue_runner/datastore/__init__.py +3 -0
  110. uncountable/integration/queue_runner/datastore/datastore_sqlite.py +93 -0
  111. uncountable/integration/queue_runner/datastore/interface.py +19 -0
  112. uncountable/integration/queue_runner/datastore/model.py +17 -0
  113. uncountable/integration/queue_runner/job_scheduler.py +163 -0
  114. uncountable/integration/queue_runner/queue_runner.py +26 -0
  115. uncountable/integration/queue_runner/types.py +7 -0
  116. uncountable/integration/queue_runner/worker.py +119 -0
  117. uncountable/integration/scan_profiles.py +67 -0
  118. uncountable/integration/scheduler.py +150 -0
  119. uncountable/integration/secret_retrieval/__init__.py +3 -0
  120. uncountable/integration/secret_retrieval/retrieve_secret.py +93 -0
  121. uncountable/integration/server.py +117 -0
  122. uncountable/integration/telemetry.py +209 -0
  123. uncountable/integration/webhook_server/entrypoint.py +170 -0
  124. uncountable/types/__init__.py +151 -5
  125. uncountable/types/api/batch/execute_batch.py +15 -7
  126. uncountable/types/api/batch/execute_batch_load_async.py +42 -0
  127. uncountable/types/api/chemical/__init__.py +1 -0
  128. uncountable/types/api/chemical/convert_chemical_formats.py +63 -0
  129. uncountable/types/api/entity/create_entities.py +23 -10
  130. uncountable/types/api/entity/create_entity.py +21 -12
  131. uncountable/types/api/entity/get_entities_data.py +19 -29
  132. uncountable/types/api/entity/grant_entity_permissions.py +48 -0
  133. uncountable/types/api/entity/list_entities.py +28 -20
  134. uncountable/types/api/entity/lock_entity.py +45 -0
  135. uncountable/types/api/entity/resolve_entity_ids.py +19 -7
  136. uncountable/types/api/entity/set_entity_field_values.py +44 -0
  137. uncountable/types/api/entity/set_values.py +13 -28
  138. uncountable/types/api/entity/transition_entity_phase.py +80 -0
  139. uncountable/types/api/entity/unlock_entity.py +44 -0
  140. uncountable/types/api/equipment/__init__.py +1 -0
  141. uncountable/types/api/equipment/associate_equipment_input.py +44 -0
  142. uncountable/types/api/field_options/__init__.py +1 -0
  143. uncountable/types/api/field_options/upsert_field_options.py +55 -0
  144. uncountable/types/api/files/__init__.py +1 -0
  145. uncountable/types/api/files/download_file.py +77 -0
  146. uncountable/types/api/id_source/__init__.py +1 -0
  147. uncountable/types/api/id_source/list_id_source.py +56 -0
  148. uncountable/types/api/id_source/match_id_source.py +54 -0
  149. uncountable/types/api/input_groups/get_input_group_names.py +18 -7
  150. uncountable/types/api/inputs/create_inputs.py +25 -24
  151. uncountable/types/api/inputs/get_input_data.py +37 -31
  152. uncountable/types/api/inputs/get_input_names.py +20 -9
  153. uncountable/types/api/inputs/get_inputs_data.py +33 -27
  154. uncountable/types/api/inputs/set_input_attribute_values.py +18 -13
  155. uncountable/types/api/inputs/set_input_category.py +44 -0
  156. uncountable/types/api/inputs/set_input_subcategories.py +45 -0
  157. uncountable/types/api/inputs/set_intermediate_type.py +50 -0
  158. uncountable/types/api/material_families/__init__.py +1 -0
  159. uncountable/types/api/material_families/update_entity_material_families.py +48 -0
  160. uncountable/types/api/outputs/get_output_data.py +38 -29
  161. uncountable/types/api/outputs/get_output_names.py +20 -9
  162. uncountable/types/api/outputs/resolve_output_conditions.py +23 -10
  163. uncountable/types/api/permissions/__init__.py +1 -0
  164. uncountable/types/api/permissions/set_core_permissions.py +105 -0
  165. uncountable/types/api/project/get_projects.py +23 -19
  166. uncountable/types/api/project/get_projects_data.py +26 -43
  167. uncountable/types/api/recipe_links/__init__.py +1 -0
  168. uncountable/types/api/recipe_links/create_recipe_link.py +46 -0
  169. uncountable/types/api/recipe_links/remove_recipe_link.py +45 -0
  170. uncountable/types/api/recipe_metadata/get_recipe_metadata_data.py +21 -10
  171. uncountable/types/api/recipes/add_recipe_to_project.py +42 -0
  172. uncountable/types/api/recipes/archive_recipes.py +42 -0
  173. uncountable/types/api/recipes/associate_recipe_as_input.py +44 -0
  174. uncountable/types/api/recipes/associate_recipe_as_lot.py +43 -0
  175. uncountable/types/api/recipes/clear_recipe_outputs.py +42 -0
  176. uncountable/types/api/recipes/create_recipe.py +51 -0
  177. uncountable/types/api/recipes/create_recipes.py +25 -24
  178. uncountable/types/api/recipes/disassociate_recipe_as_input.py +42 -0
  179. uncountable/types/api/recipes/edit_recipe_inputs.py +283 -0
  180. uncountable/types/api/recipes/get_column_calculation_values.py +58 -0
  181. uncountable/types/api/recipes/get_curve.py +13 -27
  182. uncountable/types/api/recipes/get_recipe_calculations.py +21 -21
  183. uncountable/types/api/recipes/get_recipe_links.py +14 -6
  184. uncountable/types/api/recipes/get_recipe_names.py +18 -7
  185. uncountable/types/api/recipes/get_recipe_output_metadata.py +18 -19
  186. uncountable/types/api/recipes/get_recipes_data.py +83 -144
  187. uncountable/types/api/recipes/lock_recipes.py +63 -0
  188. uncountable/types/api/recipes/remove_recipe_from_project.py +42 -0
  189. uncountable/types/api/recipes/set_recipe_inputs.py +21 -11
  190. uncountable/types/api/recipes/set_recipe_metadata.py +43 -0
  191. uncountable/types/api/recipes/set_recipe_output_annotations.py +115 -0
  192. uncountable/types/api/recipes/set_recipe_output_file.py +56 -0
  193. uncountable/types/api/recipes/set_recipe_outputs.py +28 -15
  194. uncountable/types/api/recipes/set_recipe_tags.py +109 -0
  195. uncountable/types/api/recipes/unarchive_recipes.py +41 -0
  196. uncountable/types/api/recipes/unlock_recipes.py +50 -0
  197. uncountable/types/api/triggers/__init__.py +1 -0
  198. uncountable/types/api/triggers/run_trigger.py +43 -0
  199. uncountable/types/api/uploader/__init__.py +1 -0
  200. uncountable/types/api/uploader/invoke_uploader.py +47 -0
  201. uncountable/types/async_batch.py +13 -0
  202. uncountable/types/async_batch_processor.py +384 -0
  203. uncountable/types/async_batch_t.py +97 -0
  204. uncountable/types/async_jobs.py +9 -0
  205. uncountable/types/async_jobs_t.py +53 -0
  206. uncountable/types/auth_retrieval.py +12 -0
  207. uncountable/types/auth_retrieval_t.py +75 -0
  208. uncountable/types/base.py +5 -78
  209. uncountable/types/base_t.py +85 -0
  210. uncountable/types/calculations.py +8 -0
  211. uncountable/types/calculations_t.py +27 -0
  212. uncountable/types/chemical_structure.py +8 -0
  213. uncountable/types/chemical_structure_t.py +28 -0
  214. uncountable/types/client_base.py +1115 -76
  215. uncountable/types/client_config.py +8 -0
  216. uncountable/types/client_config_t.py +26 -0
  217. uncountable/types/curves.py +10 -0
  218. uncountable/types/curves_t.py +51 -0
  219. uncountable/types/entity.py +8 -266
  220. uncountable/types/entity_t.py +393 -0
  221. uncountable/types/experiment_groups.py +8 -0
  222. uncountable/types/experiment_groups_t.py +27 -0
  223. uncountable/types/field_values.py +17 -23
  224. uncountable/types/field_values_t.py +204 -0
  225. uncountable/types/fields.py +8 -0
  226. uncountable/types/fields_t.py +28 -0
  227. uncountable/types/generic_upload.py +15 -0
  228. uncountable/types/generic_upload_t.py +119 -0
  229. uncountable/types/id_source.py +12 -0
  230. uncountable/types/id_source_t.py +68 -0
  231. uncountable/types/identifier.py +11 -0
  232. uncountable/types/identifier_t.py +63 -0
  233. uncountable/types/input_attributes.py +8 -0
  234. uncountable/types/input_attributes_t.py +30 -0
  235. uncountable/types/inputs.py +11 -0
  236. uncountable/types/inputs_t.py +83 -0
  237. uncountable/types/integration_server.py +9 -0
  238. uncountable/types/integration_server_t.py +42 -0
  239. uncountable/types/job_definition.py +27 -0
  240. uncountable/types/job_definition_t.py +260 -0
  241. uncountable/types/outputs.py +8 -0
  242. uncountable/types/outputs_t.py +30 -0
  243. uncountable/types/overrides.py +10 -0
  244. uncountable/types/overrides_t.py +49 -0
  245. uncountable/types/permissions.py +8 -0
  246. uncountable/types/permissions_t.py +46 -0
  247. uncountable/types/phases.py +8 -0
  248. uncountable/types/phases_t.py +27 -0
  249. uncountable/types/post_base.py +8 -0
  250. uncountable/types/post_base_t.py +30 -0
  251. uncountable/types/queued_job.py +16 -0
  252. uncountable/types/queued_job_t.py +123 -0
  253. uncountable/types/recipe_identifiers.py +12 -0
  254. uncountable/types/recipe_identifiers_t.py +76 -0
  255. uncountable/types/recipe_inputs.py +9 -0
  256. uncountable/types/recipe_inputs_t.py +30 -0
  257. uncountable/types/recipe_links.py +4 -44
  258. uncountable/types/recipe_links_t.py +54 -0
  259. uncountable/types/recipe_metadata.py +10 -0
  260. uncountable/types/recipe_metadata_t.py +58 -0
  261. uncountable/types/recipe_output_metadata.py +8 -0
  262. uncountable/types/recipe_output_metadata_t.py +28 -0
  263. uncountable/types/recipe_tags.py +8 -0
  264. uncountable/types/recipe_tags_t.py +27 -0
  265. uncountable/types/recipe_workflow_steps.py +14 -0
  266. uncountable/types/recipe_workflow_steps_t.py +95 -0
  267. uncountable/types/recipes.py +8 -0
  268. uncountable/types/recipes_t.py +25 -0
  269. uncountable/types/response.py +8 -0
  270. uncountable/types/response_t.py +26 -0
  271. uncountable/types/secret_retrieval.py +12 -0
  272. uncountable/types/secret_retrieval_t.py +75 -0
  273. uncountable/types/units.py +8 -0
  274. uncountable/types/units_t.py +27 -0
  275. uncountable/types/users.py +8 -0
  276. uncountable/types/users_t.py +28 -0
  277. uncountable/types/webhook_job.py +9 -0
  278. uncountable/types/webhook_job_t.py +37 -0
  279. uncountable/types/workflows.py +9 -0
  280. uncountable/types/workflows_t.py +39 -0
  281. UncountablePythonSDK-0.0.7.dist-info/METADATA +0 -27
  282. UncountablePythonSDK-0.0.7.dist-info/RECORD +0 -119
  283. examples/recipe-import/importer.py +0 -39
  284. type_spec/external/api/batch/execute_batch.yaml +0 -56
  285. type_spec/external/api/entity/create_entities.yaml +0 -33
  286. type_spec/external/api/entity/create_entity.yaml +0 -39
  287. type_spec/external/api/entity/get_entities_data.yaml +0 -55
  288. type_spec/external/api/entity/list_entities.yaml +0 -62
  289. type_spec/external/api/entity/resolve_entity_ids.yaml +0 -29
  290. type_spec/external/api/entity/set_values.yaml +0 -45
  291. type_spec/external/api/input_groups/get_input_group_names.yaml +0 -29
  292. type_spec/external/api/inputs/create_inputs.yaml +0 -61
  293. type_spec/external/api/inputs/get_input_data.yaml +0 -108
  294. type_spec/external/api/inputs/get_input_names.yaml +0 -38
  295. type_spec/external/api/inputs/get_inputs_data.yaml +0 -95
  296. type_spec/external/api/inputs/set_input_attribute_values.yaml +0 -37
  297. type_spec/external/api/outputs/get_output_data.yaml +0 -103
  298. type_spec/external/api/outputs/get_output_names.yaml +0 -35
  299. type_spec/external/api/outputs/resolve_output_conditions.yaml +0 -50
  300. type_spec/external/api/project/get_projects.yaml +0 -52
  301. type_spec/external/api/project/get_projects_data.yaml +0 -86
  302. type_spec/external/api/recipe_metadata/get_recipe_metadata_data.yaml +0 -41
  303. type_spec/external/api/recipes/create_recipes.yaml +0 -60
  304. type_spec/external/api/recipes/get_curve.yaml +0 -50
  305. type_spec/external/api/recipes/get_recipe_calculations.yaml +0 -49
  306. type_spec/external/api/recipes/get_recipe_links.yaml +0 -26
  307. type_spec/external/api/recipes/get_recipe_names.yaml +0 -29
  308. type_spec/external/api/recipes/get_recipe_output_metadata.yaml +0 -49
  309. type_spec/external/api/recipes/get_recipes_data.yaml +0 -372
  310. type_spec/external/api/recipes/set_recipe_inputs.yaml +0 -36
  311. type_spec/external/api/recipes/set_recipe_outputs.yaml +0 -56
@@ -0,0 +1,61 @@
1
+ Metadata-Version: 2.2
2
+ Name: UncountablePythonSDK
3
+ Version: 0.0.92
4
+ Summary: Uncountable SDK
5
+ Project-URL: Homepage, https://github.com/uncountableinc/uncountable-python-sdk
6
+ Project-URL: Repository, https://github.com/uncountableinc/uncountable-python-sdk.git
7
+ Project-URL: Issues, https://github.com/uncountableinc/uncountable-python-sdk/issues
8
+ Keywords: uncountable,sdk,api,uncountable-sdk
9
+ Classifier: Development Status :: 4 - Beta
10
+ Classifier: Environment :: Console
11
+ Classifier: Intended Audience :: Developers
12
+ Classifier: Operating System :: OS Independent
13
+ Classifier: Programming Language :: Python :: 3
14
+ Classifier: Topic :: Software Development
15
+ Classifier: Topic :: Utilities
16
+ Classifier: Typing :: Typed
17
+ Requires-Python: >=3.11
18
+ Description-Content-Type: text/markdown
19
+ Requires-Dist: aiotus==1.*
20
+ Requires-Dist: aiohttp==3.*
21
+ Requires-Dist: requests==2.*
22
+ Requires-Dist: SQLAlchemy>=1.4.0
23
+ Requires-Dist: APScheduler==3.*
24
+ Requires-Dist: python-dateutil==2.*
25
+ Requires-Dist: shelljob==0.*
26
+ Requires-Dist: PyYAML==6.*
27
+ Requires-Dist: google-api-python-client==2.*
28
+ Requires-Dist: tqdm==4.*
29
+ Requires-Dist: pysftp==0.*
30
+ Requires-Dist: opentelemetry-api==1.*
31
+ Requires-Dist: opentelemetry-exporter-otlp-proto-common==1.*
32
+ Requires-Dist: opentelemetry-exporter-otlp-proto-http==1.*
33
+ Requires-Dist: opentelemetry-sdk==1.*
34
+ Requires-Dist: paramiko==3.*
35
+ Requires-Dist: boto3==1.*
36
+ Requires-Dist: flask==3.*
37
+ Requires-Dist: simplejson==3.*
38
+ Requires-Dist: grpcio==1.67.1
39
+ Requires-Dist: protobuf>=4.21.1
40
+ Requires-Dist: azure-storage-blob==12.*
41
+ Provides-Extra: test
42
+ Requires-Dist: mypy==1.*; extra == "test"
43
+ Requires-Dist: ruff==0.*; extra == "test"
44
+ Requires-Dist: pytest==8.*; extra == "test"
45
+ Requires-Dist: coverage[toml]==7.*; extra == "test"
46
+ Requires-Dist: pytest-cov==6.*; extra == "test"
47
+ Requires-Dist: pytest-xdist==3.*; extra == "test"
48
+
49
+ # Uncountable Python SDK
50
+
51
+ ## Documentation
52
+ [https://uncountableinc.github.io/uncountable-python-sdk/](https://uncountableinc.github.io/uncountable-python-sdk/)
53
+
54
+ ## Installation
55
+
56
+ Install from PyPI:
57
+
58
+ ```console
59
+ pip install UncountablePythonSDK
60
+ ```
61
+
@@ -0,0 +1,301 @@
1
+ docs/.gitignore,sha256=_ebkZUcwfvfnGEJ95rfj1lxoBNd6EE9ZvtOc7FsbfFE,7
2
+ docs/conf.py,sha256=YF5J-9g_Wg8wXmyHsGaE8xYlDEzqocNl3UWUmP0CwBg,1702
3
+ docs/index.md,sha256=eEdirX_Ds6ICTRtIS5iT4irCquHcQyKN7E4M5QP9T8A,257
4
+ docs/justfile,sha256=cvNcpb-ByPOF2aCrFlg3DDZBoYMx5W8xGdr13m9HcnI,215
5
+ docs/quickstart.md,sha256=3GuJ0MB1O5kjlsrgAmdSkDq0rYqATrYy-tzEHDy8H-c,422
6
+ docs/requirements.txt,sha256=-sWMwUL2L6vU1QzoQAS-aP8oPbUqXDfMxCeeTKnShFc,138
7
+ docs/static/logo_blue.png,sha256=SyYpMTVhhBbhF5Wl8lWaVwz-_p1MIR6dW6bVhufQRME,46708
8
+ docs/static/favicons/android-chrome-192x192.png,sha256=XoF-AhD55JlSBDGsEPJKfT_VeXT-awhwKyZnxLhrwvk,1369
9
+ docs/static/favicons/android-chrome-512x512.png,sha256=1S4xwY9YtJQ5ifFsZ-DOzssoyBYs0t9uwdOUmYx0Xso,3888
10
+ docs/static/favicons/apple-touch-icon.png,sha256=4qdKI-pFHxrot00cFGY-_jD7Kame6Ct_klQBNmW3j80,1403
11
+ docs/static/favicons/browserconfig.xml,sha256=oU7ZjY1qKLU992MIOAOZ7h-uVyqmEah2TKzyae4Uw0s,263
12
+ docs/static/favicons/favicon-16x16.png,sha256=M4r4A3_NVuw3h5pWZs5-CmhmquSMiKaNcCqyyJRjNmU,392
13
+ docs/static/favicons/favicon-32x32.png,sha256=U4UU652zGnSeU3P9kUqxPeEnVf6zhtdNdNwGz1E40UU,511
14
+ docs/static/favicons/manifest.json,sha256=6q_3nZkcg_x0xut4eE-xpdeMY1TydwiZIcbXlLAq9X8,437
15
+ docs/static/favicons/mstile-150x150.png,sha256=eAK4QdEofhdLtfmjuPTpnX3MJqYnvGXsHYUjlcQekyY,1035
16
+ docs/static/favicons/safari-pinned-tab.svg,sha256=S84fRnz0ZxLnQrKtmmFZytiRyu1xLtMR_RVy5jmwU7k,1926
17
+ examples/async_batch.py,sha256=tEyvgxk2uf681mKlN4TDuPMkb1OHyM9oO8pYW4A7HvM,1142
18
+ examples/create_entity.py,sha256=t6WBZsWRDbWZgFCWXKGgKL5LAB6-38oaiNYGxMAa2No,686
19
+ examples/download_files.py,sha256=rjv7EUgSw_W24_F5La-MljnIDQhbrvA7p2M-qPFbrXA,734
20
+ examples/edit_recipe_inputs.py,sha256=mtk_oSkN-OT2hKkb1XKXrRiUaGYTJstXuOKyTR51Fjo,1663
21
+ examples/invoke_uploader.py,sha256=rEvmVY5TjigN_-4PTQdkjY-bC5DrYMcJgquyZ4Tt5FM,748
22
+ examples/set_recipe_metadata_file.py,sha256=cRVXGz4UN4aqnNrNSzyBmikYHpe63lMIuzOpMwD9EDU,1036
23
+ examples/set_recipe_output_file_sdk.py,sha256=Lz1amqppnWTX83z-C090wCJ4hcKmCD3kb-4v0uBRi0Y,782
24
+ examples/upload_files.py,sha256=qMaSvMSdTMPOOP55y1AwEurc0SOdZAMvEydlqJPsGpg,432
25
+ examples/integration-server/pyproject.toml,sha256=ziyEbSiTYlOk784euVJjuZ3UqIEENkPXuug5VTrkjms,9131
26
+ examples/integration-server/jobs/materials_auto/example_cron.py,sha256=7VVQ-UJsq3DbGpN3XPnorRVZYo-vCwbfSU3VVDluIzA,699
27
+ examples/integration-server/jobs/materials_auto/example_wh.py,sha256=Hx5nonavOh2L3JykDpI5bPqPu8L1wwhwekTUfTRgq9g,479
28
+ examples/integration-server/jobs/materials_auto/profile.yaml,sha256=XlOXSRplMJ13T6900pv1wDKxeE9V1hZZTMuvup1MiBM,896
29
+ pkgs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
30
+ pkgs/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
31
+ pkgs/argument_parser/__init__.py,sha256=AOL6yZkJg9Z8Q4v4JY4agEbMDQWPptVauSA_itShv64,693
32
+ pkgs/argument_parser/_is_enum.py,sha256=Gw6jJa8nBwYGqXwwCZbSnWL8Rvr5alkg5lSVAqXtOZM,257
33
+ pkgs/argument_parser/_is_namedtuple.py,sha256=Rjc1bKanIPPogl3qG5JPBxglG1TqWYOo1nxxhBASQWY,265
34
+ pkgs/argument_parser/argument_parser.py,sha256=hgy0ll_eBNk91vxEVef2ReXOwAd55oO2Z0gGsqkCv3M,19361
35
+ pkgs/argument_parser/case_convert.py,sha256=NuJLJUJRbyVb6_Slen4uqaStEHbcOS1d-hBBfDrrw-c,605
36
+ pkgs/filesystem_utils/__init__.py,sha256=2a0d2rEPlEEYwhm3Wckny4VCp4ZS7JtYSXmwdwNCRjo,1332
37
+ pkgs/filesystem_utils/_blob_session.py,sha256=CtoB7PIocuZo8vvFIS_Rc-YR6KwzFB0rHUVPKFEbRAI,4862
38
+ pkgs/filesystem_utils/_gdrive_session.py,sha256=XTAKppTfIiJtPkzq90yftoMHa-kcGe9MDZQlmx1bviQ,11058
39
+ pkgs/filesystem_utils/_local_session.py,sha256=xFEYhAvNqrOYqwt4jrEYOuYkjJn0zclZhTelW_Q1-rw,2325
40
+ pkgs/filesystem_utils/_s3_session.py,sha256=_jLK5C-UElT5Sl5teM2pFR7fQe11NlhUd04EgwN9FRs,3962
41
+ pkgs/filesystem_utils/_sftp_session.py,sha256=6qwBGYu8UTFYw9YAmYAD0qL9qtivRRQpvzmlInmJZ_k,4709
42
+ pkgs/filesystem_utils/file_type_utils.py,sha256=oklu7Wtcxg9pBz84cAlXpNlhYEM0AbsO5DoEqvFjoXY,1896
43
+ pkgs/filesystem_utils/filesystem_session.py,sha256=BQ2Go8Mu9-GcnaWh2Pm4x7ugLVsres6XrOQ8RoiEpcE,1045
44
+ pkgs/serialization/__init__.py,sha256=b2sNfYICz0D6Y8shzEUfyUoHZukfuAvfuaZvg8dZHic,1163
45
+ pkgs/serialization/annotation.py,sha256=UJNMb9wMUWLWW-om17HSNmfFtAEcZJcCmvirdmmGmhg,2114
46
+ pkgs/serialization/missing_sentry.py,sha256=0r1JF2yt6bF42nVWWnhk5Ohdi1O7K-ghEAIl1SyjmWU,803
47
+ pkgs/serialization/opaque_key.py,sha256=8ak7aMCGWkKDjnG374yqy8gtnCCUzG2DSJEBfoPgi0c,194
48
+ pkgs/serialization/serial_alias.py,sha256=ABEGtSEapeW95wo9NT4srEhzdGaP5RhB8EyWSyWhwKg,1337
49
+ pkgs/serialization/serial_class.py,sha256=CBP4-6JnZltUqA9mBOYSLH06zyMPfpTlH3-QYzcgshc,6091
50
+ pkgs/serialization/serial_generic.py,sha256=3nO8T2aO9AF0MqOWQCVZW1zH6gAVvKpCzA46hOcwN_I,458
51
+ pkgs/serialization/serial_union.py,sha256=jU5-nw8pnUr0RdEfbrUw9W6U-fW8i8vXM8xHSCr295o,2680
52
+ pkgs/serialization/yaml.py,sha256=yoJtu7_ixnJV6uTxA_U1PpK5F_ixT08AKVh5ocyYwXM,1466
53
+ pkgs/serialization_util/__init__.py,sha256=YykkhqGNKiLCo-D5vSTq6WiPNfCyPXyr-mQO5e5Klak,513
54
+ pkgs/serialization_util/_get_type_for_serialization.py,sha256=dW5_W9MFd6wgWfW5qlWork-GBb-QFLtiOZkjk2Zqn2M,1177
55
+ pkgs/serialization_util/convert_to_snakecase.py,sha256=H2BAo5ZdcCDN77RpLb-uP0s7-FQ5Ukwnsd3VYc1vD0M,583
56
+ pkgs/serialization_util/dataclasses.py,sha256=uhNGXQPQLZblDFQuuwkAGmKOPiRyfDzCdg72CVtYJGA,390
57
+ pkgs/serialization_util/serialization_helpers.py,sha256=Djme5a5BZTnYJMHQYgrdd4emOBxtPxfV-Yt-Etco4zU,6565
58
+ pkgs/strenum_compat/__init__.py,sha256=wXRFeNvBm8RU6dy1PFJ5sRLgUIEeH_DVR95Sv5qpGbk,59
59
+ pkgs/strenum_compat/strenum_compat.py,sha256=uOUAgpYTjHs1MX8dG81jRlyTkt3KNbkV_25zp7xTX2s,36
60
+ pkgs/type_spec/__init__.py,sha256=h5DmJTca4QVV10sZR1x0-MlkZfuGYDfapR3zHvXfzto,19
61
+ pkgs/type_spec/__main__.py,sha256=5bJaX9Y_-FavP0qwzhk-z-V97UY7uaezJTa1zhO_HHQ,1048
62
+ pkgs/type_spec/builder.py,sha256=z3iSnIjzyEJ_O8dlQkKb4t5t-Fdi2VlInjcH1izYyXI,52402
63
+ pkgs/type_spec/config.py,sha256=JH2WFHbbAUQdYCZkTe9ZY4MNqb0HDhfef9kf3q5ku3E,5129
64
+ pkgs/type_spec/emit_io_ts.py,sha256=CUvBs0boB_X-Kndh66yYcqFfq3oC_LGs8YffLkJ0ZXA,5707
65
+ pkgs/type_spec/emit_open_api.py,sha256=v7_dCLResmX6wcTs0yN4MDfFXxcL7KiBsY7pdXjphCY,24574
66
+ pkgs/type_spec/emit_open_api_util.py,sha256=34zslFjTiOI5q8YreBOLD-afmaW4lrlK7pBpNAd3CxA,2379
67
+ pkgs/type_spec/emit_python.py,sha256=tIpnODkgSmMJzA0-UlmL_xKmpgFXxoIZxIrTNpFf03A,51335
68
+ pkgs/type_spec/emit_typescript.py,sha256=cDMbxSxVeaxqDVgidqbS1I803co3MHcAUgfFTNBADgw,10183
69
+ pkgs/type_spec/emit_typescript_util.py,sha256=sugxboeMwXiIdk4RDyUR_CxU31Le3OQ7i5HmuHeSLvc,10447
70
+ pkgs/type_spec/load_types.py,sha256=ero3SXB0M7xKHni5Qxop5Yh5A1TYjjoqwkEgUCQx71Q,3657
71
+ pkgs/type_spec/open_api_util.py,sha256=OiuMWUIwi7ibIOABtuHnhrPdfd3rVxv0MJ1ZY1xj_qw,7083
72
+ pkgs/type_spec/test.py,sha256=4ueujBq-pEgnX3Z69HyPmD-bullFXmpixcpVzfOkhP4,489
73
+ pkgs/type_spec/util.py,sha256=S_SGTJU192x-wIbngVUTvXhQENMbBfxluigLmnItGI8,4848
74
+ pkgs/type_spec/actions_registry/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
75
+ pkgs/type_spec/actions_registry/__main__.py,sha256=JGwKxcAmrQdbpVR2vwknoimN1Q-r5h4SADw1cYLYzgk,4331
76
+ pkgs/type_spec/actions_registry/emit_typescript.py,sha256=W1lI36ITdJ7MBf37wlTB7H3X9Ljt217vIGMv4e3fxfY,5986
77
+ pkgs/type_spec/parts/base.py.prepart,sha256=St6P21VP8Um_nagZFuSyNzYiKDSrsK3TNOuGY_1O8cg,2186
78
+ pkgs/type_spec/parts/base.ts.prepart,sha256=2FJJvpg2olCcavxj0nbYWdwKl6KeScour2JjSvN42l8,1001
79
+ pkgs/type_spec/type_info/__main__.py,sha256=pmVjVqXyVh8vKTNCTFgz80Sg74C5BKToP3E6GS-X_So,857
80
+ pkgs/type_spec/type_info/emit_type_info.py,sha256=mQSxG-UTFl0i8ylvXEvpk1d9NIMYsx39Le7-i5JVuN0,13520
81
+ pkgs/type_spec/value_spec/__init__.py,sha256=Z-grlcZtxAfEXhPHsK0nD7PFLGsv4eqvunaPN7_TA84,83
82
+ pkgs/type_spec/value_spec/__main__.py,sha256=6bzP85p_Cm4bPp5tXz8D_4p64wMn5SKsXC7SqSZquYc,8318
83
+ pkgs/type_spec/value_spec/convert_type.py,sha256=X5N7DOTo5XOIHbcYHh9RZFthzb2gcnYg2tRuVMBhbxY,2517
84
+ pkgs/type_spec/value_spec/emit_python.py,sha256=KXZqEw7ZNoDk2i77UV7jljiKuE_kgmp7oRyKRIxYUhY,7007
85
+ pkgs/type_spec/value_spec/types.py,sha256=a2zxbbCRWepY1l8OtjeCDKgBKFPFHVgV99oP6pTtaro,441
86
+ uncountable/__init__.py,sha256=8l8XWNCKsu7TG94c-xa2KHpDegvxDC2FyQISdWC763Y,89
87
+ uncountable/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
88
+ uncountable/core/__init__.py,sha256=RFv0kO6rKFf1PtBPu83hCGmxqkJamRtsgQ9_-ztw7tA,341
89
+ uncountable/core/async_batch.py,sha256=9pYGFzVCQXt8059qFHgutweGIFPquJ5Xfq6NT5P-1K0,1206
90
+ uncountable/core/client.py,sha256=uf_zCWytlp1Hfe19XJ2lgPf84lv-lsSMwr6fPvVvgRI,13037
91
+ uncountable/core/environment.py,sha256=6cc-nUvUIbJMI0OSEg3dWI-iNgSYhCdUKKn607Z3QpM,1040
92
+ uncountable/core/file_upload.py,sha256=dvL5M7HHDWTSDS58CeLlQ4K5hBc4N4R7U1y6L-tuoSc,4257
93
+ uncountable/core/types.py,sha256=s2CjqYJpsmbC7xMwxxT7kJ_V9bwokrjjWVVjpMcQpKI,333
94
+ uncountable/integration/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
95
+ uncountable/integration/cli.py,sha256=h3RE0l1SdjkveOKeY2amlmrJppK4HEQJXk8VG9UJRWg,1359
96
+ uncountable/integration/construct_client.py,sha256=I53mGcdS88hba3HFwgXmWQaTd1d5u0jWNSwyc_vlVsQ,1937
97
+ uncountable/integration/cron.py,sha256=6eH-kIs3sdYPCyb62_L2M7U_uQTdMTdwY5hreEJb0hw,887
98
+ uncountable/integration/entrypoint.py,sha256=BHOYPQgKvZE6HG8Rv15MkdYl8lRkvfDgv1OdLo0oQ9Q,433
99
+ uncountable/integration/job.py,sha256=af197JUceIKzpIN5C2z8zeZOPhIQ16ipyC6qVt1WXv0,2386
100
+ uncountable/integration/scan_profiles.py,sha256=760zbv7O7wXxHUHqUkFBpd1Afe8hqxMPU3ugwZGdhEo,2925
101
+ uncountable/integration/scheduler.py,sha256=jrtktQYGW4QKRLH5GvhOFvCl4S9CLLhWY2GF0rzY-KM,4780
102
+ uncountable/integration/server.py,sha256=Hwi3fpdhcSK2HynI6Zwi7A3mWTTCaK_ic53M5-4IEp4,4716
103
+ uncountable/integration/telemetry.py,sha256=QFvvJdzc15CvdaRLFaJeru0OouAFbYdhHYYovbT8bXg,7425
104
+ uncountable/integration/db/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
105
+ uncountable/integration/db/connect.py,sha256=mE3bdV0huclH2iT_dXCQdRL4LkjIuf_myAR64RTWXEs,498
106
+ uncountable/integration/db/session.py,sha256=96cGQXpe6IugBTdSsjdP0S5yhJ6toSmbVB6qhc3FJzE,693
107
+ uncountable/integration/executors/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
108
+ uncountable/integration/executors/executors.py,sha256=Kzisp1eKufGCWrHIw4mmAj-l1UQ2oJsJR7I-_mksnVs,5441
109
+ uncountable/integration/executors/generic_upload_executor.py,sha256=OnVY4KfmAgaf9LPSAgj7H2wFRXwNXBpg7egVy85z5lk,10327
110
+ uncountable/integration/executors/script_executor.py,sha256=BBQ9f0l7uH2hgKf60jtm-pONzwk-EeOhM2qBAbv_URo,846
111
+ uncountable/integration/queue_runner/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
112
+ uncountable/integration/queue_runner/job_scheduler.py,sha256=2acmeWscG87MZsifxwMRMGJ4sQgQVNJNr5CqIPUg75E,6288
113
+ uncountable/integration/queue_runner/queue_runner.py,sha256=0BmYu5zHdothTevGsB-nXg6MBd1UD-WkP3h1WCKMdQg,710
114
+ uncountable/integration/queue_runner/types.py,sha256=8qTq29BTSa5rmW6CBlBntP0pNIiDcwu1wHa78pjroS0,219
115
+ uncountable/integration/queue_runner/worker.py,sha256=WwJmwHkgovfiqrMeNJVtIyDYJAib5ajog5ag2l_AquI,4584
116
+ uncountable/integration/queue_runner/command_server/__init__.py,sha256=gQPVILGpWzCr2i5GJyoqna7AOSFvtn4tav69gB78mTQ,571
117
+ uncountable/integration/queue_runner/command_server/command_client.py,sha256=DJb0TUVFkiiLBEQzHSN94sTRnuEbutNEgdN39XmnOXI,2046
118
+ uncountable/integration/queue_runner/command_server/command_server.py,sha256=yyXryhiEC2eGS0yFElLGsVzSKwOuYvj-zp22jQorkv0,2138
119
+ uncountable/integration/queue_runner/command_server/types.py,sha256=A9FpGplHxoSkmi8dn4oGFN7bkstQjY1DoTXypbicHpk,991
120
+ uncountable/integration/queue_runner/command_server/protocol/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
121
+ uncountable/integration/queue_runner/command_server/protocol/command_server.proto,sha256=pf7FAT2eGuao0VYCFrgTAsM-tiPi1Bhz19XN5So1WFk,439
122
+ uncountable/integration/queue_runner/command_server/protocol/command_server_pb2.py,sha256=-lBTc5Tz48agqNSeOSpBE69e2kRmWF59sUaowCl8p7U,2207
123
+ uncountable/integration/queue_runner/command_server/protocol/command_server_pb2.pyi,sha256=9viBn6PHvtfMSRwam57ke5O2D_k8LapWYVfBRjknIYg,1281
124
+ uncountable/integration/queue_runner/command_server/protocol/command_server_pb2_grpc.py,sha256=ZVHkuLDjEbXMCxBsw1UrRhT3EEF8CDDqEvmE3Kbp1H4,5359
125
+ uncountable/integration/queue_runner/datastore/__init__.py,sha256=6BefApqN8D2zlVOH14QAeVzwQ8j5NIb41-njT02Za0k,88
126
+ uncountable/integration/queue_runner/datastore/datastore_sqlite.py,sha256=UZQABTrM3HxVaojCnI1pTU3v1GsbE3G-OCgXP5ekcxI,3801
127
+ uncountable/integration/queue_runner/datastore/interface.py,sha256=j4D-zVvLq-48VTVwHVei82UVUJ_P3cxiseyiTl0MoNw,534
128
+ uncountable/integration/queue_runner/datastore/model.py,sha256=8-RI5A2yPZVGBLWINVmMd6VOl_oHtqGtnaNXcapAChw,577
129
+ uncountable/integration/secret_retrieval/__init__.py,sha256=3QXVj35w8rRMxVvmmsViFYDi3lcb3g70incfalOEm6o,87
130
+ uncountable/integration/secret_retrieval/retrieve_secret.py,sha256=9iz9N8Z-B68QwFCXsx8hTYbgDbk06ejkJ3RQ9mCLMyM,3000
131
+ uncountable/integration/webhook_server/entrypoint.py,sha256=yQWQq_k3kbJkSsEEt6k22YwhXekezJZfV0rnn-hP-Yo,5516
132
+ uncountable/types/__init__.py,sha256=Tiw8iTtZGvKJ4um9nU_UU_vt_VFkjngiLm6jru5OtXM,9217
133
+ uncountable/types/async_batch.py,sha256=-qOtydEQDfZLkuDvQPH6PxnE_JBFeO1Ro1eaxLyiWD4,683
134
+ uncountable/types/async_batch_processor.py,sha256=xyo_qM4H5Jw-1_3aOIJutSIAxZqruKqJM8zrz8SvVI8,14208
135
+ uncountable/types/async_batch_t.py,sha256=sQajtc9HAyJwJjBVbRskVLKoHxh5Ok3qV9XTk4O2-JU,3037
136
+ uncountable/types/async_jobs.py,sha256=gFtEPBZot72sR5zrMWc5zD5QrgNmFmGyD67Y-KhyAmo,343
137
+ uncountable/types/async_jobs_t.py,sha256=sEh1Ev46ff4n1v8mMV3rEbH3MGmaXnLuvYf0UhDdzeU,1425
138
+ uncountable/types/auth_retrieval.py,sha256=FY8Vr_BWD4O8PsauPNt_7_08YZSHFaUlTT72L5XJ-4o,570
139
+ uncountable/types/auth_retrieval_t.py,sha256=D2ptCIsuCecJa_P8K2qrNk2-zz1WuBpOrsZ65BRP-Dw,2221
140
+ uncountable/types/base.py,sha256=xVSjWvA_fUUnkCg83EjoYEFvAfmskinKFMeYFOxNc9E,359
141
+ uncountable/types/base_t.py,sha256=ThxlCKyUBEj7sCRmfvWm2w4b6IDVvUkbAIISNxWTFxE,2726
142
+ uncountable/types/calculations.py,sha256=FFO_D3BbKoGDZnqWvTKpW4KF359i2vrKjpdFCLYzJC0,284
143
+ uncountable/types/calculations_t.py,sha256=157qD0VqijD5kNDF5BRsfGli3WaPGnNjoo2o2CPX-Ik,669
144
+ uncountable/types/chemical_structure.py,sha256=E-LnikTFDoVQ1b2zKaVUIO_PAKm-7aZZYJi8I8SDSic,302
145
+ uncountable/types/chemical_structure_t.py,sha256=xSjrUUk-XYr8TXdj1TJsTgb-YjxfVRwkmJsR-xo8Xxo,794
146
+ uncountable/types/client_base.py,sha256=445_a0F8of-SsC0-sSQpJJzNwgi-h9EdroNb9dhVH04,69143
147
+ uncountable/types/client_config.py,sha256=4h5Liko9uKCo9_0gdbPhoK6Jr2Kv7tioLiQ8iKeq-_4,301
148
+ uncountable/types/client_config_t.py,sha256=Byvut3VlKPibC5csFS6NvAZfXxU_mtlcOpO-vwFnZ6A,737
149
+ uncountable/types/curves.py,sha256=W6uMpG5SyW1MS82szNpxkFEn1MnxNpBFyFbQb2Ysfng,366
150
+ uncountable/types/curves_t.py,sha256=IPGZYSypkZdDrgDfPHyHdmpGhpZ-IGF7eRUooUJSCTY,1396
151
+ uncountable/types/entity.py,sha256=Y7r_xuYIsY_v1NfIil_d-1_4-lUDMmOSKnMBYCJ20jM,587
152
+ uncountable/types/entity_t.py,sha256=_F6632yQf7TBUS602D82JCQ333_jUGHoe4sg3Z3FbjU,17468
153
+ uncountable/types/experiment_groups.py,sha256=_0OXcPzSAbkE-rfKt5tPx178YJ4pcEKZvrCxUHgDnvw,309
154
+ uncountable/types/experiment_groups_t.py,sha256=qEs8YW0eJOJ_sCOObT5v9QRx9wsjLYpJqJhCJXa-vNA,721
155
+ uncountable/types/field_values.py,sha256=x3oNoMTgT9k1knWVxAVaX4krj7V8palj90FZuFtFbRw,1202
156
+ uncountable/types/field_values_t.py,sha256=ApxgsJJIn4PPFkunXcN5Kn0_EMWLh_2wiuyBMKZ3Cp0,5863
157
+ uncountable/types/fields.py,sha256=GUY5ne8Zp2_Lalikr0zcbdJrin8dG81eyS8fKWJ9yf8,266
158
+ uncountable/types/fields_t.py,sha256=LZBEfBHDn2thc1u4i8BulMEcFfDxK4JA-VzahTjivNA,665
159
+ uncountable/types/generic_upload.py,sha256=n6hue9BX_rLSXeEt_DcGwL2ckxfNXg1wEPR9JNEGQxQ,879
160
+ uncountable/types/generic_upload_t.py,sha256=nhLjW-WGQwmiwIWyrIFxzW_sWdwPnBo-oaGOciidCvM,3804
161
+ uncountable/types/id_source.py,sha256=wGLA0fMl-5IqBG_fg2UDC7fY-8CWRBNFJOokejOoN_w,567
162
+ uncountable/types/id_source_t.py,sha256=iWMUMPL8KpMk0JGarHN8wv6LRMXwqPcHPS0913BZq3c,1871
163
+ uncountable/types/identifier.py,sha256=6ziONd__L07ijhVwpIehUUDvxgKTtHbunk-6CivJqxQ,503
164
+ uncountable/types/identifier_t.py,sha256=BxZcstk58LA8uSQwb3glTGLbTWEYulLDU0Op8pGUQys,1820
165
+ uncountable/types/input_attributes.py,sha256=IrIKQnHqHdS1Utdfzr9GnOe17a8riaqYcO1r0nvtkvA,304
166
+ uncountable/types/input_attributes_t.py,sha256=PkOsl84fpU5j-oNjH48HwCHtBYuAB_qQReiMRN9zugI,864
167
+ uncountable/types/inputs.py,sha256=jFZHyo0ZOGJ3bb4TOPXovhE3Fo1-kf7B7T3usk4Sqg8,467
168
+ uncountable/types/inputs_t.py,sha256=CpuuKRduZGET_wvkGUpUFN6rbZCHsdOIp1veEM-hspI,2143
169
+ uncountable/types/integration_server.py,sha256=61NuGs1pbgovU5Vuje7oN9HpLwOGCCw9Q_CcUvt_0qI,385
170
+ uncountable/types/integration_server_t.py,sha256=EXIuSnO2ZkjViLpGLdCaXza9UKtYzxxIjWa3jqZsTKo,1224
171
+ uncountable/types/job_definition.py,sha256=DEma_s-0oBo2tPI5u9IU_UDw-9MWbn4mTZsd_RHiYGE,1667
172
+ uncountable/types/job_definition_t.py,sha256=64fK8YmgsOKqJmR-biD3XTrYynUAIyYgNqoaZ7h-fZo,7838
173
+ uncountable/types/outputs.py,sha256=sUZx_X-TKCZtLm1YCEH8OISX9DdPlv9ZuUfM3-askCc,281
174
+ uncountable/types/outputs_t.py,sha256=AdJZvIzqikHV9CnlC24WEo0OUe-5vrD4cjMqc2txEs0,765
175
+ uncountable/types/overrides.py,sha256=Mv-smwK1B3pvbt48fNOiqkeQn9wMgYlBFJKUBOJqceE,431
176
+ uncountable/types/overrides_t.py,sha256=zdnvCbTUPD4VS5VdP8GkCz1IoYHoX9EaW0lp2q8d9wM,1324
177
+ uncountable/types/permissions.py,sha256=1mRnSsmRgjuLgp6pylTwwACD_YRIcmlqxHkufwZtMns,297
178
+ uncountable/types/permissions_t.py,sha256=i0vFwVvmmnInrA5qW8uuo0_tM6KYn3VYZ75d9084Vko,1625
179
+ uncountable/types/phases.py,sha256=YCsU77DdjRJJWdLTwLuOZNG4e9ML82NIBI1xTWr3ggA,266
180
+ uncountable/types/phases_t.py,sha256=gF87ZZqArXd1Eihh27i4ctwetQ7TgZzrLJG9JGnX4_8,645
181
+ uncountable/types/post_base.py,sha256=GES5_IhXFAjpzI6ChbVP4zTkX6f3tPUIHST1sxsRN6Q,279
182
+ uncountable/types/post_base_t.py,sha256=2et3TDnFChZcx0RWU-18RJHw9Yiyj2TJz-2tByHXwaI,770
183
+ uncountable/types/queued_job.py,sha256=67exX5vfpewKzvFKxuxTLsSJTDKlE3JqKfWnnYx2Jos,842
184
+ uncountable/types/queued_job_t.py,sha256=tcZsYoNgNeyrjbwXpxJSLOnhgwMFdiwJ-saPga7HSac,3575
185
+ uncountable/types/recipe_identifiers.py,sha256=Pi5KX64kzoBp_t_tjb3uVk9Ef1WPIIXGtUdINXi5vcY,654
186
+ uncountable/types/recipe_identifiers_t.py,sha256=BFIg2o4ejwNFxLfVyYCvxTqaSrTYQnpBoPlG-L21C2s,2293
187
+ uncountable/types/recipe_inputs.py,sha256=5ThNFEOGbADqqfj1V3hNvZUcO5pn1Gm17LmzQkWDrtI,351
188
+ uncountable/types/recipe_inputs_t.py,sha256=t5nFzuF1AU6SUHpya6xKHSlcckmt3XxAuk9ofjZ2oGU,746
189
+ uncountable/types/recipe_links.py,sha256=YRiu6t7FWr7ZWycIaOPXBtQFqbY_q5unaP6KQzh1LzE,343
190
+ uncountable/types/recipe_links_t.py,sha256=ZtGQ8iTKn8yw2z7SWbE4YXaffpUlmWYAlssSkffsv-M,1529
191
+ uncountable/types/recipe_metadata.py,sha256=Zpcrupq_mlT2UhXpMJup5XjtubmvgZ8SbJNq7da2pCs,441
192
+ uncountable/types/recipe_metadata_t.py,sha256=EVdP24ugvvs50v3vR59L00_UoO3-YuCmhmdB7sA9do8,1662
193
+ uncountable/types/recipe_output_metadata.py,sha256=83jKZCvogG9QjZeJpQptdSam_MnnUj-tqh9EVIrTWjE,322
194
+ uncountable/types/recipe_output_metadata_t.py,sha256=g0EIFTxlt6a_zKI-GclMpEz3NQ-w0Dk4CsBXQ6pHSVY,744
195
+ uncountable/types/recipe_tags.py,sha256=eyYa_rox00a1JQ0lOQv9STnJI04ksCL_3kHSDx5w7rM,291
196
+ uncountable/types/recipe_tags_t.py,sha256=_NT_Xwt-rjkvCnR5QjBYLTCSC_zyY7Nr588lOTWwZ7E,691
197
+ uncountable/types/recipe_workflow_steps.py,sha256=-s1sOXMny4kcqT8K_vQRbKjc1Hs855A_e9ZZejDRvN4,971
198
+ uncountable/types/recipe_workflow_steps_t.py,sha256=1Y_RpyJAZsJrL_StMooUzhgD-NFjZ_4QC9NoDB2cK2M,3454
199
+ uncountable/types/recipes.py,sha256=1ifutxUN-Blv_vcwMx6DKT47My5pJTG1cwqsMqKK7LY,307
200
+ uncountable/types/recipes_t.py,sha256=ZRh3inkz36_vKrmpYUb8MIk08TbkeuCMg_FqG-npsJU,673
201
+ uncountable/types/response.py,sha256=WOlSgQYKK_fnnXk1i-h3Bwx2ZiYqpLj-lnt-hXhmbWs,274
202
+ uncountable/types/response_t.py,sha256=E77C8dbV8HschivDfuKU-n7eA7Fn1v_Y05hWczQZUHI,667
203
+ uncountable/types/secret_retrieval.py,sha256=Jt_-sjYBKBwJytS4QgF1KnUVEEu9YAsCYI3NtYlbqa4,592
204
+ uncountable/types/secret_retrieval_t.py,sha256=6jSZu8YBhsUsFGDFn9t0GMfJzbPuE3XNibSKhmEP9LQ,2187
205
+ uncountable/types/units.py,sha256=R_TBhxWCIWSSXK9J3S0Omtj3t5BZNK9C80MyqFjMO7k,275
206
+ uncountable/types/units_t.py,sha256=gbiUzFTzzJbozWVwwEP04rI_PL2OhmcZmnWtQpwNopw,664
207
+ uncountable/types/users.py,sha256=YEk8v0vDOBFvmOQMQw7MAOicSGzMui8Hb9hdFX2Vw3E,275
208
+ uncountable/types/users_t.py,sha256=IS_pHUjam-BzGNIQQUb-alITwUGvXjr_Ef6RxJZG6Q8,687
209
+ uncountable/types/webhook_job.py,sha256=Y8IVmL311Hd4Jvdl1d7ND_OCygyC0dAoV-_E4A-lI6A,363
210
+ uncountable/types/webhook_job_t.py,sha256=1FEDbKlNIyqrVZbelpZI_jE1KudG6BB0V2-MhFHo5Rw,979
211
+ uncountable/types/workflows.py,sha256=uSZWsdDe2jpXnBnRunEen7_7pbKBrE0ds_ez98EzyPg,353
212
+ uncountable/types/workflows_t.py,sha256=aGcwvlUDi98ywq-0LWhhamcPvDPQNujo4SO0crM8-Ng,1017
213
+ uncountable/types/api/__init__.py,sha256=gCgbynxG3jA8FQHzercKtrHKHkiIKr8APdZYUniAor8,55
214
+ uncountable/types/api/batch/__init__.py,sha256=gCgbynxG3jA8FQHzercKtrHKHkiIKr8APdZYUniAor8,55
215
+ uncountable/types/api/batch/execute_batch.py,sha256=Dgy_XHo4T3sVOWvHMe6AwjgI4aTnF1KtClqF_Y2_IH0,2006
216
+ uncountable/types/api/batch/execute_batch_load_async.py,sha256=j5a5dk0_lTJ-YslrBN29kOAMjtbZlmwYtXU1MnxEGjU,1093
217
+ uncountable/types/api/chemical/__init__.py,sha256=gCgbynxG3jA8FQHzercKtrHKHkiIKr8APdZYUniAor8,55
218
+ uncountable/types/api/chemical/convert_chemical_formats.py,sha256=Yla9ZoAn9Q_EDG4992OVsDPA0qNapBc-HLFgEBL6KCQ,1799
219
+ uncountable/types/api/entity/__init__.py,sha256=gCgbynxG3jA8FQHzercKtrHKHkiIKr8APdZYUniAor8,55
220
+ uncountable/types/api/entity/create_entities.py,sha256=08j-_IV3omk01DlyfPPj7lbUptWOr5DJhZ0JCfhcqdE,1600
221
+ uncountable/types/api/entity/create_entity.py,sha256=8nsJ76dQus0IRIDg9Q1ifXb0Iw4ATRzsjzFVM6nhe_c,1702
222
+ uncountable/types/api/entity/get_entities_data.py,sha256=gTEZ7Z7T-DWP8BZPNDF4c__EHtf9kAb1sGtHmiGOgnM,1454
223
+ uncountable/types/api/entity/grant_entity_permissions.py,sha256=rutxOgVYsdx7I45xS-Crs2f_R8YAsTtmE-uUshAZMaE,1412
224
+ uncountable/types/api/entity/list_entities.py,sha256=ybadHc3rAXwaZ5JtywNuGB24kpZrh6_PxsI2rGBn4fU,1960
225
+ uncountable/types/api/entity/lock_entity.py,sha256=vDjjeniZ-v-BTJf8eYCCswIvzuELCyjpawn6flG_MY0,1187
226
+ uncountable/types/api/entity/resolve_entity_ids.py,sha256=GnQjeoTdzL0PIubrLay-PpaRsYFFWVGrTxhzSmP4hhw,1387
227
+ uncountable/types/api/entity/set_entity_field_values.py,sha256=FA-V9NrFeoiNnHrz3bh2qzDzldI5n5ILrKVuefVuKCo,1200
228
+ uncountable/types/api/entity/set_values.py,sha256=O_LpcYeBXFfxxUVOL2FDDYQwU7La-IBM_uEQLgtPrVo,1125
229
+ uncountable/types/api/entity/transition_entity_phase.py,sha256=ikcxVQwurAbS1UXL0ErNcCgKFrmqSTTrKq2coQwz1rQ,2359
230
+ uncountable/types/api/entity/unlock_entity.py,sha256=8UGffqqV8eiSbz_-7y0W2CXLsz4IvM496RFz6L0Y23o,1150
231
+ uncountable/types/api/equipment/__init__.py,sha256=gCgbynxG3jA8FQHzercKtrHKHkiIKr8APdZYUniAor8,55
232
+ uncountable/types/api/equipment/associate_equipment_input.py,sha256=lLge_Y20IO2Rp597R7KvqGo0MV-uTJG9OU3EJYDc3E0,1197
233
+ uncountable/types/api/field_options/__init__.py,sha256=gCgbynxG3jA8FQHzercKtrHKHkiIKr8APdZYUniAor8,55
234
+ uncountable/types/api/field_options/upsert_field_options.py,sha256=w0xrERamVTqYHGiELE_54hSB4J5MDgUpQBqAPtUgRuE,1446
235
+ uncountable/types/api/files/__init__.py,sha256=gCgbynxG3jA8FQHzercKtrHKHkiIKr8APdZYUniAor8,55
236
+ uncountable/types/api/files/download_file.py,sha256=D5NDbPawj2ylOWyY_Y6f2GB6uhs9Wn9hetWwcfSnJxs,2244
237
+ uncountable/types/api/id_source/__init__.py,sha256=gCgbynxG3jA8FQHzercKtrHKHkiIKr8APdZYUniAor8,55
238
+ uncountable/types/api/id_source/list_id_source.py,sha256=fig-BR2piREE2sjU1YTSx3hCOYxzNldXZ86tf-KOQxE,1427
239
+ uncountable/types/api/id_source/match_id_source.py,sha256=V-W-JEGVx59_Ijv5neKKFlWKy0FEEwoCD10bMiERRvc,1340
240
+ uncountable/types/api/input_groups/__init__.py,sha256=gCgbynxG3jA8FQHzercKtrHKHkiIKr8APdZYUniAor8,55
241
+ uncountable/types/api/input_groups/get_input_group_names.py,sha256=gii9L2Pt1u_a-APsdRM0gXAGJOv1K06zbiiUZBFQ4Ag,1376
242
+ uncountable/types/api/inputs/__init__.py,sha256=gCgbynxG3jA8FQHzercKtrHKHkiIKr8APdZYUniAor8,55
243
+ uncountable/types/api/inputs/create_inputs.py,sha256=OsD82uVKXffjkD9RLa63Q76DWPyWSB2E3jb9QkV0ON0,2016
244
+ uncountable/types/api/inputs/get_input_data.py,sha256=TQWeYoqyfxDtBRPiSQ9q6fuiQHoO7XrANNlC7Iku0OQ,2746
245
+ uncountable/types/api/inputs/get_input_names.py,sha256=oP_TtIWzepU2DcenaMSNAcJ9IWaFKNi3n7CrgKHTljI,1437
246
+ uncountable/types/api/inputs/get_inputs_data.py,sha256=3ShX7mRb0egFU04VSY4Z2h1UWa1jaIpB99mx7DVLh6U,2413
247
+ uncountable/types/api/inputs/set_input_attribute_values.py,sha256=Li4iKh_BMErRVP40DmyCYdVDgtLhe0iSNbEM6LIYGPI,1591
248
+ uncountable/types/api/inputs/set_input_category.py,sha256=lTJdTQsjbRjEKWwXi65tm30TYPr5x0UBdRHa_y1QB5Q,1169
249
+ uncountable/types/api/inputs/set_input_subcategories.py,sha256=tYXyS2_hQRGiryYyQ0sxqO51Ca-fAR9TA9rvUMft4l8,1196
250
+ uncountable/types/api/inputs/set_intermediate_type.py,sha256=CIgTw41GQfcyGwgiWKhjr3BzPjB72ZyMQvpjr8EyihA,1322
251
+ uncountable/types/api/material_families/__init__.py,sha256=gCgbynxG3jA8FQHzercKtrHKHkiIKr8APdZYUniAor8,55
252
+ uncountable/types/api/material_families/update_entity_material_families.py,sha256=yG6ItbZbOEI2dB3kxGYIokn2kdelm-6dFB5O2oWbOOE,1608
253
+ uncountable/types/api/outputs/__init__.py,sha256=gCgbynxG3jA8FQHzercKtrHKHkiIKr8APdZYUniAor8,55
254
+ uncountable/types/api/outputs/get_output_data.py,sha256=IpPqRv63-Bh4GZZkfElOOVr3frWXkT-JGGenrPVpNDs,2744
255
+ uncountable/types/api/outputs/get_output_names.py,sha256=um1w1NYyQupE_8nsS6e9mW1ud3MzzYetzAqbgtr0tIk,1377
256
+ uncountable/types/api/outputs/resolve_output_conditions.py,sha256=1MiaXAtMLXLStDQFbH9pgE3MrlU4YrR4fShbyzwdlXc,2294
257
+ uncountable/types/api/permissions/__init__.py,sha256=gCgbynxG3jA8FQHzercKtrHKHkiIKr8APdZYUniAor8,55
258
+ uncountable/types/api/permissions/set_core_permissions.py,sha256=2L9z_CAD2sPbMbxUROp23xtEGHDUulzOTKvcdcVXmtg,3294
259
+ uncountable/types/api/project/__init__.py,sha256=gCgbynxG3jA8FQHzercKtrHKHkiIKr8APdZYUniAor8,55
260
+ uncountable/types/api/project/get_projects.py,sha256=IT8oqQSUv0Jc4Hmz5TORlzaJUWU_IQ9sXADYNOiGRL8,1517
261
+ uncountable/types/api/project/get_projects_data.py,sha256=AH6IbmM6rT_PUkba9Xt70SkmpSBMpTSMLCdFHN8GeKM,1750
262
+ uncountable/types/api/recipe_links/__init__.py,sha256=gCgbynxG3jA8FQHzercKtrHKHkiIKr8APdZYUniAor8,55
263
+ uncountable/types/api/recipe_links/create_recipe_link.py,sha256=FwUor9Jnbxhvvg_Np3jXLmqqbL_xQ-mR-WoZJ9FeUPk,1401
264
+ uncountable/types/api/recipe_links/remove_recipe_link.py,sha256=eILbAfhRvN4hVmzQIV6lFeEZA54Pw_O2eUrIHdSYu6w,1387
265
+ uncountable/types/api/recipe_metadata/__init__.py,sha256=gCgbynxG3jA8FQHzercKtrHKHkiIKr8APdZYUniAor8,55
266
+ uncountable/types/api/recipe_metadata/get_recipe_metadata_data.py,sha256=qESiqMUgFrQTXkDOX3Iu1HJdwUYjgtKT6FC0VN3xWmo,1615
267
+ uncountable/types/api/recipes/__init__.py,sha256=gCgbynxG3jA8FQHzercKtrHKHkiIKr8APdZYUniAor8,55
268
+ uncountable/types/api/recipes/add_recipe_to_project.py,sha256=0c___agZkJ1vIfjt74YwSHMpCteo1Gj6egLx2DSNjyc,1082
269
+ uncountable/types/api/recipes/archive_recipes.py,sha256=UWCJULizl-BLWEIQgaC_OI_cDsyhp7KBJbDVR2b_GTA,1045
270
+ uncountable/types/api/recipes/associate_recipe_as_input.py,sha256=pvKn3dRSQU0m3_UqKbI5aoU9GhduSEYwIkAKt-MjeXQ,1215
271
+ uncountable/types/api/recipes/associate_recipe_as_lot.py,sha256=Ugh0TBD9xvpdq9s0zN5TE6iE-ht4cdq_I7KoJs33Lfg,1159
272
+ uncountable/types/api/recipes/clear_recipe_outputs.py,sha256=sZ6sWtdfOYp8ORQD9GAkPhrtyWyLo4NQiSW68OEi8Xw,1103
273
+ uncountable/types/api/recipes/create_recipe.py,sha256=CaoMFQ7xFjBzKJqsTPbx5ogbrArC2rBdV6gO0hzBP7s,1510
274
+ uncountable/types/api/recipes/create_recipes.py,sha256=wXh7k7beMhfx9az8SJSAINfCAb5u_QbfXZn1p1oM4TM,1900
275
+ uncountable/types/api/recipes/disassociate_recipe_as_input.py,sha256=YcLCle-yQ8A7hPmFg8wPfW4dyJwpMQXNKzJxCEr8xlw,1127
276
+ uncountable/types/api/recipes/edit_recipe_inputs.py,sha256=BNntgnvlcf4Rs5EB7Ic9QP6SetEN9DoS4aTsqF3xJ0k,9889
277
+ uncountable/types/api/recipes/get_column_calculation_values.py,sha256=DowntS7pCxeed5xZdRaq9REVSqukH6tezJ1e8XsxAO0,1692
278
+ uncountable/types/api/recipes/get_curve.py,sha256=9wKO_EN3ThiZn27z95oSj_ESPlGTQU_tm2g_TqrH-tM,1106
279
+ uncountable/types/api/recipes/get_recipe_calculations.py,sha256=TdiMczWAuPE3zBa9urObMIqkXwYK9Lv1aZiiWrJyvLc,1700
280
+ uncountable/types/api/recipes/get_recipe_links.py,sha256=IIA_LV-iPayZRAsVmDCpSA8jgFnzcgGpk0lAnygyi-s,1180
281
+ uncountable/types/api/recipes/get_recipe_names.py,sha256=qxZlWWE-j-GbcMLIBZ7OKYLG9HZJMsu3Xobincwgfdk,1295
282
+ uncountable/types/api/recipes/get_recipe_output_metadata.py,sha256=tMu7VdTgn5gQYpNIWUkVUP_0RxIMAXuscHmsov_Rg9M,1724
283
+ uncountable/types/api/recipes/get_recipes_data.py,sha256=W1UQqpHrdZkmmXMMcFuWg8YOPF-uSqjSIcjboMinWUg,6278
284
+ uncountable/types/api/recipes/lock_recipes.py,sha256=pa2EW4WW3LFqxN-7aAAC-d_RP7SrZl0tG29lkKhGHq8,1617
285
+ uncountable/types/api/recipes/remove_recipe_from_project.py,sha256=q4ZRB6pyi8EpQdK3CizNYfgV0-1LG_s7PEy3gIgKbVo,1097
286
+ uncountable/types/api/recipes/set_recipe_inputs.py,sha256=r8hIhD7KyMK67kBFiMITfMssJh3oSpKfnsMyVtprk6I,1621
287
+ uncountable/types/api/recipes/set_recipe_metadata.py,sha256=AWkC5zMSMJMV6vca4uoP0HiWdP0myihZlk4OWEtOlLo,1125
288
+ uncountable/types/api/recipes/set_recipe_output_annotations.py,sha256=AZY_SyJw5zGRU2geHJzCWByaGibwuljIfIQEqqSXpQc,3575
289
+ uncountable/types/api/recipes/set_recipe_output_file.py,sha256=uz6RQxuXHl2guh5HPPkdxU2FrpGV4T5hQCW9H3vEdMs,1523
290
+ uncountable/types/api/recipes/set_recipe_outputs.py,sha256=JOa5DbwaKgsofFnigZf5JDfMMetyFaT3xwmvcTDdjrc,2158
291
+ uncountable/types/api/recipes/set_recipe_tags.py,sha256=a4HdVxn_cy5KDkDSNcIiutu5n4BvIscY8fP69zx-Mbc,3146
292
+ uncountable/types/api/recipes/unarchive_recipes.py,sha256=zPUDmKjrUB7DJcw3XVeK4zuVqz94VbHYF9oiVb-Xu40,1021
293
+ uncountable/types/api/recipes/unlock_recipes.py,sha256=dTNnMp1GVECIhQb9c-xwOYDmiy31CjhSrfDqZjFfEi4,1294
294
+ uncountable/types/api/triggers/__init__.py,sha256=gCgbynxG3jA8FQHzercKtrHKHkiIKr8APdZYUniAor8,55
295
+ uncountable/types/api/triggers/run_trigger.py,sha256=bMUF7pdezbrqVslx4KiMq1eXJICcnwi6TsrwL-tObD8,1080
296
+ uncountable/types/api/uploader/__init__.py,sha256=gCgbynxG3jA8FQHzercKtrHKHkiIKr8APdZYUniAor8,55
297
+ uncountable/types/api/uploader/invoke_uploader.py,sha256=AvuBpmR5RepV4gNx0dgmeEks1Y8DemNF6qMDBzV2aJM,1294
298
+ UncountablePythonSDK-0.0.92.dist-info/METADATA,sha256=XgZmFMPtrecdHTk-_HU3EN0pFzXkMBkInUHy5DzovsA,2064
299
+ UncountablePythonSDK-0.0.92.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
300
+ UncountablePythonSDK-0.0.92.dist-info/top_level.txt,sha256=1UVGjAU-6hJY9qw2iJ7nCBeEwZ793AEN5ZfKX9A1uj4,31
301
+ UncountablePythonSDK-0.0.92.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: bdist_wheel (0.43.0)
2
+ Generator: setuptools (75.8.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5
 
@@ -1,4 +1,4 @@
1
+ docs
1
2
  examples
2
3
  pkgs
3
- type_spec
4
4
  uncountable
docs/.gitignore ADDED
@@ -0,0 +1 @@
1
+ _build
docs/conf.py ADDED
@@ -0,0 +1,57 @@
1
+ # Configuration file for the Sphinx documentation builder.
2
+ #
3
+ # For the full list of built-in configuration values, see the documentation:
4
+ # https://www.sphinx-doc.org/en/master/usage/configuration.html
5
+
6
+ # -- Project information -----------------------------------------------------
7
+ # https://www.sphinx-doc.org/en/master/usage/configuration.html#project-information
8
+
9
+ from datetime import date
10
+
11
+ project = "Uncountable SDK"
12
+ copyright = f"{date.today().year}, Uncountable Inc"
13
+ author = "Uncountable Inc"
14
+
15
+ # -- General configuration ---------------------------------------------------
16
+ # https://www.sphinx-doc.org/en/master/usage/configuration.html#general-configuration
17
+
18
+ extensions = [
19
+ "autoapi.extension",
20
+ "myst_parser",
21
+ "sphinx_design",
22
+ "sphinx_copybutton",
23
+ "sphinx_favicon",
24
+ ]
25
+ myst_enable_extensions = ["fieldlist", "deflist"]
26
+
27
+ autoapi_dirs = ["../uncountable"]
28
+ autoapi_options = [
29
+ "members",
30
+ "undoc-members",
31
+ "show-inheritance",
32
+ "show-module-summary",
33
+ "imported-members",
34
+ ]
35
+ autoapi_ignore = ["*integration*"]
36
+ autodoc_typehints = "description"
37
+
38
+ exclude_patterns = ["_build", "Thumbs.db", ".DS_Store"]
39
+
40
+
41
+ # -- Options for HTML output -------------------------------------------------
42
+ # https://www.sphinx-doc.org/en/master/usage/configuration.html#options-for-html-output
43
+
44
+ html_theme = "furo"
45
+ html_title = "Python SDK"
46
+ html_static_path = ["static"]
47
+ html_logo = "static/logo_blue.png"
48
+
49
+ favicons = [
50
+ "favicons/android-chrome-192x192.png",
51
+ "favicons/android-chrome-512x512.png",
52
+ "favicons/apple-touch-icon.png",
53
+ "favicons/favicon-16x16.png",
54
+ "favicons/favicon-32x32.png",
55
+ "favicons/mstile-150x150.png",
56
+ "favicons/safari-pinned-tab.svg",
57
+ ]
docs/index.md ADDED
@@ -0,0 +1,13 @@
1
+ # Uncountable Python SDK
2
+
3
+ ![PyPI - Python Version](https://img.shields.io/pypi/pyversions/UncountablePythonSDK)
4
+
5
+
6
+ `Uncountable Python SDK` is a python package that allows interacting with the uncountable platform
7
+
8
+ ```{toctree}
9
+ :maxdepth: 2
10
+
11
+ quickstart
12
+ ```
13
+
docs/justfile ADDED
@@ -0,0 +1,12 @@
1
+ docs-setup-python:
2
+ pip install -r requirements.txt
3
+
4
+ docs-clean:
5
+ rm -rf _build/
6
+
7
+ docs-build: docs-clean
8
+ PYTHONPATH="$PWD/.." sphinx-build -M dirhtml . _build
9
+
10
+ docs-serve: docs-build
11
+ npx serve _build/dirhtml
12
+
docs/quickstart.md ADDED
@@ -0,0 +1,19 @@
1
+ # Quickstart
2
+
3
+ ## Installation
4
+
5
+ Install from PyPI:
6
+
7
+ ```{code-block} bash
8
+ pip install UncountablePythonSDK
9
+ ```
10
+
11
+ ## Available SDK methods
12
+ See the following class for a reference for the available python sdk methods. Then see the example in the next section on how to setup and call these methods.
13
+ [](uncountable.types.client_base.ClientMethods)
14
+
15
+ ## Run a simple example
16
+
17
+ ```{literalinclude} ../examples/create_entity.py
18
+ ```
19
+
docs/requirements.txt ADDED
@@ -0,0 +1,7 @@
1
+ furo==2024.8.6
2
+ myst-parser==4.0.0
3
+ sphinx-autoapi==3.4.0
4
+ sphinx-copybutton==0.5.2
5
+ Sphinx==8.1.3
6
+ sphinx_design==0.6.1
7
+ sphinx-favicon==1.0.1
@@ -0,0 +1,9 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <browserconfig>
3
+ <msapplication>
4
+ <tile>
5
+ <square150x150logo src="/static/img/icons/mstile-150x150.png"/>
6
+ <TileColor>#da532c</TileColor>
7
+ </tile>
8
+ </msapplication>
9
+ </browserconfig>
Binary file
Binary file
@@ -0,0 +1,18 @@
1
+ {
2
+ "name": "",
3
+ "icons": [
4
+ {
5
+ "src": "/static/img/icons/android-chrome-192x192.png",
6
+ "sizes": "192x192",
7
+ "type": "image/png"
8
+ },
9
+ {
10
+ "src": "/static/img/icons/android-chrome-512x512.png",
11
+ "sizes": "512x512",
12
+ "type": "image/png"
13
+ }
14
+ ],
15
+ "theme_color": "#ffffff",
16
+ "background_color": "#ffffff",
17
+ "display": "standalone"
18
+ }
Binary file
@@ -0,0 +1,32 @@
1
+ <?xml version="1.0" standalone="no"?>
2
+ <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20010904//EN"
3
+ "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
4
+ <svg version="1.0" xmlns="http://www.w3.org/2000/svg"
5
+ width="16.000000pt" height="16.000000pt" viewBox="0 0 16.000000 16.000000"
6
+ preserveAspectRatio="xMidYMid meet">
7
+ <metadata>
8
+ Created by potrace 1.11, written by Peter Selinger 2001-2013
9
+ </metadata>
10
+ <g transform="translate(0.000000,16.000000) scale(0.002312,-0.002312)"
11
+ fill="#000000" stroke="none">
12
+ <path d="M3425 6902 c-16 -10 -50 -30 -75 -44 -25 -14 -85 -49 -135 -78 -49
13
+ -29 -110 -64 -135 -78 -25 -13 -70 -39 -100 -57 -119 -71 -800 -463 -875 -505
14
+ -22 -12 -80 -46 -130 -75 -74 -43 -876 -506 -980 -565 -27 -15 -194 -112 -445
15
+ -257 l-85 -49 0 -1733 c0 -1723 0 -1734 20 -1745 11 -6 23 -15 26 -19 3 -5 8
16
+ -7 10 -6 2 2 15 -4 29 -13 14 -9 117 -69 230 -133 113 -65 219 -126 235 -135
17
+ 17 -10 59 -34 95 -55 36 -21 77 -45 92 -54 16 -9 187 -107 380 -219 194 -112
18
+ 360 -208 368 -213 8 -5 60 -35 115 -66 55 -31 143 -81 195 -111 93 -54 165
19
+ -96 239 -138 20 -11 52 -30 71 -41 19 -11 170 -98 335 -193 165 -95 317 -184
20
+ 337 -197 21 -12 40 -23 42 -23 3 0 29 -14 58 -31 29 -18 68 -40 85 -50 l33
21
+ -18 57 31 c32 17 65 37 74 44 8 8 18 14 22 14 4 0 51 26 104 58 54 32 105 61
22
+ 113 65 8 4 33 18 55 31 22 14 56 33 75 44 19 11 123 70 230 132 227 132 219
23
+ 127 378 219 68 39 128 71 132 71 5 0 10 4 12 8 2 4 30 23 63 41 71 40 113 64
24
+ 158 90 88 51 426 246 457 263 68 39 176 101 230 133 30 18 163 94 295 170 132
25
+ 76 308 178 390 225 l150 87 0 1733 0 1733 -80 48 c-44 27 -86 48 -92 49 -7 0
26
+ -13 5 -13 10 0 6 -4 10 -9 10 -5 0 -67 34 -136 75 -70 41 -128 75 -130 75 -2
27
+ 0 -95 53 -207 118 -111 65 -223 130 -248 144 -48 27 -60 34 -369 212 -112 65
28
+ -218 126 -235 136 -160 91 -474 272 -486 280 -8 5 -42 24 -75 43 -33 19 -76
29
+ 43 -95 55 -180 104 -472 271 -502 287 -21 11 -38 23 -38 27 0 5 -4 8 -8 8 -5
30
+ 0 -68 34 -140 75 -72 41 -133 75 -134 75 -2 0 -16 -8 -33 -18z"/>
31
+ </g>
32
+ </svg>
Binary file
@@ -0,0 +1,35 @@
1
+ import os
2
+ from decimal import Decimal
3
+
4
+ from uncountable.core import AsyncBatchProcessor, AuthDetailsApiKey, Client
5
+ from uncountable.types import (
6
+ recipe_metadata,
7
+ )
8
+ from uncountable.types.identifier import IdentifierKeyBatchReference
9
+ from uncountable.types.recipe_identifiers import (
10
+ RecipeIdentifierEditableName,
11
+ RecipeIdentifiers,
12
+ )
13
+
14
+ client = Client(
15
+ base_url=os.environ["UNC_BASE_URL"],
16
+ auth_details=AuthDetailsApiKey(
17
+ api_id=os.environ["UNC_API_ID"], api_secret_key=os.environ["UNC_API_SECRET_KEY"]
18
+ ),
19
+ )
20
+ batch_loader = AsyncBatchProcessor(client=client)
21
+ recipe_identifiers: RecipeIdentifiers = []
22
+ recipe_identifiers.append(
23
+ RecipeIdentifierEditableName(editable_name="My recipe from API")
24
+ )
25
+ req = batch_loader.create_recipe(
26
+ material_family_id=1, workflow_id=1, identifiers=recipe_identifiers
27
+ )
28
+ created_recipe_reference = req.batch_reference
29
+ batch_loader.set_recipe_metadata(
30
+ recipe_key=IdentifierKeyBatchReference(reference=created_recipe_reference),
31
+ recipe_metadata=[
32
+ recipe_metadata.MetadataValue(metadata_id=7, value_numeric=Decimal(38))
33
+ ],
34
+ )
35
+ job_id = batch_loader.send()