UncountablePythonSDK 0.0.24__py3-none-any.whl → 0.0.131__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 (373) hide show
  1. docs/conf.py +60 -8
  2. docs/index.md +107 -4
  3. docs/integration_examples/create_ingredient.md +43 -0
  4. docs/integration_examples/create_output.md +56 -0
  5. docs/integration_examples/index.md +6 -0
  6. docs/justfile +2 -2
  7. docs/requirements.txt +7 -5
  8. examples/async_batch.py +5 -6
  9. examples/basic_auth.py +7 -0
  10. examples/create_entity.py +4 -6
  11. examples/create_ingredient_sdk.py +34 -0
  12. examples/download_files.py +26 -0
  13. examples/edit_recipe_inputs.py +50 -0
  14. examples/integration-server/jobs/materials_auto/concurrent_cron.py +11 -0
  15. examples/integration-server/jobs/materials_auto/example_cron.py +21 -0
  16. examples/integration-server/jobs/materials_auto/example_http.py +47 -0
  17. examples/integration-server/jobs/materials_auto/example_instrument.py +100 -0
  18. examples/integration-server/jobs/materials_auto/example_parse.py +140 -0
  19. examples/integration-server/jobs/materials_auto/example_predictions.py +61 -0
  20. examples/integration-server/jobs/materials_auto/example_runsheet_wh.py +39 -0
  21. examples/integration-server/jobs/materials_auto/example_wh.py +23 -0
  22. examples/integration-server/jobs/materials_auto/profile.yaml +104 -0
  23. examples/integration-server/pyproject.toml +224 -0
  24. examples/invoke_uploader.py +26 -0
  25. examples/oauth.py +7 -0
  26. examples/set_recipe_metadata_file.py +40 -0
  27. examples/set_recipe_output_file_sdk.py +26 -0
  28. examples/upload_files.py +2 -3
  29. pkgs/argument_parser/__init__.py +9 -0
  30. pkgs/argument_parser/_is_namedtuple.py +3 -0
  31. pkgs/argument_parser/argument_parser.py +295 -74
  32. pkgs/argument_parser/case_convert.py +4 -3
  33. pkgs/filesystem_utils/__init__.py +20 -0
  34. pkgs/filesystem_utils/_blob_session.py +144 -0
  35. pkgs/filesystem_utils/_gdrive_session.py +309 -0
  36. pkgs/filesystem_utils/_local_session.py +69 -0
  37. pkgs/filesystem_utils/_s3_session.py +118 -0
  38. pkgs/filesystem_utils/_sftp_session.py +151 -0
  39. pkgs/filesystem_utils/file_type_utils.py +91 -0
  40. pkgs/filesystem_utils/filesystem_session.py +39 -0
  41. pkgs/py.typed +0 -0
  42. pkgs/serialization/__init__.py +8 -1
  43. pkgs/serialization/annotation.py +64 -0
  44. pkgs/serialization/missing_sentry.py +1 -1
  45. pkgs/serialization/opaque_key.py +1 -1
  46. pkgs/serialization/serial_alias.py +47 -0
  47. pkgs/serialization/serial_class.py +69 -54
  48. pkgs/serialization/serial_generic.py +16 -0
  49. pkgs/serialization/serial_union.py +84 -0
  50. pkgs/serialization/yaml.py +57 -0
  51. pkgs/serialization_util/__init__.py +7 -7
  52. pkgs/serialization_util/convert_to_snakecase.py +27 -0
  53. pkgs/serialization_util/dataclasses.py +14 -0
  54. pkgs/serialization_util/serialization_helpers.py +117 -71
  55. pkgs/type_spec/actions_registry/__main__.py +0 -4
  56. pkgs/type_spec/actions_registry/emit_typescript.py +5 -5
  57. pkgs/type_spec/builder.py +438 -109
  58. pkgs/type_spec/builder_types.py +9 -0
  59. pkgs/type_spec/config.py +52 -24
  60. pkgs/type_spec/cross_output_links.py +99 -0
  61. pkgs/type_spec/emit_io_ts.py +1 -1
  62. pkgs/type_spec/emit_open_api.py +160 -41
  63. pkgs/type_spec/emit_open_api_util.py +13 -7
  64. pkgs/type_spec/emit_python.py +450 -136
  65. pkgs/type_spec/emit_typescript.py +117 -250
  66. pkgs/type_spec/emit_typescript_util.py +293 -4
  67. pkgs/type_spec/load_types.py +20 -5
  68. pkgs/type_spec/non_discriminated_union_exceptions.py +14 -0
  69. pkgs/type_spec/open_api_util.py +29 -4
  70. pkgs/type_spec/parts/base.py.prepart +13 -10
  71. pkgs/type_spec/parts/base.ts.prepart +4 -0
  72. pkgs/type_spec/type_info/__main__.py +3 -1
  73. pkgs/type_spec/type_info/emit_type_info.py +161 -32
  74. pkgs/type_spec/ui_entry_actions/__init__.py +4 -0
  75. pkgs/type_spec/ui_entry_actions/generate_ui_entry_actions.py +308 -0
  76. pkgs/type_spec/util.py +4 -4
  77. pkgs/type_spec/value_spec/__main__.py +27 -10
  78. pkgs/type_spec/value_spec/convert_type.py +21 -1
  79. pkgs/type_spec/value_spec/emit_python.py +25 -7
  80. pkgs/type_spec/value_spec/types.py +1 -1
  81. uncountable/__init__.py +1 -2
  82. uncountable/core/__init__.py +11 -3
  83. uncountable/core/async_batch.py +16 -1
  84. uncountable/core/client.py +247 -52
  85. uncountable/core/environment.py +41 -0
  86. uncountable/core/file_upload.py +67 -22
  87. uncountable/core/types.py +8 -13
  88. uncountable/integration/cli.py +142 -0
  89. uncountable/integration/construct_client.py +43 -27
  90. uncountable/integration/cron.py +12 -11
  91. uncountable/integration/db/connect.py +12 -2
  92. uncountable/integration/db/session.py +25 -0
  93. uncountable/integration/entrypoint.py +4 -34
  94. uncountable/integration/executors/executors.py +147 -0
  95. uncountable/integration/executors/generic_upload_executor.py +336 -0
  96. uncountable/integration/executors/script_executor.py +15 -9
  97. uncountable/integration/http_server/__init__.py +5 -0
  98. uncountable/integration/http_server/types.py +69 -0
  99. uncountable/integration/job.py +246 -19
  100. uncountable/integration/queue_runner/__init__.py +0 -0
  101. uncountable/integration/queue_runner/command_server/__init__.py +28 -0
  102. uncountable/integration/queue_runner/command_server/command_client.py +133 -0
  103. uncountable/integration/queue_runner/command_server/command_server.py +142 -0
  104. uncountable/integration/queue_runner/command_server/constants.py +4 -0
  105. uncountable/integration/queue_runner/command_server/protocol/__init__.py +0 -0
  106. uncountable/integration/queue_runner/command_server/protocol/command_server.proto +58 -0
  107. uncountable/integration/queue_runner/command_server/protocol/command_server_pb2.py +57 -0
  108. uncountable/integration/queue_runner/command_server/protocol/command_server_pb2.pyi +114 -0
  109. uncountable/integration/queue_runner/command_server/protocol/command_server_pb2_grpc.py +264 -0
  110. uncountable/integration/queue_runner/command_server/types.py +75 -0
  111. uncountable/integration/queue_runner/datastore/__init__.py +3 -0
  112. uncountable/integration/queue_runner/datastore/datastore_sqlite.py +250 -0
  113. uncountable/integration/queue_runner/datastore/interface.py +29 -0
  114. uncountable/integration/queue_runner/datastore/model.py +24 -0
  115. uncountable/integration/queue_runner/job_scheduler.py +200 -0
  116. uncountable/integration/queue_runner/queue_runner.py +34 -0
  117. uncountable/integration/queue_runner/types.py +7 -0
  118. uncountable/integration/queue_runner/worker.py +116 -0
  119. uncountable/integration/scan_profiles.py +67 -0
  120. uncountable/integration/scheduler.py +199 -0
  121. uncountable/integration/secret_retrieval/__init__.py +3 -0
  122. uncountable/integration/secret_retrieval/retrieve_secret.py +93 -0
  123. uncountable/integration/server.py +103 -54
  124. uncountable/integration/telemetry.py +251 -0
  125. uncountable/integration/webhook_server/entrypoint.py +97 -0
  126. uncountable/types/__init__.py +149 -30
  127. uncountable/types/api/batch/execute_batch.py +16 -9
  128. uncountable/types/api/batch/execute_batch_load_async.py +13 -7
  129. uncountable/types/api/chemical/convert_chemical_formats.py +20 -8
  130. uncountable/types/api/condition_parameters/__init__.py +1 -0
  131. uncountable/types/api/condition_parameters/upsert_condition_match.py +72 -0
  132. uncountable/types/api/entity/create_entities.py +24 -12
  133. uncountable/types/api/entity/create_entity.py +22 -13
  134. uncountable/types/api/entity/create_or_update_entity.py +48 -0
  135. uncountable/types/api/entity/export_entities.py +59 -0
  136. uncountable/types/api/entity/get_entities_data.py +18 -9
  137. uncountable/types/api/entity/grant_entity_permissions.py +48 -0
  138. uncountable/types/api/entity/list_aggregate.py +79 -0
  139. uncountable/types/api/entity/list_entities.py +53 -14
  140. uncountable/types/api/entity/lock_entity.py +45 -0
  141. uncountable/types/api/entity/lookup_entity.py +116 -0
  142. uncountable/types/api/entity/resolve_entity_ids.py +19 -10
  143. uncountable/types/api/entity/set_entity_field_values.py +44 -0
  144. uncountable/types/api/entity/set_values.py +15 -8
  145. uncountable/types/api/entity/transition_entity_phase.py +27 -12
  146. uncountable/types/api/entity/unlock_entity.py +44 -0
  147. uncountable/types/api/equipment/__init__.py +1 -0
  148. uncountable/types/api/equipment/associate_equipment_input.py +43 -0
  149. uncountable/types/api/field_options/__init__.py +1 -0
  150. uncountable/types/api/field_options/upsert_field_options.py +55 -0
  151. uncountable/types/api/files/__init__.py +1 -0
  152. uncountable/types/api/files/download_file.py +77 -0
  153. uncountable/types/api/id_source/list_id_source.py +20 -11
  154. uncountable/types/api/id_source/match_id_source.py +15 -10
  155. uncountable/types/api/input_groups/get_input_group_names.py +16 -7
  156. uncountable/types/api/inputs/create_inputs.py +28 -14
  157. uncountable/types/api/inputs/get_input_data.py +34 -16
  158. uncountable/types/api/inputs/get_input_names.py +19 -10
  159. uncountable/types/api/inputs/get_inputs_data.py +29 -11
  160. uncountable/types/api/inputs/set_input_attribute_values.py +16 -10
  161. uncountable/types/api/inputs/set_input_category.py +44 -0
  162. uncountable/types/api/inputs/set_input_subcategories.py +45 -0
  163. uncountable/types/api/inputs/set_intermediate_type.py +50 -0
  164. uncountable/types/api/integrations/__init__.py +1 -0
  165. uncountable/types/api/integrations/publish_realtime_data.py +41 -0
  166. uncountable/types/api/integrations/push_notification.py +49 -0
  167. uncountable/types/api/integrations/register_sockets_token.py +41 -0
  168. uncountable/types/api/listing/__init__.py +1 -0
  169. uncountable/types/api/listing/fetch_listing.py +58 -0
  170. uncountable/types/api/material_families/__init__.py +1 -0
  171. uncountable/types/api/material_families/update_entity_material_families.py +47 -0
  172. uncountable/types/api/notebooks/__init__.py +1 -0
  173. uncountable/types/api/notebooks/add_notebook_content.py +119 -0
  174. uncountable/types/api/outputs/get_output_data.py +32 -17
  175. uncountable/types/api/outputs/get_output_names.py +18 -9
  176. uncountable/types/api/outputs/get_output_organization.py +173 -0
  177. uncountable/types/api/outputs/resolve_output_conditions.py +23 -11
  178. uncountable/types/api/permissions/set_core_permissions.py +31 -15
  179. uncountable/types/api/project/get_projects.py +20 -11
  180. uncountable/types/api/project/get_projects_data.py +23 -14
  181. uncountable/types/api/recipe_links/create_recipe_link.py +17 -10
  182. uncountable/types/api/recipe_links/remove_recipe_link.py +45 -0
  183. uncountable/types/api/recipe_metadata/get_recipe_metadata_data.py +19 -10
  184. uncountable/types/api/recipes/add_recipe_to_project.py +42 -0
  185. uncountable/types/api/recipes/add_time_series_data.py +64 -0
  186. uncountable/types/api/recipes/archive_recipes.py +14 -7
  187. uncountable/types/api/recipes/associate_recipe_as_input.py +16 -8
  188. uncountable/types/api/recipes/associate_recipe_as_lot.py +14 -7
  189. uncountable/types/api/recipes/clear_recipe_outputs.py +42 -0
  190. uncountable/types/api/recipes/create_mix_order.py +44 -0
  191. uncountable/types/api/recipes/create_recipe.py +21 -14
  192. uncountable/types/api/recipes/create_recipes.py +25 -13
  193. uncountable/types/api/recipes/disassociate_recipe_as_input.py +14 -7
  194. uncountable/types/api/recipes/edit_recipe_inputs.py +208 -19
  195. uncountable/types/api/recipes/get_column_calculation_values.py +57 -0
  196. uncountable/types/api/recipes/get_curve.py +15 -9
  197. uncountable/types/api/recipes/get_recipe_calculations.py +17 -11
  198. uncountable/types/api/recipes/get_recipe_links.py +14 -8
  199. uncountable/types/api/recipes/get_recipe_names.py +16 -7
  200. uncountable/types/api/recipes/get_recipe_output_metadata.py +16 -10
  201. uncountable/types/api/recipes/get_recipes_data.py +96 -45
  202. uncountable/types/api/recipes/lock_recipes.py +64 -0
  203. uncountable/types/api/recipes/remove_recipe_from_project.py +42 -0
  204. uncountable/types/api/recipes/set_recipe_inputs.py +19 -13
  205. uncountable/types/api/recipes/set_recipe_metadata.py +14 -7
  206. uncountable/types/api/recipes/set_recipe_output_annotations.py +114 -0
  207. uncountable/types/api/recipes/set_recipe_output_file.py +55 -0
  208. uncountable/types/api/recipes/set_recipe_outputs.py +40 -15
  209. uncountable/types/api/recipes/set_recipe_tags.py +30 -13
  210. uncountable/types/api/recipes/set_recipe_total.py +59 -0
  211. uncountable/types/api/recipes/unarchive_recipes.py +41 -0
  212. uncountable/types/api/recipes/unlock_recipes.py +51 -0
  213. uncountable/types/api/runsheet/__init__.py +1 -0
  214. uncountable/types/api/runsheet/complete_async_upload.py +41 -0
  215. uncountable/types/api/triggers/run_trigger.py +15 -8
  216. uncountable/types/api/uploader/__init__.py +1 -0
  217. uncountable/types/api/uploader/complete_async_parse.py +46 -0
  218. uncountable/types/api/uploader/invoke_uploader.py +46 -0
  219. uncountable/types/api/user/__init__.py +1 -0
  220. uncountable/types/api/user/get_current_user_info.py +40 -0
  221. uncountable/types/async_batch.py +8 -52
  222. uncountable/types/async_batch_processor.py +694 -18
  223. uncountable/types/async_batch_t.py +108 -0
  224. uncountable/types/async_jobs.py +8 -0
  225. uncountable/types/async_jobs_t.py +52 -0
  226. uncountable/types/auth_retrieval.py +11 -0
  227. uncountable/types/auth_retrieval_t.py +75 -0
  228. uncountable/types/base.py +5 -80
  229. uncountable/types/base_t.py +87 -0
  230. uncountable/types/calculations.py +3 -19
  231. uncountable/types/calculations_t.py +26 -0
  232. uncountable/types/chemical_structure.py +3 -23
  233. uncountable/types/chemical_structure_t.py +28 -0
  234. uncountable/types/client_base.py +1170 -88
  235. uncountable/types/client_config.py +8 -0
  236. uncountable/types/client_config_t.py +36 -0
  237. uncountable/types/curves.py +5 -43
  238. uncountable/types/curves_t.py +50 -0
  239. uncountable/types/data.py +12 -0
  240. uncountable/types/data_t.py +103 -0
  241. uncountable/types/entity.py +8 -270
  242. uncountable/types/entity_t.py +446 -0
  243. uncountable/types/experiment_groups.py +3 -19
  244. uncountable/types/experiment_groups_t.py +26 -0
  245. uncountable/types/exports.py +8 -0
  246. uncountable/types/exports_t.py +34 -0
  247. uncountable/types/field_values.py +25 -61
  248. uncountable/types/field_values_t.py +302 -0
  249. uncountable/types/fields.py +3 -20
  250. uncountable/types/fields_t.py +27 -0
  251. uncountable/types/generic_upload.py +14 -0
  252. uncountable/types/generic_upload_t.py +119 -0
  253. uncountable/types/id_source.py +7 -45
  254. uncountable/types/id_source_t.py +68 -0
  255. uncountable/types/identifier.py +6 -50
  256. uncountable/types/identifier_t.py +62 -0
  257. uncountable/types/input_attributes.py +3 -25
  258. uncountable/types/input_attributes_t.py +29 -0
  259. uncountable/types/inputs.py +6 -57
  260. uncountable/types/inputs_t.py +82 -0
  261. uncountable/types/integration_server.py +8 -0
  262. uncountable/types/integration_server_t.py +46 -0
  263. uncountable/types/integration_session.py +10 -0
  264. uncountable/types/integration_session_t.py +60 -0
  265. uncountable/types/integrations.py +10 -0
  266. uncountable/types/integrations_t.py +62 -0
  267. uncountable/types/job_definition.py +28 -0
  268. uncountable/types/job_definition_t.py +285 -0
  269. uncountable/types/listing.py +9 -0
  270. uncountable/types/listing_t.py +51 -0
  271. uncountable/types/notices.py +8 -0
  272. uncountable/types/notices_t.py +37 -0
  273. uncountable/types/notifications.py +11 -0
  274. uncountable/types/notifications_t.py +74 -0
  275. uncountable/types/outputs.py +3 -22
  276. uncountable/types/outputs_t.py +29 -0
  277. uncountable/types/overrides.py +9 -0
  278. uncountable/types/overrides_t.py +49 -0
  279. uncountable/types/permissions.py +3 -42
  280. uncountable/types/permissions_t.py +45 -0
  281. uncountable/types/phases.py +3 -19
  282. uncountable/types/phases_t.py +26 -0
  283. uncountable/types/post_base.py +3 -26
  284. uncountable/types/post_base_t.py +29 -0
  285. uncountable/types/queued_job.py +17 -0
  286. uncountable/types/queued_job_t.py +140 -0
  287. uncountable/types/recipe_identifiers.py +7 -58
  288. uncountable/types/recipe_identifiers_t.py +75 -0
  289. uncountable/types/recipe_inputs.py +4 -26
  290. uncountable/types/recipe_inputs_t.py +29 -0
  291. uncountable/types/recipe_links.py +4 -46
  292. uncountable/types/recipe_links_t.py +53 -0
  293. uncountable/types/recipe_metadata.py +5 -48
  294. uncountable/types/recipe_metadata_t.py +57 -0
  295. uncountable/types/recipe_output_metadata.py +3 -20
  296. uncountable/types/recipe_output_metadata_t.py +27 -0
  297. uncountable/types/recipe_tags.py +3 -19
  298. uncountable/types/recipe_tags_t.py +26 -0
  299. uncountable/types/recipe_workflow_steps.py +9 -73
  300. uncountable/types/recipe_workflow_steps_t.py +95 -0
  301. uncountable/types/recipes.py +7 -0
  302. uncountable/types/recipes_t.py +25 -0
  303. uncountable/types/response.py +3 -21
  304. uncountable/types/response_t.py +26 -0
  305. uncountable/types/secret_retrieval.py +11 -0
  306. uncountable/types/secret_retrieval_t.py +75 -0
  307. uncountable/types/sockets.py +20 -0
  308. uncountable/types/sockets_t.py +169 -0
  309. uncountable/types/structured_filters.py +25 -0
  310. uncountable/types/structured_filters_t.py +248 -0
  311. uncountable/types/units.py +3 -19
  312. uncountable/types/units_t.py +26 -0
  313. uncountable/types/uploader.py +24 -0
  314. uncountable/types/uploader_t.py +222 -0
  315. uncountable/types/users.py +3 -20
  316. uncountable/types/users_t.py +27 -0
  317. uncountable/types/webhook_job.py +9 -0
  318. uncountable/types/webhook_job_t.py +48 -0
  319. uncountable/types/workflows.py +4 -28
  320. uncountable/types/workflows_t.py +38 -0
  321. uncountablepythonsdk-0.0.131.dist-info/METADATA +64 -0
  322. uncountablepythonsdk-0.0.131.dist-info/RECORD +363 -0
  323. {UncountablePythonSDK-0.0.24.dist-info → uncountablepythonsdk-0.0.131.dist-info}/WHEEL +1 -1
  324. {UncountablePythonSDK-0.0.24.dist-info → uncountablepythonsdk-0.0.131.dist-info}/top_level.txt +0 -1
  325. UncountablePythonSDK-0.0.24.dist-info/METADATA +0 -47
  326. UncountablePythonSDK-0.0.24.dist-info/RECORD +0 -216
  327. docs/quickstart.md +0 -19
  328. examples/recipe-import/importer.py +0 -39
  329. type_spec/external/api/batch/execute_batch.yaml +0 -56
  330. type_spec/external/api/batch/execute_batch_load_async.yaml +0 -18
  331. type_spec/external/api/chemical/convert_chemical_formats.yaml +0 -33
  332. type_spec/external/api/entity/create_entities.yaml +0 -45
  333. type_spec/external/api/entity/create_entity.yaml +0 -51
  334. type_spec/external/api/entity/get_entities_data.yaml +0 -29
  335. type_spec/external/api/entity/list_entities.yaml +0 -52
  336. type_spec/external/api/entity/resolve_entity_ids.yaml +0 -29
  337. type_spec/external/api/entity/set_values.yaml +0 -18
  338. type_spec/external/api/entity/transition_entity_phase.yaml +0 -44
  339. type_spec/external/api/id_source/list_id_source.yaml +0 -35
  340. type_spec/external/api/id_source/match_id_source.yaml +0 -32
  341. type_spec/external/api/input_groups/get_input_group_names.yaml +0 -29
  342. type_spec/external/api/inputs/create_inputs.yaml +0 -48
  343. type_spec/external/api/inputs/get_input_data.yaml +0 -95
  344. type_spec/external/api/inputs/get_input_names.yaml +0 -38
  345. type_spec/external/api/inputs/get_inputs_data.yaml +0 -82
  346. type_spec/external/api/inputs/set_input_attribute_values.yaml +0 -33
  347. type_spec/external/api/outputs/get_output_data.yaml +0 -92
  348. type_spec/external/api/outputs/get_output_names.yaml +0 -35
  349. type_spec/external/api/outputs/resolve_output_conditions.yaml +0 -50
  350. type_spec/external/api/permissions/set_core_permissions.yaml +0 -69
  351. type_spec/external/api/project/get_projects.yaml +0 -42
  352. type_spec/external/api/project/get_projects_data.yaml +0 -50
  353. type_spec/external/api/recipe_links/create_recipe_link.yaml +0 -25
  354. type_spec/external/api/recipe_metadata/get_recipe_metadata_data.yaml +0 -41
  355. type_spec/external/api/recipes/archive_recipes.yaml +0 -20
  356. type_spec/external/api/recipes/associate_recipe_as_input.yaml +0 -19
  357. type_spec/external/api/recipes/associate_recipe_as_lot.yaml +0 -19
  358. type_spec/external/api/recipes/create_recipe.yaml +0 -39
  359. type_spec/external/api/recipes/create_recipes.yaml +0 -47
  360. type_spec/external/api/recipes/disassociate_recipe_as_input.yaml +0 -16
  361. type_spec/external/api/recipes/edit_recipe_inputs.yaml +0 -85
  362. type_spec/external/api/recipes/get_curve.yaml +0 -21
  363. type_spec/external/api/recipes/get_recipe_calculations.yaml +0 -39
  364. type_spec/external/api/recipes/get_recipe_links.yaml +0 -26
  365. type_spec/external/api/recipes/get_recipe_names.yaml +0 -29
  366. type_spec/external/api/recipes/get_recipe_output_metadata.yaml +0 -36
  367. type_spec/external/api/recipes/get_recipes_data.yaml +0 -244
  368. type_spec/external/api/recipes/set_recipe_inputs.yaml +0 -42
  369. type_spec/external/api/recipes/set_recipe_metadata.yaml +0 -20
  370. type_spec/external/api/recipes/set_recipe_outputs.yaml +0 -52
  371. type_spec/external/api/recipes/set_recipe_tags.yaml +0 -62
  372. type_spec/external/api/triggers/run_trigger.yaml +0 -18
  373. uncountable/integration/types.py +0 -89
