UncountablePythonSDK 0.0.71__py3-none-any.whl → 0.0.73__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 (112) hide show
  1. {UncountablePythonSDK-0.0.71.dist-info → UncountablePythonSDK-0.0.73.dist-info}/METADATA +1 -1
  2. {UncountablePythonSDK-0.0.71.dist-info → UncountablePythonSDK-0.0.73.dist-info}/RECORD +112 -112
  3. examples/integration-server/jobs/materials_auto/profile.yaml +1 -1
  4. examples/integration-server/pyproject.toml +1 -1
  5. pkgs/serialization/serial_class.py +5 -0
  6. pkgs/serialization/serial_union.py +3 -0
  7. pkgs/type_spec/builder.py +2 -1
  8. pkgs/type_spec/config.py +5 -0
  9. pkgs/type_spec/emit_python.py +36 -20
  10. pkgs/type_spec/load_types.py +3 -2
  11. uncountable/core/client.py +2 -2
  12. uncountable/integration/cli.py +18 -44
  13. uncountable/integration/entrypoint.py +1 -9
  14. uncountable/integration/queue_runner/worker.py +9 -5
  15. uncountable/integration/server.py +63 -66
  16. uncountable/types/api/batch/execute_batch.py +8 -0
  17. uncountable/types/api/batch/execute_batch_load_async.py +7 -0
  18. uncountable/types/api/chemical/convert_chemical_formats.py +7 -0
  19. uncountable/types/api/entity/create_entities.py +11 -1
  20. uncountable/types/api/entity/create_entity.py +8 -1
  21. uncountable/types/api/entity/get_entities_data.py +10 -0
  22. uncountable/types/api/entity/list_entities.py +8 -0
  23. uncountable/types/api/entity/lock_entity.py +7 -0
  24. uncountable/types/api/entity/resolve_entity_ids.py +10 -0
  25. uncountable/types/api/entity/set_values.py +7 -0
  26. uncountable/types/api/entity/transition_entity_phase.py +8 -0
  27. uncountable/types/api/entity/unlock_entity.py +7 -0
  28. uncountable/types/api/equipment/associate_equipment_input.py +7 -0
  29. uncountable/types/api/field_options/upsert_field_options.py +10 -0
  30. uncountable/types/api/id_source/list_id_source.py +10 -0
  31. uncountable/types/api/id_source/match_id_source.py +10 -0
  32. uncountable/types/api/input_groups/get_input_group_names.py +10 -0
  33. uncountable/types/api/inputs/create_inputs.py +13 -0
  34. uncountable/types/api/inputs/get_input_data.py +19 -0
  35. uncountable/types/api/inputs/get_input_names.py +10 -0
  36. uncountable/types/api/inputs/get_inputs_data.py +19 -0
  37. uncountable/types/api/inputs/set_input_attribute_values.py +7 -0
  38. uncountable/types/api/inputs/set_input_category.py +7 -0
  39. uncountable/types/api/inputs/set_input_subcategories.py +7 -0
  40. uncountable/types/api/inputs/set_intermediate_type.py +7 -0
  41. uncountable/types/api/material_families/update_entity_material_families.py +7 -0
  42. uncountable/types/api/outputs/get_output_data.py +16 -0
  43. uncountable/types/api/outputs/get_output_names.py +10 -0
  44. uncountable/types/api/outputs/resolve_output_conditions.py +13 -0
  45. uncountable/types/api/permissions/set_core_permissions.py +10 -0
  46. uncountable/types/api/project/get_projects.py +10 -0
  47. uncountable/types/api/project/get_projects_data.py +10 -0
  48. uncountable/types/api/recipe_links/create_recipe_link.py +7 -0
  49. uncountable/types/api/recipe_links/remove_recipe_link.py +7 -0
  50. uncountable/types/api/recipe_metadata/get_recipe_metadata_data.py +10 -0
  51. uncountable/types/api/recipes/add_recipe_to_project.py +7 -0
  52. uncountable/types/api/recipes/archive_recipes.py +7 -0
  53. uncountable/types/api/recipes/associate_recipe_as_input.py +7 -0
  54. uncountable/types/api/recipes/associate_recipe_as_lot.py +7 -0
  55. uncountable/types/api/recipes/clear_recipe_outputs.py +7 -0
  56. uncountable/types/api/recipes/create_recipe.py +7 -0
  57. uncountable/types/api/recipes/create_recipes.py +13 -0
  58. uncountable/types/api/recipes/disassociate_recipe_as_input.py +7 -0
  59. uncountable/types/api/recipes/edit_recipe_inputs.py +20 -0
  60. uncountable/types/api/recipes/get_curve.py +7 -0
  61. uncountable/types/api/recipes/get_recipe_calculations.py +7 -0
  62. uncountable/types/api/recipes/get_recipe_links.py +7 -0
  63. uncountable/types/api/recipes/get_recipe_names.py +10 -0
  64. uncountable/types/api/recipes/get_recipe_output_metadata.py +7 -0
  65. uncountable/types/api/recipes/get_recipes_data.py +25 -0
  66. uncountable/types/api/recipes/lock_recipes.py +10 -0
  67. uncountable/types/api/recipes/remove_recipe_from_project.py +7 -0
  68. uncountable/types/api/recipes/set_recipe_inputs.py +7 -0
  69. uncountable/types/api/recipes/set_recipe_metadata.py +7 -0
  70. uncountable/types/api/recipes/set_recipe_output_annotations.py +13 -0
  71. uncountable/types/api/recipes/set_recipe_output_file.py +10 -0
  72. uncountable/types/api/recipes/set_recipe_outputs.py +10 -0
  73. uncountable/types/api/recipes/set_recipe_tags.py +12 -0
  74. uncountable/types/api/recipes/unarchive_recipes.py +7 -0
  75. uncountable/types/api/recipes/unlock_recipes.py +7 -0
  76. uncountable/types/api/triggers/run_trigger.py +7 -0
  77. uncountable/types/api/uploader/invoke_uploader.py +7 -0
  78. uncountable/types/async_batch_t.py +10 -0
  79. uncountable/types/calculations_t.py +4 -0
  80. uncountable/types/chemical_structure_t.py +1 -0
  81. uncountable/types/client_base.py +2 -2
  82. uncountable/types/client_config_t.py +4 -0
  83. uncountable/types/curves_t.py +4 -0
  84. uncountable/types/entity_t.py +6 -0
  85. uncountable/types/experiment_groups_t.py +4 -0
  86. uncountable/types/field_values_t.py +4 -0
  87. uncountable/types/fields_t.py +4 -0
  88. uncountable/types/generic_upload_t.py +13 -0
  89. uncountable/types/id_source_t.py +13 -0
  90. uncountable/types/identifier_t.py +3 -0
  91. uncountable/types/input_attributes_t.py +1 -0
  92. uncountable/types/inputs_t.py +4 -0
  93. uncountable/types/job_definition_t.py +33 -0
  94. uncountable/types/outputs_t.py +4 -0
  95. uncountable/types/overrides_t.py +7 -0
  96. uncountable/types/phases_t.py +4 -0
  97. uncountable/types/queued_job_t.py +16 -0
  98. uncountable/types/recipe_identifiers_t.py +3 -0
  99. uncountable/types/recipe_links_t.py +4 -0
  100. uncountable/types/recipe_metadata_t.py +5 -0
  101. uncountable/types/recipe_output_metadata_t.py +4 -0
  102. uncountable/types/recipe_tags_t.py +4 -0
  103. uncountable/types/recipe_workflow_steps_t.py +7 -0
  104. uncountable/types/recipes_t.py +4 -0
  105. uncountable/types/response_t.py +1 -0
  106. uncountable/types/secret_retrieval_t.py +6 -0
  107. uncountable/types/units_t.py +4 -0
  108. uncountable/types/users_t.py +4 -0
  109. uncountable/types/webhook_job_t.py +4 -0
  110. uncountable/types/workflows_t.py +7 -0
  111. {UncountablePythonSDK-0.0.71.dist-info → UncountablePythonSDK-0.0.73.dist-info}/WHEEL +0 -0
  112. {UncountablePythonSDK-0.0.71.dist-info → UncountablePythonSDK-0.0.73.dist-info}/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: UncountablePythonSDK
3
- Version: 0.0.71
3
+ Version: 0.0.73
4
4
  Summary: Uncountable SDK
5
5
  Project-URL: Homepage, https://github.com/uncountableinc/uncountable-python-sdk
6
6
  Project-URL: Repository, https://github.com/uncountableinc/uncountable-python-sdk.git
@@ -21,9 +21,9 @@ examples/invoke_uploader.py,sha256=rEvmVY5TjigN_-4PTQdkjY-bC5DrYMcJgquyZ4Tt5FM,7
21
21
  examples/set_recipe_metadata_file.py,sha256=oPBhMo9T17zj4YpJRkmVH9lknYcT8livph0KssxYtg4,1048
22
22
  examples/set_recipe_output_file_sdk.py,sha256=Lz1amqppnWTX83z-C090wCJ4hcKmCD3kb-4v0uBRi0Y,782
23
23
  examples/upload_files.py,sha256=tUfKFqiqwnw08OL5Y8_e4j5pSRhp94cFex8XTuVa_ig,487
24
- examples/integration-server/pyproject.toml,sha256=yVYpx5VG3bKQCYjmCSKN_MRjxoOoF2xF2KzkCcvDHh4,9134
24
+ examples/integration-server/pyproject.toml,sha256=mB0uj-_Wo8WRmhdMwOwcdOB5lAhiW_8Kf-epMFrOq34,9133
25
25
  examples/integration-server/jobs/materials_auto/example_cron.py,sha256=7VVQ-UJsq3DbGpN3XPnorRVZYo-vCwbfSU3VVDluIzA,699
