UncountablePythonSDK 0.0.29__py3-none-any.whl → 0.0.31__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.29.dist-info → UncountablePythonSDK-0.0.31.dist-info}/METADATA +4 -4
- {UncountablePythonSDK-0.0.29.dist-info → UncountablePythonSDK-0.0.31.dist-info}/RECORD +38 -86
- {UncountablePythonSDK-0.0.29.dist-info → UncountablePythonSDK-0.0.31.dist-info}/top_level.txt +0 -1
- docs/conf.py +9 -4
- docs/requirements.txt +5 -5
- examples/async_batch.py +2 -3
- examples/create_entity.py +4 -7
- examples/upload_files.py +1 -1
- pkgs/argument_parser/case_convert.py +4 -3
- pkgs/serialization/serial_class.py +31 -37
- pkgs/type_spec/emit_python.py +0 -1
- pkgs/type_spec/type_info/emit_type_info.py +14 -6
- uncountable/__init__.py +1 -2
- uncountable/core/__init__.py +10 -3
- uncountable/core/async_batch.py +1 -1
- uncountable/core/client.py +27 -17
- uncountable/core/file_upload.py +3 -5
- uncountable/core/types.py +1 -1
- uncountable/integration/construct_client.py +1 -1
- uncountable/integration/cron.py +4 -2
- uncountable/integration/db/connect.py +1 -1
- uncountable/integration/entrypoint.py +4 -5
- uncountable/integration/executors/script_executor.py +11 -5
- uncountable/integration/job.py +5 -8
- uncountable/integration/server.py +5 -5
- uncountable/types/__init__.py +8 -0
- uncountable/types/api/entity/list_entities.py +7 -0
- uncountable/types/api/inputs/set_intermediate_type.py +43 -0
- uncountable/types/api/recipes/add_recipe_to_project.py +35 -0
- uncountable/types/api/recipes/associate_recipe_as_input.py +1 -0
- uncountable/types/api/recipes/edit_recipe_inputs.py +27 -1
- uncountable/types/api/recipes/remove_recipe_from_project.py +35 -0
- uncountable/types/api/recipes/set_recipe_outputs.py +2 -0
- uncountable/types/async_batch_processor.py +0 -1
- uncountable/types/client_base.py +72 -0
- uncountable/types/inputs.py +1 -0
- uncountable/types/recipes.py +21 -0
- examples/recipe-import/importer.py +0 -39
- type_spec/external/api/batch/execute_batch.yaml +0 -56
- type_spec/external/api/batch/execute_batch_load_async.yaml +0 -18
- type_spec/external/api/chemical/convert_chemical_formats.yaml +0 -33
- type_spec/external/api/entity/create_entities.yaml +0 -45
- type_spec/external/api/entity/create_entity.yaml +0 -51
- type_spec/external/api/entity/get_entities_data.yaml +0 -29
- type_spec/external/api/entity/list_entities.yaml +0 -52
- type_spec/external/api/entity/lock_entity.yaml +0 -21
- type_spec/external/api/entity/resolve_entity_ids.yaml +0 -29
- type_spec/external/api/entity/set_values.yaml +0 -18
- type_spec/external/api/entity/transition_entity_phase.yaml +0 -44
- type_spec/external/api/entity/unlock_entity.yaml +0 -18
- type_spec/external/api/field_options/upsert_field_options.yaml +0 -37
- type_spec/external/api/id_source/list_id_source.yaml +0 -35
- type_spec/external/api/id_source/match_id_source.yaml +0 -32
- type_spec/external/api/input_groups/get_input_group_names.yaml +0 -29
- type_spec/external/api/inputs/create_inputs.yaml +0 -48
- type_spec/external/api/inputs/get_input_data.yaml +0 -95
- type_spec/external/api/inputs/get_input_names.yaml +0 -38
- type_spec/external/api/inputs/get_inputs_data.yaml +0 -82
- type_spec/external/api/inputs/set_input_attribute_values.yaml +0 -33
- type_spec/external/api/inputs/set_input_category.yaml +0 -23
- type_spec/external/api/inputs/set_input_subcategories.yaml +0 -23
- type_spec/external/api/material_families/update_entity_material_families.yaml +0 -33
- type_spec/external/api/outputs/get_output_data.yaml +0 -92
- type_spec/external/api/outputs/get_output_names.yaml +0 -35
- type_spec/external/api/outputs/resolve_output_conditions.yaml +0 -50
- type_spec/external/api/permissions/set_core_permissions.yaml +0 -69
- type_spec/external/api/project/get_projects.yaml +0 -42
- type_spec/external/api/project/get_projects_data.yaml +0 -50
- type_spec/external/api/recipe_links/create_recipe_link.yaml +0 -25
- type_spec/external/api/recipe_metadata/get_recipe_metadata_data.yaml +0 -41
- type_spec/external/api/recipes/archive_recipes.yaml +0 -20
- type_spec/external/api/recipes/associate_recipe_as_input.yaml +0 -19
- type_spec/external/api/recipes/associate_recipe_as_lot.yaml +0 -19
- type_spec/external/api/recipes/create_recipe.yaml +0 -42
- type_spec/external/api/recipes/create_recipes.yaml +0 -47
- type_spec/external/api/recipes/disassociate_recipe_as_input.yaml +0 -16
- type_spec/external/api/recipes/edit_recipe_inputs.yaml +0 -85
- type_spec/external/api/recipes/get_curve.yaml +0 -21
- type_spec/external/api/recipes/get_recipe_calculations.yaml +0 -39
- type_spec/external/api/recipes/get_recipe_links.yaml +0 -26
- type_spec/external/api/recipes/get_recipe_names.yaml +0 -29
- type_spec/external/api/recipes/get_recipe_output_metadata.yaml +0 -36
- type_spec/external/api/recipes/get_recipes_data.yaml +0 -244
- type_spec/external/api/recipes/set_recipe_inputs.yaml +0 -42
- type_spec/external/api/recipes/set_recipe_metadata.yaml +0 -20
- type_spec/external/api/recipes/set_recipe_outputs.yaml +0 -52
- type_spec/external/api/recipes/set_recipe_tags.yaml +0 -62
- type_spec/external/api/recipes/unarchive_recipes.yaml +0 -17
- type_spec/external/api/triggers/run_trigger.yaml +0 -18
- {UncountablePythonSDK-0.0.29.dist-info → UncountablePythonSDK-0.0.31.dist-info}/WHEEL +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: UncountablePythonSDK
|
|
3
|
-
Version: 0.0.
|
|
3
|
+
Version: 0.0.31
|
|
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
|
|
@@ -27,9 +27,9 @@ Requires-Dist: PyYAML ==6.*
|
|
|
27
27
|
Provides-Extra: test
|
|
28
28
|
Requires-Dist: mypy ==1.* ; extra == 'test'
|
|
29
29
|
Requires-Dist: ruff ==0.* ; extra == 'test'
|
|
30
|
-
Requires-Dist: pytest ==
|
|
31
|
-
Requires-Dist: coverage[toml] ==
|
|
32
|
-
Requires-Dist: pytest-cov ==
|
|
30
|
+
Requires-Dist: pytest ==8.* ; extra == 'test'
|
|
31
|
+
Requires-Dist: coverage[toml] ==7.* ; extra == 'test'
|
|
32
|
+
Requires-Dist: pytest-cov ==5.* ; extra == 'test'
|
|
33
33
|
Requires-Dist: pytest-xdist ==3.* ; extra == 'test'
|
|
34
34
|
|
|
35
35
|
# Uncountable Python SDK
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
docs/.gitignore,sha256=_ebkZUcwfvfnGEJ95rfj1lxoBNd6EE9ZvtOc7FsbfFE,7
|
|
2
|
-
docs/conf.py,sha256=
|
|
2
|
+
docs/conf.py,sha256=YF5J-9g_Wg8wXmyHsGaE8xYlDEzqocNl3UWUmP0CwBg,1702
|
|
3
3
|
docs/index.md,sha256=eEdirX_Ds6ICTRtIS5iT4irCquHcQyKN7E4M5QP9T8A,257
|
|
4
4
|
docs/justfile,sha256=cvNcpb-ByPOF2aCrFlg3DDZBoYMx5W8xGdr13m9HcnI,215
|
|
5
5
|
docs/quickstart.md,sha256=3GuJ0MB1O5kjlsrgAmdSkDq0rYqATrYy-tzEHDy8H-c,422
|
|
6
|
-
docs/requirements.txt,sha256=
|
|
6
|
+
docs/requirements.txt,sha256=NnB0-jOOufUvD3q1csl7WvQ8oHOD-5emqp_SWUXExI0,138
|
|
7
7
|
docs/static/logo_blue.png,sha256=SyYpMTVhhBbhF5Wl8lWaVwz-_p1MIR6dW6bVhufQRME,46708
|
|
8
8
|
docs/static/favicons/android-chrome-192x192.png,sha256=XoF-AhD55JlSBDGsEPJKfT_VeXT-awhwKyZnxLhrwvk,1369
|
|
9
9
|
docs/static/favicons/android-chrome-512x512.png,sha256=1S4xwY9YtJQ5ifFsZ-DOzssoyBYs0t9uwdOUmYx0Xso,3888
|
|
@@ -14,20 +14,19 @@ docs/static/favicons/favicon-32x32.png,sha256=U4UU652zGnSeU3P9kUqxPeEnVf6zhtdNdN
|
|
|
14
14
|
docs/static/favicons/manifest.json,sha256=6q_3nZkcg_x0xut4eE-xpdeMY1TydwiZIcbXlLAq9X8,437
|
|
15
15
|
docs/static/favicons/mstile-150x150.png,sha256=eAK4QdEofhdLtfmjuPTpnX3MJqYnvGXsHYUjlcQekyY,1035
|
|
16
16
|
docs/static/favicons/safari-pinned-tab.svg,sha256=S84fRnz0ZxLnQrKtmmFZytiRyu1xLtMR_RVy5jmwU7k,1926
|
|
17
|
-
examples/async_batch.py,sha256=
|
|
18
|
-
examples/create_entity.py,sha256=
|
|
19
|
-
examples/upload_files.py,sha256=
|
|
20
|
-
examples/recipe-import/importer.py,sha256=baD71xuNibxDTe3bGHsMEIZEf9Xtb-IumBNpCEV0RZU,1134
|
|
17
|
+
examples/async_batch.py,sha256=CffQ8O9drJ-Mdd6S5DnMIOBsHv5aVkTZrD3l3xBnB4s,1094
|
|
18
|
+
examples/create_entity.py,sha256=noZdtJ5f9Wfiob3zUH-8bDVbrCPJnFtXFk_W9pSjvUA,664
|
|
19
|
+
examples/upload_files.py,sha256=tUfKFqiqwnw08OL5Y8_e4j5pSRhp94cFex8XTuVa_ig,487
|
|
21
20
|
pkgs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
22
21
|
pkgs/argument_parser/__init__.py,sha256=CsQ6QoPKSLLRVl-z6URAmPkiUL9ZPZoV4rJHgy_-RjA,385
|
|
23
22
|
pkgs/argument_parser/_is_enum.py,sha256=Gw6jJa8nBwYGqXwwCZbSnWL8Rvr5alkg5lSVAqXtOZM,257
|
|
24
23
|
pkgs/argument_parser/_is_namedtuple.py,sha256=Rjc1bKanIPPogl3qG5JPBxglG1TqWYOo1nxxhBASQWY,265
|
|
25
24
|
pkgs/argument_parser/argument_parser.py,sha256=eqw4ge9Sh9z35Vztq_dUQUvVMluo7YgnmMjHNMhrhVw,15937
|
|
26
|
-
pkgs/argument_parser/case_convert.py,sha256=
|
|
25
|
+
pkgs/argument_parser/case_convert.py,sha256=NuJLJUJRbyVb6_Slen4uqaStEHbcOS1d-hBBfDrrw-c,605
|
|
27
26
|
pkgs/serialization/__init__.py,sha256=quvXMSl1szddLTr4Yxo9KA9oBMoeX7qGpFkkAplFBbY,603
|
|
28
27
|
pkgs/serialization/missing_sentry.py,sha256=aM_9KxbCk9dVvXvcOKgkIQBqFWvLhv8QlIUCiuFEXMo,806
|
|
29
28
|
pkgs/serialization/opaque_key.py,sha256=FIfXEE0DA1U8R_taFbQ1RCoTSgehrPjP06-qvo-GeNQ,177
|
|
30
|
-
pkgs/serialization/serial_class.py,sha256=
|
|
29
|
+
pkgs/serialization/serial_class.py,sha256=r0hrQdIbJA_X0W0_jKEVrxi_JzVRT9qHCjsUgGu3cCI,5290
|
|
31
30
|
pkgs/serialization_util/__init__.py,sha256=4vX5j1pvd1NkznSVqwWqunVyOvQtLCgVuwRjVwDk7qg,447
|
|
32
31
|
pkgs/serialization_util/_get_type_for_serialization.py,sha256=dW5_W9MFd6wgWfW5qlWork-GBb-QFLtiOZkjk2Zqn2M,1177
|
|
33
32
|
pkgs/serialization_util/serialization_helpers.py,sha256=koyGyvdlEmGFK1BUiHtM2gTzAyHygbe1JpKLdZ-Aw84,5124
|
|
@@ -40,7 +39,7 @@ pkgs/type_spec/config.py,sha256=INfEiDcUsZFUKasHprsE6i33siPB0RnfmTKOsWcGnQ8,5043
|
|
|
40
39
|
pkgs/type_spec/emit_io_ts.py,sha256=Ghd8XYqyNYldHQDepwa9GLfHXcoi48ztBw84K28ETic,5707
|
|
41
40
|
pkgs/type_spec/emit_open_api.py,sha256=rAxfPVsqJU7ass76dPhImgPao6AW6xyz-rMaQDhSp1I,23822
|
|
42
41
|
pkgs/type_spec/emit_open_api_util.py,sha256=XAA6zH59aZWLVl0BvKAICXXl4sdBqx01QAtv5oB0bMI,2266
|
|
43
|
-
pkgs/type_spec/emit_python.py,sha256=
|
|
42
|
+
pkgs/type_spec/emit_python.py,sha256=vuVgyts9zfEgRMTGsI6LKejMnq9_lxLxawjxoz4p7DE,44098
|
|
44
43
|
pkgs/type_spec/emit_typescript.py,sha256=4hpCJwiDf-v8LJaNFVfFtf8zvtG73YNPFwwa_5NuffI,17729
|
|
45
44
|
pkgs/type_spec/emit_typescript_util.py,sha256=93FzJnpYse4PKFzgdw4DGV4zFTi5tF4WR-CIi7cW498,873
|
|
46
45
|
pkgs/type_spec/load_types.py,sha256=xEHwdB_miR3vNs161Oy1luafE0VC-yk9-utAyCJmbEo,3629
|
|
@@ -53,88 +52,37 @@ pkgs/type_spec/actions_registry/emit_typescript.py,sha256=ben0W7qwaVCzLO-t3NEJPP
|
|
|
53
52
|
pkgs/type_spec/parts/base.py.prepart,sha256=wGNoDyQnLolHRZGRwHQX5TrPfKnu558NXCocYvqyroc,2174
|
|
54
53
|
pkgs/type_spec/parts/base.ts.prepart,sha256=2FJJvpg2olCcavxj0nbYWdwKl6KeScour2JjSvN42l8,1001
|
|
55
54
|
pkgs/type_spec/type_info/__main__.py,sha256=pmVjVqXyVh8vKTNCTFgz80Sg74C5BKToP3E6GS-X_So,857
|
|
56
|
-
pkgs/type_spec/type_info/emit_type_info.py,sha256=
|
|
55
|
+
pkgs/type_spec/type_info/emit_type_info.py,sha256=S3K5_VHbhwR0A7ZiJ5Qed2zjkici-J2ZdVKPDpc2OrI,12362
|
|
57
56
|
pkgs/type_spec/value_spec/__init__.py,sha256=Z-grlcZtxAfEXhPHsK0nD7PFLGsv4eqvunaPN7_TA84,83
|
|
58
57
|
pkgs/type_spec/value_spec/__main__.py,sha256=-9L5pXYx02plnTetqNknaUZPieLRtzbyWdZDT6B-cWA,8294
|
|
59
58
|
pkgs/type_spec/value_spec/convert_type.py,sha256=SAYyEV6orQJJbkXSE4hhtOQJ2vKUXJCKPeYPrB8G9oA,2272
|
|
60
59
|
pkgs/type_spec/value_spec/emit_python.py,sha256=rjg6LIGYdaagrZ19XpDfW_Z7LPNwCMDceBje5dsMFbw,6959
|
|
61
60
|
pkgs/type_spec/value_spec/types.py,sha256=a2zxbbCRWepY1l8OtjeCDKgBKFPFHVgV99oP6pTtaro,441
|
|
62
|
-
|
|
63
|
-
type_spec/external/api/batch/execute_batch_load_async.yaml,sha256=gcn51NWLiSvlytz8k3_pDOVJLCGfdivKJPG4I9Q8CZc,435
|
|
64
|
-
type_spec/external/api/chemical/convert_chemical_formats.yaml,sha256=EidTxMCRs-ko5yMFDptJPyAEWYZVruP41OG3cwyBLQQ,1069
|
|
65
|
-
type_spec/external/api/entity/create_entities.yaml,sha256=RKjmb_iY4dVHf3aQUCU-OrlbTLLsCkULQ9uEfa8BMFY,1506
|
|
66
|
-
type_spec/external/api/entity/create_entity.yaml,sha256=Orz-3RZsNy5cWXlA3BKVQDYGnGGXlCXOtsOxDSm_nRY,1701
|
|
67
|
-
type_spec/external/api/entity/get_entities_data.yaml,sha256=3XujG7bOpuBQlfFrYtG3L4fBk7LsmdSekmP9iU0zjF0,796
|
|
68
|
-
type_spec/external/api/entity/list_entities.yaml,sha256=l3QtxIRyDzXrSKsa1PNY7fHYRG7yx0Lf_bFEQMQ67n8,1868
|
|
69
|
-
type_spec/external/api/entity/lock_entity.yaml,sha256=jjTlsjbOgiW3qpN7HBn_1OsMKFxAQiE-5mlEjgD2Xic,598
|
|
70
|
-
type_spec/external/api/entity/resolve_entity_ids.yaml,sha256=Zf3OhAohwLJO7wWj0e-sK5lhIsXlD8A5Bu3OGjY4-tA,732
|
|
71
|
-
type_spec/external/api/entity/set_values.yaml,sha256=_UDxSk09Ke0KDABt8ldOScC2CLrbAhBPArZvno5iD4I,422
|
|
72
|
-
type_spec/external/api/entity/transition_entity_phase.yaml,sha256=2JyaP-5Kn75mnBMy58plJsbQnVH2ildcMWcy6nRD6yY,1013
|
|
73
|
-
type_spec/external/api/entity/unlock_entity.yaml,sha256=EFmmrhbJSKGqyLdEA0fw0Dk9WaHN8TbEcfAh6eYE0ps,475
|
|
74
|
-
type_spec/external/api/field_options/upsert_field_options.yaml,sha256=21aW5jnNwJUX_dMwNpwbij1bRN72PrbOesDi6Xqv22U,1246
|
|
75
|
-
type_spec/external/api/id_source/list_id_source.yaml,sha256=V0KfzWGBwBkErKCMGhI8w7ZVbw98zaPuUWQxTfpsONU,1090
|
|
76
|
-
type_spec/external/api/id_source/match_id_source.yaml,sha256=j4jDdmElYyY_ZLJQrx66ddy4JYV_9GMWQNi0G8SwY08,837
|
|
77
|
-
type_spec/external/api/input_groups/get_input_group_names.yaml,sha256=LYgnm2Or7ZWCzDGjl53Y1PcHvej8G7Mpp5H96Z4UZCg,913
|
|
78
|
-
type_spec/external/api/inputs/create_inputs.yaml,sha256=pX8jatpve4iJxK7kYw7SBlQXlVHJVfLDCOrDdpn8Gsw,1561
|
|
79
|
-
type_spec/external/api/inputs/get_input_data.yaml,sha256=sQdju--rKG0-kKgT9MHYbX5JMPmVIFXPHVKchyrykp8,3895
|
|
80
|
-
type_spec/external/api/inputs/get_input_names.yaml,sha256=b_kLmhe-H06J73cUrVg-O2m5K6Uj9WjC6XIUUdiObpU,1592
|
|
81
|
-
type_spec/external/api/inputs/get_inputs_data.yaml,sha256=9wKwnOXC_KokThWnz5Me5RzIcGlxffwcKJtgFow-kvU,2368
|
|
82
|
-
type_spec/external/api/inputs/set_input_attribute_values.yaml,sha256=RpOtVIWBlOp_Nd5Xp67IaQmCzGnLkNwFKQDi4WD8oX4,1021
|
|
83
|
-
type_spec/external/api/inputs/set_input_category.yaml,sha256=2zcDYw_WzBfzFNkhfDDer45MgRxGnzOBLFicDWrvN80,676
|
|
84
|
-
type_spec/external/api/inputs/set_input_subcategories.yaml,sha256=xbydzqVHIktslueosU3dJxdAu4a8uc5jQc5Cccdw7i8,682
|
|
85
|
-
type_spec/external/api/material_families/update_entity_material_families.yaml,sha256=2WjU7XycTHEaZ2YA_FhwzndVN-PqWsyPCJhBE1WRKvQ,1231
|
|
86
|
-
type_spec/external/api/outputs/get_output_data.yaml,sha256=D-xr8u1SfYUGtXG1fcAi8V44d5rVg48LtOK5BhCDXr4,3556
|
|
87
|
-
type_spec/external/api/outputs/get_output_names.yaml,sha256=p-3ubOjEFNjV746zpAkXurCu0yVUvonDssJKk48ueVM,1404
|
|
88
|
-
type_spec/external/api/outputs/resolve_output_conditions.yaml,sha256=lGrG6XPGiQtHx24GccPcO18xxAoMynTSC_2WwxCjFrc,1640
|
|
89
|
-
type_spec/external/api/permissions/set_core_permissions.yaml,sha256=SDM_3FE-ur00dv6Na9HlaJBIvSPgnfqRieGDKnBR1UY,1632
|
|
90
|
-
type_spec/external/api/project/get_projects.yaml,sha256=pQXGGPHenmFWYUuzEmZ-ORf0_d6lpQkTrXXMRrEqvDI,1676
|
|
91
|
-
type_spec/external/api/project/get_projects_data.yaml,sha256=9Ns-KOP1qVhBaqMRCsEG6960V5mJW16TD0qRsTHznjQ,2051
|
|
92
|
-
type_spec/external/api/recipe_links/create_recipe_link.yaml,sha256=7b2p7Ei4LnQXqccHsOVAfYyNK4WXm0n1IqxPG-qQDh0,941
|
|
93
|
-
type_spec/external/api/recipe_metadata/get_recipe_metadata_data.yaml,sha256=3C7lCYWI1yX57lhcxU7kPPx-K6DI18CXGxQredSf-lA,1829
|
|
94
|
-
type_spec/external/api/recipes/archive_recipes.yaml,sha256=Oe-NIFwERiG1DwgzsWj3ouKVdnRDTelrgqE5b9Bt_vQ,515
|
|
95
|
-
type_spec/external/api/recipes/associate_recipe_as_input.yaml,sha256=7t0jto37RyLjl63-GK3mLC2uFiX1gd8vPwTwnobxkeI,654
|
|
96
|
-
type_spec/external/api/recipes/associate_recipe_as_lot.yaml,sha256=8wzeJg5njt4qG2kavA6Jpo9PkWE6rIbuA4IPNdhcwEg,605
|
|
97
|
-
type_spec/external/api/recipes/create_recipe.yaml,sha256=L9McbFT0fxQc8G1oepWVMbPBc3w_9HSjfhmorIWQDNc,1442
|
|
98
|
-
type_spec/external/api/recipes/create_recipes.yaml,sha256=eXMlXRpB5TFt1mUTECBa4aAIG3KrxYT2mJ5vxmZ9Q3A,1503
|
|
99
|
-
type_spec/external/api/recipes/disassociate_recipe_as_input.yaml,sha256=qTKQCNBNwLnbr22DQVLA6b80BdBhwnDbX1c4KoCKUm8,477
|
|
100
|
-
type_spec/external/api/recipes/edit_recipe_inputs.yaml,sha256=ljewBw77ucvl_m_KWmSJp-nVQGvVG6cb7xVOgPIlueU,2573
|
|
101
|
-
type_spec/external/api/recipes/get_curve.yaml,sha256=zQpPwOYqojY-YwmTjbqoGtUxpYm3vne2sYpglWbPnpw,779
|
|
102
|
-
type_spec/external/api/recipes/get_recipe_calculations.yaml,sha256=ZE7PzfWrjS7TiO4q7iyCwEj5In8GwO6fFIYGqUlTEXo,1240
|
|
103
|
-
type_spec/external/api/recipes/get_recipe_links.yaml,sha256=Vwm0OVWl3VvDaI7chY_oZQqD8xZ1u09iFWKkZKn1ITo,766
|
|
104
|
-
type_spec/external/api/recipes/get_recipe_names.yaml,sha256=4tqcVj-xLeEu0lhdm8NpLYmAvfkmq08GZ0Mr59I5nLI,896
|
|
105
|
-
type_spec/external/api/recipes/get_recipe_output_metadata.yaml,sha256=YImW94JXVKR6Wz_7R7sRbhD9Ul51Ba-j-x9vJB__AAU,1216
|
|
106
|
-
type_spec/external/api/recipes/get_recipes_data.yaml,sha256=F1CkFOtQroweYvURkw4wJx0X3UvSl3mmz87r-MIxfto,11632
|
|
107
|
-
type_spec/external/api/recipes/set_recipe_inputs.yaml,sha256=MvnHuzI9JKfkYZb-pC4jeE7FRpGeacJKXd5_GImsDiY,1747
|
|
108
|
-
type_spec/external/api/recipes/set_recipe_metadata.yaml,sha256=5N9AIY9x3pZhDXyzpM__e7pyKNTI2RS7OeBmwmj5nEs,585
|
|
109
|
-
type_spec/external/api/recipes/set_recipe_outputs.yaml,sha256=Oe8XGYXbPNmrbEDXk3qucfS1L3P9TnXI5cxaNAl6x5A,1875
|
|
110
|
-
type_spec/external/api/recipes/set_recipe_tags.yaml,sha256=IrdkbryxZjNy8n4aMNLRTYbm27cRDfXxItk_kFgDaMM,1399
|
|
111
|
-
type_spec/external/api/recipes/unarchive_recipes.yaml,sha256=m9WwmTHtIMVQOmX7CpbKbnuPsnTVII-4Jr9JffxMUXg,393
|
|
112
|
-
type_spec/external/api/triggers/run_trigger.yaml,sha256=c8xDV3bQRjcRRDG4Y7kdQmMMu1fj3ae5eUi-Sdbsi54,405
|
|
113
|
-
uncountable/__init__.py,sha256=281cC2hs8pbrD0jVKMol-tbWSh7Zcsc8oRT42dKteyE,102
|
|
61
|
+
uncountable/__init__.py,sha256=8l8XWNCKsu7TG94c-xa2KHpDegvxDC2FyQISdWC763Y,89
|
|
114
62
|
uncountable/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
115
|
-
uncountable/core/__init__.py,sha256=
|
|
116
|
-
uncountable/core/async_batch.py,sha256=
|
|
117
|
-
uncountable/core/client.py,sha256=
|
|
118
|
-
uncountable/core/file_upload.py,sha256=
|
|
119
|
-
uncountable/core/types.py,sha256=
|
|
63
|
+
uncountable/core/__init__.py,sha256=RFv0kO6rKFf1PtBPu83hCGmxqkJamRtsgQ9_-ztw7tA,341
|
|
64
|
+
uncountable/core/async_batch.py,sha256=Zo02TICZ7AK81Qa02NQ8fp8uaijQph1FEta28K3cKb0,749
|
|
65
|
+
uncountable/core/client.py,sha256=79pqKjYuoTzKnPWLMST1jS9Gcn4nxtOzWC-VaM67QgY,9401
|
|
66
|
+
uncountable/core/file_upload.py,sha256=t4cutIFB5rNN2qVCx3H0HotSjCSJSxis2_QBarDuXyc,2833
|
|
67
|
+
uncountable/core/types.py,sha256=s2CjqYJpsmbC7xMwxxT7kJ_V9bwokrjjWVVjpMcQpKI,333
|
|
120
68
|
uncountable/integration/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
121
|
-
uncountable/integration/construct_client.py,sha256=
|
|
122
|
-
uncountable/integration/cron.py,sha256=
|
|
123
|
-
uncountable/integration/entrypoint.py,sha256=
|
|
124
|
-
uncountable/integration/job.py,sha256=
|
|
125
|
-
uncountable/integration/server.py,sha256=
|
|
69
|
+
uncountable/integration/construct_client.py,sha256=N3K-wck7teqvHTrOh0N2bGF3u6kyuwQvgo7gsKLihQ0,1077
|
|
70
|
+
uncountable/integration/cron.py,sha256=DNnMkeLYi70U-3wrcDAX382FgEGq16KL6xy-6OBv5Us,938
|
|
71
|
+
uncountable/integration/entrypoint.py,sha256=MNXl9xv0N03V3_0vplckWlUio2CDFJ0jsjM8uvY1dTE,1404
|
|
72
|
+
uncountable/integration/job.py,sha256=u4Vhm9l5KUvex7I7R_ysBHjmm1BBB1KvnjRvZvFkOig,807
|
|
73
|
+
uncountable/integration/server.py,sha256=5Wh80VyfgUUHA5NiFGn9LjS4KJ9zJz3QbNTLLKhFAso,3342
|
|
126
74
|
uncountable/integration/types.py,sha256=n9idu2_qHOA5CQdE6NK8HS6aZ8ugTZKTfTTnm4sy8tI,2066
|
|
127
75
|
uncountable/integration/db/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
128
|
-
uncountable/integration/db/connect.py,sha256=
|
|
76
|
+
uncountable/integration/db/connect.py,sha256=YtQHJ1DBGPhxKFRCfiXqohOYUceKSxMVOJ88aPI48Ug,181
|
|
129
77
|
uncountable/integration/executors/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
130
|
-
uncountable/integration/executors/script_executor.py,sha256=
|
|
131
|
-
uncountable/types/__init__.py,sha256=
|
|
78
|
+
uncountable/integration/executors/script_executor.py,sha256=hM8E-aU8zyM6ZcBtqAqInKZ_BF93RLqEA0dU7y5FhWQ,841
|
|
79
|
+
uncountable/types/__init__.py,sha256=0UllKeQhqDy1AD5UH6tMPx0QqIuW7KFlVe1SnJkD3ro,7197
|
|
132
80
|
uncountable/types/async_batch.py,sha256=aWiul1fK3-cXaCESUUJ_92FF-NuuwxSjn9n3jC9vY5o,1618
|
|
133
|
-
uncountable/types/async_batch_processor.py,sha256=
|
|
81
|
+
uncountable/types/async_batch_processor.py,sha256=eNXKPOh-sCiarPvreLDEu4XbieWLe_5KXmiY984eZ5I,6083
|
|
134
82
|
uncountable/types/base.py,sha256=w3BRf8SAvYPlKrcJtJcQ_WhCU3A9zy0VuRTRWRFKVUA,2709
|
|
135
83
|
uncountable/types/calculations.py,sha256=16J-KKMp-I8ZQUkYNmKCHfAn6DGb99cFinALcDIdGHY,562
|
|
136
84
|
uncountable/types/chemical_structure.py,sha256=zQKl53DGtQQONIUHFXuwjWLQaG7FPZY7x6SBSOzkGV0,758
|
|
137
|
-
uncountable/types/client_base.py,sha256=
|
|
85
|
+
uncountable/types/client_base.py,sha256=UpIXr8JvrOuA9TNHeU1paqTNiE4KHsSpzA6RCAS7bO8,58694
|
|
138
86
|
uncountable/types/curves.py,sha256=qYyRntMmFNonEwTrGhquMLbgMqjyP1moQflNTP0FMec,1308
|
|
139
87
|
uncountable/types/entity.py,sha256=NjMZrqBwQ7sZe_oUuJqy9IEG7dWZmFMkQQXJ0_odcnA,11637
|
|
140
88
|
uncountable/types/experiment_groups.py,sha256=ZBEk06F4n98Jz3oEA09WaDmw5rqPs7iVAm_Ysr4gc_o,599
|
|
@@ -143,7 +91,7 @@ uncountable/types/fields.py,sha256=eGtZ6axTYGFxLmPAyri2LwlcR4SZ2sX2c6QDX0ybKz0,5
|
|
|
143
91
|
uncountable/types/id_source.py,sha256=Y3suURq3L1SahZ2oHPD986SU0l3Ik-ZzH38aQKgc1Fg,1341
|
|
144
92
|
uncountable/types/identifier.py,sha256=94-O3H_qNrA48tf3srwPwdu8HURkLl7_-88kUnwElZg,1455
|
|
145
93
|
uncountable/types/input_attributes.py,sha256=u-JABoZ-Ij1Ynq5g6MxOgRdQeYbM7OnGP2q_N7KuVdw,826
|
|
146
|
-
uncountable/types/inputs.py,sha256=
|
|
94
|
+
uncountable/types/inputs.py,sha256=KoJGGxvwqQy8Eiw5X6PVUsEHQABYMtCj40PwtECDeIc,1617
|
|
147
95
|
uncountable/types/outputs.py,sha256=hSUlu41sisYKIZpPrj1G1DRfKm6hsKNcd1eNKFYb-4w,671
|
|
148
96
|
uncountable/types/permissions.py,sha256=VVLnukQ4RbApFdE0sgWDZxnrRCV6gOtXxq6yM5GxQlk,1620
|
|
149
97
|
uncountable/types/phases.py,sha256=eaqwQlSRC2Ug7YFL0gqLbg3wDDHeRvBOhcABG7khW8c,550
|
|
@@ -155,6 +103,7 @@ uncountable/types/recipe_metadata.py,sha256=cebGg_lJzqZzGnKnDgmuQFrw4Xhoz6HEiGM6
|
|
|
155
103
|
uncountable/types/recipe_output_metadata.py,sha256=XJA8R1r4NTzyR_DhMkmH4ZtYD-vqpvBMji9Be8OcFmo,613
|
|
156
104
|
uncountable/types/recipe_tags.py,sha256=lYpksHAxXCcIjZKR7JoZOTH2cBSovwxZaHwjZy_yqiQ,581
|
|
157
105
|
uncountable/types/recipe_workflow_steps.py,sha256=LmyFwWWwJv30vuaQ4qtd0hzDdeJaIxHQZqwRb1Wi_6A,2626
|
|
106
|
+
uncountable/types/recipes.py,sha256=tY8MNmQiky94eIFOxSLyflXVno3pfDygxJ6WPqJlyDU,549
|
|
158
107
|
uncountable/types/response.py,sha256=ZI0CG7ZxBM2k5_W-6mNMU3UlB0p1i-0nrwOvsMaS-vU,620
|
|
159
108
|
uncountable/types/units.py,sha256=_kZ7KkXIbRiY2fOdkTsbJBpWRah5TCC2WWiG05e-1DA,565
|
|
160
109
|
uncountable/types/users.py,sha256=SUjNHBDcImKnnE7IN096Wfr1fmjNjCkQ7yQgKUPffz8,588
|
|
@@ -169,7 +118,7 @@ uncountable/types/api/entity/__init__.py,sha256=gCgbynxG3jA8FQHzercKtrHKHkiIKr8A
|
|
|
169
118
|
uncountable/types/api/entity/create_entities.py,sha256=vzo5hS1qcmjQdfyCMarSu8MRcRGSiholOVSCfjXlA1k,1703
|
|
170
119
|
uncountable/types/api/entity/create_entity.py,sha256=ausozCQ3qPM9YUQ87bOTCKOm-zkhn4CSLJr9jLc9n2U,1873
|
|
171
120
|
uncountable/types/api/entity/get_entities_data.py,sha256=XjrJGZucIn1TYUlDLRnRA0JTQw-vXHIAT-m0H9hk37A,1170
|
|
172
|
-
uncountable/types/api/entity/list_entities.py,sha256=
|
|
121
|
+
uncountable/types/api/entity/list_entities.py,sha256=Bd_Ppy2bzWve8RbplyMkEHkg07CxEIskeiTdb9Ntlfo,1673
|
|
173
122
|
uncountable/types/api/entity/lock_entity.py,sha256=SbRaKDbJfoPD9uVYiGlnrsPF_HZ_6m0hPAlalZwGyag,1029
|
|
174
123
|
uncountable/types/api/entity/resolve_entity_ids.py,sha256=AidGpPmI9ATDv0E7vd9LDOl3n3beGxUlRojh5uZrkl4,1086
|
|
175
124
|
uncountable/types/api/entity/set_values.py,sha256=LcYrKQm5ItYLK1Vx7rRq5i6jkMLDhfEBhF0FD1GowQs,958
|
|
@@ -190,6 +139,7 @@ uncountable/types/api/inputs/get_inputs_data.py,sha256=sqZ6xEjzQqRQYMaKXLGWR8WPh
|
|
|
190
139
|
uncountable/types/api/inputs/set_input_attribute_values.py,sha256=yvWgIVzl818ewhUA4v3ldSBfmZKngdWTtFn7fqk-dOE,1341
|
|
191
140
|
uncountable/types/api/inputs/set_input_category.py,sha256=ymjMoIiWTtygwI67aVgcw6FyjWW31zBxZb78-YTNs1Y,967
|
|
192
141
|
uncountable/types/api/inputs/set_input_subcategories.py,sha256=hRS1FcFWPaenO_08Ihtfy_v7MUbpiFefdK2AMv16HaI,1004
|
|
142
|
+
uncountable/types/api/inputs/set_intermediate_type.py,sha256=tbN3vJ0559eMKZh0kXio1nI1zxWKhZy4bZRI2LOVlGc,1109
|
|
193
143
|
uncountable/types/api/material_families/__init__.py,sha256=gCgbynxG3jA8FQHzercKtrHKHkiIKr8APdZYUniAor8,55
|
|
194
144
|
uncountable/types/api/material_families/update_entity_material_families.py,sha256=h-vkua57yCNSO6P1akIxmmaFdwzOXPxm2s3Xt6x1c7c,1396
|
|
195
145
|
uncountable/types/api/outputs/__init__.py,sha256=gCgbynxG3jA8FQHzercKtrHKHkiIKr8APdZYUniAor8,55
|
|
@@ -206,27 +156,29 @@ uncountable/types/api/recipe_links/create_recipe_link.py,sha256=1Ok6XMGFKBIPV-uR
|
|
|
206
156
|
uncountable/types/api/recipe_metadata/__init__.py,sha256=gCgbynxG3jA8FQHzercKtrHKHkiIKr8APdZYUniAor8,55
|
|
207
157
|
uncountable/types/api/recipe_metadata/get_recipe_metadata_data.py,sha256=el6Pn5XqExX66ZEEHM8CHPxnyXSMZPdfdvLBz86sAVY,1267
|
|
208
158
|
uncountable/types/api/recipes/__init__.py,sha256=gCgbynxG3jA8FQHzercKtrHKHkiIKr8APdZYUniAor8,55
|
|
159
|
+
uncountable/types/api/recipes/add_recipe_to_project.py,sha256=YSVxZ_tDBsyNlxCiqHF2E8pQXRjfq46X6QwoZmkbWWk,867
|
|
209
160
|
uncountable/types/api/recipes/archive_recipes.py,sha256=XFCqBa90bG4Tpxu6fhUqzl7PWlY35bbzOmJf5EOviRM,852
|
|
210
|
-
uncountable/types/api/recipes/associate_recipe_as_input.py,sha256=
|
|
161
|
+
uncountable/types/api/recipes/associate_recipe_as_input.py,sha256=Kd0ySjIL4TZKR0QVVjlIUwUSjefZ6VmVw82HV-Yofbg,1027
|
|
211
162
|
uncountable/types/api/recipes/associate_recipe_as_lot.py,sha256=bTYjbnY3B7GKz4MV4UGn7vPjaqMkAfUTio8872d4iws,955
|
|
212
163
|
uncountable/types/api/recipes/create_recipe.py,sha256=jizKdsc761zrJXOi0xlmge7-Z9QlzRQdbLNtUoVLQCI,1420
|
|
213
164
|
uncountable/types/api/recipes/create_recipes.py,sha256=qwIYa8hfcjY7_VOFt9lxmVtJ-HOJqQN3GDNSbZsRCZU,1544
|
|
214
165
|
uncountable/types/api/recipes/disassociate_recipe_as_input.py,sha256=L25fpiK1Y5PByPVVgsZy9t4podz3xSSLIwKHj8CUrSg,913
|
|
215
|
-
uncountable/types/api/recipes/edit_recipe_inputs.py,sha256=
|
|
166
|
+
uncountable/types/api/recipes/edit_recipe_inputs.py,sha256=I0o-LKBjjNryQqwKM4g6jdy6YtX7P2Ga2lKzXU_RuRk,4153
|
|
216
167
|
uncountable/types/api/recipes/get_curve.py,sha256=UIWfpqtU5sQokaxwYfQFNFl6HMyzWEF_Sjd8UMz0U88,939
|
|
217
168
|
uncountable/types/api/recipes/get_recipe_calculations.py,sha256=eQmkdZzCEuq8S2f_kf_7GPvDLX1pTnY1CRmkK0SkMCI,1472
|
|
218
169
|
uncountable/types/api/recipes/get_recipe_links.py,sha256=hk5dfQjv7yU2r-S9b8vwWEJLPHqU0-M6SFiTLMR3fVk,985
|
|
219
170
|
uncountable/types/api/recipes/get_recipe_names.py,sha256=uCpXZq5oWjr9a_Vf-yYPaVS72XOlLHgAlju6KHeQ3UA,986
|
|
220
171
|
uncountable/types/api/recipes/get_recipe_output_metadata.py,sha256=L9s2ykPP4pd02Pc98LDisY8bgV8CToS6t6fXKTWqGRw,1464
|
|
221
172
|
uncountable/types/api/recipes/get_recipes_data.py,sha256=TbJo4pkp5ePgbeH1oldThpq9jWLDYRUbrYMAv8T_LsI,5518
|
|
173
|
+
uncountable/types/api/recipes/remove_recipe_from_project.py,sha256=cr-VnqgBNek_WInmJln0UBn1GHMNQtRw3gsFTY_G91M,872
|
|
222
174
|
uncountable/types/api/recipes/set_recipe_inputs.py,sha256=lFVfv-o_O5wHuMZdH63qlG4exFTlJM078oSAtb3XNxA,1426
|
|
223
175
|
uncountable/types/api/recipes/set_recipe_metadata.py,sha256=Ba6ttd1JuS_Ypt-KpckSviWtOcQ-OTdTEJiaSYyoQL8,933
|
|
224
|
-
uncountable/types/api/recipes/set_recipe_outputs.py,sha256=
|
|
176
|
+
uncountable/types/api/recipes/set_recipe_outputs.py,sha256=VfUL59O21qPrgD7qQ9t5OVSGcGZ2r17lW_yEzuUkrtw,1722
|
|
225
177
|
uncountable/types/api/recipes/set_recipe_tags.py,sha256=U710hgq9-t6QZGRB-ZGHskpt4iXwYEjIRb67eh3P518,2453
|
|
226
178
|
uncountable/types/api/recipes/unarchive_recipes.py,sha256=WcwFYbBsX2SKXnoBQ8locnRn7Bj1rHdtrURQVOfqgfU,814
|
|
227
179
|
uncountable/types/api/triggers/__init__.py,sha256=gCgbynxG3jA8FQHzercKtrHKHkiIKr8APdZYUniAor8,55
|
|
228
180
|
uncountable/types/api/triggers/run_trigger.py,sha256=9m9M8-nlGB_sAU2Qm2lWugp4h4Osqj6QpjNfU8osd1U,901
|
|
229
|
-
UncountablePythonSDK-0.0.
|
|
230
|
-
UncountablePythonSDK-0.0.
|
|
231
|
-
UncountablePythonSDK-0.0.
|
|
232
|
-
UncountablePythonSDK-0.0.
|
|
181
|
+
UncountablePythonSDK-0.0.31.dist-info/METADATA,sha256=jaFYbK371JiK653-RWGnpqIWCo1Ql0gQRJ4B9_0L4EQ,1577
|
|
182
|
+
UncountablePythonSDK-0.0.31.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
|
|
183
|
+
UncountablePythonSDK-0.0.31.dist-info/top_level.txt,sha256=1UVGjAU-6hJY9qw2iJ7nCBeEwZ793AEN5ZfKX9A1uj4,31
|
|
184
|
+
UncountablePythonSDK-0.0.31.dist-info/RECORD,,
|
docs/conf.py
CHANGED
|
@@ -7,7 +7,6 @@
|
|
|
7
7
|
# https://www.sphinx-doc.org/en/master/usage/configuration.html#project-information
|
|
8
8
|
|
|
9
9
|
from datetime import date
|
|
10
|
-
import uncountable
|
|
11
10
|
|
|
12
11
|
project = "Uncountable SDK"
|
|
13
12
|
copyright = f"{date.today().year}, Uncountable Inc"
|
|
@@ -26,9 +25,15 @@ extensions = [
|
|
|
26
25
|
myst_enable_extensions = ["fieldlist", "deflist"]
|
|
27
26
|
|
|
28
27
|
autoapi_dirs = ["../uncountable"]
|
|
29
|
-
autoapi_options = [
|
|
30
|
-
|
|
31
|
-
|
|
28
|
+
autoapi_options = [
|
|
29
|
+
"members",
|
|
30
|
+
"undoc-members",
|
|
31
|
+
"show-inheritance",
|
|
32
|
+
"show-module-summary",
|
|
33
|
+
"imported-members",
|
|
34
|
+
]
|
|
35
|
+
autoapi_ignore = ["*integration*"]
|
|
36
|
+
autodoc_typehints = "description"
|
|
32
37
|
|
|
33
38
|
exclude_patterns = ["_build", "Thumbs.db", ".DS_Store"]
|
|
34
39
|
|
docs/requirements.txt
CHANGED
examples/async_batch.py
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
from decimal import Decimal
|
|
2
|
-
|
|
3
|
-
from uncountable.core import AsyncBatchProcessor
|
|
2
|
+
|
|
3
|
+
from uncountable.core import AsyncBatchProcessor, AuthDetailsApiKey, Client
|
|
4
4
|
from uncountable.types import (
|
|
5
5
|
recipe_metadata,
|
|
6
6
|
)
|
|
@@ -10,7 +10,6 @@ from uncountable.types.recipe_identifiers import (
|
|
|
10
10
|
RecipeIdentifiers,
|
|
11
11
|
)
|
|
12
12
|
|
|
13
|
-
|
|
14
13
|
client = Client(
|
|
15
14
|
base_url="https://app.uncountable.com",
|
|
16
15
|
auth_details=AuthDetailsApiKey(
|
examples/create_entity.py
CHANGED
|
@@ -1,23 +1,20 @@
|
|
|
1
1
|
from uncountable.core import AuthDetailsOAuth, Client
|
|
2
|
+
from uncountable.core.client import ClientConfig
|
|
2
3
|
from uncountable.types import (
|
|
3
4
|
entity_t,
|
|
4
5
|
field_values_t,
|
|
5
6
|
)
|
|
6
7
|
|
|
7
|
-
|
|
8
8
|
client = Client(
|
|
9
9
|
base_url="https://app.uncountable.com",
|
|
10
|
-
auth_details=AuthDetailsOAuth(
|
|
11
|
-
|
|
12
|
-
),
|
|
10
|
+
auth_details=AuthDetailsOAuth(refresh_token="x"),
|
|
11
|
+
config=ClientConfig(allow_insecure_tls=False),
|
|
13
12
|
)
|
|
14
13
|
entities = client.create_entity(
|
|
15
14
|
definition_id=24,
|
|
16
15
|
entity_type=entity_t.EntityType.LAB_REQUEST,
|
|
17
16
|
field_values=[
|
|
18
|
-
field_values_t.FieldRefNameValue(
|
|
19
|
-
field_ref_name="name", value="SDK Lab Request"
|
|
20
|
-
),
|
|
17
|
+
field_values_t.FieldRefNameValue(field_ref_name="name", value="SDK Lab Request"),
|
|
21
18
|
field_values_t.FieldRefNameValue(field_ref_name="materialFamilyId", value=1),
|
|
22
19
|
],
|
|
23
20
|
)
|
examples/upload_files.py
CHANGED
|
@@ -4,9 +4,10 @@ import re
|
|
|
4
4
|
|
|
5
5
|
@functools.lru_cache(maxsize=500000)
|
|
6
6
|
def snake_to_camel_case(o: str) -> str:
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
7
|
+
tokens = o.split("_")
|
|
8
|
+
if len(tokens) < 2:
|
|
9
|
+
return o
|
|
10
|
+
return "".join([part.title() if i > 0 else part for i, part in enumerate(tokens)])
|
|
10
11
|
|
|
11
12
|
|
|
12
13
|
def kebab_to_pascal_case(o: str) -> str:
|
|
@@ -16,6 +16,9 @@ class _SerialClassData:
|
|
|
16
16
|
parse_require: set[str] = dataclasses.field(default_factory=set)
|
|
17
17
|
|
|
18
18
|
|
|
19
|
+
EMPTY_SERIAL_CLASS_DATA = _SerialClassData()
|
|
20
|
+
|
|
21
|
+
|
|
19
22
|
def serial_class(
|
|
20
23
|
*,
|
|
21
24
|
unconverted_keys: Optional[set[str]] = None,
|
|
@@ -57,58 +60,49 @@ def serial_class(
|
|
|
57
60
|
|
|
58
61
|
|
|
59
62
|
class SerialClassDataInspector:
|
|
60
|
-
bases: list[SerialClassDataInspector]
|
|
61
|
-
|
|
62
63
|
def __init__(
|
|
63
|
-
self,
|
|
64
|
+
self,
|
|
65
|
+
current: _SerialClassData,
|
|
64
66
|
) -> None:
|
|
65
|
-
self.bases = bases
|
|
66
67
|
self.current = current
|
|
67
68
|
|
|
68
69
|
def has_unconverted_key(self, key: str) -> bool:
|
|
69
|
-
|
|
70
|
-
return True
|
|
71
|
-
for base in self.bases:
|
|
72
|
-
if base.has_unconverted_key(key):
|
|
73
|
-
return True
|
|
74
|
-
return False
|
|
70
|
+
return key in self.current.unconverted_keys
|
|
75
71
|
|
|
76
72
|
def has_unconverted_value(self, key: str) -> bool:
|
|
77
|
-
|
|
78
|
-
return True
|
|
79
|
-
for base in self.bases:
|
|
80
|
-
if base.has_unconverted_value(key):
|
|
81
|
-
return True
|
|
82
|
-
return False
|
|
73
|
+
return key in self.current.unconverted_values
|
|
83
74
|
|
|
84
75
|
def has_to_string_value(self, key: str) -> bool:
|
|
85
|
-
|
|
86
|
-
return True
|
|
87
|
-
for base in self.bases:
|
|
88
|
-
if base.has_to_string_value(key):
|
|
89
|
-
return True
|
|
90
|
-
return False
|
|
76
|
+
return key in self.current.to_string_values
|
|
91
77
|
|
|
92
78
|
def has_parse_require(self, key: str) -> bool:
|
|
93
|
-
|
|
94
|
-
return True
|
|
95
|
-
for base in self.bases:
|
|
96
|
-
if base.has_parse_require(key):
|
|
97
|
-
return True
|
|
98
|
-
return False
|
|
79
|
+
return key in self.current.parse_require
|
|
99
80
|
|
|
100
81
|
|
|
101
|
-
def
|
|
102
|
-
|
|
103
|
-
[get_serial_class_data(base) for base in type_class.__bases__]
|
|
104
|
-
if type_class.__bases__ is not None
|
|
105
|
-
else []
|
|
106
|
-
)
|
|
107
|
-
return SerialClassDataInspector(
|
|
108
|
-
bases,
|
|
82
|
+
def _get_merged_serial_class_data(type_class: type[Any]) -> _SerialClassData | None:
|
|
83
|
+
base_class_data = (
|
|
109
84
|
cast(_SerialClassData, type_class.__unc_serial_data)
|
|
110
85
|
if hasattr(type_class, "__unc_serial_data")
|
|
111
|
-
else
|
|
86
|
+
else None
|
|
87
|
+
)
|
|
88
|
+
if type_class.__bases__ is not None:
|
|
89
|
+
for base in type_class.__bases__:
|
|
90
|
+
curr_base_class_data = _get_merged_serial_class_data(base)
|
|
91
|
+
if curr_base_class_data is not None:
|
|
92
|
+
if base_class_data is None:
|
|
93
|
+
base_class_data = _SerialClassData()
|
|
94
|
+
base_class_data.unconverted_keys |= curr_base_class_data.unconverted_keys
|
|
95
|
+
base_class_data.unconverted_values |= (
|
|
96
|
+
curr_base_class_data.unconverted_values
|
|
97
|
+
)
|
|
98
|
+
base_class_data.to_string_values |= curr_base_class_data.to_string_values
|
|
99
|
+
base_class_data.parse_require |= curr_base_class_data.parse_require
|
|
100
|
+
return base_class_data
|
|
101
|
+
|
|
102
|
+
|
|
103
|
+
def get_serial_class_data(type_class: type[Any]) -> SerialClassDataInspector:
|
|
104
|
+
return SerialClassDataInspector(
|
|
105
|
+
_get_merged_serial_class_data(type_class) or EMPTY_SERIAL_CLASS_DATA
|
|
112
106
|
)
|
|
113
107
|
|
|
114
108
|
|
pkgs/type_spec/emit_python.py
CHANGED
|
@@ -1194,7 +1194,6 @@ ASYNC_BATCH_PROCESSOR_FILENAME = "async_batch_processor"
|
|
|
1194
1194
|
ASYNC_BATCH_PROCESSOR_IMPORTS = [
|
|
1195
1195
|
"import uuid",
|
|
1196
1196
|
"from abc import ABC, abstractmethod",
|
|
1197
|
-
"from dataclasses import dataclass",
|
|
1198
1197
|
"from pkgs.serialization_util.serialization_helpers import serialize_for_api",
|
|
1199
1198
|
]
|
|
1200
1199
|
|
|
@@ -247,17 +247,25 @@ def _extract_and_validate_layout(
|
|
|
247
247
|
return layout
|
|
248
248
|
|
|
249
249
|
|
|
250
|
-
def _validate_type_ext_info(
|
|
250
|
+
def _validate_type_ext_info(
|
|
251
|
+
stype: builder.SpecTypeDefnObject,
|
|
252
|
+
) -> tuple[ExtInfoLayout | None, Optional[data_t.ExtInfo]]:
|
|
251
253
|
ext_info = _parse_ext_info(stype.ext_info)
|
|
252
254
|
if ext_info is None:
|
|
253
|
-
return None
|
|
255
|
+
return None, None
|
|
256
|
+
|
|
257
|
+
if ext_info.label_fields is not None:
|
|
258
|
+
assert stype.properties is not None
|
|
259
|
+
for name in ext_info.label_fields:
|
|
260
|
+
prop = stype.properties.get(name)
|
|
261
|
+
assert prop is not None, f"missing-label-field:{name}"
|
|
254
262
|
|
|
255
263
|
if not stype.is_base and isinstance(stype.base, builder.SpecTypeDefnObject):
|
|
256
|
-
base_layout = _validate_type_ext_info(stype.base)
|
|
264
|
+
base_layout, _ = _validate_type_ext_info(stype.base)
|
|
257
265
|
else:
|
|
258
266
|
base_layout = None
|
|
259
267
|
|
|
260
|
-
return _extract_and_validate_layout(stype, ext_info, base_layout)
|
|
268
|
+
return _extract_and_validate_layout(stype, ext_info, base_layout), ext_info
|
|
261
269
|
|
|
262
270
|
|
|
263
271
|
def _build_map_type(
|
|
@@ -270,7 +278,7 @@ def _build_map_type(
|
|
|
270
278
|
and not stype.is_base
|
|
271
279
|
and stype.base is not None
|
|
272
280
|
):
|
|
273
|
-
_validate_type_ext_info(stype)
|
|
281
|
+
_, ext_info = _validate_type_ext_info(stype)
|
|
274
282
|
|
|
275
283
|
properties: dict[str, MapProperty] = {}
|
|
276
284
|
map_type = MapTypeObject(
|
|
@@ -279,7 +287,7 @@ def _build_map_type(
|
|
|
279
287
|
properties=properties,
|
|
280
288
|
desc=stype.desc,
|
|
281
289
|
base_type_path=type_path_of(stype.base),
|
|
282
|
-
ext_info=
|
|
290
|
+
ext_info=serialize_for_api(ext_info),
|
|
283
291
|
)
|
|
284
292
|
|
|
285
293
|
if stype.properties is not None:
|
uncountable/__init__.py
CHANGED
uncountable/core/__init__.py
CHANGED
|
@@ -1,6 +1,13 @@
|
|
|
1
|
+
from .async_batch import AsyncBatchProcessor
|
|
1
2
|
from .client import Client
|
|
2
|
-
from .types import AuthDetailsApiKey, AuthDetailsOAuth
|
|
3
3
|
from .file_upload import MediaFileUpload, UploadedFile
|
|
4
|
-
from .
|
|
4
|
+
from .types import AuthDetailsApiKey, AuthDetailsOAuth
|
|
5
5
|
|
|
6
|
-
__all__: list[str] = [
|
|
6
|
+
__all__: list[str] = [
|
|
7
|
+
"AuthDetailsApiKey",
|
|
8
|
+
"AuthDetailsOAuth",
|
|
9
|
+
"AsyncBatchProcessor",
|
|
10
|
+
"Client",
|
|
11
|
+
"MediaFileUpload",
|
|
12
|
+
"UploadedFile",
|
|
13
|
+
]
|
uncountable/core/async_batch.py
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
from uncountable.core.client import Client
|
|
2
|
+
from uncountable.types import async_batch_t, base_t
|
|
2
3
|
from uncountable.types.async_batch import AsyncBatchRequest
|
|
3
4
|
from uncountable.types.async_batch_processor import AsyncBatchProcessorBase
|
|
4
|
-
from uncountable.types import async_batch_t, base_t
|
|
5
5
|
|
|
6
6
|
|
|
7
7
|
class AsyncBatchProcessor(AsyncBatchProcessorBase):
|