@@ -0,0 +1,302 @@
1
+ # DO NOT MODIFY -- This file is generated by type_spec
2
+ # ruff: noqa: E402 Q003
3
+ # fmt: off
4
+ # isort: skip_file
5
+ from __future__ import annotations
6
+ import typing # noqa: F401
7
+ import datetime # noqa: F401
8
+ from decimal import Decimal # noqa: F401
9
+ from enum import StrEnum
10
+ import dataclasses
11
+ from pkgs.serialization import serial_class
12
+ from pkgs.serialization import serial_union_annotation
13
+ from . import base_t
14
+ from . import entity_t
15
+ from . import identifier_t
16
+
17
+ __all__: list[str] = [
18
+ "ArgumentValueId",
19
+ "ArgumentValueRefName",
20
+ "FieldArgumentValue",
21
+ "FieldRefIdNameValue",
22
+ "FieldRefNameValue",
23
+ "FieldValue",
24
+ "FieldValueBase",
25
+ "FieldValueBatchReference",
26
+ "FieldValueBoolean",
27
+ "FieldValueDate",
28
+ "FieldValueDatetime",
29
+ "FieldValueFieldOption",
30
+ "FieldValueFieldOptions",
31
+ "FieldValueFiles",
32
+ "FieldValueId",
33
+ "FieldValueIds",
34
+ "FieldValueNotes",
35
+ "FieldValueNull",
36
+ "FieldValueNumeric",
37
+ "FieldValueText",
38
+ "FieldValueTexts",
39
+ "FieldValueType",
40
+ "ValueResolution",
41
+ ]
42
+
43
+
44
+ # DO NOT MODIFY -- This file is generated by type_spec
45
+ @serial_class(
46
+ named_type_path="sdk.field_values.FieldRefNameValue",
47
+ unconverted_values={"value"},
48
+ )
49
+ @dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
50
+ class FieldRefNameValue:
51
+ field_ref_name: str
52
+ value: base_t.JsonValue
53
+ row_index: int | None = None
54
+
55
+
56
+ # DO NOT MODIFY -- This file is generated by type_spec
57
+ @serial_class(
58
+ named_type_path="sdk.field_values.FieldRefIdNameValue",
59
+ unconverted_values={"value"},
60
+ )
61
+ @dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
62
+ class FieldRefIdNameValue:
63
+ field_id: base_t.ObjectId
64
+ field_ref_name: str
65
+ value: base_t.JsonValue
66
+ row_index: int | None = None
67
+
68
+
69
+ # DO NOT MODIFY -- This file is generated by type_spec
70
+ @serial_class(
71
+ named_type_path="sdk.field_values.ArgumentValueRefName",
72
+ unconverted_values={"value"},
73
+ )
74
+ @dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
75
+ class ArgumentValueRefName:
76
+ field_ref_name: str
77
+ value: base_t.JsonValue
78
+ row_index: int | None = None
79
+
80
+
81
+ # DO NOT MODIFY -- This file is generated by type_spec
82
+ @serial_class(
83
+ named_type_path="sdk.field_values.ArgumentValueId",
84
+ unconverted_values={"value"},
85
+ )
86
+ @dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
87
+ class ArgumentValueId:
88
+ field_id: base_t.ObjectId
89
+ value: base_t.JsonValue
90
+ row_index: int | None = None
91
+
92
+
93
+ # DO NOT MODIFY -- This file is generated by type_spec
94
+ class FieldValueType(StrEnum):
95
+ FILES = "files"
96
+ TEXT = "text"
97
+ TEXTS = "texts"
98
+ ID = "id"
99
+ IDS = "ids"
100
+ BOOLEAN = "boolean"
101
+ NUMERIC = "numeric"
102
+ BATCH_REFERENCE = "batch_reference"
103
+ FIELD_OPTION = "field_option"
104
+ FIELD_OPTIONS = "field_options"
105
+ NULL_VALUE = "null_value"
106
+ NOTES = "notes"
107
+ DATE = "date"
108
+ DATETIME = "datetime"
109
+
110
+
111
+ # DO NOT MODIFY -- This file is generated by type_spec
112
+ @serial_class(
113
+ named_type_path="sdk.field_values.FieldValueBase",
114
+ )
115
+ @dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
116
+ class FieldValueBase:
117
+ type: FieldValueType
118
+
119
+
120
+ # DO NOT MODIFY -- This file is generated by type_spec
121
+ @serial_class(
122
+ named_type_path="sdk.field_values.FieldValueFiles",
123
+ parse_require={"type"},
124
+ )
125
+ @dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
126
+ class FieldValueFiles(FieldValueBase):
127
+ type: typing.Literal[FieldValueType.FILES] = FieldValueType.FILES
128
+ file_ids: list[base_t.ObjectId]
129
+
130
+
131
+ # DO NOT MODIFY -- This file is generated by type_spec
132
+ class ValueResolution(StrEnum):
133
+ DIRECT = "direct"
134
+ LABEL = "label"
135
+
136
+
137
+ # DO NOT MODIFY -- This file is generated by type_spec
138
+ @serial_class(
139
+ named_type_path="sdk.field_values.FieldValueFieldOption",
140
+ parse_require={"type"},
141
+ )
142
+ @dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
143
+ class FieldValueFieldOption(FieldValueBase):
144
+ type: typing.Literal[FieldValueType.FIELD_OPTION] = FieldValueType.FIELD_OPTION
145
+ value: str
146
+ value_resolution: ValueResolution = ValueResolution.DIRECT
147
+
148
+
149
+ # DO NOT MODIFY -- This file is generated by type_spec
150
+ @serial_class(
151
+ named_type_path="sdk.field_values.FieldValueFieldOptions",
152
+ parse_require={"type"},
153
+ )
154
+ @dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
155
+ class FieldValueFieldOptions(FieldValueBase):
156
+ type: typing.Literal[FieldValueType.FIELD_OPTIONS] = FieldValueType.FIELD_OPTIONS
157
+ value: list[str]
158
+ value_resolution: ValueResolution = ValueResolution.DIRECT
159
+
160
+
161
+ # DO NOT MODIFY -- This file is generated by type_spec
162
+ @serial_class(
163
+ named_type_path="sdk.field_values.FieldValueId",
164
+ parse_require={"type"},
165
+ )
166
+ @dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
167
+ class FieldValueId(FieldValueBase):
168
+ type: typing.Literal[FieldValueType.ID] = FieldValueType.ID
169
+ entity_type: entity_t.EntityType
170
+ identifier_key: identifier_t.IdentifierKey
171
+
172
+
173
+ # DO NOT MODIFY -- This file is generated by type_spec
174
+ @serial_class(
175
+ named_type_path="sdk.field_values.FieldValueIds",
176
+ parse_require={"type"},
177
+ )
178
+ @dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
179
+ class FieldValueIds(FieldValueBase):
180
+ type: typing.Literal[FieldValueType.IDS] = FieldValueType.IDS
181
+ entity_type: entity_t.EntityType
182
+ identifier_keys: list[identifier_t.IdentifierKey]
183
+
184
+
185
+ # DO NOT MODIFY -- This file is generated by type_spec
186
+ @serial_class(
187
+ named_type_path="sdk.field_values.FieldValueText",
188
+ parse_require={"type"},
189
+ )
190
+ @dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
191
+ class FieldValueText(FieldValueBase):
192
+ type: typing.Literal[FieldValueType.TEXT] = FieldValueType.TEXT
193
+ value: str
194
+
195
+
196
+ # DO NOT MODIFY -- This file is generated by type_spec
197
+ @serial_class(
198
+ named_type_path="sdk.field_values.FieldValueTexts",
199
+ parse_require={"type"},
200
+ )
201
+ @dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
202
+ class FieldValueTexts(FieldValueBase):
203
+ type: typing.Literal[FieldValueType.TEXTS] = FieldValueType.TEXTS
204
+ value: list[str]
205
+
206
+
207
+ # DO NOT MODIFY -- This file is generated by type_spec
208
+ @serial_class(
209
+ named_type_path="sdk.field_values.FieldValueBoolean",
210
+ parse_require={"type"},
211
+ )
212
+ @dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
213
+ class FieldValueBoolean(FieldValueBase):
214
+ type: typing.Literal[FieldValueType.BOOLEAN] = FieldValueType.BOOLEAN
215
+ value: bool
216
+
217
+
218
+ # DO NOT MODIFY -- This file is generated by type_spec
219
+ @serial_class(
220
+ named_type_path="sdk.field_values.FieldValueNumeric",
221
+ to_string_values={"value"},
222
+ parse_require={"type"},
223
+ )
224
+ @dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
225
+ class FieldValueNumeric(FieldValueBase):
226
+ type: typing.Literal[FieldValueType.NUMERIC] = FieldValueType.NUMERIC
227
+ value: Decimal
228
+
229
+
230
+ # DO NOT MODIFY -- This file is generated by type_spec
231
+ @serial_class(
232
+ named_type_path="sdk.field_values.FieldValueBatchReference",
233
+ parse_require={"type"},
234
+ )
235
+ @dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
236
+ class FieldValueBatchReference(FieldValueBase):
237
+ type: typing.Literal[FieldValueType.BATCH_REFERENCE] = FieldValueType.BATCH_REFERENCE
238
+ reference_key: identifier_t.IdentifierKeyBatchReference
239
+ data_key: str
240
+
241
+
242
+ # DO NOT MODIFY -- This file is generated by type_spec
243
+ @serial_class(
244
+ named_type_path="sdk.field_values.FieldValueNull",
245
+ parse_require={"type"},
246
+ )
247
+ @dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
248
+ class FieldValueNull(FieldValueBase):
249
+ type: typing.Literal[FieldValueType.NULL_VALUE] = FieldValueType.NULL_VALUE
250
+
251
+
252
+ # DO NOT MODIFY -- This file is generated by type_spec
253
+ @serial_class(
254
+ named_type_path="sdk.field_values.FieldValueNotes",
255
+ parse_require={"type"},
256
+ )
257
+ @dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
258
+ class FieldValueNotes(FieldValueBase):
259
+ type: typing.Literal[FieldValueType.NOTES] = FieldValueType.NOTES
260
+ value: str
261
+
262
+
263
+ # DO NOT MODIFY -- This file is generated by type_spec
264
+ @serial_class(
265
+ named_type_path="sdk.field_values.FieldValueDate",
266
+ parse_require={"type"},
267
+ )
268
+ @dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
269
+ class FieldValueDate(FieldValueBase):
270
+ type: typing.Literal[FieldValueType.DATE] = FieldValueType.DATE
271
+ value: datetime.date
272
+
273
+
274
+ # DO NOT MODIFY -- This file is generated by type_spec
275
+ @serial_class(
276
+ named_type_path="sdk.field_values.FieldValueDatetime",
277
+ parse_require={"type"},
278
+ )
279
+ @dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
280
+ class FieldValueDatetime(FieldValueBase):
281
+ type: typing.Literal[FieldValueType.DATETIME] = FieldValueType.DATETIME
282
+ value: datetime.datetime
283
+
284
+
285
+ # DO NOT MODIFY -- This file is generated by type_spec
286
+ FieldValue = typing.Annotated[
287
+ FieldValueFiles | FieldValueId | FieldValueIds | FieldValueText | FieldValueTexts | FieldValueBoolean | FieldValueNumeric | FieldValueBatchReference | FieldValueFieldOption | FieldValueFieldOptions | FieldValueNull | FieldValueNotes | FieldValueDate | FieldValueDatetime,
288
+ serial_union_annotation(
289
+ named_type_path="sdk.field_values.FieldValue",
290
+ ),
291
+ ]
292
+
293
+
294
+ # DO NOT MODIFY -- This file is generated by type_spec
295
+ @serial_class(
296
+ named_type_path="sdk.field_values.FieldArgumentValue",
297
+ )
298
+ @dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
299
+ class FieldArgumentValue:
300
+ field_key: identifier_t.IdentifierKey
301
+ value: FieldValue
302
+ # DO NOT MODIFY -- This file is generated by type_spec
@@ -1,24 +1,7 @@
1
- # DO NOT MODIFY -- This file is generated by type_spec
2
- # flake8: noqa: F821
3
- # ruff: noqa: E402
1
+ # ruff: noqa: E402 Q003
4
2
  # fmt: off