26
- examples/integration-server/jobs/materials_auto/profile.yaml,sha256=WZTNlgc8uH412oRmWHWWuenYo_6LnrIL11V0HMkGsB0,352
26
+ examples/integration-server/jobs/materials_auto/profile.yaml,sha256=MiqT9AHWoFz-rcpAHfiFTXuCP-18DaFipUaceati0-0,365
27
27
  pkgs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
28
28
  pkgs/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
29
29
  pkgs/argument_parser/__init__.py,sha256=CsQ6QoPKSLLRVl-z6URAmPkiUL9ZPZoV4rJHgy_-RjA,385
@@ -41,8 +41,8 @@ pkgs/filesystem_utils/filesystem_session.py,sha256=BQ2Go8Mu9-GcnaWh2Pm4x7ugLVsre
41
41
  pkgs/serialization/__init__.py,sha256=LifasRW0a50A3qRFmo2bf3FQ6TXhZWOTz2-CVTgPjcQ,753
42
42
  pkgs/serialization/missing_sentry.py,sha256=aM_9KxbCk9dVvXvcOKgkIQBqFWvLhv8QlIUCiuFEXMo,806
43
43
  pkgs/serialization/opaque_key.py,sha256=FIfXEE0DA1U8R_taFbQ1RCoTSgehrPjP06-qvo-GeNQ,177
44
- pkgs/serialization/serial_class.py,sha256=2oH5XZ04R14knr7eTB3afPQwpuaW0qUvt3woS5Q0y5Y,5370
45
- pkgs/serialization/serial_union.py,sha256=z8Ptj4bVHyb1ROfg0UPTwZ6Ef6iXLr0YJfAH5o_PU9A,2601
44
+ pkgs/serialization/serial_class.py,sha256=tD9kNotc6BOzkGi8yew89Wp_fSIA3a0VW7I8cSS_jHI,5607
45
+ pkgs/serialization/serial_union.py,sha256=xpdeqCrRd0sNCaUwBQRzje6V40ndCbJpZrLX2K0d5xo,2741
46
46
  pkgs/serialization/yaml.py,sha256=yoJtu7_ixnJV6uTxA_U1PpK5F_ixT08AKVh5ocyYwXM,1466
47
47
  pkgs/serialization_util/__init__.py,sha256=MVKqHTUl2YnWZAFG9xCxu1SgmkQ5xPofrAGlYg6h7rI,330
48
48
  pkgs/serialization_util/_get_type_for_serialization.py,sha256=dW5_W9MFd6wgWfW5qlWork-GBb-QFLtiOZkjk2Zqn2M,1177
@@ -52,15 +52,15 @@ pkgs/strenum_compat/__init__.py,sha256=wXRFeNvBm8RU6dy1PFJ5sRLgUIEeH_DVR95Sv5qpG
52
52
  pkgs/strenum_compat/strenum_compat.py,sha256=uOUAgpYTjHs1MX8dG81jRlyTkt3KNbkV_25zp7xTX2s,36
53
53
  pkgs/type_spec/__init__.py,sha256=h5DmJTca4QVV10sZR1x0-MlkZfuGYDfapR3zHvXfzto,19
54
54
  pkgs/type_spec/__main__.py,sha256=5bJaX9Y_-FavP0qwzhk-z-V97UY7uaezJTa1zhO_HHQ,1048
55
- pkgs/type_spec/builder.py,sha256=dC-TLQ6_nJfDUKYPNHkqwP_9e1RanZMeK8PX-jvXpe4,46825
56
- pkgs/type_spec/config.py,sha256=yq4pxv6huIXd-GAGEicSK07rPTJQtgutC7oECxliHZU,4660
55
+ pkgs/type_spec/builder.py,sha256=EUMEc0Mj0p9vb5QYojpe7Eu1UQB0Mg0p3oGzqTrtWZA,46888
56
+ pkgs/type_spec/config.py,sha256=ZUmPWCzTwjesAqlqeL1_E_yoIUZE_8g0kI2yXtbU0Zc,4811
57
57
  pkgs/type_spec/emit_io_ts.py,sha256=U03sQBpgRqYOaMKrPCRnYb70YboiCgaZfseCXSzW5NY,5707
58
58
  pkgs/type_spec/emit_open_api.py,sha256=5a0iAHBbgFD4wfKuyjPvxCYYHNTjKxEHA0aYjMGSqe4,24596
59
59
  pkgs/type_spec/emit_open_api_util.py,sha256=x4GCiZSGdypJ9Qtm6I5W_3UvwdJyMs8_OGhJ8_THznA,2401
60
- pkgs/type_spec/emit_python.py,sha256=SB0-KOuqo-PxZPFKvMfzZoSp71CGEBX3ZNE8f3HlkYA,46973
60
+ pkgs/type_spec/emit_python.py,sha256=u09ueuF5ypUsyNkxnBFGsS8tivVsjvmUCkPLM_RIask,47466
61
61
  pkgs/type_spec/emit_typescript.py,sha256=Tv8EbXBQewZN9q3zRKfTy9lWwElBmIV6fprIjA4RmJQ,18010
62
62
  pkgs/type_spec/emit_typescript_util.py,sha256=sR7ys3Ilnh6SQiXJbfYk4pxfOu0bDjbUFTEYEW-ud6c,863
63
- pkgs/type_spec/load_types.py,sha256=BOLyndtxPqqhUqZAh-lIbN5IZBaW_m-bdYpKGsbPyXM,3654
63
+ pkgs/type_spec/load_types.py,sha256=vO8VLI7aTKzzHQIla-WO-5Z_mfTuwUqH4ZSKN9E9n5U,3688
64
64
  pkgs/type_spec/open_api_util.py,sha256=IGh-_snGPST_P_8FdYtO8MTEa9PUxRW6Rzg9X9EgQik,7114
65
65
  pkgs/type_spec/test.py,sha256=4ueujBq-pEgnX3Z69HyPmD-bullFXmpixcpVzfOkhP4,489
66
66
  pkgs/type_spec/util.py,sha256=6m6MPfY-SwjyZf2FWQKclswWB5o7gcdd-3tdpViPYOQ,4844
@@ -80,19 +80,19 @@ uncountable/__init__.py,sha256=8l8XWNCKsu7TG94c-xa2KHpDegvxDC2FyQISdWC763Y,89
80
80
  uncountable/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
81
81
  uncountable/core/__init__.py,sha256=RFv0kO6rKFf1PtBPu83hCGmxqkJamRtsgQ9_-ztw7tA,341
82
82
  uncountable/core/async_batch.py,sha256=Gur0VOS0AH2ugwvk65hwoX-iqwQAAyJaejY_LyAZZPo,1210
83
- uncountable/core/client.py,sha256=KUJN3XcbawMg_GuJ5DvmDsmhRzsnafCjyq27vOD4jC4,10640
83
+ uncountable/core/client.py,sha256=qTM61IJV4DTE2LsTZyv4kePBZAv55vncWt2rtBf-SLQ,10632
84
84
  uncountable/core/environment.py,sha256=n46mWvG5uBOy6H_aetu_iuaYmO_d23uSbQBRgb6xStw,677
85
85
  uncountable/core/file_upload.py,sha256=qR7BBBWVxFNrb1_WICreo3dkZygE9lcE1fmZCQrDZU0,3469
86
86
  uncountable/core/types.py,sha256=s2CjqYJpsmbC7xMwxxT7kJ_V9bwokrjjWVVjpMcQpKI,333
87
87
  uncountable/integration/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
88
- uncountable/integration/cli.py,sha256=wv9XHXujO0Zop-R4jmjNQttPOjEDQlXPfvmfZ5HW9QE,2898
88
+ uncountable/integration/cli.py,sha256=h3RE0l1SdjkveOKeY2amlmrJppK4HEQJXk8VG9UJRWg,1359
89
89
  uncountable/integration/construct_client.py,sha256=I2XTamht13vs-JYkV4PpNS_Pc4FJm-KVYqNNvxI4qNk,1916
90
90
  uncountable/integration/cron.py,sha256=6eH-kIs3sdYPCyb62_L2M7U_uQTdMTdwY5hreEJb0hw,887
91
- uncountable/integration/entrypoint.py,sha256=EjJdTmED80MrVcNoQ5BhFP3bAYHdU6CzRGiPSZF9y8w,802
91
+ uncountable/integration/entrypoint.py,sha256=BHOYPQgKvZE6HG8Rv15MkdYl8lRkvfDgv1OdLo0oQ9Q,433
92
92
  uncountable/integration/job.py,sha256=af197JUceIKzpIN5C2z8zeZOPhIQ16ipyC6qVt1WXv0,2386
93
93
  uncountable/integration/scan_profiles.py,sha256=ro4u5_1ClUeyW4vcWJ9epf2UQaJrjtc7S1R5bZpuHTM,1430
94
94
  uncountable/integration/scheduler.py,sha256=sVe7V5zlUbSzSMyC30rAlWR30w0jurhrYYCgK8-lVRo,4546
95
- uncountable/integration/server.py,sha256=-ALtXNlBDnDbeSJcqAHHJzl46mGuq43aIM9RLzG-ZWA,4701
95
+ uncountable/integration/server.py,sha256=zUDj2W45ih_UyvGou0Dsep9RVXb5m0o8i6mkm4BQCrg,5066
96
96
  uncountable/integration/telemetry.py,sha256=MwQLmgCoxpmA_UTp3e2ZB37wcDzKM0qzm5MrmaiJWhU,7142
97
97
  uncountable/integration/db/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
98
98
  uncountable/integration/db/connect.py,sha256=mE3bdV0huclH2iT_dXCQdRL4LkjIuf_myAR64RTWXEs,498
