UncountablePythonSDK 0.0.92__py3-none-any.whl → 0.0.93__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.
- {UncountablePythonSDK-0.0.92.dist-info → UncountablePythonSDK-0.0.93.dist-info}/METADATA +1 -1
- UncountablePythonSDK-0.0.93.dist-info/RECORD +301 -0
- pkgs/argument_parser/argument_parser.py +7 -7
- pkgs/filesystem_utils/_s3_session.py +2 -1
- pkgs/serialization/annotation.py +3 -3
- pkgs/serialization/missing_sentry.py +1 -1
- pkgs/serialization/serial_alias.py +2 -2
- pkgs/serialization/serial_class.py +1 -1
- pkgs/serialization/serial_generic.py +1 -1
- pkgs/serialization/serial_union.py +3 -3
- pkgs/serialization_util/serialization_helpers.py +1 -4
- pkgs/type_spec/actions_registry/__main__.py +0 -4
- pkgs/type_spec/builder.py +25 -21
- pkgs/type_spec/config.py +2 -5
- pkgs/type_spec/emit_open_api.py +1 -1
- pkgs/type_spec/emit_python.py +44 -28
- pkgs/type_spec/emit_typescript.py +13 -6
- pkgs/type_spec/parts/base.py.prepart +2 -0
- pkgs/type_spec/util.py +3 -5
- pkgs/type_spec/value_spec/__main__.py +15 -5
- pkgs/type_spec/value_spec/emit_python.py +5 -2
- pkgs/type_spec/value_spec/types.py +1 -1
- uncountable/core/client.py +3 -3
- uncountable/core/file_upload.py +5 -0
- uncountable/integration/job.py +2 -2
- uncountable/integration/queue_runner/command_server/types.py +1 -1
- uncountable/integration/server.py +4 -4
- uncountable/types/__init__.py +0 -1
- uncountable/types/api/batch/execute_batch.py +1 -2
- uncountable/types/api/batch/execute_batch_load_async.py +0 -1
- uncountable/types/api/chemical/convert_chemical_formats.py +0 -1
- uncountable/types/api/entity/create_entities.py +1 -2
- uncountable/types/api/entity/create_entity.py +2 -3
- uncountable/types/api/entity/get_entities_data.py +0 -1
- uncountable/types/api/entity/grant_entity_permissions.py +0 -1
- uncountable/types/api/entity/list_entities.py +3 -4
- uncountable/types/api/entity/lock_entity.py +0 -1
- uncountable/types/api/entity/resolve_entity_ids.py +2 -3
- uncountable/types/api/entity/set_entity_field_values.py +0 -1
- uncountable/types/api/entity/set_values.py +0 -1
- uncountable/types/api/entity/transition_entity_phase.py +1 -2
- uncountable/types/api/entity/unlock_entity.py +0 -1
- uncountable/types/api/equipment/associate_equipment_input.py +0 -1
- uncountable/types/api/field_options/upsert_field_options.py +0 -1
- uncountable/types/api/files/download_file.py +1 -2
- uncountable/types/api/id_source/list_id_source.py +3 -4
- uncountable/types/api/id_source/match_id_source.py +1 -2
- uncountable/types/api/input_groups/get_input_group_names.py +0 -1
- uncountable/types/api/inputs/create_inputs.py +2 -3
- uncountable/types/api/inputs/get_input_data.py +5 -6
- uncountable/types/api/inputs/get_input_names.py +3 -4
- uncountable/types/api/inputs/get_inputs_data.py +0 -1
- uncountable/types/api/inputs/set_input_attribute_values.py +0 -1
- uncountable/types/api/inputs/set_input_category.py +1 -2
- uncountable/types/api/inputs/set_input_subcategories.py +0 -1
- uncountable/types/api/inputs/set_intermediate_type.py +1 -2
- uncountable/types/api/material_families/update_entity_material_families.py +1 -2
- uncountable/types/api/outputs/get_output_data.py +2 -3
- uncountable/types/api/outputs/get_output_names.py +0 -1
- uncountable/types/api/outputs/resolve_output_conditions.py +0 -1
- uncountable/types/api/permissions/set_core_permissions.py +1 -2
- uncountable/types/api/project/get_projects.py +3 -4
- uncountable/types/api/project/get_projects_data.py +4 -5
- uncountable/types/api/recipe_links/create_recipe_link.py +1 -2
- uncountable/types/api/recipe_links/remove_recipe_link.py +1 -2
- uncountable/types/api/recipe_metadata/get_recipe_metadata_data.py +3 -4
- uncountable/types/api/recipes/add_recipe_to_project.py +0 -1
- uncountable/types/api/recipes/archive_recipes.py +0 -1
- uncountable/types/api/recipes/associate_recipe_as_input.py +0 -1
- uncountable/types/api/recipes/associate_recipe_as_lot.py +0 -1
- uncountable/types/api/recipes/clear_recipe_outputs.py +0 -1
- uncountable/types/api/recipes/create_recipe.py +1 -2
- uncountable/types/api/recipes/create_recipes.py +1 -2
- uncountable/types/api/recipes/disassociate_recipe_as_input.py +0 -1
- uncountable/types/api/recipes/edit_recipe_inputs.py +3 -4
- uncountable/types/api/recipes/get_column_calculation_values.py +0 -1
- uncountable/types/api/recipes/get_curve.py +0 -1
- uncountable/types/api/recipes/get_recipe_calculations.py +0 -1
- uncountable/types/api/recipes/get_recipe_links.py +1 -2
- uncountable/types/api/recipes/get_recipe_names.py +0 -1
- uncountable/types/api/recipes/get_recipe_output_metadata.py +0 -1
- uncountable/types/api/recipes/get_recipes_data.py +13 -14
- uncountable/types/api/recipes/lock_recipes.py +1 -2
- uncountable/types/api/recipes/remove_recipe_from_project.py +0 -1
- uncountable/types/api/recipes/set_recipe_inputs.py +1 -2
- uncountable/types/api/recipes/set_recipe_metadata.py +0 -1
- uncountable/types/api/recipes/set_recipe_output_annotations.py +2 -3
- uncountable/types/api/recipes/set_recipe_output_file.py +0 -1
- uncountable/types/api/recipes/set_recipe_outputs.py +3 -4
- uncountable/types/api/recipes/set_recipe_tags.py +2 -3
- uncountable/types/api/recipes/unarchive_recipes.py +0 -1
- uncountable/types/api/recipes/unlock_recipes.py +1 -2
- uncountable/types/api/triggers/run_trigger.py +0 -1
- uncountable/types/api/uploader/invoke_uploader.py +0 -1
- uncountable/types/async_batch.py +0 -1
- uncountable/types/async_batch_processor.py +1 -2
- uncountable/types/async_batch_t.py +1 -2
- uncountable/types/async_jobs.py +0 -1
- uncountable/types/async_jobs_t.py +1 -2
- uncountable/types/auth_retrieval.py +0 -1
- uncountable/types/auth_retrieval_t.py +2 -3
- uncountable/types/base.py +0 -1
- uncountable/types/base_t.py +2 -1
- uncountable/types/calculations.py +0 -1
- uncountable/types/calculations_t.py +0 -1
- uncountable/types/chemical_structure.py +0 -1
- uncountable/types/chemical_structure_t.py +0 -1
- uncountable/types/client_base.py +29 -30
- uncountable/types/client_config.py +0 -1
- uncountable/types/client_config_t.py +1 -2
- uncountable/types/curves.py +0 -1
- uncountable/types/curves_t.py +2 -3
- uncountable/types/entity.py +0 -1
- uncountable/types/entity_t.py +3 -4
- uncountable/types/experiment_groups.py +0 -1
- uncountable/types/experiment_groups_t.py +0 -1
- uncountable/types/field_values.py +0 -1
- uncountable/types/field_values_t.py +6 -7
- uncountable/types/fields.py +0 -1
- uncountable/types/fields_t.py +0 -1
- uncountable/types/generic_upload.py +0 -1
- uncountable/types/generic_upload_t.py +2 -3
- uncountable/types/id_source.py +0 -1
- uncountable/types/id_source_t.py +1 -2
- uncountable/types/identifier.py +0 -1
- uncountable/types/identifier_t.py +1 -2
- uncountable/types/input_attributes.py +0 -1
- uncountable/types/input_attributes_t.py +0 -1
- uncountable/types/inputs.py +0 -1
- uncountable/types/inputs_t.py +2 -3
- uncountable/types/integration_server.py +0 -1
- uncountable/types/integration_server_t.py +1 -2
- uncountable/types/job_definition.py +0 -1
- uncountable/types/job_definition_t.py +5 -6
- uncountable/types/outputs.py +0 -1
- uncountable/types/outputs_t.py +1 -2
- uncountable/types/overrides.py +0 -1
- uncountable/types/overrides_t.py +0 -1
- uncountable/types/permissions.py +0 -1
- uncountable/types/permissions_t.py +1 -2
- uncountable/types/phases.py +0 -1
- uncountable/types/phases_t.py +0 -1
- uncountable/types/post_base.py +0 -1
- uncountable/types/post_base_t.py +1 -2
- uncountable/types/queued_job.py +0 -1
- uncountable/types/queued_job_t.py +2 -3
- uncountable/types/recipe_identifiers.py +0 -1
- uncountable/types/recipe_identifiers_t.py +1 -2
- uncountable/types/recipe_inputs.py +0 -1
- uncountable/types/recipe_inputs_t.py +1 -2
- uncountable/types/recipe_links.py +0 -1
- uncountable/types/recipe_links_t.py +2 -3
- uncountable/types/recipe_metadata.py +0 -1
- uncountable/types/recipe_metadata_t.py +0 -1
- uncountable/types/recipe_output_metadata.py +0 -1
- uncountable/types/recipe_output_metadata_t.py +0 -1
- uncountable/types/recipe_tags.py +0 -1
- uncountable/types/recipe_tags_t.py +0 -1
- uncountable/types/recipe_workflow_steps.py +0 -1
- uncountable/types/recipe_workflow_steps_t.py +2 -3
- uncountable/types/recipes.py +0 -1
- uncountable/types/recipes_t.py +0 -1
- uncountable/types/response.py +0 -1
- uncountable/types/response_t.py +0 -1
- uncountable/types/secret_retrieval.py +0 -1
- uncountable/types/secret_retrieval_t.py +2 -3
- uncountable/types/units.py +0 -1
- uncountable/types/units_t.py +0 -1
- uncountable/types/users.py +0 -1
- uncountable/types/users_t.py +0 -1
- uncountable/types/webhook_job.py +0 -1
- uncountable/types/webhook_job_t.py +0 -1
- uncountable/types/workflows.py +0 -1
- uncountable/types/workflows_t.py +1 -2
- UncountablePythonSDK-0.0.92.dist-info/RECORD +0 -301
- {UncountablePythonSDK-0.0.92.dist-info → UncountablePythonSDK-0.0.93.dist-info}/WHEEL +0 -0
- {UncountablePythonSDK-0.0.92.dist-info → UncountablePythonSDK-0.0.93.dist-info}/top_level.txt +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.2
|
|
2
2
|
Name: UncountablePythonSDK
|
|
3
|
-
Version: 0.0.
|
|
3
|
+
Version: 0.0.93
|
|
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,301 @@
|
|
|
1
|
+
docs/.gitignore,sha256=_ebkZUcwfvfnGEJ95rfj1lxoBNd6EE9ZvtOc7FsbfFE,7
|
|
2
|
+
docs/conf.py,sha256=YF5J-9g_Wg8wXmyHsGaE8xYlDEzqocNl3UWUmP0CwBg,1702
|
|
3
|
+
docs/index.md,sha256=eEdirX_Ds6ICTRtIS5iT4irCquHcQyKN7E4M5QP9T8A,257
|
|
4
|
+
docs/justfile,sha256=cvNcpb-ByPOF2aCrFlg3DDZBoYMx5W8xGdr13m9HcnI,215
|
|
5
|
+
docs/quickstart.md,sha256=3GuJ0MB1O5kjlsrgAmdSkDq0rYqATrYy-tzEHDy8H-c,422
|
|
6
|
+
docs/requirements.txt,sha256=-sWMwUL2L6vU1QzoQAS-aP8oPbUqXDfMxCeeTKnShFc,138
|
|
7
|
+
docs/static/logo_blue.png,sha256=SyYpMTVhhBbhF5Wl8lWaVwz-_p1MIR6dW6bVhufQRME,46708
|
|
8
|
+
docs/static/favicons/android-chrome-192x192.png,sha256=XoF-AhD55JlSBDGsEPJKfT_VeXT-awhwKyZnxLhrwvk,1369
|
|
9
|
+
docs/static/favicons/android-chrome-512x512.png,sha256=1S4xwY9YtJQ5ifFsZ-DOzssoyBYs0t9uwdOUmYx0Xso,3888
|
|
10
|
+
docs/static/favicons/apple-touch-icon.png,sha256=4qdKI-pFHxrot00cFGY-_jD7Kame6Ct_klQBNmW3j80,1403
|
|
11
|
+
docs/static/favicons/browserconfig.xml,sha256=oU7ZjY1qKLU992MIOAOZ7h-uVyqmEah2TKzyae4Uw0s,263
|
|
12
|
+
docs/static/favicons/favicon-16x16.png,sha256=M4r4A3_NVuw3h5pWZs5-CmhmquSMiKaNcCqyyJRjNmU,392
|
|
13
|
+
docs/static/favicons/favicon-32x32.png,sha256=U4UU652zGnSeU3P9kUqxPeEnVf6zhtdNdNwGz1E40UU,511
|
|
14
|
+
docs/static/favicons/manifest.json,sha256=6q_3nZkcg_x0xut4eE-xpdeMY1TydwiZIcbXlLAq9X8,437
|
|
15
|
+
docs/static/favicons/mstile-150x150.png,sha256=eAK4QdEofhdLtfmjuPTpnX3MJqYnvGXsHYUjlcQekyY,1035
|
|
16
|
+
docs/static/favicons/safari-pinned-tab.svg,sha256=S84fRnz0ZxLnQrKtmmFZytiRyu1xLtMR_RVy5jmwU7k,1926
|
|
17
|
+
examples/async_batch.py,sha256=tEyvgxk2uf681mKlN4TDuPMkb1OHyM9oO8pYW4A7HvM,1142
|
|
18
|
+
examples/create_entity.py,sha256=t6WBZsWRDbWZgFCWXKGgKL5LAB6-38oaiNYGxMAa2No,686
|
|
19
|
+
examples/download_files.py,sha256=rjv7EUgSw_W24_F5La-MljnIDQhbrvA7p2M-qPFbrXA,734
|
|
20
|
+
examples/edit_recipe_inputs.py,sha256=mtk_oSkN-OT2hKkb1XKXrRiUaGYTJstXuOKyTR51Fjo,1663
|
|
21
|
+
examples/invoke_uploader.py,sha256=rEvmVY5TjigN_-4PTQdkjY-bC5DrYMcJgquyZ4Tt5FM,748
|
|
22
|
+
examples/set_recipe_metadata_file.py,sha256=cRVXGz4UN4aqnNrNSzyBmikYHpe63lMIuzOpMwD9EDU,1036
|
|
23
|
+
examples/set_recipe_output_file_sdk.py,sha256=Lz1amqppnWTX83z-C090wCJ4hcKmCD3kb-4v0uBRi0Y,782
|
|
24
|
+
examples/upload_files.py,sha256=qMaSvMSdTMPOOP55y1AwEurc0SOdZAMvEydlqJPsGpg,432
|
|
25
|
+
examples/integration-server/pyproject.toml,sha256=ziyEbSiTYlOk784euVJjuZ3UqIEENkPXuug5VTrkjms,9131
|
|
26
|
+
examples/integration-server/jobs/materials_auto/example_cron.py,sha256=7VVQ-UJsq3DbGpN3XPnorRVZYo-vCwbfSU3VVDluIzA,699
|
|
27
|
+
examples/integration-server/jobs/materials_auto/example_wh.py,sha256=Hx5nonavOh2L3JykDpI5bPqPu8L1wwhwekTUfTRgq9g,479
|
|
28
|
+
examples/integration-server/jobs/materials_auto/profile.yaml,sha256=XlOXSRplMJ13T6900pv1wDKxeE9V1hZZTMuvup1MiBM,896
|
|
29
|
+
pkgs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
30
|
+
pkgs/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
31
|
+
pkgs/argument_parser/__init__.py,sha256=AOL6yZkJg9Z8Q4v4JY4agEbMDQWPptVauSA_itShv64,693
|
|
32
|
+
pkgs/argument_parser/_is_enum.py,sha256=Gw6jJa8nBwYGqXwwCZbSnWL8Rvr5alkg5lSVAqXtOZM,257
|
|
33
|
+
pkgs/argument_parser/_is_namedtuple.py,sha256=Rjc1bKanIPPogl3qG5JPBxglG1TqWYOo1nxxhBASQWY,265
|
|
34
|
+
pkgs/argument_parser/argument_parser.py,sha256=_W0-HLC1F8jXgeFJnhUREorqcXzuhZi__eX_7FFkkVs,19363
|
|
35
|
+
pkgs/argument_parser/case_convert.py,sha256=NuJLJUJRbyVb6_Slen4uqaStEHbcOS1d-hBBfDrrw-c,605
|
|
36
|
+
pkgs/filesystem_utils/__init__.py,sha256=2a0d2rEPlEEYwhm3Wckny4VCp4ZS7JtYSXmwdwNCRjo,1332
|
|
37
|
+
pkgs/filesystem_utils/_blob_session.py,sha256=CtoB7PIocuZo8vvFIS_Rc-YR6KwzFB0rHUVPKFEbRAI,4862
|
|
38
|
+
pkgs/filesystem_utils/_gdrive_session.py,sha256=XTAKppTfIiJtPkzq90yftoMHa-kcGe9MDZQlmx1bviQ,11058
|
|
39
|
+
pkgs/filesystem_utils/_local_session.py,sha256=xFEYhAvNqrOYqwt4jrEYOuYkjJn0zclZhTelW_Q1-rw,2325
|
|
40
|
+
pkgs/filesystem_utils/_s3_session.py,sha256=DdD6M90z1VyTiuRdTmjvBNJOEFHBPyEU8wGKRKwHvOU,4027
|
|
41
|
+
pkgs/filesystem_utils/_sftp_session.py,sha256=6qwBGYu8UTFYw9YAmYAD0qL9qtivRRQpvzmlInmJZ_k,4709
|
|
42
|
+
pkgs/filesystem_utils/file_type_utils.py,sha256=oklu7Wtcxg9pBz84cAlXpNlhYEM0AbsO5DoEqvFjoXY,1896
|
|
43
|
+
pkgs/filesystem_utils/filesystem_session.py,sha256=BQ2Go8Mu9-GcnaWh2Pm4x7ugLVsres6XrOQ8RoiEpcE,1045
|
|
44
|
+
pkgs/serialization/__init__.py,sha256=b2sNfYICz0D6Y8shzEUfyUoHZukfuAvfuaZvg8dZHic,1163
|
|
45
|
+
pkgs/serialization/annotation.py,sha256=wn9yb4a4DrsyPAYqY9mVswJarP4lsOkgfnvchrg5toE,2104
|
|
46
|
+
pkgs/serialization/missing_sentry.py,sha256=89SomyM0sBWLr_N0SPOyxU3hWcm1ljL-veTazZ1-GU8,811
|
|
47
|
+
pkgs/serialization/opaque_key.py,sha256=8ak7aMCGWkKDjnG374yqy8gtnCCUzG2DSJEBfoPgi0c,194
|
|
48
|
+
pkgs/serialization/serial_alias.py,sha256=zP0wAy7NGvpyOe-TGUwHy3wPF0XZTIwFLh_caDX67BU,1343
|
|
49
|
+
pkgs/serialization/serial_class.py,sha256=hL5SVL4MqSzeTXSLL15fvDQtk32z0NywsKBWUL9b-k0,6100
|
|
50
|
+
pkgs/serialization/serial_generic.py,sha256=vAC0-o9fkco2lM_YvBavY0JDYncDxbW3jFboYeHRImw,461
|
|
51
|
+
pkgs/serialization/serial_union.py,sha256=IdWsSsM8j-qGfl5Wv6haX37ZS1SKob8XT8cilBBOVIo,2670
|
|
52
|
+
pkgs/serialization/yaml.py,sha256=yoJtu7_ixnJV6uTxA_U1PpK5F_ixT08AKVh5ocyYwXM,1466
|
|
53
|
+
pkgs/serialization_util/__init__.py,sha256=YykkhqGNKiLCo-D5vSTq6WiPNfCyPXyr-mQO5e5Klak,513
|
|
54
|
+
pkgs/serialization_util/_get_type_for_serialization.py,sha256=dW5_W9MFd6wgWfW5qlWork-GBb-QFLtiOZkjk2Zqn2M,1177
|
|
55
|
+
pkgs/serialization_util/convert_to_snakecase.py,sha256=H2BAo5ZdcCDN77RpLb-uP0s7-FQ5Ukwnsd3VYc1vD0M,583
|
|
56
|
+
pkgs/serialization_util/dataclasses.py,sha256=uhNGXQPQLZblDFQuuwkAGmKOPiRyfDzCdg72CVtYJGA,390
|
|
57
|
+
pkgs/serialization_util/serialization_helpers.py,sha256=d11gYBe0WDlPDMqi8LatD4I5RluIcheD8xtMXnPLF1g,6537
|
|
58
|
+
pkgs/strenum_compat/__init__.py,sha256=wXRFeNvBm8RU6dy1PFJ5sRLgUIEeH_DVR95Sv5qpGbk,59
|
|
59
|
+
pkgs/strenum_compat/strenum_compat.py,sha256=uOUAgpYTjHs1MX8dG81jRlyTkt3KNbkV_25zp7xTX2s,36
|
|
60
|
+
pkgs/type_spec/__init__.py,sha256=h5DmJTca4QVV10sZR1x0-MlkZfuGYDfapR3zHvXfzto,19
|
|
61
|
+
pkgs/type_spec/__main__.py,sha256=5bJaX9Y_-FavP0qwzhk-z-V97UY7uaezJTa1zhO_HHQ,1048
|
|
62
|
+
pkgs/type_spec/builder.py,sha256=eXvfY3TaxF4zdSvoshVQC_q_ZA0S0x6-caJ4M_5oY7M,52731
|
|
63
|
+
pkgs/type_spec/config.py,sha256=K-DFjRVIW5RCJOuB0QhkWZMOrsIZavFURqmhgAoULgw,5103
|
|
64
|
+
pkgs/type_spec/emit_io_ts.py,sha256=CUvBs0boB_X-Kndh66yYcqFfq3oC_LGs8YffLkJ0ZXA,5707
|
|
65
|
+
pkgs/type_spec/emit_open_api.py,sha256=9AgtHB3ZIObs9cV-RqNZt_q1icmIGwPeovQ63gTl-l8,24541
|
|
66
|
+
pkgs/type_spec/emit_open_api_util.py,sha256=34zslFjTiOI5q8YreBOLD-afmaW4lrlK7pBpNAd3CxA,2379
|
|
67
|
+
pkgs/type_spec/emit_python.py,sha256=BohmwGN89EDHiNlT6-z7xv2C0vIRhQ2SXr4kdoue2a4,52103
|
|
68
|
+
pkgs/type_spec/emit_typescript.py,sha256=_7-SLAOP0jMIrDWDKCPJpyykJh3n0hynm5b-Ltq23hM,10620
|
|
69
|
+
pkgs/type_spec/emit_typescript_util.py,sha256=sugxboeMwXiIdk4RDyUR_CxU31Le3OQ7i5HmuHeSLvc,10447
|
|
70
|
+
pkgs/type_spec/load_types.py,sha256=ero3SXB0M7xKHni5Qxop5Yh5A1TYjjoqwkEgUCQx71Q,3657
|
|
71
|
+
pkgs/type_spec/open_api_util.py,sha256=OiuMWUIwi7ibIOABtuHnhrPdfd3rVxv0MJ1ZY1xj_qw,7083
|
|
72
|
+
pkgs/type_spec/test.py,sha256=4ueujBq-pEgnX3Z69HyPmD-bullFXmpixcpVzfOkhP4,489
|
|
73
|
+
pkgs/type_spec/util.py,sha256=TPmFVgiGj6niurg4V-AKFkQQDDDtJ8a5o2Z_EDgMTvU,4827
|
|
74
|
+
pkgs/type_spec/actions_registry/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
75
|
+
pkgs/type_spec/actions_registry/__main__.py,sha256=SRw6kIhHTW7W2wGijYq66JARzoc4KpPmbLqwvnETyTE,4277
|
|
76
|
+
pkgs/type_spec/actions_registry/emit_typescript.py,sha256=W1lI36ITdJ7MBf37wlTB7H3X9Ljt217vIGMv4e3fxfY,5986
|
|
77
|
+
pkgs/type_spec/parts/base.py.prepart,sha256=RDNNo4nbLiC9ASIODq2xIt0HkwDNiJVcmjDD33Bubaw,2303
|
|
78
|
+
pkgs/type_spec/parts/base.ts.prepart,sha256=2FJJvpg2olCcavxj0nbYWdwKl6KeScour2JjSvN42l8,1001
|
|
79
|
+
pkgs/type_spec/type_info/__main__.py,sha256=pmVjVqXyVh8vKTNCTFgz80Sg74C5BKToP3E6GS-X_So,857
|
|
80
|
+
pkgs/type_spec/type_info/emit_type_info.py,sha256=mQSxG-UTFl0i8ylvXEvpk1d9NIMYsx39Le7-i5JVuN0,13520
|
|
81
|
+
pkgs/type_spec/value_spec/__init__.py,sha256=Z-grlcZtxAfEXhPHsK0nD7PFLGsv4eqvunaPN7_TA84,83
|
|
82
|
+
pkgs/type_spec/value_spec/__main__.py,sha256=hCTdANTgCNTdZVcXeUd8axENrKNb_oVNrmrygjQht48,8663
|
|
83
|
+
pkgs/type_spec/value_spec/convert_type.py,sha256=X5N7DOTo5XOIHbcYHh9RZFthzb2gcnYg2tRuVMBhbxY,2517
|
|
84
|
+
pkgs/type_spec/value_spec/emit_python.py,sha256=lWO4PFcXo0jgkQy6ZAVN4QJ1jdNXXzkS3oxWCtycQ4k,7131
|
|
85
|
+
pkgs/type_spec/value_spec/types.py,sha256=Yc3LaKHN1G6wbgrBv0dpu5vijUXtS2GcDTusYPnDvK0,454
|
|
86
|
+
uncountable/__init__.py,sha256=8l8XWNCKsu7TG94c-xa2KHpDegvxDC2FyQISdWC763Y,89
|
|
87
|
+
uncountable/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
88
|
+
uncountable/core/__init__.py,sha256=RFv0kO6rKFf1PtBPu83hCGmxqkJamRtsgQ9_-ztw7tA,341
|
|
89
|
+
uncountable/core/async_batch.py,sha256=9pYGFzVCQXt8059qFHgutweGIFPquJ5Xfq6NT5P-1K0,1206
|
|
90
|
+
uncountable/core/client.py,sha256=cypErG4AXAcgkzetvlSLWA75-LKjqreobZgjSfSUKbY,13004
|
|
91
|
+
uncountable/core/environment.py,sha256=6cc-nUvUIbJMI0OSEg3dWI-iNgSYhCdUKKn607Z3QpM,1040
|
|
92
|
+
uncountable/core/file_upload.py,sha256=bgvXk9vfF5qlhy2NAUcEEG7Q7i-c1wr2HrpaWD7HldU,4516
|
|
93
|
+
uncountable/core/types.py,sha256=s2CjqYJpsmbC7xMwxxT7kJ_V9bwokrjjWVVjpMcQpKI,333
|
|
94
|
+
uncountable/integration/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
95
|
+
uncountable/integration/cli.py,sha256=h3RE0l1SdjkveOKeY2amlmrJppK4HEQJXk8VG9UJRWg,1359
|
|
96
|
+
uncountable/integration/construct_client.py,sha256=I53mGcdS88hba3HFwgXmWQaTd1d5u0jWNSwyc_vlVsQ,1937
|
|
97
|
+
uncountable/integration/cron.py,sha256=6eH-kIs3sdYPCyb62_L2M7U_uQTdMTdwY5hreEJb0hw,887
|
|
98
|
+
uncountable/integration/entrypoint.py,sha256=BHOYPQgKvZE6HG8Rv15MkdYl8lRkvfDgv1OdLo0oQ9Q,433
|
|
99
|
+
uncountable/integration/job.py,sha256=zamfyEhtZh0cWyd8DvVq64RlaA1aX_wtOALv6Kf7tyo,2354
|
|
100
|
+
uncountable/integration/scan_profiles.py,sha256=760zbv7O7wXxHUHqUkFBpd1Afe8hqxMPU3ugwZGdhEo,2925
|
|
101
|
+
uncountable/integration/scheduler.py,sha256=jrtktQYGW4QKRLH5GvhOFvCl4S9CLLhWY2GF0rzY-KM,4780
|
|
102
|
+
uncountable/integration/server.py,sha256=m_DYRosGbHuPhygM32Xo-jRBl_oaUhOYsBBD1qwwKh4,4697
|
|
103
|
+
uncountable/integration/telemetry.py,sha256=QFvvJdzc15CvdaRLFaJeru0OouAFbYdhHYYovbT8bXg,7425
|
|
104
|
+
uncountable/integration/db/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
105
|
+
uncountable/integration/db/connect.py,sha256=mE3bdV0huclH2iT_dXCQdRL4LkjIuf_myAR64RTWXEs,498
|
|
106
|
+
uncountable/integration/db/session.py,sha256=96cGQXpe6IugBTdSsjdP0S5yhJ6toSmbVB6qhc3FJzE,693
|
|
107
|
+
uncountable/integration/executors/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
108
|
+
uncountable/integration/executors/executors.py,sha256=Kzisp1eKufGCWrHIw4mmAj-l1UQ2oJsJR7I-_mksnVs,5441
|
|
109
|
+
uncountable/integration/executors/generic_upload_executor.py,sha256=OnVY4KfmAgaf9LPSAgj7H2wFRXwNXBpg7egVy85z5lk,10327
|
|
110
|
+
uncountable/integration/executors/script_executor.py,sha256=BBQ9f0l7uH2hgKf60jtm-pONzwk-EeOhM2qBAbv_URo,846
|
|
111
|
+
uncountable/integration/queue_runner/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
112
|
+
uncountable/integration/queue_runner/job_scheduler.py,sha256=2acmeWscG87MZsifxwMRMGJ4sQgQVNJNr5CqIPUg75E,6288
|
|
113
|
+
uncountable/integration/queue_runner/queue_runner.py,sha256=0BmYu5zHdothTevGsB-nXg6MBd1UD-WkP3h1WCKMdQg,710
|
|
114
|
+
uncountable/integration/queue_runner/types.py,sha256=8qTq29BTSa5rmW6CBlBntP0pNIiDcwu1wHa78pjroS0,219
|
|
115
|
+
uncountable/integration/queue_runner/worker.py,sha256=WwJmwHkgovfiqrMeNJVtIyDYJAib5ajog5ag2l_AquI,4584
|
|
116
|
+
uncountable/integration/queue_runner/command_server/__init__.py,sha256=gQPVILGpWzCr2i5GJyoqna7AOSFvtn4tav69gB78mTQ,571
|
|
117
|
+
uncountable/integration/queue_runner/command_server/command_client.py,sha256=DJb0TUVFkiiLBEQzHSN94sTRnuEbutNEgdN39XmnOXI,2046
|
|
118
|
+
uncountable/integration/queue_runner/command_server/command_server.py,sha256=yyXryhiEC2eGS0yFElLGsVzSKwOuYvj-zp22jQorkv0,2138
|
|
119
|
+
uncountable/integration/queue_runner/command_server/types.py,sha256=PGq6EAGPC_nppXQKp9alAjuBQx1h87BefiMa0XU--PY,975
|
|
120
|
+
uncountable/integration/queue_runner/command_server/protocol/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
121
|
+
uncountable/integration/queue_runner/command_server/protocol/command_server.proto,sha256=pf7FAT2eGuao0VYCFrgTAsM-tiPi1Bhz19XN5So1WFk,439
|
|
122
|
+
uncountable/integration/queue_runner/command_server/protocol/command_server_pb2.py,sha256=-lBTc5Tz48agqNSeOSpBE69e2kRmWF59sUaowCl8p7U,2207
|
|
123
|
+
uncountable/integration/queue_runner/command_server/protocol/command_server_pb2.pyi,sha256=9viBn6PHvtfMSRwam57ke5O2D_k8LapWYVfBRjknIYg,1281
|
|
124
|
+
uncountable/integration/queue_runner/command_server/protocol/command_server_pb2_grpc.py,sha256=ZVHkuLDjEbXMCxBsw1UrRhT3EEF8CDDqEvmE3Kbp1H4,5359
|
|
125
|
+
uncountable/integration/queue_runner/datastore/__init__.py,sha256=6BefApqN8D2zlVOH14QAeVzwQ8j5NIb41-njT02Za0k,88
|
|
126
|
+
uncountable/integration/queue_runner/datastore/datastore_sqlite.py,sha256=UZQABTrM3HxVaojCnI1pTU3v1GsbE3G-OCgXP5ekcxI,3801
|
|
127
|
+
uncountable/integration/queue_runner/datastore/interface.py,sha256=j4D-zVvLq-48VTVwHVei82UVUJ_P3cxiseyiTl0MoNw,534
|
|
128
|
+
uncountable/integration/queue_runner/datastore/model.py,sha256=8-RI5A2yPZVGBLWINVmMd6VOl_oHtqGtnaNXcapAChw,577
|
|
129
|
+
uncountable/integration/secret_retrieval/__init__.py,sha256=3QXVj35w8rRMxVvmmsViFYDi3lcb3g70incfalOEm6o,87
|
|
130
|
+
uncountable/integration/secret_retrieval/retrieve_secret.py,sha256=9iz9N8Z-B68QwFCXsx8hTYbgDbk06ejkJ3RQ9mCLMyM,3000
|
|
131
|
+
uncountable/integration/webhook_server/entrypoint.py,sha256=yQWQq_k3kbJkSsEEt6k22YwhXekezJZfV0rnn-hP-Yo,5516
|
|
132
|
+
uncountable/types/__init__.py,sha256=BEYks35yh8J3pp-BI5-CyIUrH96IQ7myliD-zOhbyao,9196
|
|
133
|
+
uncountable/types/async_batch.py,sha256=yCCWrrLQfxXVqZp-KskxLBNkNmuELdz4PJjx8ULppgs,662
|
|
134
|
+
uncountable/types/async_batch_processor.py,sha256=ETgkfb-DLmI4bZwsgS6Awbm_zEXyjbtW5TZVpIIGN_0,14170
|
|
135
|
+
uncountable/types/async_batch_t.py,sha256=zJF7BsrVEquPPg7z28clkLXo6_cGFBwHriCmJ3y7eEw,3001
|
|
136
|
+
uncountable/types/async_jobs.py,sha256=JI0ScfawaqMRbJ2jbgW3YQLhijPnBeYdMnZJjygSxHg,322
|
|
137
|
+
uncountable/types/async_jobs_t.py,sha256=u4xd3i512PZ-9592Q2ZgWh_faMiI4UMm0F_gOmZnerI,1389
|
|
138
|
+
uncountable/types/auth_retrieval.py,sha256=770zjN1K9EF5zs1Xml7x6ke6Hkze7rcMT5FdDVCIl9M,549
|
|
139
|
+
uncountable/types/auth_retrieval_t.py,sha256=PFjSoRupf2wGAz1SonuNyf8CVW9nVeaiHLFOPMZkQxw,2172
|
|
140
|
+
uncountable/types/base.py,sha256=10-34wiyxrOZr2RQNiBohDNWc7b2i_La_yMuKLYslcU,338
|
|
141
|
+
uncountable/types/base_t.py,sha256=9Hrcs0Op6xrJCmhfyzUqKsJmt1WBZMa0K9cuSiPDKfg,2822
|
|
142
|
+
uncountable/types/calculations.py,sha256=fApOFpgBemt_t7IVneVR0VdI3X5EOxiG6Xhzr6RR8Gw,263
|
|
143
|
+
uncountable/types/calculations_t.py,sha256=LE_HWYPf7yxNTpH5sVPaC0e98OxJ5hUOhHezeJNKDtk,648
|
|
144
|
+
uncountable/types/chemical_structure.py,sha256=ujyragaD26-QG5jgKnWhO7TN3N1V9b_04T2WhqNYxxo,281
|
|
145
|
+
uncountable/types/chemical_structure_t.py,sha256=iYmGER_vXqoksv2Nr189qU1Zm70s-U49Eiv0DkWaB1I,773
|
|
146
|
+
uncountable/types/client_base.py,sha256=h5nOrnuw6Szq-fEu9mxzMhqMlm3HDpoi5PlL9Or8ypk,68699
|
|
147
|
+
uncountable/types/client_config.py,sha256=qLpHt4O_B098CyN6qQajoxZ2zjZ1DILXLUEGyyGP0TQ,280
|
|
148
|
+
uncountable/types/client_config_t.py,sha256=k_UkjemqiVuJBiFUjJYk3h673Nahr0nGZvfEZFzsC0k,699
|
|
149
|
+
uncountable/types/curves.py,sha256=QyEyC20jsG-LGKVx6miiF-w70vKMwNkILFBDIJ5Ok9g,345
|
|
150
|
+
uncountable/types/curves_t.py,sha256=2_9qdrSl1XAvIG57lo45KWNpa0wXgZ97OkSRCPRrudc,1347
|
|
151
|
+
uncountable/types/entity.py,sha256=Zclk1LYcRaYrMDhqyCjMSLEg0fE6_q8LHvV22Qvscgs,566
|
|
152
|
+
uncountable/types/entity_t.py,sha256=dTf525ZlAnhWwuCPElR5xooLt0q0LtdtTMkgMQv15nM,17422
|
|
153
|
+
uncountable/types/experiment_groups.py,sha256=qUpFOx1AKgzaT_4khCOv5Xs6jwiQGbvHH-GUh3v1nv4,288
|
|
154
|
+
uncountable/types/experiment_groups_t.py,sha256=_fAYZwqYLR3cFdv2vwLOYs5TvH5CEWDEbh3kFpg26zY,700
|
|
155
|
+
uncountable/types/field_values.py,sha256=hERqHIDmWPQpdW7BLitdA-DNiutmll-ggecwEO7FoVU,1181
|
|
156
|
+
uncountable/types/field_values_t.py,sha256=2BFTqfmlf1tvTFfY5I8xMIBd0IX-EupnzOtwFYFklQs,5751
|
|
157
|
+
uncountable/types/fields.py,sha256=M0_ZZr0QdNLXkdHAGo5mfU90kEtHedCSKrcod-FG30Y,245
|
|
158
|
+
uncountable/types/fields_t.py,sha256=Ze-X83HyM7q4oMk5LLRfPqvRojyAx6dDqIUPX70gNYc,644
|
|
159
|
+
uncountable/types/generic_upload.py,sha256=bNep2nT0fbKAlJaGvHWPmuvfX5KtS8kgTqTh8FQk1NA,858
|
|
160
|
+
uncountable/types/generic_upload_t.py,sha256=z7rxOu8SEyOmIlz06AAXmRkbQdBEpZigb8N2eGi6XIY,3756
|
|
161
|
+
uncountable/types/id_source.py,sha256=sBlDfUwHQ7bGWMschSD_aPQL7LVnCPiV2RAlPLXrAqk,546
|
|
162
|
+
uncountable/types/id_source_t.py,sha256=XzxQWkD0iQoq6LxtpCVWylYtOvq5dXslu_2ML1xNP_U,1838
|
|
163
|
+
uncountable/types/identifier.py,sha256=J-ptCFE0_R0bBAvrYp-gvHk8H9Qq9rhbmeyXgwb9nos,482
|
|
164
|
+
uncountable/types/identifier_t.py,sha256=b0V4_vQYWrsCnCJgNlR1FlHQGsGmGgrqREB5IhKsOec,1787
|
|
165
|
+
uncountable/types/input_attributes.py,sha256=T4qGyuZAgcdkaWeS0T7PFKQN44GEdAvVBBsaEkaCmdA,283
|
|
166
|
+
uncountable/types/input_attributes_t.py,sha256=3m5Bbs5Hj6jX425T0hmqUkjxfDTjhDgMgvKsE2vPBlA,843
|
|
167
|
+
uncountable/types/inputs.py,sha256=3ghg39_oiLF5HqWF_wNwYv4HMR1lrKLfeRLn5ptIGw4,446
|
|
168
|
+
uncountable/types/inputs_t.py,sha256=0b3U77JcZT4hgUvbP_i-E5RoJbJnRxn3OKBqGWu32TM,2097
|
|
169
|
+
uncountable/types/integration_server.py,sha256=VonA8h8TGnVBiss5W8-K82lA01JQa7TLk0ubFo8iiBQ,364
|
|
170
|
+
uncountable/types/integration_server_t.py,sha256=37zyqeet54P9m6pxaZfLOgZCqqZA2dxJ5gl6NCoelQ0,1188
|
|
171
|
+
uncountable/types/job_definition.py,sha256=6BkLZrmTfIYh45XFGZ5HOYveued0YXvl17YTlXblXjw,1646
|
|
172
|
+
uncountable/types/job_definition_t.py,sha256=n8lwjNtt6eHg01yARRIgDiLO9W8ev5upb3qs2RPHZXg,7753
|
|
173
|
+
uncountable/types/outputs.py,sha256=I6zP2WHXg_jXgMqmuEJuJOlsjKjQGHjfs1JOwW9YxBM,260
|
|
174
|
+
uncountable/types/outputs_t.py,sha256=ZJhKKkksJ-K7iuuumCly9edU8TRv-eWol4PKG7XPo3E,734
|
|
175
|
+
uncountable/types/overrides.py,sha256=fOvj8P9K9ul8fnTwA--l140EWHuc1BFq8tXgtBkYld4,410
|
|
176
|
+
uncountable/types/overrides_t.py,sha256=WNKKHrZcO6ZzeZfEXEW0xCsGWjbmHeUddT-4qp81Y8o,1303
|
|
177
|
+
uncountable/types/permissions.py,sha256=F24reVRd-J3iRSif8BwMNUcDwxRluBrTre3mJ36HP90,276
|
|
178
|
+
uncountable/types/permissions_t.py,sha256=hmAUZryOdnkZS0BeFViH-6fJ4rVPtwJaZ1JLlL_aGl4,1589
|
|
179
|
+
uncountable/types/phases.py,sha256=Capx0Tbx52151tHWw8tdOT_NMKMOyHZhrNuGrhuBzfo,245
|
|
180
|
+
uncountable/types/phases_t.py,sha256=L4HsYZHw_PR79eBbMwluN-Cpvv1bZvep2Foe3ju3WP0,624
|
|
181
|
+
uncountable/types/post_base.py,sha256=nHqFw6U6ENxcuj_Y3VG-Sk1NEt4Tud2iBxPhRsJpQKM,258
|
|
182
|
+
uncountable/types/post_base_t.py,sha256=nZl7XQHc9cSnLgccaBZM93bcnSSjTlo2_TL40n-o7K0,734
|
|
183
|
+
uncountable/types/queued_job.py,sha256=TlQMf69foLfr134k00LvFEB4OuGAZHZJl9ro9UzVpaU,821
|
|
184
|
+
uncountable/types/queued_job_t.py,sha256=NyJSdn3VECk_EIONGq8_FXA7S2cJJmlPs32c8BAOEuY,3527
|
|
185
|
+
uncountable/types/recipe_identifiers.py,sha256=nqrubqofaeg_zV6vOrzqbiuX5tDUQYrGyvugpWX38mY,633
|
|
186
|
+
uncountable/types/recipe_identifiers_t.py,sha256=0L2xT9uqQCFr2F8VkAKdjsbQFp-CQ8-wKNn6UFoPcP4,2260
|
|
187
|
+
uncountable/types/recipe_inputs.py,sha256=dLqKvac-Ff3owutgvBD8Hc5KPoiu-6Zy22WOUJtAuus,330
|
|
188
|
+
uncountable/types/recipe_inputs_t.py,sha256=jZ4uFw20-87rBJswK0UYxDNp6AcHhug7nSm5-3HN0XA,710
|
|
189
|
+
uncountable/types/recipe_links.py,sha256=5E25kptfPIAd96RRlE9lbdRrWKkbLz21S5K_tJ4sKrA,322
|
|
190
|
+
uncountable/types/recipe_links_t.py,sha256=6igPp7IzbqJGmFJXrB1hbMGYrWkaqQ5yapXoKjj-G3w,1483
|
|
191
|
+
uncountable/types/recipe_metadata.py,sha256=98whijK1TSrvkk_5oumyb8312nZvb6nw7x4Op6jSJy8,420
|
|
192
|
+
uncountable/types/recipe_metadata_t.py,sha256=ORth4ae2SHtbASZmiVpMSZhE_-pNOqyzus-w7YM5YCw,1641
|
|
193
|
+
uncountable/types/recipe_output_metadata.py,sha256=SfG1IKRC0Sybp9v9kUjr7kTV_PO365I8W7jvgKZ9j60,301
|
|
194
|
+
uncountable/types/recipe_output_metadata_t.py,sha256=llf9O2vK6AFRva5hx0VdiKXT9XQ2iN-N25W_0Zlxp9g,723
|
|
195
|
+
uncountable/types/recipe_tags.py,sha256=tKIwHY677lZCxrmOk1bbuZQgDuf1n1cNyp6c5r1uRbo,270
|
|
196
|
+
uncountable/types/recipe_tags_t.py,sha256=7qi9m8NAq7BdocIBdYyMVArFnPJrwuX0B9qoqlJiwzM,670
|
|
197
|
+
uncountable/types/recipe_workflow_steps.py,sha256=fb55_sREdeZrtguIZOuy4ZcTLbRBNAxQ3A0oGbH8muA,950
|
|
198
|
+
uncountable/types/recipe_workflow_steps_t.py,sha256=dwjuFI6ncLBwr7Ufa-W26nrfF-BqZ_pKFIpKP05WqOo,3406
|
|
199
|
+
uncountable/types/recipes.py,sha256=6Z7bagYXX15kGlhYt_OFiYSD3lqFp4H0EquI1fUfYyk,286
|
|
200
|
+
uncountable/types/recipes_t.py,sha256=GBT56H34_pqAdeTgcye6ZNZLR1V47lG_S-R_uV-XUh8,652
|
|
201
|
+
uncountable/types/response.py,sha256=SJTwjTxZGItGJJYPZ_T1zTooEbtR5ZA8GT_cf8aXfn8,253
|
|
202
|
+
uncountable/types/response_t.py,sha256=I4lArMXf50SFWon_Tl9AJjqqrzvfeSXv_C-AKfnGcZM,646
|
|
203
|
+
uncountable/types/secret_retrieval.py,sha256=poY_nuZBIjNu64Wa0x5Ytsmh3OdAxps2kzuDgv1sa_8,571
|
|
204
|
+
uncountable/types/secret_retrieval_t.py,sha256=hcJRp2OLPd5m7twve63F8gloL8KFJiCtyJD17H6WiAc,2138
|
|
205
|
+
uncountable/types/units.py,sha256=yxuddayiE8cnzrjQiIsURisWc-Vm1F37uyS3fjM--Ao,254
|
|
206
|
+
uncountable/types/units_t.py,sha256=DUP2ydfWdPM8X4sBGOvm6g7CoZ1kqwpWidwSlWYQEek,643
|
|
207
|
+
uncountable/types/users.py,sha256=R-bFIh07mMl6HyxP8hKmlT-QMbBXZPZ7mVuOIeOlCsg,254
|
|
208
|
+
uncountable/types/users_t.py,sha256=rpwi31aZMyrNJgzUUPgo2lHAlYv82UKr5XGq1XmkrUA,666
|
|
209
|
+
uncountable/types/webhook_job.py,sha256=3LdsSMCNmZZrFwTHJpVR7XzIJiu2T2cbE-0ScwfLMBc,342
|
|
210
|
+
uncountable/types/webhook_job_t.py,sha256=BJvqdio9n93qhNw1aUWkU0WaGqXU_03qSzBM1gj3_9E,958
|
|
211
|
+
uncountable/types/workflows.py,sha256=sZhBDSzu85M0teTRiKNqd389oUK2tMcWGpKUlKIuSdY,332
|
|
212
|
+
uncountable/types/workflows_t.py,sha256=UCsCd_1-SHRZZljpQRxOuM74epKH2H5D2qfSNDzI2Ek,986
|
|
213
|
+
uncountable/types/api/__init__.py,sha256=gCgbynxG3jA8FQHzercKtrHKHkiIKr8APdZYUniAor8,55
|
|
214
|
+
uncountable/types/api/batch/__init__.py,sha256=gCgbynxG3jA8FQHzercKtrHKHkiIKr8APdZYUniAor8,55
|
|
215
|
+
uncountable/types/api/batch/execute_batch.py,sha256=jOjMcne7iEF7LP_dURjHzG0_0dLkW7FDKSKKyhi5OU4,1970
|
|
216
|
+
uncountable/types/api/batch/execute_batch_load_async.py,sha256=rxr2pvJ4w_2XnqzffX4Lu0JKB1s9AHZweSua-bvUK_A,1072
|
|
217
|
+
uncountable/types/api/chemical/__init__.py,sha256=gCgbynxG3jA8FQHzercKtrHKHkiIKr8APdZYUniAor8,55
|
|
218
|
+
uncountable/types/api/chemical/convert_chemical_formats.py,sha256=B1MT10IfFLapomSwzJyAKvyjrwKVDqEuESIhCJPJtgc,1778
|
|
219
|
+
uncountable/types/api/entity/__init__.py,sha256=gCgbynxG3jA8FQHzercKtrHKHkiIKr8APdZYUniAor8,55
|
|
220
|
+
uncountable/types/api/entity/create_entities.py,sha256=2MVtjfpegFwwUU0NGu-cpvgwusV-6B0zhCPWclXTEsc,1562
|
|
221
|
+
uncountable/types/api/entity/create_entity.py,sha256=cVEYcn3ao1vEiF7CiKd85OYBqqqd7ElwRyD_V5C_BHg,1647
|
|
222
|
+
uncountable/types/api/entity/get_entities_data.py,sha256=OUeBo0YkZmVTHT2EHAQt19rm2PU4OpJzOj3aCmZMw0Y,1433
|
|
223
|
+
uncountable/types/api/entity/grant_entity_permissions.py,sha256=Zx3FDHSjiBN_wRtmxbWSWdmT-CkzEoi2uoVLCIdS2Q8,1391
|
|
224
|
+
uncountable/types/api/entity/list_entities.py,sha256=1I6T6fjfolXx1lg8iRiCO5J0ieU0bdudPp31ZmMkXIQ,1895
|
|
225
|
+
uncountable/types/api/entity/lock_entity.py,sha256=cWRTNlXj6Ei1M0mHwfbhid7hQs4whCheUCOmf8PIGqw,1166
|
|
226
|
+
uncountable/types/api/entity/resolve_entity_ids.py,sha256=44B79L4erUB0G90WBGor0ZPs3XhdkuX7ZvgVF9uWB2M,1340
|
|
227
|
+
uncountable/types/api/entity/set_entity_field_values.py,sha256=ZYtRrsx0MWc0txC6yH2HtCONC5A0IolpqvwHm_YgirU,1179
|
|
228
|
+
uncountable/types/api/entity/set_values.py,sha256=2lANfjqPOcyxqDeISmzW0KghVbe8_i4QNkcLXzdAkag,1104
|
|
229
|
+
uncountable/types/api/entity/transition_entity_phase.py,sha256=HOFFjo4vEqxYTO_-ugFFIzI21llWAxXZ1m86ANrd8t4,2325
|
|
230
|
+
uncountable/types/api/entity/unlock_entity.py,sha256=D-EO1hQ5MckX_8D-pDgiOqMLCEV0rcjoCTNdqZUofNs,1129
|
|
231
|
+
uncountable/types/api/equipment/__init__.py,sha256=gCgbynxG3jA8FQHzercKtrHKHkiIKr8APdZYUniAor8,55
|
|
232
|
+
uncountable/types/api/equipment/associate_equipment_input.py,sha256=T10F9R5HaqEwqkUBDxxCRHqhWCX_ufHezKOgBuDYnEc,1176
|
|
233
|
+
uncountable/types/api/field_options/__init__.py,sha256=gCgbynxG3jA8FQHzercKtrHKHkiIKr8APdZYUniAor8,55
|
|
234
|
+
uncountable/types/api/field_options/upsert_field_options.py,sha256=7HOoqenKWU8r7u_M8FXM2WfPFD3_gpCuyI_tJG56C5w,1425
|
|
235
|
+
uncountable/types/api/files/__init__.py,sha256=gCgbynxG3jA8FQHzercKtrHKHkiIKr8APdZYUniAor8,55
|
|
236
|
+
uncountable/types/api/files/download_file.py,sha256=uk-GpdpuhC4Eng815c1LfTDBjPEdqVWKuCFGwJZmNf8,2208
|
|
237
|
+
uncountable/types/api/id_source/__init__.py,sha256=gCgbynxG3jA8FQHzercKtrHKHkiIKr8APdZYUniAor8,55
|
|
238
|
+
uncountable/types/api/id_source/list_id_source.py,sha256=rKNuf78xPMKzmwNErrSsAEikpQOfXc4HxKXZ8VNf6j4,1359
|
|
239
|
+
uncountable/types/api/id_source/match_id_source.py,sha256=9rA8IbFFZArWByFtXXFGmBNhX7g5URSRHmDa7GsvuLE,1306
|
|
240
|
+
uncountable/types/api/input_groups/__init__.py,sha256=gCgbynxG3jA8FQHzercKtrHKHkiIKr8APdZYUniAor8,55
|
|
241
|
+
uncountable/types/api/input_groups/get_input_group_names.py,sha256=bSEZZpWMLw-H433tIcfUMPsiC6y2Waw7_nLl_vVn5gY,1355
|
|
242
|
+
uncountable/types/api/inputs/__init__.py,sha256=gCgbynxG3jA8FQHzercKtrHKHkiIKr8APdZYUniAor8,55
|
|
243
|
+
uncountable/types/api/inputs/create_inputs.py,sha256=mhX7J19QyT93pN2MRePprm_RSmTSWynZE0zT-m25XjI,1969
|
|
244
|
+
uncountable/types/api/inputs/get_input_data.py,sha256=LGpeCzfwJg_HytTI-gr3Y9qXqdMheiiKTcB_oqCAs2g,2661
|
|
245
|
+
uncountable/types/api/inputs/get_input_names.py,sha256=ZUaIyUQRisaaLAl8X_VHqF4WqLacFhMwAFYZucGAPEc,1372
|
|
246
|
+
uncountable/types/api/inputs/get_inputs_data.py,sha256=nMgN_PE1AuKHnnYgMAwjYoWIQNjkvTyiiyt9G0xGJNc,2392
|
|
247
|
+
uncountable/types/api/inputs/set_input_attribute_values.py,sha256=aHZAEdV7YNao1nk_pwFXlAZ0W217eX9Fa7Uga3SX7LM,1570
|
|
248
|
+
uncountable/types/api/inputs/set_input_category.py,sha256=a2sV0pE_EsZd6DBS3ud2KLl4JhzrKFN5T2kHCNSaBf4,1138
|
|
249
|
+
uncountable/types/api/inputs/set_input_subcategories.py,sha256=y-Wttpmddpe7ps9OxsVe96x3t1R_p5h4xShJxI7i5MY,1175
|
|
250
|
+
uncountable/types/api/inputs/set_intermediate_type.py,sha256=8eodqt_J6OqmU4qyfbjgc43UrlG8xBfUEY-e9oRDFxI,1286
|
|
251
|
+
uncountable/types/api/material_families/__init__.py,sha256=gCgbynxG3jA8FQHzercKtrHKHkiIKr8APdZYUniAor8,55
|
|
252
|
+
uncountable/types/api/material_families/update_entity_material_families.py,sha256=UNKzPnwF7IjeaZFe8NwK4hwxyEe7Yd6v4p19yvf43-U,1577
|
|
253
|
+
uncountable/types/api/outputs/__init__.py,sha256=gCgbynxG3jA8FQHzercKtrHKHkiIKr8APdZYUniAor8,55
|
|
254
|
+
uncountable/types/api/outputs/get_output_data.py,sha256=Sg2gkAN9k9171eW1-5spsHKERgIFfPkX8mGe_t0ep2c,2703
|
|
255
|
+
uncountable/types/api/outputs/get_output_names.py,sha256=m4lSzpZF1g0CBtQBzOS0MH6hsuVOMs0FlJAKlTz6hW4,1356
|
|
256
|
+
uncountable/types/api/outputs/resolve_output_conditions.py,sha256=8Zs_CcCenDyypI3L0nEkVYx_fRJ-J7wq-J1sw5Ztass,2273
|
|
257
|
+
uncountable/types/api/permissions/__init__.py,sha256=gCgbynxG3jA8FQHzercKtrHKHkiIKr8APdZYUniAor8,55
|
|
258
|
+
uncountable/types/api/permissions/set_core_permissions.py,sha256=Kf5yt2IlwSqGpyEyIl1sTVO0wpdGEk984ojmK3-JwYk,3262
|
|
259
|
+
uncountable/types/api/project/__init__.py,sha256=gCgbynxG3jA8FQHzercKtrHKHkiIKr8APdZYUniAor8,55
|
|
260
|
+
uncountable/types/api/project/get_projects.py,sha256=DHThOC3XesjDPjle3LTW93ef6DTjrVKIK2AZcbv2_s0,1466
|
|
261
|
+
uncountable/types/api/project/get_projects_data.py,sha256=wp-mL40BNR9I1NXBXYVWlCGxLOFsT2T9B0aoFTYCuZA,1675
|
|
262
|
+
uncountable/types/api/recipe_links/__init__.py,sha256=gCgbynxG3jA8FQHzercKtrHKHkiIKr8APdZYUniAor8,55
|
|
263
|
+
uncountable/types/api/recipe_links/create_recipe_link.py,sha256=Z8WTy6SQPDt2zleRXhKzj2jS-R1QfLnQFg56XVctftQ,1368
|
|
264
|
+
uncountable/types/api/recipe_links/remove_recipe_link.py,sha256=HZQ15AqPjTqSEJjRY3L9RnU0T2EuzV4Wu7ilbeLhuDI,1354
|
|
265
|
+
uncountable/types/api/recipe_metadata/__init__.py,sha256=gCgbynxG3jA8FQHzercKtrHKHkiIKr8APdZYUniAor8,55
|
|
266
|
+
uncountable/types/api/recipe_metadata/get_recipe_metadata_data.py,sha256=fW-6_vBIGa5Wx8JvEdpKb3orXD60DX_wOeHnmMPduc8,1550
|
|
267
|
+
uncountable/types/api/recipes/__init__.py,sha256=gCgbynxG3jA8FQHzercKtrHKHkiIKr8APdZYUniAor8,55
|
|
268
|
+
uncountable/types/api/recipes/add_recipe_to_project.py,sha256=vJL6DljCu4okNHvXJ5_uaBj0-QDEm9iTvVGMLYyDd2U,1061
|
|
269
|
+
uncountable/types/api/recipes/archive_recipes.py,sha256=07Rjd9kwh5pMpiMXNr9OfjOB4vYXeuLjQtBxrXkXC7o,1024
|
|
270
|
+
uncountable/types/api/recipes/associate_recipe_as_input.py,sha256=TtsAJRT9vRjnsIh0IvfFimA2hstZvgyn6rpaDIsDfK4,1194
|
|
271
|
+
uncountable/types/api/recipes/associate_recipe_as_lot.py,sha256=_4SgFfH-wFxW9Vevv9k3G3T10Uz8CMLjuiDEv1oT2So,1138
|
|
272
|
+
uncountable/types/api/recipes/clear_recipe_outputs.py,sha256=BfTQrV79UePkJ4HSSixV1AZovgVdIIIKK2OLJe1r8Dw,1082
|
|
273
|
+
uncountable/types/api/recipes/create_recipe.py,sha256=tVeQgikCWAwGtxpq2vLyXd5Aeqo_8Tde64x5GAOJl50,1472
|
|
274
|
+
uncountable/types/api/recipes/create_recipes.py,sha256=J1CBE13d8JaVpUxOftFg1Plo8RKa0vc-A2nHdO1yoj8,1862
|
|
275
|
+
uncountable/types/api/recipes/disassociate_recipe_as_input.py,sha256=zWUfwJlkgWexblqKCKCF5HWR40ynQ8rg_PPo2WPGISY,1106
|
|
276
|
+
uncountable/types/api/recipes/edit_recipe_inputs.py,sha256=NEK0PrM-SnGx95KcjpSWimi3xTrOMKO8BMURom08ppc,9837
|
|
277
|
+
uncountable/types/api/recipes/get_column_calculation_values.py,sha256=9eqURjD2Mwm2lyV1bJIq66Z7a3enLhhx_scZBt4SYYc,1671
|
|
278
|
+
uncountable/types/api/recipes/get_curve.py,sha256=C-elYAKcBw7P5bWwN-8p_SWj15l5aBJrKNR8yjphZ-Q,1085
|
|
279
|
+
uncountable/types/api/recipes/get_recipe_calculations.py,sha256=iBmkhKC1qBFxuPPziM3LD6tGsdsN_xb4NcUaJwF6cHU,1679
|
|
280
|
+
uncountable/types/api/recipes/get_recipe_links.py,sha256=jYygHnuzTzuc_H8AG72Ihrb38kEhtfbVNlb4b7elLfI,1149
|
|
281
|
+
uncountable/types/api/recipes/get_recipe_names.py,sha256=HXv39OI6GRedSAKOhurEQEY_djaxvJcxlTTWghLgA5I,1274
|
|
282
|
+
uncountable/types/api/recipes/get_recipe_output_metadata.py,sha256=7lF2cnRsBLPDSsjlNIy-aJ4Dao5-qe7WrNaf4XNmq74,1703
|
|
283
|
+
uncountable/types/api/recipes/get_recipes_data.py,sha256=srZBvl8dCdoo7yil0D1ohAxnbMaCS28ctCH93NaYQd0,6099
|
|
284
|
+
uncountable/types/api/recipes/lock_recipes.py,sha256=8z_g5lokbzkATZvN5Vpvx6uXS3xPZN77AP5OhHPsGhc,1581
|
|
285
|
+
uncountable/types/api/recipes/remove_recipe_from_project.py,sha256=_KWbYnMMEOZAaC_jdXZvCEYXJaVhs3x27ZWlJbq3CV4,1076
|
|
286
|
+
uncountable/types/api/recipes/set_recipe_inputs.py,sha256=RvWj2SOtcuy_msp9pUjz20O3Y_EjEMKd48o-RhpCDNE,1583
|
|
287
|
+
uncountable/types/api/recipes/set_recipe_metadata.py,sha256=R4GVqpMJdJuoSXsJx1e4vhmWqKKTPMyPPEArwV45crI,1104
|
|
288
|
+
uncountable/types/api/recipes/set_recipe_output_annotations.py,sha256=yczFBmuB0grzNWsnXspCPUsDA608M9wGkJ2dugyxG4U,3526
|
|
289
|
+
uncountable/types/api/recipes/set_recipe_output_file.py,sha256=W_qvEkZxzDczwU9EZ7zKyBmLGnO6GFqMsJ3zwXCnpA0,1502
|
|
290
|
+
uncountable/types/api/recipes/set_recipe_outputs.py,sha256=hNeV3hwPw3fT-pnhe17fPPgLH7pfpva0kjpt2NTt55E,2104
|
|
291
|
+
uncountable/types/api/recipes/set_recipe_tags.py,sha256=HS5GG-nTy0vTNTANG-ROawku0VhzOs0hIzGKfRFefYY,3098
|
|
292
|
+
uncountable/types/api/recipes/unarchive_recipes.py,sha256=G0jYuarNZLmTCQ6m5_ZAUwBl4M8_cqKRlP-jMJp-Rcw,1000
|
|
293
|
+
uncountable/types/api/recipes/unlock_recipes.py,sha256=QFvz13eJipWQlIRrqOybnIPeJxfR4yZM8yIr841jd28,1258
|
|
294
|
+
uncountable/types/api/triggers/__init__.py,sha256=gCgbynxG3jA8FQHzercKtrHKHkiIKr8APdZYUniAor8,55
|
|
295
|
+
uncountable/types/api/triggers/run_trigger.py,sha256=diX1ix_5hkti1F1uYoZhP5iyc6GHAU5coKgqq5syLhI,1059
|
|
296
|
+
uncountable/types/api/uploader/__init__.py,sha256=gCgbynxG3jA8FQHzercKtrHKHkiIKr8APdZYUniAor8,55
|
|
297
|
+
uncountable/types/api/uploader/invoke_uploader.py,sha256=-loZzBihKqx63eP-f5RuV1mu6tgkRTZmIc545kklZLk,1273
|
|
298
|
+
UncountablePythonSDK-0.0.93.dist-info/METADATA,sha256=Pwy0kXB5Pc8CCUeDNAzQXwTcJwZb9N_7jTpUigM7KFw,2064
|
|
299
|
+
UncountablePythonSDK-0.0.93.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
|
|
300
|
+
UncountablePythonSDK-0.0.93.dist-info/top_level.txt,sha256=1UVGjAU-6hJY9qw2iJ7nCBeEwZ793AEN5ZfKX9A1uj4,31
|
|
301
|
+
UncountablePythonSDK-0.0.93.dist-info/RECORD,,
|
|
@@ -96,7 +96,7 @@ def is_missing(field_type: typing.Any) -> bool:
|
|
|
96
96
|
return not (len(args) == 0 or args[0] is not MissingSentryType)
|
|
97
97
|
|
|
98
98
|
|
|
99
|
-
def _invoke_tuple_parsers(
|
|
99
|
+
def _invoke_tuple_parsers[T](
|
|
100
100
|
tuple_type: type[T],
|
|
101
101
|
arg_parsers: typing.Sequence[typing.Callable[[typing.Any], object]],
|
|
102
102
|
has_ellipsis: bool,
|
|
@@ -133,7 +133,7 @@ def _invoke_fallback_parsers(
|
|
|
133
133
|
) from ExceptionGroup("Fallback Parser Exception", exceptions)
|
|
134
134
|
|
|
135
135
|
|
|
136
|
-
def _invoke_membership_parser(
|
|
136
|
+
def _invoke_membership_parser[T](
|
|
137
137
|
expected_values: set[T],
|
|
138
138
|
value: typing.Any,
|
|
139
139
|
) -> T:
|
|
@@ -148,7 +148,7 @@ def _invoke_membership_parser(
|
|
|
148
148
|
raise ValueError(f"Expected value from {expected_values} but got value {value}")
|
|
149
149
|
|
|
150
150
|
|
|
151
|
-
def _build_parser_discriminated_union(
|
|
151
|
+
def _build_parser_discriminated_union[T](
|
|
152
152
|
context: ParserContext,
|
|
153
153
|
discriminator: str,
|
|
154
154
|
discriminator_map: dict[str, ParserFunction[T]],
|
|
@@ -170,7 +170,7 @@ def _build_parser_discriminated_union(
|
|
|
170
170
|
return parse
|
|
171
171
|
|
|
172
172
|
|
|
173
|
-
def _build_parser_inner(
|
|
173
|
+
def _build_parser_inner[T](
|
|
174
174
|
parsed_type: type[T],
|
|
175
175
|
context: ParserContext,
|
|
176
176
|
) -> ParserFunction[T]:
|
|
@@ -368,7 +368,7 @@ def _build_parser_inner(
|
|
|
368
368
|
raise ValueError(f"Unhandled type {parsed_type}")
|
|
369
369
|
|
|
370
370
|
|
|
371
|
-
def _build_parser_dataclass(
|
|
371
|
+
def _build_parser_dataclass[T](
|
|
372
372
|
parsed_type: type[T],
|
|
373
373
|
context: ParserContext,
|
|
374
374
|
) -> ParserFunction[T]:
|
|
@@ -479,7 +479,7 @@ def _build_parser_dataclass(
|
|
|
479
479
|
_CACHE_MAP: dict[ParserOptions, ParserCache] = defaultdict(ParserCache)
|
|
480
480
|
|
|
481
481
|
|
|
482
|
-
def build_parser(
|
|
482
|
+
def build_parser[T](
|
|
483
483
|
parsed_type: type[T],
|
|
484
484
|
options: ParserOptions,
|
|
485
485
|
) -> ParserFunction[T]:
|
|
@@ -501,7 +501,7 @@ def build_parser(
|
|
|
501
501
|
return built_parser
|
|
502
502
|
|
|
503
503
|
|
|
504
|
-
class CachedParser
|
|
504
|
+
class CachedParser[T]:
|
|
505
505
|
def __init__(
|
|
506
506
|
self,
|
|
507
507
|
args: type[T],
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
from io import BytesIO
|
|
2
2
|
|
|
3
3
|
from boto3.session import Session
|
|
4
|
+
from mypy_boto3_s3.service_resource import Bucket
|
|
4
5
|
|
|
5
6
|
from pkgs.filesystem_utils.file_type_utils import (
|
|
6
7
|
FileObjectData,
|
|
@@ -37,7 +38,7 @@ class S3Session(FileSystemSession):
|
|
|
37
38
|
aws_session_token=self.config.session_token,
|
|
38
39
|
)
|
|
39
40
|
|
|
40
|
-
self.bucket = s3_resource.Bucket(self.config.bucket_name)
|
|
41
|
+
self.bucket: Bucket | None = s3_resource.Bucket(self.config.bucket_name)
|
|
41
42
|
|
|
42
43
|
def __enter__(self) -> "S3Session":
|
|
43
44
|
self.start()
|
pkgs/serialization/annotation.py
CHANGED
|
@@ -16,7 +16,7 @@ class SerialBase:
|
|
|
16
16
|
from_decorator: bool = False
|
|
17
17
|
|
|
18
18
|
|
|
19
|
-
def get_serial_annotation(parsed_type: type[T]) -> SerialBase | None:
|
|
19
|
+
def get_serial_annotation[T](parsed_type: type[T]) -> SerialBase | None:
|
|
20
20
|
if not hasattr(parsed_type, "__metadata__"):
|
|
21
21
|
return None
|
|
22
22
|
metadata = parsed_type.__metadata__ # type:ignore[attr-defined]
|
|
@@ -28,7 +28,7 @@ def get_serial_annotation(parsed_type: type[T]) -> SerialBase | None:
|
|
|
28
28
|
return serial
|
|
29
29
|
|
|
30
30
|
|
|
31
|
-
class SerialInspector
|
|
31
|
+
class SerialInspector[T]:
|
|
32
32
|
def __init__(self, parsed_type: type[T], serial_base: SerialBase) -> None:
|
|
33
33
|
self._parsed_type = parsed_type
|
|
34
34
|
self._serial_base = serial_base
|
|
@@ -53,7 +53,7 @@ class SerialInspector(typing.Generic[T]):
|
|
|
53
53
|
return self._serial_base.is_dynamic_allowed
|
|
54
54
|
|
|
55
55
|
|
|
56
|
-
def unwrap_annotated(parsed_type: type[T]) -> type[T]:
|
|
56
|
+
def unwrap_annotated[T](parsed_type: type[T]) -> type[T]:
|
|
57
57
|
"""
|
|
58
58
|
If the type is an annotated type then return the origin of it.
|
|
59
59
|
Otherwise return the original type.
|
|
@@ -26,5 +26,5 @@ MISSING_SENTRY = MissingSentryType()
|
|
|
26
26
|
MissingType = Union[MissingSentryType, ClassT]
|
|
27
27
|
|
|
28
28
|
|
|
29
|
-
def coalesce_missing_sentry(value: MissingType[ClassT]) -> ClassT | None:
|
|
29
|
+
def coalesce_missing_sentry[ClassT](value: MissingType[ClassT]) -> ClassT | None:
|
|
30
30
|
return None if isinstance(value, MissingSentryType) else value
|
|
@@ -26,7 +26,7 @@ def serial_alias_annotation(
|
|
|
26
26
|
)
|
|
27
27
|
|
|
28
28
|
|
|
29
|
-
def _get_serial_alias(parsed_type: type[T]) -> _SerialAlias | None:
|
|
29
|
+
def _get_serial_alias[T](parsed_type: type[T]) -> _SerialAlias | None:
|
|
30
30
|
serial = get_serial_annotation(parsed_type)
|
|
31
31
|
if not isinstance(serial, _SerialAlias):
|
|
32
32
|
return None
|
|
@@ -39,7 +39,7 @@ class SerialAliasInspector(SerialInspector[T]):
|
|
|
39
39
|
self._serial_alias = serial_alias
|
|
40
40
|
|
|
41
41
|
|
|
42
|
-
def get_serial_alias_data(parsed_type: type[T]) -> SerialAliasInspector[T] | None:
|
|
42
|
+
def get_serial_alias_data[T](parsed_type: type[T]) -> SerialAliasInspector[T] | None:
|
|
43
43
|
serial = _get_serial_alias(parsed_type)
|
|
44
44
|
if serial is None:
|
|
45
45
|
return None
|
|
@@ -119,7 +119,7 @@ def get_merged_serial_class_data(type_class: type[Any]) -> _SerialClassData | No
|
|
|
119
119
|
return base_class_data
|
|
120
120
|
|
|
121
121
|
|
|
122
|
-
def get_serial_class_data(
|
|
122
|
+
def get_serial_class_data[_ClassT](
|
|
123
123
|
type_class: type[_ClassT],
|
|
124
124
|
) -> SerialClassDataInspector[_ClassT]:
|
|
125
125
|
return SerialClassDataInspector(
|
|
@@ -6,7 +6,7 @@ from .serial_class import get_merged_serial_class_data
|
|
|
6
6
|
T = typing.TypeVar("T")
|
|
7
7
|
|
|
8
8
|
|
|
9
|
-
def get_serial_data(parsed_type: type[T]) -> SerialInspector[T] | None:
|
|
9
|
+
def get_serial_data[T](parsed_type: type[T]) -> SerialInspector[T] | None:
|
|
10
10
|
serial = get_serial_annotation(parsed_type)
|
|
11
11
|
if serial is None:
|
|
12
12
|
serial = get_merged_serial_class_data(parsed_type)
|
|
@@ -6,7 +6,7 @@ from .annotation import SerialBase, SerialInspector, get_serial_annotation
|
|
|
6
6
|
T = typing.TypeVar("T")
|
|
7
7
|
|
|
8
8
|
|
|
9
|
-
class IdentityHashWrapper
|
|
9
|
+
class IdentityHashWrapper[T]:
|
|
10
10
|
"""This allows unhashable types to be used in the SerialUnion, like dict.
|
|
11
11
|
Since we have only one copy of the types themselves, we rely on
|
|
12
12
|
object identity for the hashing."""
|
|
@@ -49,7 +49,7 @@ def serial_union_annotation(
|
|
|
49
49
|
)
|
|
50
50
|
|
|
51
51
|
|
|
52
|
-
def _get_serial_union(parsed_type: type[T]) -> _SerialUnion | None:
|
|
52
|
+
def _get_serial_union[T](parsed_type: type[T]) -> _SerialUnion | None:
|
|
53
53
|
serial = get_serial_annotation(parsed_type)
|
|
54
54
|
if not isinstance(serial, _SerialUnion):
|
|
55
55
|
return None
|
|
@@ -76,7 +76,7 @@ class SerialClassInspector(SerialInspector[T]):
|
|
|
76
76
|
return self._serial_union.discriminator_map.inner
|
|
77
77
|
|
|
78
78
|
|
|
79
|
-
def get_serial_union_data(parsed_type: type[T]) -> SerialClassInspector[T] | None:
|
|
79
|
+
def get_serial_union_data[T](parsed_type: type[T]) -> SerialClassInspector[T] | None:
|
|
80
80
|
serial = _get_serial_union(parsed_type)
|
|
81
81
|
if serial is None:
|
|
82
82
|
return None
|
|
@@ -12,7 +12,6 @@ from typing import (
|
|
|
12
12
|
Any,
|
|
13
13
|
ClassVar,
|
|
14
14
|
Protocol,
|
|
15
|
-
TypeVar,
|
|
16
15
|
Union,
|
|
17
16
|
overload,
|
|
18
17
|
)
|
|
@@ -34,14 +33,12 @@ if TYPE_CHECKING:
|
|
|
34
33
|
else:
|
|
35
34
|
JsonValue = Union[JsonScalar, dict[str, Any], list[Any]]
|
|
36
35
|
|
|
37
|
-
T = TypeVar("T")
|
|
38
|
-
|
|
39
36
|
|
|
40
37
|
class Dataclass(Protocol):
|
|
41
38
|
__dataclass_fields__: ClassVar[dict] # type: ignore[type-arg,unused-ignore]
|
|
42
39
|
|
|
43
40
|
|
|
44
|
-
def identity(x: T) -> T:
|
|
41
|
+
def identity[T](x: T) -> T:
|
|
45
42
|
return x
|
|
46
43
|
|
|
47
44
|
|
|
@@ -6,7 +6,6 @@ import os
|
|
|
6
6
|
import sys
|
|
7
7
|
from collections import defaultdict
|
|
8
8
|
from dataclasses import dataclass
|
|
9
|
-
from typing import TypeVar
|
|
10
9
|
|
|
11
10
|
from main.base.types import actions_registry_t
|
|
12
11
|
from pkgs.type_spec import builder
|
|
@@ -22,9 +21,6 @@ key_short_description = "short_description"
|
|
|
22
21
|
key_description = "description"
|
|
23
22
|
|
|
24
23
|
|
|
25
|
-
TypeT = TypeVar("TypeT")
|
|
26
|
-
|
|
27
|
-
|
|
28
24
|
class InvalidSpecException(Exception):
|
|
29
25
|
pass
|
|
30
26
|
|
pkgs/type_spec/builder.py
CHANGED
|
@@ -901,16 +901,9 @@ class SpecEndpoint:
|
|
|
901
901
|
account_type: str | None
|
|
902
902
|
route_group: str | None
|
|
903
903
|
|
|
904
|
-
# to be deprecated in favor of path_per_api_endpoint:
|
|
905
|
-
# default function, path details
|
|
906
|
-
function: str | None
|
|
907
|
-
root: EndpointKey
|
|
908
|
-
path_root: str
|
|
909
|
-
path_dirname: str
|
|
910
|
-
path_basename: str
|
|
911
|
-
|
|
912
904
|
# function, path details per api endpoint
|
|
913
905
|
path_per_api_endpoint: dict[str, EndpointSpecificPath]
|
|
906
|
+
default_endpoint_key: EndpointKey
|
|
914
907
|
|
|
915
908
|
is_external: bool = False
|
|
916
909
|
|
|
@@ -997,14 +990,18 @@ class SpecEndpoint:
|
|
|
997
990
|
self.has_attachment = data.get("has_attachment", False)
|
|
998
991
|
self.desc = data.get("desc")
|
|
999
992
|
|
|
993
|
+
# compatibility with single-endpoint files
|
|
1000
994
|
default_endpoint_path = parse_endpoint_specific_path(
|
|
1001
995
|
builder,
|
|
1002
996
|
{"path": data.get("path"), "function": data.get("function")},
|
|
1003
997
|
)
|
|
1004
998
|
if default_endpoint_path is not None:
|
|
1005
|
-
|
|
999
|
+
assert default_endpoint_path.root in builder.api_endpoints, (
|
|
1000
|
+
"Default endpoint is not a valid API endpoint"
|
|
1001
|
+
)
|
|
1002
|
+
self.default_endpoint_key = default_endpoint_path.root
|
|
1006
1003
|
self.path_per_api_endpoint = {
|
|
1007
|
-
self.
|
|
1004
|
+
self.default_endpoint_key: default_endpoint_path,
|
|
1008
1005
|
}
|
|
1009
1006
|
else:
|
|
1010
1007
|
self.path_per_api_endpoint = {}
|
|
@@ -1021,27 +1018,34 @@ class SpecEndpoint:
|
|
|
1021
1018
|
if shared_function_name is None:
|
|
1022
1019
|
shared_function_name = fn_name
|
|
1023
1020
|
assert shared_function_name == fn_name
|
|
1024
|
-
assert self.path_per_api_endpoint != {}
|
|
1025
1021
|
|
|
1026
|
-
|
|
1027
|
-
|
|
1022
|
+
if builder.top_namespace in self.path_per_api_endpoint:
|
|
1023
|
+
self.default_endpoint_key = builder.top_namespace
|
|
1024
|
+
elif len(self.path_per_api_endpoint) == 1:
|
|
1025
|
+
self.default_endpoint_key = next(
|
|
1026
|
+
iter(self.path_per_api_endpoint.keys())
|
|
1027
|
+
)
|
|
1028
|
+
else:
|
|
1029
|
+
raise RuntimeError("no clear default endpoint")
|
|
1028
1030
|
|
|
1029
|
-
|
|
1030
|
-
|
|
1031
|
-
|
|
1032
|
-
self.path_basename = default_endpoint_path.path_basename
|
|
1033
|
-
self.path_root = default_endpoint_path.path_root
|
|
1031
|
+
assert len(self.path_per_api_endpoint) > 0, (
|
|
1032
|
+
"Missing API endpoint path and function definitions for API call"
|
|
1033
|
+
)
|
|
1034
1034
|
|
|
1035
1035
|
# IMPROVE: remove need for is_external flag
|
|
1036
|
-
self.is_external =
|
|
1036
|
+
self.is_external = (
|
|
1037
|
+
self.path_per_api_endpoint[self.default_endpoint_key].path_root
|
|
1038
|
+
== "api/external"
|
|
1039
|
+
)
|
|
1037
1040
|
|
|
1038
1041
|
assert self.is_sdk != EndpointEmitType.EMIT_ENDPOINT or self.desc is not None, (
|
|
1039
|
-
f"Endpoint description required for SDK endpoints, missing: {self.
|
|
1042
|
+
f"Endpoint description required for SDK endpoints, missing: {self.resolved_path}"
|
|
1040
1043
|
)
|
|
1041
1044
|
|
|
1042
1045
|
@property
|
|
1043
1046
|
def resolved_path(self: Self) -> str:
|
|
1044
|
-
|
|
1047
|
+
default_endpoint_path = self.path_per_api_endpoint[self.default_endpoint_key]
|
|
1048
|
+
return f"{default_endpoint_path.path_root}/{default_endpoint_path.path_dirname}/{default_endpoint_path.path_basename}"
|
|
1045
1049
|
|
|
1046
1050
|
|
|
1047
1051
|
def _parse_const(
|