5
3
  # isort: skip_file
6
- from __future__ import annotations
7
- import typing # noqa: F401
8
- import datetime # noqa: F401
9
- from decimal import Decimal # noqa: F401
10
- from dataclasses import dataclass
11
- from . import base as base_t
12
-
13
- __all__: list[str] = [
14
- "Field",
15
- ]
16
-
17
-
18
4
  # DO NOT MODIFY -- This file is generated by type_spec
19
- @dataclass(kw_only=True)
20
- class Field:
21
- id: base_t.ObjectId
22
- name: str
23
- value_type: str
5
+ # Kept only for SDK backwards compatibility
6
+ from .fields_t import Field as Field
24
7
  # DO NOT MODIFY -- This file is generated by type_spec
@@ -0,0 +1,27 @@
1
+ # DO NOT MODIFY -- This file is generated by type_spec
2
+ # ruff: noqa: E402 Q003
3
+ # fmt: off
4
+ # isort: skip_file
5
+ from __future__ import annotations
6
+ import typing # noqa: F401
7
+ import datetime # noqa: F401
8
+ from decimal import Decimal # noqa: F401
9
+ import dataclasses
10
+ from pkgs.serialization import serial_class
11
+ from . import base_t
12
+
13
+ __all__: list[str] = [
14
+ "Field",
15
+ ]
16
+
17
+
18
+ # DO NOT MODIFY -- This file is generated by type_spec
19
+ @serial_class(
20
+ named_type_path="sdk.fields.Field",
21
+ )
22
+ @dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
23
+ class Field:
24
+ id: base_t.ObjectId
25
+ name: str
26
+ value_type: str
27
+ # DO NOT MODIFY -- This file is generated by type_spec
@@ -0,0 +1,14 @@
1
+ # ruff: noqa: E402 Q003
2
+ # fmt: off
3
+ # isort: skip_file
4
+ # DO NOT MODIFY -- This file is generated by type_spec
5
+ # Kept only for SDK backwards compatibility
6
+ from .generic_upload_t import GenericRemoteDirectoryScope as GenericRemoteDirectoryScope
7
+ from .generic_upload_t import UploadDestinationType as UploadDestinationType
8
+ from .generic_upload_t import UploadDestinationBase as UploadDestinationBase
9
+ from .generic_upload_t import UploadDestinationProject as UploadDestinationProject
10
+ from .generic_upload_t import UploadDestinationMaterialFamily as UploadDestinationMaterialFamily
11
+ from .generic_upload_t import UploadDestinationRecipe as UploadDestinationRecipe
12
+ from .generic_upload_t import UploadDestination as UploadDestination
13
+ from .generic_upload_t import GenericUploadStrategy as GenericUploadStrategy
14
+ # DO NOT MODIFY -- This file is generated by type_spec
@@ -0,0 +1,119 @@
1
+ # DO NOT MODIFY -- This file is generated by type_spec
2
+ # ruff: noqa: E402 Q003
3
+ # fmt: off
4
+ # isort: skip_file
5
+ from __future__ import annotations
6
+ import typing # noqa: F401
7
+ import datetime # noqa: F401
8
+ from decimal import Decimal # noqa: F401
9
+ from enum import StrEnum
10
+ import dataclasses
11
+ from pkgs.serialization import serial_class
12
+ from pkgs.serialization import serial_union_annotation
13
+ from . import base_t
14
+ from . import identifier_t
15
+
16
+ __all__: list[str] = [
17
+ "GenericRemoteDirectoryScope",
18
+ "GenericUploadStrategy",
19
+ "UploadDestination",
20
+ "UploadDestinationBase",
21
+ "UploadDestinationMaterialFamily",
22
+ "UploadDestinationProject",
23
+ "UploadDestinationRecipe",
24
+ "UploadDestinationType",
25
+ ]
26
+
27
+
28
+ # DO NOT MODIFY -- This file is generated by type_spec
29
+ @serial_class(
30
+ named_type_path="sdk.generic_upload.GenericRemoteDirectoryScope",
31
+ )
32
+ @dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
33
+ class GenericRemoteDirectoryScope:
34
+ src_path: str
35
+ success_archive_path: str
36
+ failure_archive_path: str
37
+ recursive: bool
38
+ prepend_date_on_archive: bool
39
+ valid_file_extensions: list[str] | None = None
40
+ filename_regex: str | None = None
41
+ max_files: int | None = None
42
+ detection_keyword: str | None = None
43
+ delimiter: str | None = None
44
+
45
+
46
+ # DO NOT MODIFY -- This file is generated by type_spec
47
+ class UploadDestinationType(StrEnum):
48
+ PROJECT = "project"
49
+ MATERIAL_FAMILY = "material_family"
50
+ RECIPE = "recipe"
51
+
52
+
53
+ # DO NOT MODIFY -- This file is generated by type_spec
54
+ @serial_class(
55
+ named_type_path="sdk.generic_upload.UploadDestinationBase",
56
+ )
57
+ @dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
58
+ class UploadDestinationBase:
59
+ type: UploadDestinationType
60
+
61
+
62
+ # DO NOT MODIFY -- This file is generated by type_spec
63
+ @serial_class(
64
+ named_type_path="sdk.generic_upload.UploadDestinationProject",
65
+ parse_require={"type"},
66
+ )
67
+ @dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
68
+ class UploadDestinationProject(UploadDestinationBase):
69
+ type: typing.Literal[UploadDestinationType.PROJECT] = UploadDestinationType.PROJECT
70
+ project_key: identifier_t.IdentifierKey
71
+
72
+
73
+ # DO NOT MODIFY -- This file is generated by type_spec
74
+ @serial_class(
75
+ named_type_path="sdk.generic_upload.UploadDestinationMaterialFamily",
76
+ parse_require={"type"},
77
+ )
78
+ @dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
79
+ class UploadDestinationMaterialFamily(UploadDestinationBase):
80
+ type: typing.Literal[UploadDestinationType.MATERIAL_FAMILY] = UploadDestinationType.MATERIAL_FAMILY
81
+ material_family_key: identifier_t.IdentifierKey
82
+
83
+
84
+ # DO NOT MODIFY -- This file is generated by type_spec
85
+ @serial_class(
86
+ named_type_path="sdk.generic_upload.UploadDestinationRecipe",
87
+ parse_require={"type"},
88
+ )
89
+ @dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
90
+ class UploadDestinationRecipe(UploadDestinationBase):
91
+ type: typing.Literal[UploadDestinationType.RECIPE] = UploadDestinationType.RECIPE
92
+ recipe_key: identifier_t.IdentifierKey
93
+
94
+
95
+ # DO NOT MODIFY -- This file is generated by type_spec
96
+ UploadDestination = typing.Annotated[
97
+ UploadDestinationProject | UploadDestinationMaterialFamily | UploadDestinationRecipe,
98
+ serial_union_annotation(
99
+ named_type_path="sdk.generic_upload.UploadDestination",
100
+ discriminator="type",
101
+ discriminator_map={
102
+ "project": UploadDestinationProject,
103
+ "material_family": UploadDestinationMaterialFamily,
104
+ "recipe": UploadDestinationRecipe,
105
+ },
106
+ ),
107
+ ]
108
+
109
+
110
+ # DO NOT MODIFY -- This file is generated by type_spec
111
+ @serial_class(
112
+ named_type_path="sdk.generic_upload.GenericUploadStrategy",
113
+ )
114
+ @dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
115
+ class GenericUploadStrategy:
116
+ uploader_key: identifier_t.IdentifierKey
117
+ destinations: list[UploadDestination]
118
+ skip_moving_files: bool = False
119
+ # DO NOT MODIFY -- This file is generated by type_spec
@@ -1,49 +1,11 @@
1
- # DO NOT MODIFY -- This file is generated by type_spec
2
- # flake8: noqa: F821
3
- # ruff: noqa: E402
1
+ # ruff: noqa: E402 Q003
4
2
  # fmt: off