@@ -105,7 +105,7 @@ uncountable/integration/queue_runner/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeu
105
105
  uncountable/integration/queue_runner/job_scheduler.py,sha256=n6bM6ZqVOPD0PoJuZV5Y5tuhmw2gI-_p6JbnVlK42uI,5016
106
106
  uncountable/integration/queue_runner/queue_runner.py,sha256=0BmYu5zHdothTevGsB-nXg6MBd1UD-WkP3h1WCKMdQg,710
107
107
  uncountable/integration/queue_runner/types.py,sha256=8qTq29BTSa5rmW6CBlBntP0pNIiDcwu1wHa78pjroS0,219
108
- uncountable/integration/queue_runner/worker.py,sha256=GNz8PmPUBMLA-R2VWkC_86WOaeHjHFI2mvBlNRcI3wE,4238
108
+ uncountable/integration/queue_runner/worker.py,sha256=wS_Mv12MtG9ULz2K4nUdivUAxJdZmd6B6GEUhqysG2A,4403
109
109
  uncountable/integration/queue_runner/command_server/__init__.py,sha256=gQPVILGpWzCr2i5GJyoqna7AOSFvtn4tav69gB78mTQ,571
110
110
  uncountable/integration/queue_runner/command_server/command_client.py,sha256=DJb0TUVFkiiLBEQzHSN94sTRnuEbutNEgdN39XmnOXI,2046
111
111
  uncountable/integration/queue_runner/command_server/command_server.py,sha256=yyXryhiEC2eGS0yFElLGsVzSKwOuYvj-zp22jQorkv0,2138
@@ -125,159 +125,159 @@ uncountable/integration/webhook_server/entrypoint.py,sha256=hgbEtdVo3QU3odlHSygx
125
125
  uncountable/types/__init__.py,sha256=KSsSEBnGhn88NPex5q9MZtY4kj8PRqVTbaKtko4hxUU,8561
126
126
  uncountable/types/async_batch.py,sha256=_OhT25_dEVts_z_n1kqfJH3xlZg3btLqR6TNkfFLlXE,609
127
127
  uncountable/types/async_batch_processor.py,sha256=obVzN-PcYLV2pHScszfCGjSq6-Xc34WM1ysx6Fv6tZk,11293
128
- uncountable/types/async_batch_t.py,sha256=ipSGz93O1KB-WE2dvlvflTKS51rJrf3bJkUojyxos7I,2193
128
+ uncountable/types/async_batch_t.py,sha256=CZ-rltFUiKVowvL5BhMfWaFxgf-Z0KPsghvjsg-PweY,2493
129
129
  uncountable/types/base.py,sha256=xVSjWvA_fUUnkCg83EjoYEFvAfmskinKFMeYFOxNc9E,359
130
130
  uncountable/types/base_t.py,sha256=XXjZXexx0xWFUxMMhW8i9nIL6n8dsZVsHwdgnhZ0zJ4,2714
131
131
  uncountable/types/calculations.py,sha256=FFO_D3BbKoGDZnqWvTKpW4KF359i2vrKjpdFCLYzJC0,284
132
- uncountable/types/calculations_t.py,sha256=7GTSi2L8NYjzjUJJx3cmtVkK9uD-uhfYvIFK-ffQj-8,556
132
+ uncountable/types/calculations_t.py,sha256=157qD0VqijD5kNDF5BRsfGli3WaPGnNjoo2o2CPX-Ik,669
133
133
  uncountable/types/chemical_structure.py,sha256=E-LnikTFDoVQ1b2zKaVUIO_PAKm-7aZZYJi8I8SDSic,302
134
- uncountable/types/chemical_structure_t.py,sha256=aFsTkkbzy6Gvyde3qrrEYD95gcYhxkgKMiDRaRE0o-Y,760
135
- uncountable/types/client_base.py,sha256=wgAU6xbOmY9oiKN54JYoJmA3UzJSXewCI2YBWzweuHs,67232
134
+ uncountable/types/chemical_structure_t.py,sha256=zDJ6WkeT3YwWZRZT21znQn2ZYelv3L7yv7kJiGoNZCw,824
135
+ uncountable/types/client_base.py,sha256=KfeZ_PrfHO0U-4cUDXA9Kfy7slHfuxsANakKQJaFHV8,67320
136
136
  uncountable/types/client_config.py,sha256=4h5Liko9uKCo9_0gdbPhoK6Jr2Kv7tioLiQ8iKeq-_4,301
137
- uncountable/types/client_config_t.py,sha256=_HdS37gMSTIiD4qLnW9dIgt8_Rt5A6xhwMGGga7vnLg,625
137
+ uncountable/types/client_config_t.py,sha256=6dStfR0IEHiPW8f9_aF3DD_tHmXXw2rEVrgpebzq8Fg,747
138
138
  uncountable/types/curves.py,sha256=W6uMpG5SyW1MS82szNpxkFEn1MnxNpBFyFbQb2Ysfng,366
139
- uncountable/types/curves_t.py,sha256=TDpsThz4lKmiBmS9b4ItUSCp64TGv8-qDkxb4B2RoTo,1314
139
+ uncountable/types/curves_t.py,sha256=lKhRM-2cZ_sFaW7pa_I_Ipz_pJhm3_yTFehRXI79pKk,1416
140
140
  uncountable/types/entity.py,sha256=3XhLteFDRDZvHejDuYh-KvB65hpwrBygljFfiUcOAM8,315
141
- uncountable/types/entity_t.py,sha256=YXwFnscd4ivJOSH9IpYvCxeHhZob29ZvkGFgkypYAlo,14705
141
+ uncountable/types/entity_t.py,sha256=2F6zIxffc6l0hgjPtNUr3X0LKC4lxRMJZCT6T788GlI,14929
142
142
  uncountable/types/experiment_groups.py,sha256=_0OXcPzSAbkE-rfKt5tPx178YJ4pcEKZvrCxUHgDnvw,309
143
- uncountable/types/experiment_groups_t.py,sha256=0IGAXwkYiwdjj6aFjLMihxwauACQTyuRU_1usJTeUg4,593
143
+ uncountable/types/experiment_groups_t.py,sha256=qEs8YW0eJOJ_sCOObT5v9QRx9wsjLYpJqJhCJXa-vNA,721
144
144
  uncountable/types/field_values.py,sha256=uuIWX-xmfvcinYPdfkWJeb56zzQY01mc9rmotMPMh24,503
145
- uncountable/types/field_values_t.py,sha256=_JYzmHlPczEnROz_tUbY0r3mZWffCB8m2_a9ktZLgP0,1700
145
+ uncountable/types/field_values_t.py,sha256=WIGXJKtQbHroCgaHhb15H6Rzi00liSkhoi2JBMVEgv0,1935
146
146
  uncountable/types/fields.py,sha256=GUY5ne8Zp2_Lalikr0zcbdJrin8dG81eyS8fKWJ9yf8,266
147
- uncountable/types/fields_t.py,sha256=9pDroeNvj4hQQ4QB4-2ioTAFR30YTuW_364Q-Ka9SoQ,564
147
+ uncountable/types/fields_t.py,sha256=LZBEfBHDn2thc1u4i8BulMEcFfDxK4JA-VzahTjivNA,665
148
148
  uncountable/types/generic_upload.py,sha256=n6hue9BX_rLSXeEt_DcGwL2ckxfNXg1wEPR9JNEGQxQ,879
149
- uncountable/types/generic_upload_t.py,sha256=Hv4cVyllV1BMW2HDOlA6XuF3lQOA8DTAMblgAsu0AIU,3314
149
+ uncountable/types/generic_upload_t.py,sha256=wTU5NfEGHm8wQzTGww42AIYnYj4CfQtUAP_22HZqavA,3830
150
150
  uncountable/types/id_source.py,sha256=wGLA0fMl-5IqBG_fg2UDC7fY-8CWRBNFJOokejOoN_w,567
151
- uncountable/types/id_source_t.py,sha256=ReOuIHIuFbkE2mQ58x6UP4jCV4_JUxMCvAU9bxUxG84,1369
151
+ uncountable/types/id_source_t.py,sha256=s2oOCO2Ap7dt5BVOTiXsclD5m7SG_e0D8M2GOhCjuNg,1715
152
152
  uncountable/types/identifier.py,sha256=6ziONd__L07ijhVwpIehUUDvxgKTtHbunk-6CivJqxQ,503
153
- uncountable/types/identifier_t.py,sha256=zZjTXgs1je1hlCcDgXkwXqToxsqKAp7rc8rYe5i4q38,1473
153
+ uncountable/types/identifier_t.py,sha256=3YvYoYEWjxIaslyaEwnvhatbsgRC9Hm4EMsRUXzUXvc,1652
154
154
  uncountable/types/input_attributes.py,sha256=IrIKQnHqHdS1Utdfzr9GnOe17a8riaqYcO1r0nvtkvA,304
155
- uncountable/types/input_attributes_t.py,sha256=wE1ekiQfb72Z9VpF5SHipKJkgaJFUHJrNkkJdmuhF9w,820
155
+ uncountable/types/input_attributes_t.py,sha256=mD9JIagE8TQ0KVwGkl-hinKz_gcunV3y30w_dW5sfeU,884
156
156
  uncountable/types/inputs.py,sha256=jFZHyo0ZOGJ3bb4TOPXovhE3Fo1-kf7B7T3usk4Sqg8,467
157
- uncountable/types/inputs_t.py,sha256=7xEtcW3pl5I8AQFIwVt20y3rbpR8StG03yngWp0FoOI,2036
157
+ uncountable/types/inputs_t.py,sha256=CpuuKRduZGET_wvkGUpUFN6rbZCHsdOIp1veEM-hspI,2143
158
158
  uncountable/types/job_definition.py,sha256=HXfaYl5Nafm9C0teQLBtqzroe1HlfKJtfGVm2-40hvg,1937
