UncountablePythonSDK 0.0.39__py3-none-any.whl → 0.0.40__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 (127) hide show
  1. {UncountablePythonSDK-0.0.39.dist-info → UncountablePythonSDK-0.0.40.dist-info}/METADATA +1 -1
  2. UncountablePythonSDK-0.0.40.dist-info/RECORD +222 -0
  3. {UncountablePythonSDK-0.0.39.dist-info → UncountablePythonSDK-0.0.40.dist-info}/WHEEL +1 -1
  4. pkgs/type_spec/emit_python.py +40 -7
  5. pkgs/type_spec/type_info/emit_type_info.py +1 -1
  6. uncountable/types/__init__.py +29 -29
  7. uncountable/types/api/batch/execute_batch.py +1 -1
  8. uncountable/types/api/batch/execute_batch_load_async.py +2 -2
  9. uncountable/types/api/chemical/convert_chemical_formats.py +1 -1
  10. uncountable/types/api/entity/create_entities.py +3 -3
  11. uncountable/types/api/entity/create_entity.py +3 -3
  12. uncountable/types/api/entity/get_entities_data.py +3 -3
  13. uncountable/types/api/entity/list_entities.py +2 -2
  14. uncountable/types/api/entity/lock_entity.py +3 -3
  15. uncountable/types/api/entity/resolve_entity_ids.py +2 -2
  16. uncountable/types/api/entity/set_values.py +3 -3
  17. uncountable/types/api/entity/transition_entity_phase.py +3 -3
  18. uncountable/types/api/entity/unlock_entity.py +3 -3
  19. uncountable/types/api/equipment/associate_equipment_input.py +3 -3
  20. uncountable/types/api/field_options/upsert_field_options.py +1 -1
  21. uncountable/types/api/id_source/list_id_source.py +2 -2
  22. uncountable/types/api/id_source/match_id_source.py +2 -2
  23. uncountable/types/api/input_groups/get_input_group_names.py +1 -1
  24. uncountable/types/api/inputs/create_inputs.py +3 -3
  25. uncountable/types/api/inputs/get_input_data.py +2 -2
  26. uncountable/types/api/inputs/get_input_names.py +1 -1
  27. uncountable/types/api/inputs/get_inputs_data.py +2 -2
  28. uncountable/types/api/inputs/set_input_attribute_values.py +2 -2
  29. uncountable/types/api/inputs/set_input_category.py +2 -2
  30. uncountable/types/api/inputs/set_input_subcategories.py +3 -3
  31. uncountable/types/api/inputs/set_intermediate_type.py +1 -1
  32. uncountable/types/api/material_families/update_entity_material_families.py +5 -5
  33. uncountable/types/api/outputs/get_output_data.py +2 -2
  34. uncountable/types/api/outputs/get_output_names.py +1 -1
  35. uncountable/types/api/outputs/resolve_output_conditions.py +1 -1
  36. uncountable/types/api/permissions/set_core_permissions.py +3 -3
  37. uncountable/types/api/project/get_projects.py +2 -2
  38. uncountable/types/api/project/get_projects_data.py +4 -4
  39. uncountable/types/api/recipe_links/create_recipe_link.py +3 -3
  40. uncountable/types/api/recipe_links/remove_recipe_link.py +3 -3
  41. uncountable/types/api/recipe_metadata/get_recipe_metadata_data.py +1 -1
  42. uncountable/types/api/recipes/add_recipe_to_project.py +1 -1
  43. uncountable/types/api/recipes/archive_recipes.py +1 -1
  44. uncountable/types/api/recipes/associate_recipe_as_input.py +2 -2
  45. uncountable/types/api/recipes/associate_recipe_as_lot.py +2 -2
  46. uncountable/types/api/recipes/create_recipe.py +4 -4
  47. uncountable/types/api/recipes/create_recipes.py +2 -2
  48. uncountable/types/api/recipes/disassociate_recipe_as_input.py +2 -2
  49. uncountable/types/api/recipes/edit_recipe_inputs.py +3 -3
  50. uncountable/types/api/recipes/get_curve.py +2 -2
  51. uncountable/types/api/recipes/get_recipe_calculations.py +2 -2
  52. uncountable/types/api/recipes/get_recipe_links.py +2 -2
  53. uncountable/types/api/recipes/get_recipe_names.py +1 -1
  54. uncountable/types/api/recipes/get_recipe_output_metadata.py +2 -2
  55. uncountable/types/api/recipes/get_recipes_data.py +7 -7
  56. uncountable/types/api/recipes/lock_recipes.py +1 -1
  57. uncountable/types/api/recipes/remove_recipe_from_project.py +1 -1
  58. uncountable/types/api/recipes/set_recipe_inputs.py +1 -1
  59. uncountable/types/api/recipes/set_recipe_metadata.py +2 -2
  60. uncountable/types/api/recipes/set_recipe_output_annotations.py +2 -2
  61. uncountable/types/api/recipes/set_recipe_outputs.py +3 -3
  62. uncountable/types/api/recipes/set_recipe_tags.py +2 -2
  63. uncountable/types/api/recipes/unarchive_recipes.py +1 -1
  64. uncountable/types/api/recipes/unlock_recipes.py +1 -1
  65. uncountable/types/api/triggers/run_trigger.py +2 -2
  66. uncountable/types/async_batch.py +5 -53
  67. uncountable/types/async_batch_processor.py +6 -6
  68. uncountable/types/async_batch_t.py +59 -0
  69. uncountable/types/base.py +4 -78
  70. uncountable/types/base_t.py +85 -0
  71. uncountable/types/calculations.py +2 -17
  72. uncountable/types/calculations_t.py +23 -0
  73. uncountable/types/chemical_structure.py +2 -21
  74. uncountable/types/chemical_structure_t.py +27 -0
  75. uncountable/types/client_base.py +12 -12
  76. uncountable/types/curves.py +4 -41
  77. uncountable/types/curves_t.py +47 -0
  78. uncountable/types/entity.py +3 -268
  79. uncountable/types/entity_t.py +274 -0
  80. uncountable/types/experiment_groups.py +2 -17
  81. uncountable/types/experiment_groups_t.py +23 -0
  82. uncountable/types/field_values.py +5 -59
  83. uncountable/types/field_values_t.py +65 -0
  84. uncountable/types/fields.py +2 -18
  85. uncountable/types/fields_t.py +24 -0
  86. uncountable/types/id_source.py +6 -43
  87. uncountable/types/id_source_t.py +49 -0
  88. uncountable/types/identifier.py +5 -48
  89. uncountable/types/identifier_t.py +54 -0
  90. uncountable/types/input_attributes.py +2 -23
  91. uncountable/types/input_attributes_t.py +29 -0
  92. uncountable/types/inputs.py +4 -56
  93. uncountable/types/inputs_t.py +62 -0
  94. uncountable/types/outputs.py +2 -20
  95. uncountable/types/outputs_t.py +26 -0
  96. uncountable/types/permissions.py +2 -40
  97. uncountable/types/permissions_t.py +46 -0
  98. uncountable/types/phases.py +2 -17
  99. uncountable/types/phases_t.py +23 -0
  100. uncountable/types/post_base.py +2 -24
  101. uncountable/types/post_base_t.py +30 -0
  102. uncountable/types/recipe_identifiers.py +6 -56
  103. uncountable/types/recipe_identifiers_t.py +62 -0
  104. uncountable/types/recipe_inputs.py +3 -24
  105. uncountable/types/recipe_inputs_t.py +30 -0
  106. uncountable/types/recipe_links.py +3 -44
  107. uncountable/types/recipe_links_t.py +50 -0
  108. uncountable/types/recipe_metadata.py +4 -46
  109. uncountable/types/recipe_metadata_t.py +52 -0
  110. uncountable/types/recipe_output_metadata.py +2 -18
  111. uncountable/types/recipe_output_metadata_t.py +24 -0
  112. uncountable/types/recipe_tags.py +2 -17
  113. uncountable/types/recipe_tags_t.py +23 -0
  114. uncountable/types/recipe_workflow_steps.py +8 -82
  115. uncountable/types/recipe_workflow_steps_t.py +88 -0
  116. uncountable/types/recipes.py +2 -15
  117. uncountable/types/recipes_t.py +21 -0
  118. uncountable/types/response.py +2 -19
  119. uncountable/types/response_t.py +25 -0
  120. uncountable/types/units.py +2 -17
  121. uncountable/types/units_t.py +23 -0
  122. uncountable/types/users.py +2 -18
  123. uncountable/types/users_t.py +24 -0
  124. uncountable/types/workflows.py +3 -26
  125. uncountable/types/workflows_t.py +32 -0
  126. UncountablePythonSDK-0.0.39.dist-info/RECORD +0 -193
  127. {UncountablePythonSDK-0.0.39.dist-info → UncountablePythonSDK-0.0.40.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.39
3
+ Version: 0.0.40
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
@@ -0,0 +1,222 @@
1
+ docs/.gitignore,sha256=_ebkZUcwfvfnGEJ95rfj1lxoBNd6EE9ZvtOc7FsbfFE,7
2
+ docs/conf.py,sha256=YF5J-9g_Wg8wXmyHsGaE8xYlDEzqocNl3UWUmP0CwBg,1702
3
+ docs/index.md,sha256=eEdirX_Ds6ICTRtIS5iT4irCquHcQyKN7E4M5QP9T8A,257
4
+ docs/justfile,sha256=cvNcpb-ByPOF2aCrFlg3DDZBoYMx5W8xGdr13m9HcnI,215
5
+ docs/quickstart.md,sha256=3GuJ0MB1O5kjlsrgAmdSkDq0rYqATrYy-tzEHDy8H-c,422
6
+ docs/requirements.txt,sha256=NnB0-jOOufUvD3q1csl7WvQ8oHOD-5emqp_SWUXExI0,138
7
+ docs/static/logo_blue.png,sha256=SyYpMTVhhBbhF5Wl8lWaVwz-_p1MIR6dW6bVhufQRME,46708
8
+ docs/static/favicons/android-chrome-192x192.png,sha256=XoF-AhD55JlSBDGsEPJKfT_VeXT-awhwKyZnxLhrwvk,1369
9
+ docs/static/favicons/android-chrome-512x512.png,sha256=1S4xwY9YtJQ5ifFsZ-DOzssoyBYs0t9uwdOUmYx0Xso,3888
10
+ docs/static/favicons/apple-touch-icon.png,sha256=4qdKI-pFHxrot00cFGY-_jD7Kame6Ct_klQBNmW3j80,1403
11
+ docs/static/favicons/browserconfig.xml,sha256=oU7ZjY1qKLU992MIOAOZ7h-uVyqmEah2TKzyae4Uw0s,263
12
+ docs/static/favicons/favicon-16x16.png,sha256=M4r4A3_NVuw3h5pWZs5-CmhmquSMiKaNcCqyyJRjNmU,392
13
+ docs/static/favicons/favicon-32x32.png,sha256=U4UU652zGnSeU3P9kUqxPeEnVf6zhtdNdNwGz1E40UU,511
14
+ docs/static/favicons/manifest.json,sha256=6q_3nZkcg_x0xut4eE-xpdeMY1TydwiZIcbXlLAq9X8,437
15
+ docs/static/favicons/mstile-150x150.png,sha256=eAK4QdEofhdLtfmjuPTpnX3MJqYnvGXsHYUjlcQekyY,1035
16
+ docs/static/favicons/safari-pinned-tab.svg,sha256=S84fRnz0ZxLnQrKtmmFZytiRyu1xLtMR_RVy5jmwU7k,1926
17
+ examples/async_batch.py,sha256=CffQ8O9drJ-Mdd6S5DnMIOBsHv5aVkTZrD3l3xBnB4s,1094
18
+ examples/create_entity.py,sha256=noZdtJ5f9Wfiob3zUH-8bDVbrCPJnFtXFk_W9pSjvUA,664
19
+ examples/edit_recipe_inputs.py,sha256=f1zpK2T00JNQdbh7R01Sns1D_3TTgj-u8-YInoczRX8,1541
20
+ examples/upload_files.py,sha256=tUfKFqiqwnw08OL5Y8_e4j5pSRhp94cFex8XTuVa_ig,487
21
+ pkgs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
22
+ pkgs/argument_parser/__init__.py,sha256=CsQ6QoPKSLLRVl-z6URAmPkiUL9ZPZoV4rJHgy_-RjA,385
23
+ pkgs/argument_parser/_is_enum.py,sha256=Gw6jJa8nBwYGqXwwCZbSnWL8Rvr5alkg5lSVAqXtOZM,257
24
+ pkgs/argument_parser/_is_namedtuple.py,sha256=Rjc1bKanIPPogl3qG5JPBxglG1TqWYOo1nxxhBASQWY,265
25
+ pkgs/argument_parser/argument_parser.py,sha256=pcU4IhgFkea-I6PhHUex43BoVaQvnoRV-Mw3qOqCdBQ,17274
26
+ pkgs/argument_parser/case_convert.py,sha256=NuJLJUJRbyVb6_Slen4uqaStEHbcOS1d-hBBfDrrw-c,605
27
+ pkgs/serialization/__init__.py,sha256=LifasRW0a50A3qRFmo2bf3FQ6TXhZWOTz2-CVTgPjcQ,753
28
+ pkgs/serialization/missing_sentry.py,sha256=aM_9KxbCk9dVvXvcOKgkIQBqFWvLhv8QlIUCiuFEXMo,806
29
+ pkgs/serialization/opaque_key.py,sha256=FIfXEE0DA1U8R_taFbQ1RCoTSgehrPjP06-qvo-GeNQ,177
30
+ pkgs/serialization/serial_class.py,sha256=r0hrQdIbJA_X0W0_jKEVrxi_JzVRT9qHCjsUgGu3cCI,5290
31
+ pkgs/serialization/serial_union.py,sha256=z8Ptj4bVHyb1ROfg0UPTwZ6Ef6iXLr0YJfAH5o_PU9A,2601
32
+ pkgs/serialization_util/__init__.py,sha256=MVKqHTUl2YnWZAFG9xCxu1SgmkQ5xPofrAGlYg6h7rI,330
33
+ pkgs/serialization_util/_get_type_for_serialization.py,sha256=dW5_W9MFd6wgWfW5qlWork-GBb-QFLtiOZkjk2Zqn2M,1177
34
+ pkgs/serialization_util/convert_to_snakecase.py,sha256=H2BAo5ZdcCDN77RpLb-uP0s7-FQ5Ukwnsd3VYc1vD0M,583
35
+ pkgs/serialization_util/serialization_helpers.py,sha256=B8W82-KT10nQYmDk5uhAqB5QNS-dsxzXMFhtTmooMqw,6365
36
+ pkgs/strenum_compat/__init__.py,sha256=wXRFeNvBm8RU6dy1PFJ5sRLgUIEeH_DVR95Sv5qpGbk,59
37
+ pkgs/strenum_compat/strenum_compat.py,sha256=uOUAgpYTjHs1MX8dG81jRlyTkt3KNbkV_25zp7xTX2s,36
38
+ pkgs/type_spec/__init__.py,sha256=h5DmJTca4QVV10sZR1x0-MlkZfuGYDfapR3zHvXfzto,19
39
+ pkgs/type_spec/__main__.py,sha256=5bJaX9Y_-FavP0qwzhk-z-V97UY7uaezJTa1zhO_HHQ,1048
40
+ pkgs/type_spec/builder.py,sha256=xQcY2HcQTI2FSOMycgx3yD23_Oz3_LfWdyW65pDaHoc,46667
41
+ pkgs/type_spec/config.py,sha256=INfEiDcUsZFUKasHprsE6i33siPB0RnfmTKOsWcGnQ8,5043
42
+ pkgs/type_spec/emit_io_ts.py,sha256=Ghd8XYqyNYldHQDepwa9GLfHXcoi48ztBw84K28ETic,5707
43
+ pkgs/type_spec/emit_open_api.py,sha256=NVVXAvjPHC_MPqch_SMY6klj3kPnckOa7fJsb-ZsFTs,24371
44
+ pkgs/type_spec/emit_open_api_util.py,sha256=9tWLMT6NTeCa2caO8DdWo6aYoi0b4AEFiAXNaaQKJIs,2373
45
+ pkgs/type_spec/emit_python.py,sha256=djF_nUs0v3c5NI8BJjOj0gbLtf_PgbMgk5CCgvh2aPg,46469
46
+ pkgs/type_spec/emit_typescript.py,sha256=cdr5h8N70PuwORcvhURUujzwH9r1LVwJB8V2EoipGkw,17917
47
+ pkgs/type_spec/emit_typescript_util.py,sha256=sR7ys3Ilnh6SQiXJbfYk4pxfOu0bDjbUFTEYEW-ud6c,863
48
+ pkgs/type_spec/load_types.py,sha256=xEHwdB_miR3vNs161Oy1luafE0VC-yk9-utAyCJmbEo,3629
49
+ pkgs/type_spec/open_api_util.py,sha256=IGh-_snGPST_P_8FdYtO8MTEa9PUxRW6Rzg9X9EgQik,7114
50
+ pkgs/type_spec/test.py,sha256=4ueujBq-pEgnX3Z69HyPmD-bullFXmpixcpVzfOkhP4,489
51
+ pkgs/type_spec/util.py,sha256=6m6MPfY-SwjyZf2FWQKclswWB5o7gcdd-3tdpViPYOQ,4844
52
+ pkgs/type_spec/actions_registry/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
53
+ pkgs/type_spec/actions_registry/__main__.py,sha256=JGwKxcAmrQdbpVR2vwknoimN1Q-r5h4SADw1cYLYzgk,4331
54
+ pkgs/type_spec/actions_registry/emit_typescript.py,sha256=ben0W7qwaVCzLO-t3NEJPPNGEE_6sKLdJMuAh8aMBnw,6044
55
+ pkgs/type_spec/parts/base.py.prepart,sha256=wGNoDyQnLolHRZGRwHQX5TrPfKnu558NXCocYvqyroc,2174
56
+ pkgs/type_spec/parts/base.ts.prepart,sha256=2FJJvpg2olCcavxj0nbYWdwKl6KeScour2JjSvN42l8,1001
57
+ pkgs/type_spec/type_info/__main__.py,sha256=pmVjVqXyVh8vKTNCTFgz80Sg74C5BKToP3E6GS-X_So,857
58
+ pkgs/type_spec/type_info/emit_type_info.py,sha256=7FtMm_WOhxoT8Hy2DDorexIccwCNVZ9mJTBURD8l9Rk,13282
59
+ pkgs/type_spec/value_spec/__init__.py,sha256=Z-grlcZtxAfEXhPHsK0nD7PFLGsv4eqvunaPN7_TA84,83
60
+ pkgs/type_spec/value_spec/__main__.py,sha256=-9L5pXYx02plnTetqNknaUZPieLRtzbyWdZDT6B-cWA,8294
61
+ pkgs/type_spec/value_spec/convert_type.py,sha256=SAYyEV6orQJJbkXSE4hhtOQJ2vKUXJCKPeYPrB8G9oA,2272
62
+ pkgs/type_spec/value_spec/emit_python.py,sha256=rjg6LIGYdaagrZ19XpDfW_Z7LPNwCMDceBje5dsMFbw,6959
63
+ pkgs/type_spec/value_spec/types.py,sha256=a2zxbbCRWepY1l8OtjeCDKgBKFPFHVgV99oP6pTtaro,441
64
+ uncountable/__init__.py,sha256=8l8XWNCKsu7TG94c-xa2KHpDegvxDC2FyQISdWC763Y,89
65
+ uncountable/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
66
+ uncountable/core/__init__.py,sha256=RFv0kO6rKFf1PtBPu83hCGmxqkJamRtsgQ9_-ztw7tA,341
67
+ uncountable/core/async_batch.py,sha256=Zo02TICZ7AK81Qa02NQ8fp8uaijQph1FEta28K3cKb0,749
68
+ uncountable/core/client.py,sha256=50vR11GwwyTc3qOIahUxCJK77zCM7LOXwbZdHoZCZgY,10168
69
+ uncountable/core/file_upload.py,sha256=t4cutIFB5rNN2qVCx3H0HotSjCSJSxis2_QBarDuXyc,2833
70
+ uncountable/core/types.py,sha256=s2CjqYJpsmbC7xMwxxT7kJ_V9bwokrjjWVVjpMcQpKI,333
71
+ uncountable/integration/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
72
+ uncountable/integration/construct_client.py,sha256=N3K-wck7teqvHTrOh0N2bGF3u6kyuwQvgo7gsKLihQ0,1077
73
+ uncountable/integration/cron.py,sha256=DNnMkeLYi70U-3wrcDAX382FgEGq16KL6xy-6OBv5Us,938
74
+ uncountable/integration/entrypoint.py,sha256=MNXl9xv0N03V3_0vplckWlUio2CDFJ0jsjM8uvY1dTE,1404
75
+ uncountable/integration/job.py,sha256=u4Vhm9l5KUvex7I7R_ysBHjmm1BBB1KvnjRvZvFkOig,807
76
+ uncountable/integration/server.py,sha256=5Wh80VyfgUUHA5NiFGn9LjS4KJ9zJz3QbNTLLKhFAso,3342
77
+ uncountable/integration/types.py,sha256=n9idu2_qHOA5CQdE6NK8HS6aZ8ugTZKTfTTnm4sy8tI,2066
78
+ uncountable/integration/db/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
79
+ uncountable/integration/db/connect.py,sha256=YtQHJ1DBGPhxKFRCfiXqohOYUceKSxMVOJ88aPI48Ug,181
80
+ uncountable/integration/executors/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
81
+ uncountable/integration/executors/script_executor.py,sha256=hM8E-aU8zyM6ZcBtqAqInKZ_BF93RLqEA0dU7y5FhWQ,841
82
+ uncountable/types/__init__.py,sha256=7Mh5hhEpY2w33Wp8SfUc2fbvyDk_DvuK9oZFWol07dc,7771
83
+ uncountable/types/async_batch.py,sha256=ihCv5XWSTTPmuO-GMPn1EACGI2CBUIJTATZ3aPgsNBA,523
84
+ uncountable/types/async_batch_processor.py,sha256=wqwEe6L0_YdcldljZi6aaunYJTbNwYqo2rC5r_nxfvM,7368
85
+ uncountable/types/async_batch_t.py,sha256=UJ-9vkTCJjY5QNS9Us0F-_swD1as80s9xztyJzwPdmI,1773
86
+ uncountable/types/base.py,sha256=xVSjWvA_fUUnkCg83EjoYEFvAfmskinKFMeYFOxNc9E,359
87
+ uncountable/types/base_t.py,sha256=XXjZXexx0xWFUxMMhW8i9nIL6n8dsZVsHwdgnhZ0zJ4,2714
88
+ uncountable/types/calculations.py,sha256=FFO_D3BbKoGDZnqWvTKpW4KF359i2vrKjpdFCLYzJC0,284
89
+ uncountable/types/calculations_t.py,sha256=C2LlGVtVFhAo3uXK8LTXb36890nYIjfaL21goQA6YcU,559
90
+ uncountable/types/chemical_structure.py,sha256=E-LnikTFDoVQ1b2zKaVUIO_PAKm-7aZZYJi8I8SDSic,302
91
+ uncountable/types/chemical_structure_t.py,sha256=Qfeq0Iwgvd0Jq42fSsa5TPeeL_nH0FOctbmLGBlZqY4,763
92
+ uncountable/types/client_base.py,sha256=FMXVJZDoMZhUu0pjsuHg-wn7cDCFtgoYDVFd8A9L5rs,64358
93
+ uncountable/types/curves.py,sha256=W6uMpG5SyW1MS82szNpxkFEn1MnxNpBFyFbQb2Ysfng,366
94
+ uncountable/types/curves_t.py,sha256=D-7CRBxnx13-CURb2PyhYC-heHyb766zp1Dl8gb8fI0,1305
95
+ uncountable/types/entity.py,sha256=3XhLteFDRDZvHejDuYh-KvB65hpwrBygljFfiUcOAM8,315
96
+ uncountable/types/entity_t.py,sha256=zwm0YAEfO2Nk5cAOZIltTNguncU2W_E6Y194z6cmxis,11634
97
+ uncountable/types/experiment_groups.py,sha256=_0OXcPzSAbkE-rfKt5tPx178YJ4pcEKZvrCxUHgDnvw,309
98
+ uncountable/types/experiment_groups_t.py,sha256=O5Ae5J7QpY-UCJtVyFklzy2j4H7G9C_GI9gPuG7u4Ro,596
99
+ uncountable/types/field_values.py,sha256=uuIWX-xmfvcinYPdfkWJeb56zzQY01mc9rmotMPMh24,503
100
+ uncountable/types/field_values_t.py,sha256=E1bAGQ1CeKIJWSvRte-vBfVYU78FjMhPo_0FZyXMpec,1667
101
+ uncountable/types/fields.py,sha256=GUY5ne8Zp2_Lalikr0zcbdJrin8dG81eyS8fKWJ9yf8,266
102
+ uncountable/types/fields_t.py,sha256=r2voMUbJ_NNLTqLpoTlroJFz5ZtRs8Uicfk2VRnKPls,567
103
+ uncountable/types/id_source.py,sha256=wGLA0fMl-5IqBG_fg2UDC7fY-8CWRBNFJOokejOoN_w,567
104
+ uncountable/types/id_source_t.py,sha256=nboOaYjzN4WPaepfAiuGUXAc-PrIp319BXBmOyfBA9E,1336
105
+ uncountable/types/identifier.py,sha256=6ziONd__L07ijhVwpIehUUDvxgKTtHbunk-6CivJqxQ,503
106
+ uncountable/types/identifier_t.py,sha256=KwdB4TJco_ygq8UgI50XgBB3CR7xOBu_zxQs1qJlnII,1452
107
+ uncountable/types/input_attributes.py,sha256=IrIKQnHqHdS1Utdfzr9GnOe17a8riaqYcO1r0nvtkvA,304
108
+ uncountable/types/input_attributes_t.py,sha256=vfTexLpntWRQV8KLRyw_ihdvk-rL_guqGeuIpiq2QrI,823
109
+ uncountable/types/inputs.py,sha256=6RIEFfCxLqpeHEGOpu63O4i8zPogjGeB7wiV_rPBw_g,404
110
+ uncountable/types/inputs_t.py,sha256=4Xgm807Fl8AXr76jJT1cHjqOKHkhP2KcDqPhaAS7X7Y,1614
111
+ uncountable/types/outputs.py,sha256=sUZx_X-TKCZtLm1YCEH8OISX9DdPlv9ZuUfM3-askCc,281
112
+ uncountable/types/outputs_t.py,sha256=35T97zdbKOXj_63nOeICuictV0Txq6vB5rVw__4aF8E,659
113
+ uncountable/types/permissions.py,sha256=1mRnSsmRgjuLgp6pylTwwACD_YRIcmlqxHkufwZtMns,297
114
+ uncountable/types/permissions_t.py,sha256=i0vFwVvmmnInrA5qW8uuo0_tM6KYn3VYZ75d9084Vko,1625
115
+ uncountable/types/phases.py,sha256=YCsU77DdjRJJWdLTwLuOZNG4e9ML82NIBI1xTWr3ggA,266
116
+ uncountable/types/phases_t.py,sha256=uC4-16UzWVrywTTz8YBkLsiRaxS69s5ft89hZNGUzsE,547
117
+ uncountable/types/post_base.py,sha256=GES5_IhXFAjpzI6ChbVP4zTkX6f3tPUIHST1sxsRN6Q,279
118
+ uncountable/types/post_base_t.py,sha256=2et3TDnFChZcx0RWU-18RJHw9Yiyj2TJz-2tByHXwaI,770
119
+ uncountable/types/recipe_identifiers.py,sha256=Pi5KX64kzoBp_t_tjb3uVk9Ef1WPIIXGtUdINXi5vcY,654
120
+ uncountable/types/recipe_identifiers_t.py,sha256=zt3OK0aqoIl0jMgvZH8vFe_L4vsAue0Bn44NMbBJgUE,1765
121
+ uncountable/types/recipe_inputs.py,sha256=5ThNFEOGbADqqfj1V3hNvZUcO5pn1Gm17LmzQkWDrtI,351
122
+ uncountable/types/recipe_inputs_t.py,sha256=t5nFzuF1AU6SUHpya6xKHSlcckmt3XxAuk9ofjZ2oGU,746
123
+ uncountable/types/recipe_links.py,sha256=YRiu6t7FWr7ZWycIaOPXBtQFqbY_q5unaP6KQzh1LzE,343
124
+ uncountable/types/recipe_links_t.py,sha256=7Pai7fWuu5iGcHBDfDflkhj6L4MPCe9G0uER6KrsmRU,1403
125
+ uncountable/types/recipe_metadata.py,sha256=Zpcrupq_mlT2UhXpMJup5XjtubmvgZ8SbJNq7da2pCs,441
126
+ uncountable/types/recipe_metadata_t.py,sha256=JDi3AJkwRF9sgu9gvPtLy9xMixX8BM1QpiZdZHdRXF4,1434
127
+ uncountable/types/recipe_output_metadata.py,sha256=83jKZCvogG9QjZeJpQptdSam_MnnUj-tqh9EVIrTWjE,322
128
+ uncountable/types/recipe_output_metadata_t.py,sha256=PYDXH1i6-W53vqj9qy_1QXeHX6m7cmkmKGCWnM8GHfk,610
129
+ uncountable/types/recipe_tags.py,sha256=eyYa_rox00a1JQ0lOQv9STnJI04ksCL_3kHSDx5w7rM,291
130
+ uncountable/types/recipe_tags_t.py,sha256=cdn0cuHQtn3l5WQXt8rydgjYkYbhhcGyepeB-So9jhE,578
131
+ uncountable/types/recipe_workflow_steps.py,sha256=-s1sOXMny4kcqT8K_vQRbKjc1Hs855A_e9ZZejDRvN4,971
132
+ uncountable/types/recipe_workflow_steps_t.py,sha256=6dQWjZh4vxhDwa8sXcdlePYMqFwxEXTJl_IZOrwUZp0,2988
133
+ uncountable/types/recipes.py,sha256=1ifutxUN-Blv_vcwMx6DKT47My5pJTG1cwqsMqKK7LY,307
134
+ uncountable/types/recipes_t.py,sha256=U1QxgZPGDYM7HfTm7Y401-FvAh5VPigd9b34b-3kQTA,554
135
+ uncountable/types/response.py,sha256=WOlSgQYKK_fnnXk1i-h3Bwx2ZiYqpLj-lnt-hXhmbWs,274
136
+ uncountable/types/response_t.py,sha256=1vSfw7u5k5vrbQFQbVrT3JU7vkOHa86jY5T0kGVaHvY,625
137
+ uncountable/types/units.py,sha256=R_TBhxWCIWSSXK9J3S0Omtj3t5BZNK9C80MyqFjMO7k,275
138
+ uncountable/types/units_t.py,sha256=mRBkBY4u1Fko5kFhoonUp4XlwHxoUlMv_v2o727AsOs,562
139
+ uncountable/types/users.py,sha256=YEk8v0vDOBFvmOQMQw7MAOicSGzMui8Hb9hdFX2Vw3E,275
140
+ uncountable/types/users_t.py,sha256=GchFvllFynlbEDpXE_Kt5LmNu_hGfI-G1lcNjhICpgo,585
141
+ uncountable/types/workflows.py,sha256=uSZWsdDe2jpXnBnRunEen7_7pbKBrE0ds_ez98EzyPg,353
142
+ uncountable/types/workflows_t.py,sha256=bCyv0lrKutEQ7ltoUFh-PDbgCbxTk1I-gIY05jbHv_4,822
143
+ uncountable/types/api/__init__.py,sha256=gCgbynxG3jA8FQHzercKtrHKHkiIKr8APdZYUniAor8,55
144
+ uncountable/types/api/batch/__init__.py,sha256=gCgbynxG3jA8FQHzercKtrHKHkiIKr8APdZYUniAor8,55
145
+ uncountable/types/api/batch/execute_batch.py,sha256=uLpxq9eUTadDaIDe6NhIk9aXyW0FAlEYleSak6rC8hs,1693
146
+ uncountable/types/api/batch/execute_batch_load_async.py,sha256=xBPageO2rDSpZcyyF-e34DWls08BnFJeKPMAH9RfROc,867
147
+ uncountable/types/api/chemical/__init__.py,sha256=gCgbynxG3jA8FQHzercKtrHKHkiIKr8APdZYUniAor8,55
148
+ uncountable/types/api/chemical/convert_chemical_formats.py,sha256=vVw4RbR8ueEwW97kQr9MIr-srU7Qj38PnkI_5fElAXM,1302
149
+ uncountable/types/api/entity/__init__.py,sha256=gCgbynxG3jA8FQHzercKtrHKHkiIKr8APdZYUniAor8,55
150
+ uncountable/types/api/entity/create_entities.py,sha256=3e00ZPoMOHoXZVfXreBLsia5R50LJxD5tS7XpVJ576Y,1674
151
+ uncountable/types/api/entity/create_entity.py,sha256=OeG8BMPtlV529bZi3qcYeojDppuASs0J6LRncmXxrfE,1844
152
+ uncountable/types/api/entity/get_entities_data.py,sha256=O0D5MK6antWUZUaTLn10Q89iE-fpc7Earvr47obpp2A,1141
153
+ uncountable/types/api/entity/list_entities.py,sha256=GhLqLdXbdJvF5bmhpZuCUiKsxM6J66HXqy-1QJJoBXY,1684
154
+ uncountable/types/api/entity/lock_entity.py,sha256=LIJFVBQrrmf3ts09oN-V6_2MnVi2dXXd5WVRR2iaotY,995
155
+ uncountable/types/api/entity/resolve_entity_ids.py,sha256=hNYBk_ne_s3xVvQZ02Z8-V8BCbp3G5Eg0NZRWDfNUck,1073
156
+ uncountable/types/api/entity/set_values.py,sha256=NgsI7m7BMifmiFS0XSBaU5a1AG-X86bCz4DwAHvINBg,925
157
+ uncountable/types/api/entity/transition_entity_phase.py,sha256=_QiWEiOeCNnSX1YFdSqeAHYWEOEeM4-A6jHB59XaHvo,1772
158
+ uncountable/types/api/entity/unlock_entity.py,sha256=dNZAPCbi8JpB7wCUJQWxwz0k1yBgZeqdCu9Vajio3PY,944
159
+ uncountable/types/api/equipment/__init__.py,sha256=gCgbynxG3jA8FQHzercKtrHKHkiIKr8APdZYUniAor8,55
160
+ uncountable/types/api/equipment/associate_equipment_input.py,sha256=zurlH3QJaUHmruSSfi1XjXLMNQeSkkbPScAyiEOgyf8,961
161
+ uncountable/types/api/field_options/__init__.py,sha256=gCgbynxG3jA8FQHzercKtrHKHkiIKr8APdZYUniAor8,55
162
+ uncountable/types/api/field_options/upsert_field_options.py,sha256=kRezpWqVA7mrCOXt1KufeTHbRrIQEewpY5BXDSlJz70,1135
163
+ uncountable/types/api/id_source/__init__.py,sha256=gCgbynxG3jA8FQHzercKtrHKHkiIKr8APdZYUniAor8,55
164
+ uncountable/types/api/id_source/list_id_source.py,sha256=zTThlQkB6Rai2t4V4qAJX9I_SmnzA6JJSF8FnItGZeA,1141
165
+ uncountable/types/api/id_source/match_id_source.py,sha256=p016NJhx7N9qb5lWYiE-bkXvlJVqiAOArxS4ZJQoAfs,1032
166
+ uncountable/types/api/input_groups/__init__.py,sha256=gCgbynxG3jA8FQHzercKtrHKHkiIKr8APdZYUniAor8,55
167
+ uncountable/types/api/input_groups/get_input_group_names.py,sha256=3Xnug0sz4Rd9Pp34lr6I_VRQ_k7Na_aFfU4lsTw91K0,1030
168
+ uncountable/types/api/inputs/__init__.py,sha256=gCgbynxG3jA8FQHzercKtrHKHkiIKr8APdZYUniAor8,55
169
+ uncountable/types/api/inputs/create_inputs.py,sha256=LJVwafoi4dShjNW2TH8AgMY78Y0q-n1WRsfk70qAUPg,1642
170
+ uncountable/types/api/inputs/get_input_data.py,sha256=t4ab7T7FBuM16IYaOuqbl9zVHWhSQf5rlFxUTzf74Ik,2155
171
+ uncountable/types/api/inputs/get_input_names.py,sha256=gCYigBacSWU1EHY7PyDML_iX5zKTHIXsAYOLO0-Hy_I,1150
172
+ uncountable/types/api/inputs/get_inputs_data.py,sha256=Ujkl3N5va3cVFZ_cmumBQ0Gu7DM0pCnb8bxdaywGhKU,1818
173
+ uncountable/types/api/inputs/set_input_attribute_values.py,sha256=dFvpKm1bJjGXWXUdsbSgkQcIzoJBLAG4OIkq5a7lWaY,1326
174
+ uncountable/types/api/inputs/set_input_category.py,sha256=bSFF5Ix-s8rymKGsmgPM17pArbG9ibsbdjID6TCRL84,946
175
+ uncountable/types/api/inputs/set_input_subcategories.py,sha256=2FlLg7kEhyQa9eEV8gcExODNQduLhROPnsdwafsL9FA,970
176
+ uncountable/types/api/inputs/set_intermediate_type.py,sha256=TPpVIwLtYQdfcm80E9nWmkts4KsD819phDqFJJF4gVE,1100
177
+ uncountable/types/api/material_families/__init__.py,sha256=gCgbynxG3jA8FQHzercKtrHKHkiIKr8APdZYUniAor8,55
178
+ uncountable/types/api/material_families/update_entity_material_families.py,sha256=GOtVMYNCqqYrOI2hZ8z4x5mxonOZmG62OBulaQqoz4U,1344
179
+ uncountable/types/api/outputs/__init__.py,sha256=gCgbynxG3jA8FQHzercKtrHKHkiIKr8APdZYUniAor8,55
180
+ uncountable/types/api/outputs/get_output_data.py,sha256=3sfB0YxJhfsLfqTXss5jL6XVtd_iiULl29qo1jfcIoI,2228
181
+ uncountable/types/api/outputs/get_output_names.py,sha256=lQcEPVJRa6graVTqLmBj_UZzM6j8aOAN-s_XOgzD5VA,1083
182
+ uncountable/types/api/outputs/resolve_output_conditions.py,sha256=OhdiCTjxizgjHZFuzCiN1icAMrjoZ3GI2A3MNneiNww,1796
183
+ uncountable/types/api/permissions/__init__.py,sha256=gCgbynxG3jA8FQHzercKtrHKHkiIKr8APdZYUniAor8,55
184
+ uncountable/types/api/permissions/set_core_permissions.py,sha256=qEkhk4TTwzl8IkMKSy8sppUTTTo4d-1NhZ6c3xi1vf4,2513
185
+ uncountable/types/api/project/__init__.py,sha256=gCgbynxG3jA8FQHzercKtrHKHkiIKr8APdZYUniAor8,55
186
+ uncountable/types/api/project/get_projects.py,sha256=8_hXCd7sWOXajL6RqN-oFZWJqiVywzEPqQxOIUu07C4,1222
187
+ uncountable/types/api/project/get_projects_data.py,sha256=gulOmoOVTOIjGAXPLZ-GNZ0oBGww59kl-ev6Bdk5jTE,1452
188
+ uncountable/types/api/recipe_links/__init__.py,sha256=gCgbynxG3jA8FQHzercKtrHKHkiIKr8APdZYUniAor8,55
189
+ uncountable/types/api/recipe_links/create_recipe_link.py,sha256=CTkiELzsdt9tn2VM9Rzs6dYHTNW853ylyYUfcyy6Ft4,1173
190
+ uncountable/types/api/recipe_links/remove_recipe_link.py,sha256=JAziNUPh_j8TlTjx8H4tqwRcEqZ_u4dcl4P0Gd_5x9g,1159
191
+ uncountable/types/api/recipe_metadata/__init__.py,sha256=gCgbynxG3jA8FQHzercKtrHKHkiIKr8APdZYUniAor8,55
192
+ uncountable/types/api/recipe_metadata/get_recipe_metadata_data.py,sha256=hmI8txYW43p7-x3EG6JkQzUlw9Jlutg1WoC_mMrGDGA,1264
193
+ uncountable/types/api/recipes/__init__.py,sha256=gCgbynxG3jA8FQHzercKtrHKHkiIKr8APdZYUniAor8,55
194
+ uncountable/types/api/recipes/add_recipe_to_project.py,sha256=c0UriWJJdGLhraed06mKJ1c3aBXQCa1BBCYG_JLhxM0,858
195
+ uncountable/types/api/recipes/archive_recipes.py,sha256=y6bqx-nBDN-PIPnGxnleFAzhsLq-BecjHgZ_BfH_0jM,843
196
+ uncountable/types/api/recipes/associate_recipe_as_input.py,sha256=DXZf7SlcyzCAegW4qdVatMRCig288xDEe6UZjvwea7k,1003
197
+ uncountable/types/api/recipes/associate_recipe_as_lot.py,sha256=4NjNp2ULxaUcGiMp5hKjnjMbmLu-jTSI2KcfGvAqi1I,931
198
+ uncountable/types/api/recipes/create_recipe.py,sha256=9-t2K2kKrmjctGXdisFpw-1MCNR0IAaeWEb6S7U_Q9Q,1362
199
+ uncountable/types/api/recipes/create_recipes.py,sha256=G--GmvY_8Nz4epYaaOExmiTxH15Cl2POjXFgbLTd2z0,1522
200
+ uncountable/types/api/recipes/disassociate_recipe_as_input.py,sha256=5l_gzIEPCLZIlgt8jr9iS4xQ0c-BAr6SsS7HmY2TAZk,889
201
+ uncountable/types/api/recipes/edit_recipe_inputs.py,sha256=kEKTP5L4kmrFkzc4FYPSj_SEH32Vw6U7VPGxdMTr3ls,5462
202
+ uncountable/types/api/recipes/get_curve.py,sha256=dx0E7qt_wWAYT9AgmcIeqZor-p3a0LRoVPk9K8qg7oE,926
203
+ uncountable/types/api/recipes/get_recipe_calculations.py,sha256=T175uU5P7RsLul_A4dE4Lcc_1LcURS8Peozf63q2pk0,1453
204
+ uncountable/types/api/recipes/get_recipe_links.py,sha256=B38zia1Gxkyf8mX0SctVZ0fk3e0QFHOgo_VL2RCZWcM,966
205
+ uncountable/types/api/recipes/get_recipe_names.py,sha256=KSeaKWTjBTNbeyNXiHscTUvioz1HNQ-MCGd2_1ScYb0,983
206
+ uncountable/types/api/recipes/get_recipe_output_metadata.py,sha256=FEq_PCPg1JqKYpNaL6ZtowgDPIQEP_8eckrRjEM5fIM,1435
207
+ uncountable/types/api/recipes/get_recipes_data.py,sha256=vezKPPviX1y8uZMosuDdZeg4PrDMwLz4jurwFtvVtVE,5337
208
+ uncountable/types/api/recipes/lock_recipes.py,sha256=pg3oj21oHmTgDrfj9ff4XPX6-9aU0HmM2jPrZcB4tas,1335
209
+ uncountable/types/api/recipes/remove_recipe_from_project.py,sha256=lYjCR4F5V949tykrQaSXQOjpDMDUF2xtBEdJu4Nt4Xw,863
210
+ uncountable/types/api/recipes/set_recipe_inputs.py,sha256=d-vO7kvHihn4mdkzXr_hc7FsRbdC45pM0kyhTWEOPss,1423
211
+ uncountable/types/api/recipes/set_recipe_metadata.py,sha256=_I2BmhuXD-69EWgnkycA5JMv78gmHSEvc4VGUDSTsmg,905
212
+ uncountable/types/api/recipes/set_recipe_output_annotations.py,sha256=zXhzujnRNswxwWFZL8lFSMNbbatTP1Lfzmv39xc1a44,2873
213
+ uncountable/types/api/recipes/set_recipe_outputs.py,sha256=Qt_zXRbDoTnR6ivSd9CAUYb3JbMk1gzy2Ecp6WNW9NM,1696
214
+ uncountable/types/api/recipes/set_recipe_tags.py,sha256=OCzWDST6My5zmwjaW_3rqV0sSozjpzhIbm1Gky6IxgM,2436
215
+ uncountable/types/api/recipes/unarchive_recipes.py,sha256=W_tOZgz_FEVQcI3y1tnxJzxHusSz1OcByQIDoHLliHg,805
216
+ uncountable/types/api/recipes/unlock_recipes.py,sha256=BORmGgYjQfBVRnqimVXc-RcvG3QJkvexesTGuKdgoOw,1094
217
+ uncountable/types/api/triggers/__init__.py,sha256=gCgbynxG3jA8FQHzercKtrHKHkiIKr8APdZYUniAor8,55
218
+ uncountable/types/api/triggers/run_trigger.py,sha256=nV81yBsxmBi5u4hJyO8RhOd6zG0BK0y1aN33zLDbJmM,884
219
+ UncountablePythonSDK-0.0.40.dist-info/METADATA,sha256=shiGvKxG1hChoJWA-x-1_EFJOOYRGWZb77vshDSgc6U,1577
220
+ UncountablePythonSDK-0.0.40.dist-info/WHEEL,sha256=R0nc6qTxuoLk7ShA2_Y-UWkN8ZdfDBG2B6Eqpz2WXbs,91
221
+ UncountablePythonSDK-0.0.40.dist-info/top_level.txt,sha256=1UVGjAU-6hJY9qw2iJ7nCBeEwZ793AEN5ZfKX9A1uj4,31
222
+ UncountablePythonSDK-0.0.40.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (71.1.0)
2
+ Generator: setuptools (72.1.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5
 
@@ -23,7 +23,7 @@ __all__: list[str] = [
23
23
  """
24
24
  END_ALL_EXPORTS = "]\n"
25
25
 
26
- ASYNC_BATCH_TYPE_NAMESPACE = builder.SpecNamespace(name="uncountable.types.async_batch")
26
+ ASYNC_BATCH_TYPE_NAMESPACE = builder.SpecNamespace(name="async_batch")
27
27
  ASYNC_BATCH_REQUEST_PATH_STYPE = builder.SpecTypeDefnStringEnum(
28
28
  namespace=ASYNC_BATCH_TYPE_NAMESPACE, name="AsyncBatchRequestPath"
29
29
  )
@@ -57,7 +57,9 @@ class Context(TrackingContext):
57
57
 
58
58
 
59
59
  def _resolve_namespace_name(namespace: builder.SpecNamespace) -> str:
60
- return namespace.name
60
+ if len(namespace.path) > 1:
61
+ return namespace.name
62
+ return f"{namespace.name}_t"
61
63
 
62
64
 
63
65
  def _resolve_namespace_ref(namespace: builder.SpecNamespace) -> str:
@@ -294,17 +296,22 @@ def _emit_types(*, builder: builder.SpecBuilder, config: PythonConfig) -> None:
294
296
  full.write(f"# === END section from {namespace.name}.part.py ===\n")
295
297
 
296
298
  basename = "/".join(namespace.path)
297
- filename = f"{config.types_output}/{basename}.py"
299
+ filename = f"{config.types_output}/{basename}{'' if len(namespace.path) > 1 else '_t'}.py"
298
300
  util.rewrite_file(filename, full.getvalue())
299
301
 
302
+ # Deprecated SDK support
303
+ if config.all_named_type_exports and len(namespace.path) == 1:
304
+ compat_out = _create_sdk_compat_namespace(namespace)
305
+ compat_filename = f"{config.types_output}/{basename}.py"
306
+ util.rewrite_file(compat_filename, compat_out.getvalue())
307
+
300
308
  path_to = os.path.dirname(basename)
301
309
  while path_to != "":
302
310
  all_dirs.add(path_to)
303
311
  path_to = os.path.dirname(path_to)
304
312
 
305
- if len(namespace.path) == 1 or (
306
- config.all_named_type_exports and len(namespace.path) > 1
307
- ):
313
+ # Deprecated SDK support
314
+ if config.all_named_type_exports:
308
315
  index_out.write("from ")
309
316
  if len(namespace.path) == 1:
310
317
  index_out.write(".")
@@ -354,6 +361,32 @@ def _emit_namespace(ctx: Context, namespace: builder.SpecNamespace) -> None:
354
361
  _emit_constant(ctx, sconst)
355
362
 
356
363
 
364
+ def _create_sdk_compat_namespace(namespace: builder.SpecNamespace) -> io.StringIO:
365
+ compat_out = io.StringIO()
366
+ compat_out.write(LINT_HEADER)
367
+ compat_out.write(MODIFY_NOTICE)
368
+ compat_out.write("# Kept only for SDK backwards compatibility\n")
369
+
370
+ # This mostly an prepart import, thus has no high-level knowledge. Since this onl
371
+ # needs backwards copmatibiltiy from when written we can just hardcode what was there
372
+ # (only those in __all__ assuming that worked, which it might not)
373
+ if namespace.name == "base":
374
+ compat_out.write("""
375
+ from .base_t import JsonScalar as JsonScalar
376
+ from .base_t import JsonValue as JsonValue
377
+ from .base_t import ObjectId as ObjectId
378
+ """)
379
+ else:
380
+ for stype in namespace.types.values():
381
+ compat_out.write(
382
+ f"from .{namespace.path[-1]}_t import {stype.name} as {stype.name}\n"
383
+ )
384
+
385
+ compat_out.write(MODIFY_NOTICE)
386
+
387
+ return compat_out
388
+
389
+
357
390
  def _validate_supports_handler_generation(
358
391
  stype: builder.SpecTypeDefn, name: str, supports_inheritance: bool = False
359
392
  ) -> builder.SpecTypeDefnObject:
@@ -994,7 +1027,7 @@ def _emit_namespace_imports(
994
1027
  else:
995
1028
  from_path = config.types_package
996
1029
 
997
- out.write(f"from {from_path} import {resolved} as {ref}\n")
1030
+ out.write(f"from {from_path} import {resolved}\n")
998
1031
 
999
1032
 
1000
1033
  def _emit_id_source(*, builder: builder.SpecBuilder, config: PythonConfig) -> None:
@@ -6,7 +6,7 @@ import json
6
6
  from typing import Any, Optional, TypeAlias, Union, cast
7
7
 
8
8
  from main.base.types import data_t
9
- from main.base.types.base import PureJsonValue
9
+ from main.base.types.base_t import PureJsonValue
10
10
  from pkgs.argument_parser import CachedParser
11
11
  from pkgs.serialization_util import (
12
12
  serialize_for_api,
@@ -8,10 +8,10 @@ from .api.recipes import archive_recipes as archive_recipes_t
8
8
  from .api.equipment import associate_equipment_input as associate_equipment_input_t
9
9
  from .api.recipes import associate_recipe_as_input as associate_recipe_as_input_t
10
10
  from .api.recipes import associate_recipe_as_lot as associate_recipe_as_lot_t
11
- from . import async_batch as async_batch_t
12
- from . import base as base_t
13
- from . import calculations as calculations_t
14
- from . import chemical_structure as chemical_structure_t
11
+ from . import async_batch_t as async_batch_t
12
+ from . import base_t as base_t
13
+ from . import calculations_t as calculations_t
14
+ from . import chemical_structure_t as chemical_structure_t
15
15
  from .api.chemical import convert_chemical_formats as convert_chemical_formats_t
16
16
  from .api.entity import create_entities as create_entities_t
17
17
  from .api.entity import create_entity as create_entity_t
@@ -19,15 +19,15 @@ from .api.inputs import create_inputs as create_inputs_t
19
19
  from .api.recipes import create_recipe as create_recipe_t
20
20
  from .api.recipe_links import create_recipe_link as create_recipe_link_t
21
21
  from .api.recipes import create_recipes as create_recipes_t
22
- from . import curves as curves_t
22
+ from . import curves_t as curves_t
23
23
  from .api.recipes import disassociate_recipe_as_input as disassociate_recipe_as_input_t
24
24
  from .api.recipes import edit_recipe_inputs as edit_recipe_inputs_t
25
- from . import entity as entity_t
25
+ from . import entity_t as entity_t
26
26
  from .api.batch import execute_batch as execute_batch_t
27
27
  from .api.batch import execute_batch_load_async as execute_batch_load_async_t
28
- from . import experiment_groups as experiment_groups_t
29
- from . import field_values as field_values_t
30
- from . import fields as fields_t
28
+ from . import experiment_groups_t as experiment_groups_t
29
+ from . import field_values_t as field_values_t
30
+ from . import fields_t as fields_t
31
31
  from .api.recipes import get_curve as get_curve_t
32
32
  from .api.entity import get_entities_data as get_entities_data_t
33
33
  from .api.inputs import get_input_data as get_input_data_t
@@ -44,32 +44,32 @@ from .api.recipe_metadata import get_recipe_metadata_data as get_recipe_metadata
44
44
  from .api.recipes import get_recipe_names as get_recipe_names_t
45
45
  from .api.recipes import get_recipe_output_metadata as get_recipe_output_metadata_t
46
46
  from .api.recipes import get_recipes_data as get_recipes_data_t
47
- from . import id_source as id_source_t
48
- from . import identifier as identifier_t
49
- from . import input_attributes as input_attributes_t
50
- from . import inputs as inputs_t
47
+ from . import id_source_t as id_source_t
48
+ from . import identifier_t as identifier_t
49
+ from . import input_attributes_t as input_attributes_t
50
+ from . import inputs_t as inputs_t
51
51
  from .api.entity import list_entities as list_entities_t
52
52
  from .api.id_source import list_id_source as list_id_source_t
53
53
  from .api.entity import lock_entity as lock_entity_t
54
54
  from .api.recipes import lock_recipes as lock_recipes_t
55
55
  from .api.id_source import match_id_source as match_id_source_t
56
- from . import outputs as outputs_t
57
- from . import permissions as permissions_t
58
- from . import phases as phases_t
59
- from . import post_base as post_base_t
60
- from . import recipe_identifiers as recipe_identifiers_t
61
- from . import recipe_inputs as recipe_inputs_t
62
- from . import recipe_links as recipe_links_t
63
- from . import recipe_metadata as recipe_metadata_t
64
- from . import recipe_output_metadata as recipe_output_metadata_t
65
- from . import recipe_tags as recipe_tags_t
66
- from . import recipe_workflow_steps as recipe_workflow_steps_t
67
- from . import recipes as recipes_t
56
+ from . import outputs_t as outputs_t
57
+ from . import permissions_t as permissions_t
58
+ from . import phases_t as phases_t
59
+ from . import post_base_t as post_base_t
60
+ from . import recipe_identifiers_t as recipe_identifiers_t
61
+ from . import recipe_inputs_t as recipe_inputs_t
62
+ from . import recipe_links_t as recipe_links_t
63
+ from . import recipe_metadata_t as recipe_metadata_t
64
+ from . import recipe_output_metadata_t as recipe_output_metadata_t
65
+ from . import recipe_tags_t as recipe_tags_t
66
+ from . import recipe_workflow_steps_t as recipe_workflow_steps_t
67
+ from . import recipes_t as recipes_t
68
68
  from .api.recipes import remove_recipe_from_project as remove_recipe_from_project_t
69
69
  from .api.recipe_links import remove_recipe_link as remove_recipe_link_t
70
70
  from .api.entity import resolve_entity_ids as resolve_entity_ids_t
71
71
  from .api.outputs import resolve_output_conditions as resolve_output_conditions_t
72
- from . import response as response_t
72
+ from . import response_t as response_t
73
73
  from .api.triggers import run_trigger as run_trigger_t
74
74
  from .api.permissions import set_core_permissions as set_core_permissions_t
75
75
  from .api.inputs import set_input_attribute_values as set_input_attribute_values_t
@@ -84,13 +84,13 @@ from .api.recipes import set_recipe_tags as set_recipe_tags_t
84
84
  from .api.entity import set_values as set_values_t
85
85
  from .api.entity import transition_entity_phase as transition_entity_phase_t
86
86
  from .api.recipes import unarchive_recipes as unarchive_recipes_t
87
- from . import units as units_t
87
+ from . import units_t as units_t
88
88
  from .api.entity import unlock_entity as unlock_entity_t
89
89
  from .api.recipes import unlock_recipes as unlock_recipes_t
90
90
  from .api.material_families import update_entity_material_families as update_entity_material_families_t
91
91
  from .api.field_options import upsert_field_options as upsert_field_options_t
92
- from . import users as users_t
93
- from . import workflows as workflows_t
92
+ from . import users_t as users_t
93
+ from . import workflows_t as workflows_t
94
94
 
95
95
 
96
96
  __all__: list[str] = [
@@ -10,7 +10,7 @@ from decimal import Decimal # noqa: F401
10
10
  from pkgs.strenum_compat import StrEnum
11
11
  from dataclasses import dataclass
12
12
  from pkgs.serialization import serial_class
13
- from ... import base as base_t
13
+ from ... import base_t
14
14
 
15
15
  __all__: list[str] = [
16
16
  "Arguments",
@@ -8,8 +8,8 @@ import typing # noqa: F401
8
8
  import datetime # noqa: F401
9
9
  from decimal import Decimal # noqa: F401
10
10
  from dataclasses import dataclass
11
- from ... import async_batch as async_batch_t
12
- from ... import base as base_t
11
+ from ... import async_batch_t
12
+ from ... import base_t
13
13
 
14
14
  __all__: list[str] = [
15
15
  "Arguments",
@@ -9,7 +9,7 @@ import datetime # noqa: F401
9
9
  from decimal import Decimal # noqa: F401
10
10
  from dataclasses import dataclass
11
11
  from pkgs.serialization import serial_class
12
- from ... import base as base_t
12
+ from ... import base_t
13
13
 
14
14
  __all__: list[str] = [
15
15
  "Arguments",
@@ -8,9 +8,9 @@ import typing # noqa: F401
8
8
  import datetime # noqa: F401
9
9
  from decimal import Decimal # noqa: F401
10
10
  from dataclasses import dataclass
11
- from ... import base as base_t
12
- from ... import entity as entity_t
13
- from ... import field_values as field_values_t
11
+ from ... import base_t
12
+ from ... import entity_t
13
+ from ... import field_values_t
14
14
 
15
15
  __all__: list[str] = [
16
16
  "Arguments",
@@ -9,9 +9,9 @@ import datetime # noqa: F401
9
9
  from decimal import Decimal # noqa: F401
10
10
  from dataclasses import dataclass
11
11
  from pkgs.serialization import serial_class
12
- from ... import base as base_t
13
- from ... import entity as entity_t
14
- from ... import field_values as field_values_t
12
+ from ... import base_t
13
+ from ... import entity_t
14
+ from ... import field_values_t
15
15
 
16
16
  __all__: list[str] = [
17
17
  "Arguments",
@@ -8,9 +8,9 @@ import typing # noqa: F401
8
8
  import datetime # noqa: F401
9
9
  from decimal import Decimal # noqa: F401
10
10
  from dataclasses import dataclass
11
- from ... import base as base_t
12
- from ... import entity as entity_t
13
- from ... import field_values as field_values_t
11
+ from ... import base_t
12
+ from ... import entity_t
13
+ from ... import field_values_t
14
14
 
15
15
  __all__: list[str] = [
16
16
  "Arguments",
@@ -10,8 +10,8 @@ from decimal import Decimal # noqa: F401
10
10
  from dataclasses import dataclass
11
11
  from pkgs.serialization import serial_class
12
12
  from pkgs.serialization import OpaqueKey
13
- from ... import base as base_t
14
- from ... import entity as entity_t
13
+ from ... import base_t
14
+ from ... import entity_t
15
15
 
16
16
  __all__: list[str] = [
17
17
  "Arguments",
@@ -8,9 +8,9 @@ import typing # noqa: F401
8
8
  import datetime # noqa: F401
9
9
  from decimal import Decimal # noqa: F401
10
10
  from dataclasses import dataclass
11
- from ... import async_batch as async_batch_t
12
- from ... import entity as entity_t
13
- from ... import identifier as identifier_t
11
+ from ... import async_batch_t
12
+ from ... import entity_t
13
+ from ... import identifier_t
14
14
 
15
15
  __all__: list[str] = [
16
16
  "Arguments",
@@ -8,8 +8,8 @@ import typing # noqa: F401
8
8
  import datetime # noqa: F401
9
9
  from decimal import Decimal # noqa: F401
10
10
  from dataclasses import dataclass
11
- from ... import base as base_t
12
- from ... import entity as entity_t
11
+ from ... import base_t
12
+ from ... import entity_t
13
13
 
14
14
  __all__: list[str] = [
15
15
  "Arguments",
@@ -8,9 +8,9 @@ import typing # noqa: F401
8
8
  import datetime # noqa: F401
9
9
  from decimal import Decimal # noqa: F401
10
10
  from dataclasses import dataclass
11
- from ... import entity as entity_t
12
- from ... import field_values as field_values_t
13
- from ... import response as response_t
11
+ from ... import entity_t
12
+ from ... import field_values_t
13
+ from ... import response_t
14
14
 
15
15
  __all__: list[str] = [
16
16
  "Arguments",
@@ -9,9 +9,9 @@ import datetime # noqa: F401
9
9
  from decimal import Decimal # noqa: F401
10
10
  from dataclasses import dataclass
11
11
  from pkgs.serialization import serial_class
12
- from ... import entity as entity_t
13
- from ... import identifier as identifier_t
14
- from ... import response as response_t
12
+ from ... import entity_t
13
+ from ... import identifier_t
14
+ from ... import response_t
15
15
 
16
16
  __all__: list[str] = [
17
17
  "Arguments",
@@ -8,9 +8,9 @@ import typing # noqa: F401
8
8
  import datetime # noqa: F401
9
9
  from decimal import Decimal # noqa: F401
10
10
  from dataclasses import dataclass
11
- from ... import async_batch as async_batch_t
12
- from ... import entity as entity_t
13
- from ... import identifier as identifier_t
11
+ from ... import async_batch_t
12
+ from ... import entity_t
13
+ from ... import identifier_t
14
14
 
15
15
  __all__: list[str] = [
16
16
  "Arguments",
@@ -8,9 +8,9 @@ import typing # noqa: F401
8
8
  import datetime # noqa: F401
9
9
  from decimal import Decimal # noqa: F401
10
10
  from dataclasses import dataclass
11
- from ... import async_batch as async_batch_t
12
- from ... import base as base_t
13
- from ... import identifier as identifier_t
11
+ from ... import async_batch_t
12
+ from ... import base_t
13
+ from ... import identifier_t
14
14
 
15
15
  __all__: list[str] = [
16
16
  "Arguments",
@@ -8,7 +8,7 @@ import typing # noqa: F401
8
8
  import datetime # noqa: F401
9
9
  from decimal import Decimal # noqa: F401
10
10
  from dataclasses import dataclass
11
- from ... import identifier as identifier_t
11
+ from ... import identifier_t
12
12
 
13
13
  __all__: list[str] = [
14
14
  "Arguments",