5
3
  # isort: skip_file
6
- from __future__ import annotations
7
- import typing # noqa: F401
8
- import datetime # noqa: F401
9
- from decimal import Decimal # noqa: F401
10
- from dataclasses import dataclass
11
- from . import entity as entity_t
12
-
13
- __all__: list[str] = [
14
- "IdSourceSpec",
15
- "IdSourceSpecBase",
16
- "IdSourceSpecCustomEntity",
17
- "IdSourceSpecEntity",
18
- "IdSourceSpecFieldOptions",
19
- ]
20
-
21
-
22
- # DO NOT MODIFY -- This file is generated by type_spec
23
- @dataclass(kw_only=True)
24
- class IdSourceSpecBase:
25
- pass
26
-
27
-
28
- # DO NOT MODIFY -- This file is generated by type_spec
29
- @dataclass(kw_only=True)
30
- class IdSourceSpecEntity(IdSourceSpecBase):
31
- entity_type: entity_t.EntityType
32
-
33
-
34
- # DO NOT MODIFY -- This file is generated by type_spec
35
- @dataclass(kw_only=True)
36
- class IdSourceSpecCustomEntity(IdSourceSpecBase):
37
- definition_ref_name: str
38
-
39
-
40
- # DO NOT MODIFY -- This file is generated by type_spec
41
- @dataclass(kw_only=True)
42
- class IdSourceSpecFieldOptions(IdSourceSpecBase):
43
- set_ref_name: str
44
- subset_ref_name: typing.Optional[str] = None
45
-
46
-
47
4
  # DO NOT MODIFY -- This file is generated by type_spec