159
- uncountable/types/job_definition_t.py,sha256=frtTpcJJCNXzdDlz8OWLMBFvsnS9nmqJVn9l7fBI7uc,7616
159
+ uncountable/types/job_definition_t.py,sha256=A62fgHEK5JHTekDQ-UXCLJIEbWx64MJMk2Hlo64p8rg,8895
160
160
  uncountable/types/outputs.py,sha256=sUZx_X-TKCZtLm1YCEH8OISX9DdPlv9ZuUfM3-askCc,281
161
- uncountable/types/outputs_t.py,sha256=2aORUOr0ls1ZYo-ddkWax3D1ZndmQsWtHfJxpYozlhg,656
161
+ uncountable/types/outputs_t.py,sha256=AdJZvIzqikHV9CnlC24WEo0OUe-5vrD4cjMqc2txEs0,765
162
162
  uncountable/types/overrides.py,sha256=Mv-smwK1B3pvbt48fNOiqkeQn9wMgYlBFJKUBOJqceE,431
163
- uncountable/types/overrides_t.py,sha256=-DMuW3Iqxlf7pb3HmPN8cswYrhG9UrRstRUzM9wDVHo,960
163
+ uncountable/types/overrides_t.py,sha256=0K2kflxM8ogEi4HHs3RlpVXCZ30Bk3XeWiqHh3DGzbc,1146
164
164
  uncountable/types/permissions.py,sha256=1mRnSsmRgjuLgp6pylTwwACD_YRIcmlqxHkufwZtMns,297
165
165
  uncountable/types/permissions_t.py,sha256=i0vFwVvmmnInrA5qW8uuo0_tM6KYn3VYZ75d9084Vko,1625
166
166
  uncountable/types/phases.py,sha256=YCsU77DdjRJJWdLTwLuOZNG4e9ML82NIBI1xTWr3ggA,266
167
- uncountable/types/phases_t.py,sha256=21_4-O5MlO1AzsZijSlSUeEHknY0T9KCPilFMG8GMEo,544
167
+ uncountable/types/phases_t.py,sha256=gF87ZZqArXd1Eihh27i4ctwetQ7TgZzrLJG9JGnX4_8,645
168
168
  uncountable/types/post_base.py,sha256=GES5_IhXFAjpzI6ChbVP4zTkX6f3tPUIHST1sxsRN6Q,279
169
169
  uncountable/types/post_base_t.py,sha256=2et3TDnFChZcx0RWU-18RJHw9Yiyj2TJz-2tByHXwaI,770
170
170
  uncountable/types/queued_job.py,sha256=67exX5vfpewKzvFKxuxTLsSJTDKlE3JqKfWnnYx2Jos,842
171
- uncountable/types/queued_job_t.py,sha256=yd3FhtcbfMxPjBq_ykLY2ASx_EJvQ4kW3MKIL2gdPWc,3049
171
+ uncountable/types/queued_job_t.py,sha256=tcZsYoNgNeyrjbwXpxJSLOnhgwMFdiwJ-saPga7HSac,3575
172
172
  uncountable/types/recipe_identifiers.py,sha256=Pi5KX64kzoBp_t_tjb3uVk9Ef1WPIIXGtUdINXi5vcY,654
173
- uncountable/types/recipe_identifiers_t.py,sha256=suumLdp_8SZD7oqIxSEaV9D1irMeLJ5_-pJqqUrQ5k8,1786
173
+ uncountable/types/recipe_identifiers_t.py,sha256=9FhWx-mHWGvHBwUysxE614-AV9uOuSE1VWRNE_iW5YU,2009
174
174
  uncountable/types/recipe_inputs.py,sha256=5ThNFEOGbADqqfj1V3hNvZUcO5pn1Gm17LmzQkWDrtI,351
175
175
  uncountable/types/recipe_inputs_t.py,sha256=t5nFzuF1AU6SUHpya6xKHSlcckmt3XxAuk9ofjZ2oGU,746
176
176
  uncountable/types/recipe_links.py,sha256=YRiu6t7FWr7ZWycIaOPXBtQFqbY_q5unaP6KQzh1LzE,343
177
- uncountable/types/recipe_links_t.py,sha256=ZaTeP8AsIT9-gDRi_uQreDsAzEmqF34YTesh9uydYa0,1417
177
+ uncountable/types/recipe_links_t.py,sha256=ZtGQ8iTKn8yw2z7SWbE4YXaffpUlmWYAlssSkffsv-M,1529
178
178
  uncountable/types/recipe_metadata.py,sha256=Zpcrupq_mlT2UhXpMJup5XjtubmvgZ8SbJNq7da2pCs,441
179
- uncountable/types/recipe_metadata_t.py,sha256=3gcspWc7CYCoLtoDLhhthPg3o5NaZZTF4NZvH8xTufk,1521
179
+ uncountable/types/recipe_metadata_t.py,sha256=m1ibl-fRVmgpKhNmKX0trg8PgxHx_C4MxLvgWu7mZdk,1722
180
180
  uncountable/types/recipe_output_metadata.py,sha256=83jKZCvogG9QjZeJpQptdSam_MnnUj-tqh9EVIrTWjE,322
181
- uncountable/types/recipe_output_metadata_t.py,sha256=jazuYonhY0FklLy2jWoS51LM6Mc_1ZBHvPu7-6btJd0,607
181
+ uncountable/types/recipe_output_metadata_t.py,sha256=g0EIFTxlt6a_zKI-GclMpEz3NQ-w0Dk4CsBXQ6pHSVY,744
182
182
  uncountable/types/recipe_tags.py,sha256=eyYa_rox00a1JQ0lOQv9STnJI04ksCL_3kHSDx5w7rM,291
183
- uncountable/types/recipe_tags_t.py,sha256=D1gKbi2mjNs68nkGbXgFPSKSWmORPB8E8mLdiWn6btY,575
183
+ uncountable/types/recipe_tags_t.py,sha256=_NT_Xwt-rjkvCnR5QjBYLTCSC_zyY7Nr588lOTWwZ7E,691
184
184
  uncountable/types/recipe_workflow_steps.py,sha256=-s1sOXMny4kcqT8K_vQRbKjc1Hs855A_e9ZZejDRvN4,971
185
- uncountable/types/recipe_workflow_steps_t.py,sha256=5VnQh_jb_QS5ayo_bJVJxkE6wvmIfXrnzX-C6-XxEfA,3021
185
+ uncountable/types/recipe_workflow_steps_t.py,sha256=1Y_RpyJAZsJrL_StMooUzhgD-NFjZ_4QC9NoDB2cK2M,3454
186
186
  uncountable/types/recipes.py,sha256=1ifutxUN-Blv_vcwMx6DKT47My5pJTG1cwqsMqKK7LY,307
187
- uncountable/types/recipes_t.py,sha256=04dh2wn_lIWB3KF36sxcdJxb_JDclkHp5g3AHbfoc-0,551
187
+ uncountable/types/recipes_t.py,sha256=ZRh3inkz36_vKrmpYUb8MIk08TbkeuCMg_FqG-npsJU,673
188
188
  uncountable/types/response.py,sha256=WOlSgQYKK_fnnXk1i-h3Bwx2ZiYqpLj-lnt-hXhmbWs,274
189
- uncountable/types/response_t.py,sha256=jjTyB0bM-xEz7WjqPb6GUIkMgUvqXvM9trMdKdIcAZw,622
189
+ uncountable/types/response_t.py,sha256=E77C8dbV8HschivDfuKU-n7eA7Fn1v_Y05hWczQZUHI,667
190
190
  uncountable/types/secret_retrieval.py,sha256=Jt_-sjYBKBwJytS4QgF1KnUVEEu9YAsCYI3NtYlbqa4,592
191
- uncountable/types/secret_retrieval_t.py,sha256=i9Aq1HoNvARYVgKmSjTjECUYp1AZtW4052hYJi9Jngo,1930
191
+ uncountable/types/secret_retrieval_t.py,sha256=EvUhxR5_NCLc0F3YmLiwXKmmqcphy1OOXOwauxuMhKI,2197
192
192
  uncountable/types/units.py,sha256=R_TBhxWCIWSSXK9J3S0Omtj3t5BZNK9C80MyqFjMO7k,275
193
- uncountable/types/units_t.py,sha256=w_k7SQ_J_-XTGY-BMcWC5sQi2z3uInqtrRUPHgniuew,559
193
+ uncountable/types/units_t.py,sha256=gbiUzFTzzJbozWVwwEP04rI_PL2OhmcZmnWtQpwNopw,664
194
194
  uncountable/types/users.py,sha256=YEk8v0vDOBFvmOQMQw7MAOicSGzMui8Hb9hdFX2Vw3E,275
195
- uncountable/types/users_t.py,sha256=ATsF1EGKw49jfcspf9OWHL0tSgOR76x80XloKk624fk,582
195
+ uncountable/types/users_t.py,sha256=IS_pHUjam-BzGNIQQUb-alITwUGvXjr_Ef6RxJZG6Q8,687
196
196
  uncountable/types/webhook_job.py,sha256=Y8IVmL311Hd4Jvdl1d7ND_OCygyC0dAoV-_E4A-lI6A,363
197
- uncountable/types/webhook_job_t.py,sha256=MM-0epv4nIp4lgtLBTr-gs51PVjBuAMqpHfCPXDnYc0,847
197
+ uncountable/types/webhook_job_t.py,sha256=1FEDbKlNIyqrVZbelpZI_jE1KudG6BB0V2-MhFHo5Rw,979
198
198
  uncountable/types/workflows.py,sha256=uSZWsdDe2jpXnBnRunEen7_7pbKBrE0ds_ez98EzyPg,353