48
- IdSourceSpec = typing.Union[IdSourceSpecEntity, IdSourceSpecCustomEntity, IdSourceSpecFieldOptions]
5
+ # Kept only for SDK backwards compatibility
6
+ from .id_source_t import IdSourceSpecBase as IdSourceSpecBase
7
+ from .id_source_t import IdSourceSpecEntity as IdSourceSpecEntity
8
+ from .id_source_t import IdSourceSpecCustomEntity as IdSourceSpecCustomEntity
9
+ from .id_source_t import IdSourceSpecFieldOptions as IdSourceSpecFieldOptions
10
+ from .id_source_t import IdSourceSpec as IdSourceSpec
49
11
  # DO NOT MODIFY -- This file is generated by type_spec
@@ -0,0 +1,68 @@
1
+ # DO NOT MODIFY -- This file is generated by type_spec
2
+ # ruff: noqa: E402 Q003
3
+ # fmt: off
4
+ # isort: skip_file
5
+ from __future__ import annotations
6
+ import typing # noqa: F401
7
+ import datetime # noqa: F401
8
+ from decimal import Decimal # noqa: F401
9
+ import dataclasses
10
+ from pkgs.serialization import serial_class
11
+ from pkgs.serialization import serial_alias_annotation
12
+ from . import base_t
13
+ from . import entity_t
14
+
15
+ __all__: list[str] = [
16
+ "IdSourceSpec",
17
+ "IdSourceSpecBase",
18
+ "IdSourceSpecCustomEntity",
19
+ "IdSourceSpecEntity",
20
+ "IdSourceSpecFieldOptions",
21
+ ]
22
+
23
+
24
+ # DO NOT MODIFY -- This file is generated by type_spec
25
+ @serial_class(
26
+ named_type_path="sdk.id_source.IdSourceSpecBase",
27
+ )
28
+ @dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
29
+ class IdSourceSpecBase:
30
+ pass
31
+
32
+
33
+ # DO NOT MODIFY -- This file is generated by type_spec
34
+ @serial_class(
35
+ named_type_path="sdk.id_source.IdSourceSpecEntity",
36
+ )
37
+ @dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
38
+ class IdSourceSpecEntity(IdSourceSpecBase):
39
+ entity_type: entity_t.EntityType
40
+
41
+
42
+ # DO NOT MODIFY -- This file is generated by type_spec
43
+ @serial_class(
44
+ named_type_path="sdk.id_source.IdSourceSpecCustomEntity",
45
+ )
46
+ @dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
47
+ class IdSourceSpecCustomEntity(IdSourceSpecBase):
48
+ definition_ref_name: str
49
+
50
+
51
+ # DO NOT MODIFY -- This file is generated by type_spec
52
+ @serial_class(
53
+ named_type_path="sdk.id_source.IdSourceSpecFieldOptions",
54
+ )
55
+ @dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
56
+ class IdSourceSpecFieldOptions(IdSourceSpecBase):
57
+ set_ref_name: str
58
+ subset_ref_name: str | None = None
59
+
60
+
61
+ # DO NOT MODIFY -- This file is generated by type_spec
62
+ IdSourceSpec = typing.Annotated[
63
+ IdSourceSpecEntity | IdSourceSpecCustomEntity | IdSourceSpecFieldOptions,
64
+ serial_alias_annotation(
65
+ named_type_path="sdk.id_source.IdSourceSpec",
66
+ ),
67
+ ]
68
+ # DO NOT MODIFY -- This file is generated by type_spec
@@ -1,54 +1,10 @@
1
- # DO NOT MODIFY -- This file is generated by type_spec
2
- # flake8: noqa: F821
3
- # ruff: noqa: E402
1
+ # ruff: noqa: E402 Q003
4
2
  # fmt: off