199
- uncountable/types/workflows_t.py,sha256=Nz9z_eerEDEP_Ieuz7gQEv1SabkFdCiZmu6RL8w3kyE,831
199
+ uncountable/types/workflows_t.py,sha256=aGcwvlUDi98ywq-0LWhhamcPvDPQNujo4SO0crM8-Ng,1017
200
200
  uncountable/types/api/__init__.py,sha256=gCgbynxG3jA8FQHzercKtrHKHkiIKr8APdZYUniAor8,55
201
201
  uncountable/types/api/batch/__init__.py,sha256=gCgbynxG3jA8FQHzercKtrHKHkiIKr8APdZYUniAor8,55
202
- uncountable/types/api/batch/execute_batch.py,sha256=DCAvpvI0wL-xvFJBjSKD-kCN0sFs1-Tl7_F1x2Jtgdc,1726
203
- uncountable/types/api/batch/execute_batch_load_async.py,sha256=3ptjtokj7eZ_A7OUX9FPCbLTjymPwQU-ThIbMvwh8Jc,876
202
+ uncountable/types/api/batch/execute_batch.py,sha256=Dgy_XHo4T3sVOWvHMe6AwjgI4aTnF1KtClqF_Y2_IH0,2006
203
+ uncountable/types/api/batch/execute_batch_load_async.py,sha256=j5a5dk0_lTJ-YslrBN29kOAMjtbZlmwYtXU1MnxEGjU,1093
204
204
  uncountable/types/api/chemical/__init__.py,sha256=gCgbynxG3jA8FQHzercKtrHKHkiIKr8APdZYUniAor8,55
205
- uncountable/types/api/chemical/convert_chemical_formats.py,sha256=-FKBOcg1jteFu920NM-0lBk90pfucpcg2WAsaddfDc8,1323
205
+ uncountable/types/api/chemical/convert_chemical_formats.py,sha256=xLpma1W1O9MzgxM4CCl5GPnpj3dpqRHhKcXr3b_ToAo,1589
206
206
  uncountable/types/api/entity/__init__.py,sha256=gCgbynxG3jA8FQHzercKtrHKHkiIKr8APdZYUniAor8,55
207
- uncountable/types/api/entity/create_entities.py,sha256=1WK3HTKR5D5Y3yFkaa5jJNourGC-IE45yRkfulty75U,1888
208
- uncountable/types/api/entity/create_entity.py,sha256=HhR8GBSvqMdMXhm8aUtvkUPrW9bCPIfejD0QOUX4aYE,2058
209
- uncountable/types/api/entity/get_entities_data.py,sha256=_dyDJ8Aukeijj2U3ZEQYNECoI3TC4phn8RhgJQP1e1s,1162
210
- uncountable/types/api/entity/list_entities.py,sha256=93J8jbHOdBL7Ee2_z_M57JpIVsmI2RddDMpprTakYks,1717
211
- uncountable/types/api/entity/lock_entity.py,sha256=twQ-f61AKS_NrKP-TzqHkMmzTJGMc4yxZFl-2JctOg4,1004
212
- uncountable/types/api/entity/resolve_entity_ids.py,sha256=YxmVaPrbpB5I14sggAcQHEEwZtoTLVrkFaDeZZu7a5U,1094
213
- uncountable/types/api/entity/set_values.py,sha256=Fmhi80YDkaMmWTkjsHlGkQrBQ4PZxJTZpIZyMJjw5Mw,934
214
- uncountable/types/api/entity/transition_entity_phase.py,sha256=mD6cyR7JyABA7se1jx9MFAgQ6ef1nP7Eigm_sOopUcg,1805
215
- uncountable/types/api/entity/unlock_entity.py,sha256=I-Wi_iKn170w2vc94W9G9jOVQABqVK3BPrgZPYKMT9Y,953
207
+ uncountable/types/api/entity/create_entities.py,sha256=3zBPO3_CM9fU2R1EFWQcFcXxCVCNNU2NIsnJLYnojzI,2219
208
+ uncountable/types/api/entity/create_entity.py,sha256=elMRdi8VT7CTrPhypQsL9P5gvCLlk5_D_1CUxulnXzA,2331
209
+ uncountable/types/api/entity/get_entities_data.py,sha256=gTEZ7Z7T-DWP8BZPNDF4c__EHtf9kAb1sGtHmiGOgnM,1454
210
+ uncountable/types/api/entity/list_entities.py,sha256=ykbdq4DD31uiRz4i8LH-8LLeA2Lpp_5fWfb5fdyx248,2000
211
+ uncountable/types/api/entity/lock_entity.py,sha256=mMZx2tWOtuYg0sIftdPsFWgZO5LCav2ubqTw97dCtDU,1197
212
+ uncountable/types/api/entity/resolve_entity_ids.py,sha256=GnQjeoTdzL0PIubrLay-PpaRsYFFWVGrTxhzSmP4hhw,1387
213
+ uncountable/types/api/entity/set_values.py,sha256=O_LpcYeBXFfxxUVOL2FDDYQwU7La-IBM_uEQLgtPrVo,1125
214
+ uncountable/types/api/entity/transition_entity_phase.py,sha256=J0lO_dubmTCO9s7P2DZgC-Zq6m0VagpXfg0jZqxz5XM,2160
215
+ uncountable/types/api/entity/unlock_entity.py,sha256=8UGffqqV8eiSbz_-7y0W2CXLsz4IvM496RFz6L0Y23o,1150
216
216
  uncountable/types/api/equipment/__init__.py,sha256=gCgbynxG3jA8FQHzercKtrHKHkiIKr8APdZYUniAor8,55
217
- uncountable/types/api/equipment/associate_equipment_input.py,sha256=pJoHhbJtg1zpz2k9zN7zaFb8kuPCcGP5lkK3xocqRiM,970
217
+ uncountable/types/api/equipment/associate_equipment_input.py,sha256=lLge_Y20IO2Rp597R7KvqGo0MV-uTJG9OU3EJYDc3E0,1197
218
218
  uncountable/types/api/field_options/__init__.py,sha256=gCgbynxG3jA8FQHzercKtrHKHkiIKr8APdZYUniAor8,55
219
- uncountable/types/api/field_options/upsert_field_options.py,sha256=A0l6xXC9JZw8VwAALUbD2L3AGK-cJ9e9-rq_TSVG2lo,1156
219
+ uncountable/types/api/field_options/upsert_field_options.py,sha256=UsAlRTsDWIOwPlX3iFWIPIndGQtZW--b-A1KkACd7ek,1476
220
220
  uncountable/types/api/id_source/__init__.py,sha256=gCgbynxG3jA8FQHzercKtrHKHkiIKr8APdZYUniAor8,55
221
- uncountable/types/api/id_source/list_id_source.py,sha256=rbyfQmYEis5sm8H62BAr0YXUIekyzZKK1m2pQyp8itM,1162
222
- uncountable/types/api/id_source/match_id_source.py,sha256=bDL9oIhLxMabf9hIovWn9Mo78KVQLo2ssfHxhT05hYE,1053
221
+ uncountable/types/api/id_source/list_id_source.py,sha256=vke7Dsxo2nJ78Y7WKph-KKZIXFW7RDoJ4iJ_yUdR81A,1447
222
+ uncountable/types/api/id_source/match_id_source.py,sha256=V-W-JEGVx59_Ijv5neKKFlWKy0FEEwoCD10bMiERRvc,1340
223
223
  uncountable/types/api/input_groups/__init__.py,sha256=gCgbynxG3jA8FQHzercKtrHKHkiIKr8APdZYUniAor8,55
224
- uncountable/types/api/input_groups/get_input_group_names.py,sha256=X6xIBxvNvpHSe__BYAbsLaNg82x0UCPEuNMmEu1RH40,1051
224
+ uncountable/types/api/input_groups/get_input_group_names.py,sha256=gii9L2Pt1u_a-APsdRM0gXAGJOv1K06zbiiUZBFQ4Ag,1376
225
225
  uncountable/types/api/inputs/__init__.py,sha256=gCgbynxG3jA8FQHzercKtrHKHkiIKr8APdZYUniAor8,55
226
- uncountable/types/api/inputs/create_inputs.py,sha256=zVyKGmNCsJA5ehUu24jqwacHO7r_jb_W76rNOPnJiXk,1675
227
- uncountable/types/api/inputs/get_input_data.py,sha256=HpSNow6fzyzru83rf45OacNimHFP-i4g7x7rPjP8Fk0,2212
228
- uncountable/types/api/inputs/get_input_names.py,sha256=m7drfXhYwNnLKIOMTOGHehDQIZGGFmiwXcobyvIAOv8,1171
229
- uncountable/types/api/inputs/get_inputs_data.py,sha256=hXu7AVHaMpdoOhAfKcoUZqhix1nAOzmKG6qdWAUAprE,1875
230
- uncountable/types/api/inputs/set_input_attribute_values.py,sha256=J-vi3lc_aPyNSRJLg1iXjwpv_aY1J10NcpCWjzzTpQA,1347
231
- uncountable/types/api/inputs/set_input_category.py,sha256=PLV6yLgdRxiO4oSMHGUTbS7amjPztNkEt5VA7uHrMNo,972
232
- uncountable/types/api/inputs/set_input_subcategories.py,sha256=wZ6ogTtBRQlJV5619jxW5fGiF4WbHC7x3CwzdcxvQYQ,979
233
- uncountable/types/api/inputs/set_intermediate_type.py,sha256=KZXfkcb7zEZ1wuoNb0RbD2AzirPujnGQbwcABX66juY,1109
226
+ uncountable/types/api/inputs/create_inputs.py,sha256=mY4zuWl64VVlzCQWzUy08AtUOYW8twEKgOkTdFcXaW0,2036
227
+ uncountable/types/api/inputs/get_input_data.py,sha256=q7oTF_CW67riFWzceOU67Gf3sKRRoXSQIkaMCutgXHI,2766
228
+ uncountable/types/api/inputs/get_input_names.py,sha256=3-Vp1FlWYgAQRdGvzWU0IGVIFj53xPH5Ge5xrJLN4yM,1457
229
+ uncountable/types/api/inputs/get_inputs_data.py,sha256=3ShX7mRb0egFU04VSY4Z2h1UWa1jaIpB99mx7DVLh6U,2413
230
+ uncountable/types/api/inputs/set_input_attribute_values.py,sha256=yQMeikk-jypwuecL84V_M_2NaEuBotM4fa9DrNhrgq8,1611
231
+ uncountable/types/api/inputs/set_input_category.py,sha256=pJQJp4A28--69OENjVX75hwKtST7h6Vf5XGHoROmrJA,1179
232
+ uncountable/types/api/inputs/set_input_subcategories.py,sha256=tYXyS2_hQRGiryYyQ0sxqO51Ca-fAR9TA9rvUMft4l8,1196
233
+ uncountable/types/api/inputs/set_intermediate_type.py,sha256=CIgTw41GQfcyGwgiWKhjr3BzPjB72ZyMQvpjr8EyihA,1322
234
234
  uncountable/types/api/material_families/__init__.py,sha256=gCgbynxG3jA8FQHzercKtrHKHkiIKr8APdZYUniAor8,55
235
- uncountable/types/api/material_families/update_entity_material_families.py,sha256=W7x-_D5xtAEKSL2YQUDgnS-n-JH3hyMw8k6FI5D2Zww,1353
235
+ uncountable/types/api/material_families/update_entity_material_families.py,sha256=yG6ItbZbOEI2dB3kxGYIokn2kdelm-6dFB5O2oWbOOE,1608
236
236
  uncountable/types/api/outputs/__init__.py,sha256=gCgbynxG3jA8FQHzercKtrHKHkiIKr8APdZYUniAor8,55
237
- uncountable/types/api/outputs/get_output_data.py,sha256=Q0SL1frhPYsOSZeMbpx1yQYc2beQFoxj8W5xxw9jKlE,2285
238
- uncountable/types/api/outputs/get_output_names.py,sha256=42Z70cj5zc43TLP6HGAARw3gUJynNcLwA3ILSMh5ovg,1104
239
- uncountable/types/api/outputs/resolve_output_conditions.py,sha256=b29XyJ86mF44nG5AXXFUQw519KAkYRGOkNi3fS7BrzE,1841
237
+ uncountable/types/api/outputs/get_output_data.py,sha256=pzwLsf1_wJsZtLH-bBbS4nNWbhS_Zva8ceV7j7bOXUo,2784
238
+ uncountable/types/api/outputs/get_output_names.py,sha256=zsa4TtwQcGuIzBlh1jNLQ0qSGGV1trAKhj0msl0Oaz4,1397
239
+ uncountable/types/api/outputs/resolve_output_conditions.py,sha256=XoaDc6p3aoFhxakHfR8hOKZ0_4o3gfYOy8prSfmcPZ8,2314
240
240
  uncountable/types/api/permissions/__init__.py,sha256=gCgbynxG3jA8FQHzercKtrHKHkiIKr8APdZYUniAor8,55
241
- uncountable/types/api/permissions/set_core_permissions.py,sha256=411-pSeiFoaguzGCnVWZBh23SpleQeHgj4XWg7GSerU,2570
241
+ uncountable/types/api/permissions/set_core_permissions.py,sha256=mkaSWfrRJQIFIcOIC1yslhJd_SQykkiK26x7RwUX1L4,3117
242
242
  uncountable/types/api/project/__init__.py,sha256=gCgbynxG3jA8FQHzercKtrHKHkiIKr8APdZYUniAor8,55
243
- uncountable/types/api/project/get_projects.py,sha256=Mep7cT_yji7V8_JVnrWC-k-Zoqp1F1tYu-BGLIEbLwE,1243
244
- uncountable/types/api/project/get_projects_data.py,sha256=PEjbR7l521JxmehF0lftcv_ksmBoAGwhimvFSRCHN74,1473
243
+ uncountable/types/api/project/get_projects.py,sha256=IT8oqQSUv0Jc4Hmz5TORlzaJUWU_IQ9sXADYNOiGRL8,1517
244
+ uncountable/types/api/project/get_projects_data.py,sha256=yME4KRzC5pLHW_oA07kTa42icbHpdjdkFIuQR9xU5OY,1770
245
245
  uncountable/types/api/recipe_links/__init__.py,sha256=gCgbynxG3jA8FQHzercKtrHKHkiIKr8APdZYUniAor8,55
246
- uncountable/types/api/recipe_links/create_recipe_link.py,sha256=9J4UwzsuyeJlOw_B7LJQIb6FeWoDhD-0eU4BH6wgLlY,1182
247
- uncountable/types/api/recipe_links/remove_recipe_link.py,sha256=-l2E1ubcOkblIZuEkwuUtFt7KV9CfEuqCc90r3rY0aU,1168
246
+ uncountable/types/api/recipe_links/create_recipe_link.py,sha256=FwUor9Jnbxhvvg_Np3jXLmqqbL_xQ-mR-WoZJ9FeUPk,1401
247
+ uncountable/types/api/recipe_links/remove_recipe_link.py,sha256=eILbAfhRvN4hVmzQIV6lFeEZA54Pw_O2eUrIHdSYu6w,1387
248
248
  uncountable/types/api/recipe_metadata/__init__.py,sha256=gCgbynxG3jA8FQHzercKtrHKHkiIKr8APdZYUniAor8,55
249
- uncountable/types/api/recipe_metadata/get_recipe_metadata_data.py,sha256=zueqr3mrac6i2tkPLOnO_DaUMBXv-Lephwg-jiT1jQA,1285
249
+ uncountable/types/api/recipe_metadata/get_recipe_metadata_data.py,sha256=MpmJ-CwC-jdIPuN-fyYj61KYHRyXSBExhdh4mrlEdr4,1635
250
250
  uncountable/types/api/recipes/__init__.py,sha256=gCgbynxG3jA8FQHzercKtrHKHkiIKr8APdZYUniAor8,55