5
3
  # isort: skip_file
6
- from __future__ import annotations
7
- import typing # noqa: F401
8
- import datetime # noqa: F401
9
- from decimal import Decimal # noqa: F401
10
- from dataclasses import dataclass
11
- from pkgs.serialization import serial_class
12
- from . import base as base_t
13
-
14
- __all__: list[str] = [
15
- "IdentifierKey",
16
- "IdentifierKeyBatchReference",
17
- "IdentifierKeyId",
18
- "IdentifierKeyRefName",
19
- ]
20
-
21
-
22
- # DO NOT MODIFY -- This file is generated by type_spec
23
- @serial_class(
24
- parse_require={"type"},
25
- )
26
- @dataclass(kw_only=True, frozen=True, eq=True)
27
- class IdentifierKeyId:
28
- type: typing.Literal["id"] = "id"
29
- id: base_t.ObjectId
30
-
31
-
32
- # DO NOT MODIFY -- This file is generated by type_spec
33
- @serial_class(
34
- parse_require={"type"},
35
- )
36
- @dataclass(kw_only=True, frozen=True, eq=True)
37
- class IdentifierKeyRefName:
38
- type: typing.Literal["ref_name"] = "ref_name"
39
- ref_name: str
40
-
41
-
42
- # DO NOT MODIFY -- This file is generated by type_spec
43
- @serial_class(
44
- parse_require={"type"},
45
- )
46
- @dataclass(kw_only=True, frozen=True, eq=True)
47
- class IdentifierKeyBatchReference:
48
- type: typing.Literal["batch_reference"] = "batch_reference"
49
- reference: str
50
-
51
-
52
4
  # DO NOT MODIFY -- This file is generated by type_spec
53
- IdentifierKey = typing.Union[IdentifierKeyId, IdentifierKeyBatchReference, IdentifierKeyRefName]
5
+ # Kept only for SDK backwards compatibility
6
+ from .identifier_t import IdentifierKeyId as IdentifierKeyId
7
+ from .identifier_t import IdentifierKeyRefName as IdentifierKeyRefName
8
+ from .identifier_t import IdentifierKeyBatchReference as IdentifierKeyBatchReference
9
+ from .identifier_t import IdentifierKey as IdentifierKey
54
10
  # DO NOT MODIFY -- This file is generated by type_spec