251
- uncountable/types/api/recipes/add_recipe_to_project.py,sha256=JPYk25a5JSqM2X_93WaHsf8RBYtKlJyfM7GUsV-eX60,867
252
- uncountable/types/api/recipes/archive_recipes.py,sha256=w8r7-NpWhW5oE-K6PGf0Th0T1-HkdHjjVmk5AcxUrio,852
253
- uncountable/types/api/recipes/associate_recipe_as_input.py,sha256=NGZ3RH2-sDcqzoVKuqnAWFmkDszvCXKLTLhs-YZe0x0,1012
254
- uncountable/types/api/recipes/associate_recipe_as_lot.py,sha256=iwRDSje33GaDpOVhQrFXcJjBax9k80gwbs8IUkFNKpU,940
255
- uncountable/types/api/recipes/clear_recipe_outputs.py,sha256=htm2MsFRWvlPsIyogSiVHzQ02_ZtAOCyV5M6AMh_FHQ,890
256
- uncountable/types/api/recipes/create_recipe.py,sha256=-ybqIZ3LH5018g0fQ07XWq9L6OL3qkiYkXnH02kxnL0,1371
257
- uncountable/types/api/recipes/create_recipes.py,sha256=Cr7hXRAMnFeBNxOBv7_j-K5nkaC67cu3vFLqMBH3yVc,1555
258
- uncountable/types/api/recipes/disassociate_recipe_as_input.py,sha256=EreRtLP4o29RazwbM5qb1PJZqLf4Ii8xJ9NT7ciKfKo,898
259
- uncountable/types/api/recipes/edit_recipe_inputs.py,sha256=lf-havtdT5oizB-3mJ-XChv-rHGV3rvWLIff1IC8kUY,6641
260
- uncountable/types/api/recipes/get_curve.py,sha256=GVNgTm0_toTR9530kEa1qSojsck_xi_nkwakMo588YQ,935
261
- uncountable/types/api/recipes/get_recipe_calculations.py,sha256=Hq9hmIUBdZ5KRb9FrniaK5khH4KNSOT8vX2oD9h1J-o,1474
262
- uncountable/types/api/recipes/get_recipe_links.py,sha256=zD4dEIQVAV5wv0NirBldwMEROgvOf7mXT-pWlaSiuN4,975
263
- uncountable/types/api/recipes/get_recipe_names.py,sha256=abBQoZ5JRek0UDOE6ETn6NLUQp9stZ5XhCNFdc5kM3U,1004
264
- uncountable/types/api/recipes/get_recipe_output_metadata.py,sha256=ORokvA6vvLkkuUHZjY1ym2voxovljMrA48qjt8RD7mU,1456
265
- uncountable/types/api/recipes/get_recipes_data.py,sha256=s8LE8VQSYgGXEUYpbVJYCOBelrrwMCwXKqiBvvLx9pE,5511
266
- uncountable/types/api/recipes/lock_recipes.py,sha256=hdxqn5gOk80Rbw05J9RWi1dPMiW-4wJwkVT_fmKiDUw,1356
267
- uncountable/types/api/recipes/remove_recipe_from_project.py,sha256=3lqSU9UQIPMmOIvrdD9H--6QIdolYD0SadIuKxtObaE,872
268
- uncountable/types/api/recipes/set_recipe_inputs.py,sha256=yCGFQoguzsSK_weOK4kcvqnUSkRJV1rzKxWnanIZbko,1444
269
- uncountable/types/api/recipes/set_recipe_metadata.py,sha256=J2F1FDgFLKjlbGw29TW1Xefy38Zt-C7V1WDK70gRiuY,914
270
- uncountable/types/api/recipes/set_recipe_output_annotations.py,sha256=ayG9vnCroYGQ3mmNBALLlQhf9otrR-q0QiNLnWgmIsw,2930
271
- uncountable/types/api/recipes/set_recipe_output_file.py,sha256=8s0oxgjhv_hIyV3EoAjIBb970TrJJbKTFaSdNvbgU78,1225
272
- uncountable/types/api/recipes/set_recipe_outputs.py,sha256=bLR-FtncB6hzqvzQhCts6ERdHJWgPMne4bQi6-xxu_k,1890
273
- uncountable/types/api/recipes/set_recipe_tags.py,sha256=kYX13RvHyUOlzL6LbBKDQ8yNvpvNobbnF2WDtgZsKRc,2493
274
- uncountable/types/api/recipes/unarchive_recipes.py,sha256=KZKzw0fbQdOBUR3YBunFrHFcex4qPMiA8mDgsB6n24k,814
275
- uncountable/types/api/recipes/unlock_recipes.py,sha256=AvzQeZCLs9i7CuhMs3Xltdi4n0q4Td55yHYyBGQgWag,1103
251
+ uncountable/types/api/recipes/add_recipe_to_project.py,sha256=0c___agZkJ1vIfjt74YwSHMpCteo1Gj6egLx2DSNjyc,1082
252
+ uncountable/types/api/recipes/archive_recipes.py,sha256=gQcb3qBidXCua3xgr4p7up2an7yhVA2fo_dBq2WJL8A,1055
253
+ uncountable/types/api/recipes/associate_recipe_as_input.py,sha256=52h2y5JofzdMbYmL6D5Nh87oSByT2V0xOoBiBZn8hB0,1235
254
+ uncountable/types/api/recipes/associate_recipe_as_lot.py,sha256=Ugh0TBD9xvpdq9s0zN5TE6iE-ht4cdq_I7KoJs33Lfg,1159
255
+ uncountable/types/api/recipes/clear_recipe_outputs.py,sha256=sZ6sWtdfOYp8ORQD9GAkPhrtyWyLo4NQiSW68OEi8Xw,1103
256
+ uncountable/types/api/recipes/create_recipe.py,sha256=Gh6Z_7wBfYBMGUgUSixw57ucRjkBhjScIjDg1__4rVU,1570
257
+ uncountable/types/api/recipes/create_recipes.py,sha256=kmTDi0nF5OK5wYIErg_4CY3YsF3pDbrj4LLFqgDNRoU,1940
258
+ uncountable/types/api/recipes/disassociate_recipe_as_input.py,sha256=YcLCle-yQ8A7hPmFg8wPfW4dyJwpMQXNKzJxCEr8xlw,1127
259
+ uncountable/types/api/recipes/edit_recipe_inputs.py,sha256=7TBjzA8-yXYIko_jx0AvKMs8SnIkiQukhQFWyf2fkxk,7815
260
+ uncountable/types/api/recipes/get_curve.py,sha256=SPD9kx4m95KPXAD0MawX52IFl8W7gVKj-WmA4Wx2YtU,1126
261
+ uncountable/types/api/recipes/get_recipe_calculations.py,sha256=_sBE5M2xzwagh1beTW32D_HTxqu9OrZTPZBGMba6Myk,1730
262
+ uncountable/types/api/recipes/get_recipe_links.py,sha256=IIA_LV-iPayZRAsVmDCpSA8jgFnzcgGpk0lAnygyi-s,1180
263
+ uncountable/types/api/recipes/get_recipe_names.py,sha256=qxZlWWE-j-GbcMLIBZ7OKYLG9HZJMsu3Xobincwgfdk,1295
264
+ uncountable/types/api/recipes/get_recipe_output_metadata.py,sha256=tMu7VdTgn5gQYpNIWUkVUP_0RxIMAXuscHmsov_Rg9M,1724
265
+ uncountable/types/api/recipes/get_recipes_data.py,sha256=Y2lDCEDjej6e0VFYGScKjdA8JX1LdZVQLfJtv_KoqJo,6408
266
+ uncountable/types/api/recipes/lock_recipes.py,sha256=r4B1HkjTG56D8QuntPy2CAx9F0SQmVJPk1cxyI0WXWE,1637
267
+ uncountable/types/api/recipes/remove_recipe_from_project.py,sha256=q4ZRB6pyi8EpQdK3CizNYfgV0-1LG_s7PEy3gIgKbVo,1097
268
+ uncountable/types/api/recipes/set_recipe_inputs.py,sha256=zrZiiFtvHbJ0qmpDp-Penv8nbHMtNjVyD8wbZNAWYu4,1681
269
+ uncountable/types/api/recipes/set_recipe_metadata.py,sha256=AWkC5zMSMJMV6vca4uoP0HiWdP0myihZlk4OWEtOlLo,1125
270
+ uncountable/types/api/recipes/set_recipe_output_annotations.py,sha256=l3vpsKdEqLHHympLxk0av-1-9Ag7Hng5e4smVCK6QyU,3605
271
+ uncountable/types/api/recipes/set_recipe_output_file.py,sha256=Wta7JnKHHNmoEKtzRn0IcfI6LU4B8ZoaxacjGUp0vJc,1543
272
+ uncountable/types/api/recipes/set_recipe_outputs.py,sha256=AhDsFnqRAfZkVGaC7iiuM9yledOy_TU8pexrmfht8jw,2218
273
+ uncountable/types/api/recipes/set_recipe_tags.py,sha256=HJ5SYiNaQjmmEfNggZ1kzi-zFsjn0F4XXVGHpiEnGM0,2959
274
+ uncountable/types/api/recipes/unarchive_recipes.py,sha256=zPUDmKjrUB7DJcw3XVeK4zuVqz94VbHYF9oiVb-Xu40,1021
275
+ uncountable/types/api/recipes/unlock_recipes.py,sha256=RaC5N5rz6f3FAIaQM3NgLuXEMdvnuCl8U_19pFI6ojs,1304
276
276
  uncountable/types/api/triggers/__init__.py,sha256=gCgbynxG3jA8FQHzercKtrHKHkiIKr8APdZYUniAor8,55
277
- uncountable/types/api/triggers/run_trigger.py,sha256=_Rpha9nxXI3Xr17CrGDtofg4HZ81x2lt0rMZ6As0qfE,893
277
+ uncountable/types/api/triggers/run_trigger.py,sha256=-oZgPyn43xEKSCs81DVNzwaYMCdRJxbM9GY6fsqKwf4,1090
278
278
  uncountable/types/api/uploader/__init__.py,sha256=gCgbynxG3jA8FQHzercKtrHKHkiIKr8APdZYUniAor8,55
279
- uncountable/types/api/uploader/invoke_uploader.py,sha256=Rc77y5q-3R9-SNQgm8P35zKaW2D1Hbtm7PDixnOn1G0,1025
280
- UncountablePythonSDK-0.0.71.dist-info/METADATA,sha256=-WFnnxQlZ9qZ37_W7tekpeHnbqw0uyYzNqqAbd8BL_4,2051
281
- UncountablePythonSDK-0.0.71.dist-info/WHEEL,sha256=GV9aMThwP_4oNCtvEC2ec3qUYutgWeAzklro_0m4WJQ,91
282
- UncountablePythonSDK-0.0.71.dist-info/top_level.txt,sha256=1UVGjAU-6hJY9qw2iJ7nCBeEwZ793AEN5ZfKX9A1uj4,31
283
- UncountablePythonSDK-0.0.71.dist-info/RECORD,,
279
+ uncountable/types/api/uploader/invoke_uploader.py,sha256=EMtTBwcFXDde5Y2LpubyjAcXcDpBp8yT4HAPR4o95JE,1230
280
+ UncountablePythonSDK-0.0.73.dist-info/METADATA,sha256=P9sk2jp7gGaHwQv7hTMwFDdszfZDNnlYOes3gpcMPIM,2051
281
+ UncountablePythonSDK-0.0.73.dist-info/WHEEL,sha256=GV9aMThwP_4oNCtvEC2ec3qUYutgWeAzklro_0m4WJQ,91
282
+ UncountablePythonSDK-0.0.73.dist-info/top_level.txt,sha256=1UVGjAU-6hJY9qw2iJ7nCBeEwZ793AEN5ZfKX9A1uj4,31
283
+ UncountablePythonSDK-0.0.73.dist-info/RECORD,,
@@ -1,4 +1,4 @@
1
- base_url: http://0.0.0.0:5000
1
+ base_url: http://host.docker.internal:5000
2
2
  auth_retrieval:
3
3
  type: basic
4
4
  api_id_secret:
@@ -9,7 +9,7 @@ dependencies = [
9
9
  "ruff == 0.*",
10
10
  "openpyxl == 3.*",
11
11
  "more_itertools == 10.*",
12
- "types-paramiko == 3.4.0.20240423",
12
+ "types-paramiko ==3.5.0.20240918",
13
13
  "types-openpyxl == 3.*",
14
14
  "types-pysftp == 0.*",
15
15
  "types-pytz == 2024.*",
@@ -14,6 +14,7 @@ class _SerialClassData:
14
14
  unconverted_values: set[str] = dataclasses.field(default_factory=set)
15
15
  to_string_values: set[str] = dataclasses.field(default_factory=set)
16
16
  parse_require: set[str] = dataclasses.field(default_factory=set)
17
+ named_type_path: Optional[str] = None
17
18
 
18
19
 
19
20
  EMPTY_SERIAL_CLASS_DATA = _SerialClassData()
@@ -25,6 +26,7 @@ def serial_class(
25
26
  unconverted_values: Optional[set[str]] = None,
26
27
  to_string_values: Optional[set[str]] = None,
27
28
  parse_require: Optional[set[str]] = None,
29
+ named_type_path: Optional[str] = None,
28
30
  ) -> Callable[[_ClassT], _ClassT]:
29
31
  """
30
32
  An additional decorator to a dataclass that specifies serialization options.
@@ -45,6 +47,8 @@ def serial_class(
45
47
  This field is always required while parsing, even if it has a default in the definition.
46
48
  This allows supporting literal type defaults for Python instantiation, but
47
49
  requiring them for the API input.
50
+ @param named_type_path
51
+ The type_spec type-path to this type. This applies only to named types.
48
52
  """
49
53
 
50
54
  def decorate(orig_class: _ClassT) -> _ClassT:
@@ -53,6 +57,7 @@ def serial_class(
53
57
  unconverted_values=unconverted_values or set(),
54
58
  to_string_values=to_string_values or set(),
55
59
  parse_require=parse_require or set(),
60
+ named_type_path=named_type_path,
56
61
  )
57
62
  return orig_class
58
63
 
@@ -27,18 +27,21 @@ class _SerialUnion:
27
27
  # determine which type to parse.
28
28
  discriminator: typing.Optional[str] = None
29
29
  discriminator_map: typing.Optional[IdentityHashWrapper[dict[str, type]]] = None
30
+ named_type_path: typing.Optional[str] = None
30
31
 
31
32
 
32
33
  def serial_union_annotation(
33
34
  *,
34
35
  discriminator: typing.Optional[str] = None,
35
36
  discriminator_map: typing.Optional[dict[str, type]] = None,
37
+ named_type_path: typing.Optional[str] = None,
36
38
  ) -> _SerialUnion:
37
39
  return _SerialUnion(
38
40
  discriminator=discriminator,
39
41
  discriminator_map=IdentityHashWrapper(discriminator_map)
40
42
  if discriminator_map is not None
41
43
  else None,
44
+ named_type_path=named_type_path,
42
45
  )
43
46
 
44
47
 
pkgs/type_spec/builder.py CHANGED
@@ -1159,7 +1159,8 @@ class NamespaceDataPair:
1159
1159
 
1160
1160
 
1161
1161
  class SpecBuilder:
1162
- def __init__(self, *, api_endpoints: dict[str, str]) -> None:
1162
+ def __init__(self, *, api_endpoints: dict[str, str], top_namespace: str) -> None:
1163
+ self.top_namespace = top_namespace
1163
1164
  self.where: list[str] = []
1164
1165
  self.namespaces = {}
1165
1166
  self.pending: list[NamespaceDataPair] = []
pkgs/type_spec/config.py CHANGED
@@ -86,6 +86,7 @@ class OpenAPIConfig(BaseLanguageConfig):
86
86
 
87
87
  @dataclass(kw_only=True)
88
88
  class Config:
89
+ top_namespace: str
89
90
  type_spec_types: list[str] # folders containing the yaml type spec definitions
90
91
  api_endpoint: dict[str, str]
91
92
  # languages
@@ -130,7 +131,11 @@ def parse_yaml_config(config_file: str) -> Config:
130
131
  else None
131
132
  )
132
133
 
134
+ top_namespace = raw_config["top_namespace"]
135
+ assert isinstance(top_namespace, str)
136
+
133
137
  return Config(
138
+ top_namespace=top_namespace,
134
139
  type_spec_types=type_spec_types,
135
140
  api_endpoint=api_endpoint,
136
141
  typescript=typescript,
@@ -54,6 +54,7 @@ class TrackingContext:
54
54
  class Context(TrackingContext):
55
55
  out: io.StringIO
56
56
  namespace: builder.SpecNamespace
57
+ builder: builder.SpecBuilder
57
58
 
58
59
 
59
60
  def _resolve_namespace_name(namespace: builder.SpecNamespace) -> str:
@@ -258,6 +259,7 @@ def _emit_types(*, builder: builder.SpecBuilder, config: PythonConfig) -> None:
258
259
  ctx = Context(
259
260
  out=io.StringIO(),
260
261
  namespace=namespace,
262
+ builder=builder,
261
263
  )
262
264
 
263
265
  _emit_namespace(ctx, namespace)
@@ -753,6 +755,12 @@ def _emit_properties(
753
755
  )
754
756
 
755
757
 
758
+ def _named_type_path(ctx: Context, stype: builder.SpecTypeDefn) -> str:
759
+ parts = [] if stype.is_base else stype.namespace.path.copy()
760
+ parts.append(stype.name)
761
+ return f"{ctx.builder.top_namespace}.{".".join(parts)}"
762
+
763
+
756
764
  def _emit_type(ctx: Context, stype: builder.SpecType) -> None:
757
765
  if not isinstance(stype, builder.SpecTypeDefn):
758
766
  return
@@ -781,6 +789,9 @@ def _emit_type(ctx: Context, stype: builder.SpecType) -> None:
781
789
  ctx.out.write(f"{stype.name} = typing.Annotated[\n")
782
790
  ctx.out.write(f"{INDENT}{refer_to(ctx, stype.get_backing_type())},\n")
783
791
  ctx.out.write(f"{INDENT}serial_union_annotation(\n")
792
+ ctx.out.write(
793
+ f"{INDENT}named_type_path={util.encode_common_string(_named_type_path(ctx, stype))},\n"
794
+ )
784
795
  if stype.discriminator is not None:
785
796
  ctx.out.write(
786
797
  f"{INDENT * 2}discriminator={util.encode_common_string(stype.discriminator)},\n"
@@ -822,28 +833,27 @@ def _emit_type(ctx: Context, stype: builder.SpecType) -> None:
822
833
 
823
834
  _emit_generic(ctx, stype.get_generic())
824
835
 
825
- if (
826
- len(unconverted_values) > 0
827
- or len(to_string_values) > 0
828
- or len(unconverted_keys) > 0
829
- or len(parse_require) > 0
830
- ):
831
- ctx.use_serial_class = True
832
- ctx.out.write("@serial_class(\n")
836
+ # Emit serial_class decorator
837
+ ctx.use_serial_class = True
838
+ ctx.out.write("@serial_class(\n")
839
+ ctx.out.write(
840
+ f"{INDENT}named_type_path={util.encode_common_string(_named_type_path(ctx, stype))},\n"
841
+ )
833
842
 
834
- def write_values(key: str, values: set[str]) -> None:
835
- if len(values) == 0:
836
- return
837
- value_str = ", ".join([f'"{name}"' for name in sorted(values)])
838
- ctx.out.write(f"{INDENT}{key}={{{value_str}}},\n")
843
+ def write_values(key: str, values: set[str]) -> None:
844
+ if len(values) == 0:
845
+ return
846
+ value_str = ", ".join([f'"{name}"' for name in sorted(values)])
847
+ ctx.out.write(f"{INDENT}{key}={{{value_str}}},\n")
839
848
 
840
- write_values("unconverted_keys", unconverted_keys)
841
- write_values("unconverted_values", unconverted_values)
842
- write_values("to_string_values", to_string_values)
843
- write_values("parse_require", parse_require)
849
+ write_values("unconverted_keys", unconverted_keys)
850
+ write_values("unconverted_values", unconverted_values)
851
+ write_values("to_string_values", to_string_values)
852
+ write_values("parse_require", parse_require)
844
853
 
845
- ctx.out.write(")\n")
854
+ ctx.out.write(")\n")
846
855
 
856
+ # Emit dataclass decorator
847
857
  dataclass = "@dataclasses.dataclass"
848
858
  dc_args = []
849
859
  if stype.is_kw_only():
@@ -1275,7 +1285,9 @@ def _emit_async_batch_processor(
1275
1285
 
1276
1286
  async_batch_processor_out = io.StringIO()
1277
1287
  ctx = Context(
1278
- out=io.StringIO(), namespace=builder.SpecNamespace("async_batch_processor")
1288
+ out=io.StringIO(),
1289
+ namespace=builder.SpecNamespace("async_batch_processor"),
1290
+ builder=spec_builder,
1279
1291
  )
1280
1292
 
1281
1293
  for namespace in sorted(
@@ -1325,7 +1337,11 @@ def _emit_client_class(
1325
1337
  return
1326
1338
 
1327
1339
  client_base_out = io.StringIO()
1328
- ctx = Context(out=io.StringIO(), namespace=builder.SpecNamespace("client_base"))
1340
+ ctx = Context(
1341
+ out=io.StringIO(),
1342
+ builder=spec_builder,
1343
+ namespace=builder.SpecNamespace("client_base"),
1344
+ )
1329
1345
  for namespace in sorted(
1330
1346
  spec_builder.namespaces.values(),
1331
1347
  key=lambda ns: _resolve_namespace_name(ns),
@@ -42,7 +42,9 @@ def find_and_handle_files(
42
42
 
43
43
 
44
44
  def load_types(config: Config) -> Optional[SpecBuilder]:
45
- builder = SpecBuilder(api_endpoints=config.api_endpoint)
45
+ builder = SpecBuilder(
46
+ api_endpoints=config.api_endpoint, top_namespace=config.top_namespace
47
+ )
46
48
 
47
49
  def handle_builder_add(
48
50
  file_name: str, file_content: str, handler: Callable[[str, str, str], None]
@@ -115,4 +117,3 @@ def load_types(config: Config) -> Optional[SpecBuilder]:
115
117
  return None
116
118
 
117
119
  return builder
118
- return True
@@ -65,7 +65,7 @@ class ClientConfig(ClientConfigOptions):
65
65
  OAUTH_REFRESH_WINDOW_SECONDS = 60 * 5
66
66
 
67
67
 
68
- class APIResponseError(BaseException):
68
+ class APIResponseError(Exception):
69
69
  status_code: int
70
70
  message: str
71
71
  extra_details: dict[str, JsonValue] | None
@@ -107,7 +107,7 @@ class APIResponseError(BaseException):
107
107
  )
108
108
 
109
109
 
110
- class SDKError(BaseException):
110
+ class SDKError(Exception):
111
111
  message: str
112
112
  request_id: str
113
113