UncountablePythonSDK 0.0.16__tar.gz → 0.0.18__tar.gz
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.
- uncountablepythonsdk-0.0.18/.github/workflows/documentation.yml +34 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.18}/PKG-INFO +15 -1
- uncountablepythonsdk-0.0.18/README.md +13 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.18}/UncountablePythonSDK.egg-info/PKG-INFO +15 -1
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.18}/UncountablePythonSDK.egg-info/SOURCES.txt +51 -1
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.18}/UncountablePythonSDK.egg-info/top_level.txt +1 -0
- uncountablepythonsdk-0.0.18/docs/.gitignore +1 -0
- uncountablepythonsdk-0.0.18/docs/conf.py +52 -0
- uncountablepythonsdk-0.0.18/docs/index.md +13 -0
- uncountablepythonsdk-0.0.18/docs/justfile +12 -0
- uncountablepythonsdk-0.0.18/docs/quickstart.md +19 -0
- uncountablepythonsdk-0.0.18/docs/requirements.txt +7 -0
- uncountablepythonsdk-0.0.18/docs/static/favicons/android-chrome-192x192.png +0 -0
- uncountablepythonsdk-0.0.18/docs/static/favicons/android-chrome-512x512.png +0 -0
- uncountablepythonsdk-0.0.18/docs/static/favicons/apple-touch-icon.png +0 -0
- uncountablepythonsdk-0.0.18/docs/static/favicons/browserconfig.xml +9 -0
- uncountablepythonsdk-0.0.18/docs/static/favicons/favicon-16x16.png +0 -0
- uncountablepythonsdk-0.0.18/docs/static/favicons/favicon-32x32.png +0 -0
- uncountablepythonsdk-0.0.18/docs/static/favicons/manifest.json +18 -0
- uncountablepythonsdk-0.0.18/docs/static/favicons/mstile-150x150.png +0 -0
- uncountablepythonsdk-0.0.18/docs/static/favicons/safari-pinned-tab.svg +32 -0
- uncountablepythonsdk-0.0.18/docs/static/logo_blue.png +0 -0
- uncountablepythonsdk-0.0.18/examples/create_entity.py +25 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.18}/pkgs/argument_parser/_is_enum.py +1 -1
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.18}/pkgs/argument_parser/argument_parser.py +26 -19
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.18}/pkgs/serialization/serial_class.py +3 -3
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.18}/pkgs/serialization_util/_get_type_for_serialization.py +1 -3
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.18}/pkgs/serialization_util/serialization_helpers.py +1 -3
- uncountablepythonsdk-0.0.18/pkgs/strenum_compat/strenum_compat.py +1 -0
- uncountablepythonsdk-0.0.18/pkgs/type_spec/actions_registry/__main__.py +114 -0
- uncountablepythonsdk-0.0.18/pkgs/type_spec/actions_registry/emit_typescript.py +120 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.18}/pkgs/type_spec/builder.py +14 -10
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.18}/pkgs/type_spec/config.py +3 -2
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.18}/pkgs/type_spec/emit_python.py +54 -17
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.18}/pkgs/type_spec/emit_typescript.py +8 -9
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.18}/pkgs/type_spec/emit_typescript_util.py +1 -2
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.18}/pkgs/type_spec/load_types.py +2 -1
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.18}/pkgs/type_spec/open_api_util.py +2 -2
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.18}/pkgs/type_spec/parts/base.py.prepart +2 -1
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.18}/pkgs/type_spec/util.py +9 -9
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.18}/pkgs/type_spec/value_spec/__main__.py +2 -2
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.18}/pkgs/type_spec/value_spec/emit_python.py +1 -0
- uncountablepythonsdk-0.0.18/type_spec/external/api/batch/execute_batch_load_async.yaml +18 -0
- uncountablepythonsdk-0.0.18/type_spec/external/api/chemical/convert_chemical_formats.yaml +33 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.18}/type_spec/external/api/entity/create_entities.yaml +1 -1
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.18}/type_spec/external/api/entity/create_entity.yaml +1 -1
- uncountablepythonsdk-0.0.18/type_spec/external/api/id_source/list_id_source.yaml +35 -0
- uncountablepythonsdk-0.0.18/type_spec/external/api/id_source/match_id_source.yaml +32 -0
- uncountablepythonsdk-0.0.18/type_spec/external/api/recipe_links/create_recipe_link.yaml +25 -0
- uncountablepythonsdk-0.0.18/type_spec/external/api/recipes/associate_recipe_as_input.yaml +19 -0
- uncountablepythonsdk-0.0.18/type_spec/external/api/recipes/associate_recipe_as_lot.yaml +19 -0
- uncountablepythonsdk-0.0.18/type_spec/external/api/recipes/create_recipe.yaml +38 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.18}/type_spec/external/api/recipes/get_recipes_data.yaml +21 -21
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.18}/type_spec/external/api/recipes/set_recipe_inputs.yaml +6 -0
- uncountablepythonsdk-0.0.18/type_spec/external/api/recipes/set_recipe_metadata.yaml +19 -0
- uncountablepythonsdk-0.0.18/type_spec/external/api/triggers/run_trigger.yaml +18 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.18}/uncountable/core/client.py +13 -14
- uncountablepythonsdk-0.0.18/uncountable/py.typed +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.18}/uncountable/types/__init__.py +30 -0
- uncountablepythonsdk-0.0.18/uncountable/types/api/batch/execute_batch_load_async.py +35 -0
- uncountablepythonsdk-0.0.18/uncountable/types/api/chemical/convert_chemical_formats.py +50 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.18}/uncountable/types/api/entity/create_entities.py +1 -1
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.18}/uncountable/types/api/entity/create_entity.py +1 -1
- uncountablepythonsdk-0.0.18/uncountable/types/api/id_source/list_id_source.py +46 -0
- uncountablepythonsdk-0.0.18/uncountable/types/api/id_source/match_id_source.py +48 -0
- uncountablepythonsdk-0.0.18/uncountable/types/api/recipe_links/__init__.py +1 -0
- uncountablepythonsdk-0.0.18/uncountable/types/api/recipe_links/create_recipe_link.py +39 -0
- uncountablepythonsdk-0.0.18/uncountable/types/api/recipe_metadata/__init__.py +1 -0
- uncountablepythonsdk-0.0.18/uncountable/types/api/recipes/__init__.py +1 -0
- uncountablepythonsdk-0.0.18/uncountable/types/api/recipes/associate_recipe_as_input.py +35 -0
- uncountablepythonsdk-0.0.18/uncountable/types/api/recipes/associate_recipe_as_lot.py +36 -0
- uncountablepythonsdk-0.0.18/uncountable/types/api/recipes/create_recipe.py +43 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.18}/uncountable/types/api/recipes/set_recipe_inputs.py +2 -0
- uncountablepythonsdk-0.0.18/uncountable/types/api/recipes/set_recipe_metadata.py +36 -0
- uncountablepythonsdk-0.0.18/uncountable/types/api/triggers/__init__.py +1 -0
- uncountablepythonsdk-0.0.18/uncountable/types/api/triggers/run_trigger.py +36 -0
- uncountablepythonsdk-0.0.18/uncountable/types/async_batch.py +45 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.18}/uncountable/types/base.py +2 -1
- uncountablepythonsdk-0.0.18/uncountable/types/chemical_structure.py +27 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.18}/uncountable/types/client_base.py +404 -2
- uncountablepythonsdk-0.0.18/uncountable/types/id_source.py +49 -0
- uncountablepythonsdk-0.0.18/uncountable/types/identifier.py +54 -0
- uncountablepythonsdk-0.0.18/uncountable/types/recipe_identifiers.py +62 -0
- UncountablePythonSDK-0.0.16/examples/create_entity.py +0 -18
- UncountablePythonSDK-0.0.16/pkgs/strenum_compat/strenum_compat.py +0 -9
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.18}/.github/workflows/publish.yml +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.18}/.gitignore +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.18}/UncountablePythonSDK.egg-info/dependency_links.txt +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.18}/UncountablePythonSDK.egg-info/requires.txt +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.18}/examples/recipe-import/importer.py +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.18}/pkgs/__init__.py +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.18}/pkgs/argument_parser/__init__.py +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.18}/pkgs/argument_parser/_is_namedtuple.py +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.18}/pkgs/argument_parser/case_convert.py +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.18}/pkgs/serialization/__init__.py +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.18}/pkgs/serialization/missing_sentry.py +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.18}/pkgs/serialization/opaque_key.py +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.18}/pkgs/serialization_util/__init__.py +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.18}/pkgs/strenum_compat/__init__.py +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.18}/pkgs/type_spec/__init__.py +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.18}/pkgs/type_spec/__main__.py +0 -0
- {UncountablePythonSDK-0.0.16/uncountable/integration → uncountablepythonsdk-0.0.18/pkgs/type_spec/actions_registry}/__init__.py +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.18}/pkgs/type_spec/emit_io_ts.py +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.18}/pkgs/type_spec/emit_open_api.py +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.18}/pkgs/type_spec/emit_open_api_util.py +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.18}/pkgs/type_spec/parts/base.ts.prepart +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.18}/pkgs/type_spec/test.py +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.18}/pkgs/type_spec/type_info/__main__.py +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.18}/pkgs/type_spec/type_info/emit_type_info.py +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.18}/pkgs/type_spec/value_spec/__init__.py +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.18}/pkgs/type_spec/value_spec/convert_type.py +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.18}/pkgs/type_spec/value_spec/types.py +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.18}/pyproject.toml +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.18}/setup.cfg +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.18}/type_spec/external/api/batch/execute_batch.yaml +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.18}/type_spec/external/api/entity/get_entities_data.yaml +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.18}/type_spec/external/api/entity/list_entities.yaml +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.18}/type_spec/external/api/entity/resolve_entity_ids.yaml +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.18}/type_spec/external/api/entity/set_values.yaml +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.18}/type_spec/external/api/input_groups/get_input_group_names.yaml +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.18}/type_spec/external/api/inputs/create_inputs.yaml +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.18}/type_spec/external/api/inputs/get_input_data.yaml +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.18}/type_spec/external/api/inputs/get_input_names.yaml +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.18}/type_spec/external/api/inputs/get_inputs_data.yaml +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.18}/type_spec/external/api/inputs/set_input_attribute_values.yaml +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.18}/type_spec/external/api/outputs/get_output_data.yaml +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.18}/type_spec/external/api/outputs/get_output_names.yaml +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.18}/type_spec/external/api/outputs/resolve_output_conditions.yaml +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.18}/type_spec/external/api/project/get_projects.yaml +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.18}/type_spec/external/api/project/get_projects_data.yaml +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.18}/type_spec/external/api/recipe_metadata/get_recipe_metadata_data.yaml +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.18}/type_spec/external/api/recipes/create_recipes.yaml +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.18}/type_spec/external/api/recipes/get_curve.yaml +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.18}/type_spec/external/api/recipes/get_recipe_calculations.yaml +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.18}/type_spec/external/api/recipes/get_recipe_links.yaml +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.18}/type_spec/external/api/recipes/get_recipe_names.yaml +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.18}/type_spec/external/api/recipes/get_recipe_output_metadata.yaml +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.18}/type_spec/external/api/recipes/set_recipe_outputs.yaml +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.18}/uncountable/__init__.py +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.18}/uncountable/core/__init__.py +0 -0
- {UncountablePythonSDK-0.0.16/uncountable/integration/db → uncountablepythonsdk-0.0.18/uncountable/integration}/__init__.py +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.18}/uncountable/integration/construct_client.py +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.18}/uncountable/integration/cron.py +0 -0
- {UncountablePythonSDK-0.0.16/uncountable/integration/executors → uncountablepythonsdk-0.0.18/uncountable/integration/db}/__init__.py +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.18}/uncountable/integration/db/connect.py +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.18}/uncountable/integration/entrypoint.py +0 -0
- /UncountablePythonSDK-0.0.16/uncountable/py.typed → /uncountablepythonsdk-0.0.18/uncountable/integration/executors/__init__.py +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.18}/uncountable/integration/executors/script_executor.py +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.18}/uncountable/integration/job.py +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.18}/uncountable/integration/server.py +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.18}/uncountable/integration/types.py +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.18}/uncountable/types/api/__init__.py +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.18}/uncountable/types/api/batch/__init__.py +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.18}/uncountable/types/api/batch/execute_batch.py +0 -0
- {UncountablePythonSDK-0.0.16/uncountable/types/api/entity → uncountablepythonsdk-0.0.18/uncountable/types/api/chemical}/__init__.py +0 -0
- {UncountablePythonSDK-0.0.16/uncountable/types/api/input_groups → uncountablepythonsdk-0.0.18/uncountable/types/api/entity}/__init__.py +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.18}/uncountable/types/api/entity/get_entities_data.py +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.18}/uncountable/types/api/entity/list_entities.py +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.18}/uncountable/types/api/entity/resolve_entity_ids.py +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.18}/uncountable/types/api/entity/set_values.py +0 -0
- {UncountablePythonSDK-0.0.16/uncountable/types/api/inputs → uncountablepythonsdk-0.0.18/uncountable/types/api/id_source}/__init__.py +0 -0
- {UncountablePythonSDK-0.0.16/uncountable/types/api/outputs → uncountablepythonsdk-0.0.18/uncountable/types/api/input_groups}/__init__.py +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.18}/uncountable/types/api/input_groups/get_input_group_names.py +0 -0
- {UncountablePythonSDK-0.0.16/uncountable/types/api/project → uncountablepythonsdk-0.0.18/uncountable/types/api/inputs}/__init__.py +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.18}/uncountable/types/api/inputs/create_inputs.py +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.18}/uncountable/types/api/inputs/get_input_data.py +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.18}/uncountable/types/api/inputs/get_input_names.py +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.18}/uncountable/types/api/inputs/get_inputs_data.py +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.18}/uncountable/types/api/inputs/set_input_attribute_values.py +0 -0
- {UncountablePythonSDK-0.0.16/uncountable/types/api/recipe_metadata → uncountablepythonsdk-0.0.18/uncountable/types/api/outputs}/__init__.py +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.18}/uncountable/types/api/outputs/get_output_data.py +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.18}/uncountable/types/api/outputs/get_output_names.py +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.18}/uncountable/types/api/outputs/resolve_output_conditions.py +0 -0
- {UncountablePythonSDK-0.0.16/uncountable/types/api/recipes → uncountablepythonsdk-0.0.18/uncountable/types/api/project}/__init__.py +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.18}/uncountable/types/api/project/get_projects.py +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.18}/uncountable/types/api/project/get_projects_data.py +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.18}/uncountable/types/api/recipe_metadata/get_recipe_metadata_data.py +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.18}/uncountable/types/api/recipes/create_recipes.py +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.18}/uncountable/types/api/recipes/get_curve.py +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.18}/uncountable/types/api/recipes/get_recipe_calculations.py +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.18}/uncountable/types/api/recipes/get_recipe_links.py +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.18}/uncountable/types/api/recipes/get_recipe_names.py +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.18}/uncountable/types/api/recipes/get_recipe_output_metadata.py +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.18}/uncountable/types/api/recipes/get_recipes_data.py +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.18}/uncountable/types/api/recipes/set_recipe_outputs.py +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.18}/uncountable/types/calculations.py +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.18}/uncountable/types/curves.py +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.18}/uncountable/types/entity.py +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.18}/uncountable/types/experiment_groups.py +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.18}/uncountable/types/field_values.py +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.18}/uncountable/types/fields.py +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.18}/uncountable/types/input_attributes.py +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.18}/uncountable/types/inputs.py +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.18}/uncountable/types/outputs.py +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.18}/uncountable/types/phases.py +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.18}/uncountable/types/recipe_links.py +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.18}/uncountable/types/recipe_metadata.py +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.18}/uncountable/types/recipe_output_metadata.py +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.18}/uncountable/types/recipe_tags.py +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.18}/uncountable/types/response.py +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.18}/uncountable/types/units.py +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.18}/uncountable/types/users.py +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.18}/uncountable/types/workflows.py +0 -0
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
name: documentation
|
|
2
|
+
|
|
3
|
+
on: [push]
|
|
4
|
+
|
|
5
|
+
permissions:
|
|
6
|
+
contents: write
|
|
7
|
+
|
|
8
|
+
jobs:
|
|
9
|
+
docs:
|
|
10
|
+
runs-on: ubuntu-latest
|
|
11
|
+
steps:
|
|
12
|
+
- uses: actions/checkout@v3
|
|
13
|
+
- uses: actions/setup-python@v3
|
|
14
|
+
- uses: extractions/setup-just@v1
|
|
15
|
+
with:
|
|
16
|
+
just-version: '1.8.0'
|
|
17
|
+
github-token: ${{ secrets.GITHUB_TOKEN }}
|
|
18
|
+
- name: Install dependencies
|
|
19
|
+
run: |
|
|
20
|
+
# install the dependencies for the package
|
|
21
|
+
pip install .
|
|
22
|
+
# install the dependencies for building the sphinx documentation
|
|
23
|
+
just -f docs/justfile docs-setup-python
|
|
24
|
+
- name: Sphinx build
|
|
25
|
+
run: |
|
|
26
|
+
just -f docs/justfile docs-build
|
|
27
|
+
- name: Deploy to GitHub Pages
|
|
28
|
+
uses: peaceiris/actions-gh-pages@v3
|
|
29
|
+
if: ${{ github.event_name == 'push' && github.ref == 'refs/heads/main' }}
|
|
30
|
+
with:
|
|
31
|
+
publish_branch: gh-pages
|
|
32
|
+
github_token: ${{ secrets.GITHUB_TOKEN }}
|
|
33
|
+
publish_dir: docs/_build/dirhtml
|
|
34
|
+
force_orphan: true
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: UncountablePythonSDK
|
|
3
|
-
Version: 0.0.
|
|
3
|
+
Version: 0.0.18
|
|
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
|
|
@@ -29,3 +29,17 @@ Requires-Dist: pytest>=7.4.3; extra == "test"
|
|
|
29
29
|
Requires-Dist: coverage[toml]>=6.5.0; extra == "test"
|
|
30
30
|
Requires-Dist: pytest-cov>=4.1.0; extra == "test"
|
|
31
31
|
Requires-Dist: pytest-xdist>=3.5.0; extra == "test"
|
|
32
|
+
|
|
33
|
+
# Uncountable Python SDK
|
|
34
|
+
|
|
35
|
+
## Documentation
|
|
36
|
+
[https://uncountableinc.github.io/uncountable-python-sdk/](https://uncountableinc.github.io/uncountable-python-sdk/)
|
|
37
|
+
|
|
38
|
+
## Installation
|
|
39
|
+
|
|
40
|
+
Install from PyPI:
|
|
41
|
+
|
|
42
|
+
```console
|
|
43
|
+
pip install UncountablePythonSDK
|
|
44
|
+
```
|
|
45
|
+
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
# Uncountable Python SDK
|
|
2
|
+
|
|
3
|
+
## Documentation
|
|
4
|
+
[https://uncountableinc.github.io/uncountable-python-sdk/](https://uncountableinc.github.io/uncountable-python-sdk/)
|
|
5
|
+
|
|
6
|
+
## Installation
|
|
7
|
+
|
|
8
|
+
Install from PyPI:
|
|
9
|
+
|
|
10
|
+
```console
|
|
11
|
+
pip install UncountablePythonSDK
|
|
12
|
+
```
|
|
13
|
+
|
{UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.18}/UncountablePythonSDK.egg-info/PKG-INFO
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: UncountablePythonSDK
|
|
3
|
-
Version: 0.0.
|
|
3
|
+
Version: 0.0.18
|
|
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
|
|
@@ -29,3 +29,17 @@ Requires-Dist: pytest>=7.4.3; extra == "test"
|
|
|
29
29
|
Requires-Dist: coverage[toml]>=6.5.0; extra == "test"
|
|
30
30
|
Requires-Dist: pytest-cov>=4.1.0; extra == "test"
|
|
31
31
|
Requires-Dist: pytest-xdist>=3.5.0; extra == "test"
|
|
32
|
+
|
|
33
|
+
# Uncountable Python SDK
|
|
34
|
+
|
|
35
|
+
## Documentation
|
|
36
|
+
[https://uncountableinc.github.io/uncountable-python-sdk/](https://uncountableinc.github.io/uncountable-python-sdk/)
|
|
37
|
+
|
|
38
|
+
## Installation
|
|
39
|
+
|
|
40
|
+
Install from PyPI:
|
|
41
|
+
|
|
42
|
+
```console
|
|
43
|
+
pip install UncountablePythonSDK
|
|
44
|
+
```
|
|
45
|
+
|
|
@@ -1,11 +1,29 @@
|
|
|
1
1
|
.gitignore
|
|
2
|
+
README.md
|
|
2
3
|
pyproject.toml
|
|
4
|
+
.github/workflows/documentation.yml
|
|
3
5
|
.github/workflows/publish.yml
|
|
4
6
|
UncountablePythonSDK.egg-info/PKG-INFO
|
|
5
7
|
UncountablePythonSDK.egg-info/SOURCES.txt
|
|
6
8
|
UncountablePythonSDK.egg-info/dependency_links.txt
|
|
7
9
|
UncountablePythonSDK.egg-info/requires.txt
|
|
8
10
|
UncountablePythonSDK.egg-info/top_level.txt
|
|
11
|
+
docs/.gitignore
|
|
12
|
+
docs/conf.py
|
|
13
|
+
docs/index.md
|
|
14
|
+
docs/justfile
|
|
15
|
+
docs/quickstart.md
|
|
16
|
+
docs/requirements.txt
|
|
17
|
+
docs/static/logo_blue.png
|
|
18
|
+
docs/static/favicons/android-chrome-192x192.png
|
|
19
|
+
docs/static/favicons/android-chrome-512x512.png
|
|
20
|
+
docs/static/favicons/apple-touch-icon.png
|
|
21
|
+
docs/static/favicons/browserconfig.xml
|
|
22
|
+
docs/static/favicons/favicon-16x16.png
|
|
23
|
+
docs/static/favicons/favicon-32x32.png
|
|
24
|
+
docs/static/favicons/manifest.json
|
|
25
|
+
docs/static/favicons/mstile-150x150.png
|
|
26
|
+
docs/static/favicons/safari-pinned-tab.svg
|
|
9
27
|
examples/create_entity.py
|
|
10
28
|
examples/recipe-import/importer.py
|
|
11
29
|
pkgs/__init__.py
|
|
@@ -37,6 +55,9 @@ pkgs/type_spec/load_types.py
|
|
|
37
55
|
pkgs/type_spec/open_api_util.py
|
|
38
56
|
pkgs/type_spec/test.py
|
|
39
57
|
pkgs/type_spec/util.py
|
|
58
|
+
pkgs/type_spec/actions_registry/__init__.py
|
|
59
|
+
pkgs/type_spec/actions_registry/__main__.py
|
|
60
|
+
pkgs/type_spec/actions_registry/emit_typescript.py
|
|
40
61
|
pkgs/type_spec/parts/base.py.prepart
|
|
41
62
|
pkgs/type_spec/parts/base.ts.prepart
|
|
42
63
|
pkgs/type_spec/type_info/__main__.py
|
|
@@ -47,12 +68,16 @@ pkgs/type_spec/value_spec/convert_type.py
|
|
|
47
68
|
pkgs/type_spec/value_spec/emit_python.py
|
|
48
69
|
pkgs/type_spec/value_spec/types.py
|
|
49
70
|
type_spec/external/api/batch/execute_batch.yaml
|
|
71
|
+
type_spec/external/api/batch/execute_batch_load_async.yaml
|
|
72
|
+
type_spec/external/api/chemical/convert_chemical_formats.yaml
|
|
50
73
|
type_spec/external/api/entity/create_entities.yaml
|
|
51
74
|
type_spec/external/api/entity/create_entity.yaml
|
|
52
75
|
type_spec/external/api/entity/get_entities_data.yaml
|
|
53
76
|
type_spec/external/api/entity/list_entities.yaml
|
|
54
77
|
type_spec/external/api/entity/resolve_entity_ids.yaml
|
|
55
78
|
type_spec/external/api/entity/set_values.yaml
|
|
79
|
+
type_spec/external/api/id_source/list_id_source.yaml
|
|
80
|
+
type_spec/external/api/id_source/match_id_source.yaml
|
|
56
81
|
type_spec/external/api/input_groups/get_input_group_names.yaml
|
|
57
82
|
type_spec/external/api/inputs/create_inputs.yaml
|
|
58
83
|
type_spec/external/api/inputs/get_input_data.yaml
|
|
@@ -64,7 +89,11 @@ type_spec/external/api/outputs/get_output_names.yaml
|
|
|
64
89
|
type_spec/external/api/outputs/resolve_output_conditions.yaml
|
|
65
90
|
type_spec/external/api/project/get_projects.yaml
|
|
66
91
|
type_spec/external/api/project/get_projects_data.yaml
|
|
92
|
+
type_spec/external/api/recipe_links/create_recipe_link.yaml
|
|
67
93
|
type_spec/external/api/recipe_metadata/get_recipe_metadata_data.yaml
|
|
94
|
+
type_spec/external/api/recipes/associate_recipe_as_input.yaml
|
|
95
|
+
type_spec/external/api/recipes/associate_recipe_as_lot.yaml
|
|
96
|
+
type_spec/external/api/recipes/create_recipe.yaml
|
|
68
97
|
type_spec/external/api/recipes/create_recipes.yaml
|
|
69
98
|
type_spec/external/api/recipes/get_curve.yaml
|
|
70
99
|
type_spec/external/api/recipes/get_recipe_calculations.yaml
|
|
@@ -73,7 +102,9 @@ type_spec/external/api/recipes/get_recipe_names.yaml
|
|
|
73
102
|
type_spec/external/api/recipes/get_recipe_output_metadata.yaml
|
|
74
103
|
type_spec/external/api/recipes/get_recipes_data.yaml
|
|
75
104
|
type_spec/external/api/recipes/set_recipe_inputs.yaml
|
|
105
|
+
type_spec/external/api/recipes/set_recipe_metadata.yaml
|
|
76
106
|
type_spec/external/api/recipes/set_recipe_outputs.yaml
|
|
107
|
+
type_spec/external/api/triggers/run_trigger.yaml
|
|
77
108
|
uncountable/__init__.py
|
|
78
109
|
uncountable/py.typed
|
|
79
110
|
uncountable/core/__init__.py
|
|
@@ -90,18 +121,23 @@ uncountable/integration/db/connect.py
|
|
|
90
121
|
uncountable/integration/executors/__init__.py
|
|
91
122
|
uncountable/integration/executors/script_executor.py
|
|
92
123
|
uncountable/types/__init__.py
|
|
124
|
+
uncountable/types/async_batch.py
|
|
93
125
|
uncountable/types/base.py
|
|
94
126
|
uncountable/types/calculations.py
|
|
127
|
+
uncountable/types/chemical_structure.py
|
|
95
128
|
uncountable/types/client_base.py
|
|
96
129
|
uncountable/types/curves.py
|
|
97
130
|
uncountable/types/entity.py
|
|
98
131
|
uncountable/types/experiment_groups.py
|
|
99
132
|
uncountable/types/field_values.py
|
|
100
133
|
uncountable/types/fields.py
|
|
134
|
+
uncountable/types/id_source.py
|
|
135
|
+
uncountable/types/identifier.py
|
|
101
136
|
uncountable/types/input_attributes.py
|
|
102
137
|
uncountable/types/inputs.py
|
|
103
138
|
uncountable/types/outputs.py
|
|
104
139
|
uncountable/types/phases.py
|
|
140
|
+
uncountable/types/recipe_identifiers.py
|
|
105
141
|
uncountable/types/recipe_links.py
|
|
106
142
|
uncountable/types/recipe_metadata.py
|
|
107
143
|
uncountable/types/recipe_output_metadata.py
|
|
@@ -113,6 +149,9 @@ uncountable/types/workflows.py
|
|
|
113
149
|
uncountable/types/api/__init__.py
|
|
114
150
|
uncountable/types/api/batch/__init__.py
|
|
115
151
|
uncountable/types/api/batch/execute_batch.py
|
|
152
|
+
uncountable/types/api/batch/execute_batch_load_async.py
|
|
153
|
+
uncountable/types/api/chemical/__init__.py
|
|
154
|
+
uncountable/types/api/chemical/convert_chemical_formats.py
|
|
116
155
|
uncountable/types/api/entity/__init__.py
|
|
117
156
|
uncountable/types/api/entity/create_entities.py
|
|
118
157
|
uncountable/types/api/entity/create_entity.py
|
|
@@ -120,6 +159,9 @@ uncountable/types/api/entity/get_entities_data.py
|
|
|
120
159
|
uncountable/types/api/entity/list_entities.py
|
|
121
160
|
uncountable/types/api/entity/resolve_entity_ids.py
|
|
122
161
|
uncountable/types/api/entity/set_values.py
|
|
162
|
+
uncountable/types/api/id_source/__init__.py
|
|
163
|
+
uncountable/types/api/id_source/list_id_source.py
|
|
164
|
+
uncountable/types/api/id_source/match_id_source.py
|
|
123
165
|
uncountable/types/api/input_groups/__init__.py
|
|
124
166
|
uncountable/types/api/input_groups/get_input_group_names.py
|
|
125
167
|
uncountable/types/api/inputs/__init__.py
|
|
@@ -135,9 +177,14 @@ uncountable/types/api/outputs/resolve_output_conditions.py
|
|
|
135
177
|
uncountable/types/api/project/__init__.py
|
|
136
178
|
uncountable/types/api/project/get_projects.py
|
|
137
179
|
uncountable/types/api/project/get_projects_data.py
|
|
180
|
+
uncountable/types/api/recipe_links/__init__.py
|
|
181
|
+
uncountable/types/api/recipe_links/create_recipe_link.py
|
|
138
182
|
uncountable/types/api/recipe_metadata/__init__.py
|
|
139
183
|
uncountable/types/api/recipe_metadata/get_recipe_metadata_data.py
|
|
140
184
|
uncountable/types/api/recipes/__init__.py
|
|
185
|
+
uncountable/types/api/recipes/associate_recipe_as_input.py
|
|
186
|
+
uncountable/types/api/recipes/associate_recipe_as_lot.py
|
|
187
|
+
uncountable/types/api/recipes/create_recipe.py
|
|
141
188
|
uncountable/types/api/recipes/create_recipes.py
|
|
142
189
|
uncountable/types/api/recipes/get_curve.py
|
|
143
190
|
uncountable/types/api/recipes/get_recipe_calculations.py
|
|
@@ -146,4 +193,7 @@ uncountable/types/api/recipes/get_recipe_names.py
|
|
|
146
193
|
uncountable/types/api/recipes/get_recipe_output_metadata.py
|
|
147
194
|
uncountable/types/api/recipes/get_recipes_data.py
|
|
148
195
|
uncountable/types/api/recipes/set_recipe_inputs.py
|
|
149
|
-
uncountable/types/api/recipes/
|
|
196
|
+
uncountable/types/api/recipes/set_recipe_metadata.py
|
|
197
|
+
uncountable/types/api/recipes/set_recipe_outputs.py
|
|
198
|
+
uncountable/types/api/triggers/__init__.py
|
|
199
|
+
uncountable/types/api/triggers/run_trigger.py
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
_build
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
# Configuration file for the Sphinx documentation builder.
|
|
2
|
+
#
|
|
3
|
+
# For the full list of built-in configuration values, see the documentation:
|
|
4
|
+
# https://www.sphinx-doc.org/en/master/usage/configuration.html
|
|
5
|
+
|
|
6
|
+
# -- Project information -----------------------------------------------------
|
|
7
|
+
# https://www.sphinx-doc.org/en/master/usage/configuration.html#project-information
|
|
8
|
+
|
|
9
|
+
from datetime import date
|
|
10
|
+
import uncountable
|
|
11
|
+
|
|
12
|
+
project = "Uncountable SDK"
|
|
13
|
+
copyright = f"{date.today().year}, Uncountable Inc"
|
|
14
|
+
author = "Uncountable Inc"
|
|
15
|
+
|
|
16
|
+
# -- General configuration ---------------------------------------------------
|
|
17
|
+
# https://www.sphinx-doc.org/en/master/usage/configuration.html#general-configuration
|
|
18
|
+
|
|
19
|
+
extensions = [
|
|
20
|
+
"autoapi.extension",
|
|
21
|
+
"myst_parser",
|
|
22
|
+
"sphinx_design",
|
|
23
|
+
"sphinx_copybutton",
|
|
24
|
+
"sphinx_favicon",
|
|
25
|
+
]
|
|
26
|
+
myst_enable_extensions = ["fieldlist", "deflist"]
|
|
27
|
+
|
|
28
|
+
autoapi_dirs = ["../uncountable"]
|
|
29
|
+
autoapi_options = [ 'members', 'undoc-members', 'show-inheritance', 'show-module-summary', 'imported-members' ]
|
|
30
|
+
autoapi_ignore = ['*integration*']
|
|
31
|
+
autodoc_typehints = 'description'
|
|
32
|
+
|
|
33
|
+
exclude_patterns = ["_build", "Thumbs.db", ".DS_Store"]
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
# -- Options for HTML output -------------------------------------------------
|
|
37
|
+
# https://www.sphinx-doc.org/en/master/usage/configuration.html#options-for-html-output
|
|
38
|
+
|
|
39
|
+
html_theme = "furo"
|
|
40
|
+
html_title = "Python SDK"
|
|
41
|
+
html_static_path = ["static"]
|
|
42
|
+
html_logo = "static/logo_blue.png"
|
|
43
|
+
|
|
44
|
+
favicons = [
|
|
45
|
+
"favicons/android-chrome-192x192.png",
|
|
46
|
+
"favicons/android-chrome-512x512.png",
|
|
47
|
+
"favicons/apple-touch-icon.png",
|
|
48
|
+
"favicons/favicon-16x16.png",
|
|
49
|
+
"favicons/favicon-32x32.png",
|
|
50
|
+
"favicons/mstile-150x150.png",
|
|
51
|
+
"favicons/safari-pinned-tab.svg",
|
|
52
|
+
]
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
# Uncountable Python SDK
|
|
2
|
+
|
|
3
|
+

|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
`Uncountable Python SDK` is a python package that allows interacting with the uncountable platform
|
|
7
|
+
|
|
8
|
+
```{toctree}
|
|
9
|
+
:maxdepth: 2
|
|
10
|
+
|
|
11
|
+
quickstart
|
|
12
|
+
```
|
|
13
|
+
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
# Quickstart
|
|
2
|
+
|
|
3
|
+
## Installation
|
|
4
|
+
|
|
5
|
+
Install from PyPI:
|
|
6
|
+
|
|
7
|
+
```{code-block} bash
|
|
8
|
+
pip install UncountablePythonSDK
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## Available SDK methods
|
|
12
|
+
See the following class for a reference for the available python sdk methods. Then see the example in the next section on how to setup and call these methods.
|
|
13
|
+
[](uncountable.types.client_base.ClientMethods)
|
|
14
|
+
|
|
15
|
+
## Run a simple example
|
|
16
|
+
|
|
17
|
+
```{literalinclude} ../examples/create_entity.py
|
|
18
|
+
```
|
|
19
|
+
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "",
|
|
3
|
+
"icons": [
|
|
4
|
+
{
|
|
5
|
+
"src": "/static/img/icons/android-chrome-192x192.png",
|
|
6
|
+
"sizes": "192x192",
|
|
7
|
+
"type": "image/png"
|
|
8
|
+
},
|
|
9
|
+
{
|
|
10
|
+
"src": "/static/img/icons/android-chrome-512x512.png",
|
|
11
|
+
"sizes": "512x512",
|
|
12
|
+
"type": "image/png"
|
|
13
|
+
}
|
|
14
|
+
],
|
|
15
|
+
"theme_color": "#ffffff",
|
|
16
|
+
"background_color": "#ffffff",
|
|
17
|
+
"display": "standalone"
|
|
18
|
+
}
|
|
Binary file
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
<?xml version="1.0" standalone="no"?>
|
|
2
|
+
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20010904//EN"
|
|
3
|
+
"http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
|
|
4
|
+
<svg version="1.0" xmlns="http://www.w3.org/2000/svg"
|
|
5
|
+
width="16.000000pt" height="16.000000pt" viewBox="0 0 16.000000 16.000000"
|
|
6
|
+
preserveAspectRatio="xMidYMid meet">
|
|
7
|
+
<metadata>
|
|
8
|
+
Created by potrace 1.11, written by Peter Selinger 2001-2013
|
|
9
|
+
</metadata>
|
|
10
|
+
<g transform="translate(0.000000,16.000000) scale(0.002312,-0.002312)"
|
|
11
|
+
fill="#000000" stroke="none">
|
|
12
|
+
<path d="M3425 6902 c-16 -10 -50 -30 -75 -44 -25 -14 -85 -49 -135 -78 -49
|
|
13
|
+
-29 -110 -64 -135 -78 -25 -13 -70 -39 -100 -57 -119 -71 -800 -463 -875 -505
|
|
14
|
+
-22 -12 -80 -46 -130 -75 -74 -43 -876 -506 -980 -565 -27 -15 -194 -112 -445
|
|
15
|
+
-257 l-85 -49 0 -1733 c0 -1723 0 -1734 20 -1745 11 -6 23 -15 26 -19 3 -5 8
|
|
16
|
+
-7 10 -6 2 2 15 -4 29 -13 14 -9 117 -69 230 -133 113 -65 219 -126 235 -135
|
|
17
|
+
17 -10 59 -34 95 -55 36 -21 77 -45 92 -54 16 -9 187 -107 380 -219 194 -112
|
|
18
|
+
360 -208 368 -213 8 -5 60 -35 115 -66 55 -31 143 -81 195 -111 93 -54 165
|
|
19
|
+
-96 239 -138 20 -11 52 -30 71 -41 19 -11 170 -98 335 -193 165 -95 317 -184
|
|
20
|
+
337 -197 21 -12 40 -23 42 -23 3 0 29 -14 58 -31 29 -18 68 -40 85 -50 l33
|
|
21
|
+
-18 57 31 c32 17 65 37 74 44 8 8 18 14 22 14 4 0 51 26 104 58 54 32 105 61
|
|
22
|
+
113 65 8 4 33 18 55 31 22 14 56 33 75 44 19 11 123 70 230 132 227 132 219
|
|
23
|
+
127 378 219 68 39 128 71 132 71 5 0 10 4 12 8 2 4 30 23 63 41 71 40 113 64
|
|
24
|
+
158 90 88 51 426 246 457 263 68 39 176 101 230 133 30 18 163 94 295 170 132
|
|
25
|
+
76 308 178 390 225 l150 87 0 1733 0 1733 -80 48 c-44 27 -86 48 -92 49 -7 0
|
|
26
|
+
-13 5 -13 10 0 6 -4 10 -9 10 -5 0 -67 34 -136 75 -70 41 -128 75 -130 75 -2
|
|
27
|
+
0 -95 53 -207 118 -111 65 -223 130 -248 144 -48 27 -60 34 -369 212 -112 65
|
|
28
|
+
-218 126 -235 136 -160 91 -474 272 -486 280 -8 5 -42 24 -75 43 -33 19 -76
|
|
29
|
+
43 -95 55 -180 104 -472 271 -502 287 -21 11 -38 23 -38 27 0 5 -4 8 -8 8 -5
|
|
30
|
+
0 -68 34 -140 75 -72 41 -133 75 -134 75 -2 0 -16 -8 -33 -18z"/>
|
|
31
|
+
</g>
|
|
32
|
+
</svg>
|
|
Binary file
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
from uncountable.core import AuthDetailsApiKey, Client
|
|
2
|
+
from uncountable.types import (
|
|
3
|
+
entity_t,
|
|
4
|
+
field_values_t,
|
|
5
|
+
)
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
client = Client(
|
|
9
|
+
base_url="https://app.uncountable.com",
|
|
10
|
+
auth_details=AuthDetailsApiKey(
|
|
11
|
+
api_id="X",
|
|
12
|
+
api_secret_key="X",
|
|
13
|
+
),
|
|
14
|
+
)
|
|
15
|
+
entities = client.create_entity(
|
|
16
|
+
definition_id=24,
|
|
17
|
+
entity_type=entity_t.EntityType.LAB_REQUEST,
|
|
18
|
+
field_values=[
|
|
19
|
+
field_values_t.FieldRefNameValue(
|
|
20
|
+
field_ref_name="name", value="SDK Lab Request"
|
|
21
|
+
),
|
|
22
|
+
field_values_t.FieldRefNameValue(field_ref_name="materialFamilyId", value=1),
|
|
23
|
+
],
|
|
24
|
+
)
|
|
25
|
+
print(entities)
|
{UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.18}/pkgs/argument_parser/argument_parser.py
RENAMED
|
@@ -18,7 +18,7 @@ from .case_convert import camel_to_snake_case, snake_to_camel_case
|
|
|
18
18
|
|
|
19
19
|
T = typing.TypeVar("T")
|
|
20
20
|
ParserFunction = typing.Callable[[typing.Any], T]
|
|
21
|
-
ParserCache = dict[
|
|
21
|
+
ParserCache = dict[type[typing.Any], ParserFunction[typing.Any]]
|
|
22
22
|
|
|
23
23
|
|
|
24
24
|
@dataclass(frozen=True, eq=True)
|
|
@@ -43,13 +43,11 @@ def is_missing(field_type: typing.Any) -> bool:
|
|
|
43
43
|
if origin is not typing.Union:
|
|
44
44
|
return False
|
|
45
45
|
args = typing.get_args(field_type)
|
|
46
|
-
|
|
47
|
-
return False
|
|
48
|
-
return True
|
|
46
|
+
return not (len(args) == 0 or args[0] is not MissingSentryType)
|
|
49
47
|
|
|
50
48
|
|
|
51
49
|
def _invoke_tuple_parsers(
|
|
52
|
-
tuple_type:
|
|
50
|
+
tuple_type: type[T],
|
|
53
51
|
arg_parsers: typing.Sequence[typing.Callable[[typing.Any], object]],
|
|
54
52
|
has_ellipsis: bool,
|
|
55
53
|
value: typing.Any,
|
|
@@ -68,22 +66,25 @@ def _invoke_tuple_parsers(
|
|
|
68
66
|
|
|
69
67
|
|
|
70
68
|
def _invoke_fallback_parsers(
|
|
71
|
-
original_type:
|
|
69
|
+
original_type: type[T],
|
|
72
70
|
arg_parsers: typing.Sequence[typing.Callable[[typing.Any], T]],
|
|
73
71
|
value: typing.Any,
|
|
74
72
|
) -> T:
|
|
73
|
+
exceptions = []
|
|
74
|
+
|
|
75
75
|
for parser in arg_parsers:
|
|
76
76
|
try:
|
|
77
77
|
return parser(value)
|
|
78
|
-
except Exception:
|
|
78
|
+
except Exception as e:
|
|
79
|
+
exceptions.append(e)
|
|
79
80
|
continue
|
|
80
81
|
raise ValueError(
|
|
81
82
|
f"Unhandled value {value} cannot be cast to a member of {original_type}"
|
|
82
|
-
)
|
|
83
|
+
) from ExceptionGroup("Fallback Parser Exception", exceptions)
|
|
83
84
|
|
|
84
85
|
|
|
85
86
|
def _invoke_membership_parser(
|
|
86
|
-
expected_values:
|
|
87
|
+
expected_values: set[T],
|
|
87
88
|
value: typing.Any,
|
|
88
89
|
) -> T:
|
|
89
90
|
"""
|
|
@@ -98,7 +99,7 @@ def _invoke_membership_parser(
|
|
|
98
99
|
|
|
99
100
|
|
|
100
101
|
def _build_parser_inner(
|
|
101
|
-
parsed_type:
|
|
102
|
+
parsed_type: type[T],
|
|
102
103
|
context: ParserContext,
|
|
103
104
|
*,
|
|
104
105
|
convert_string_to_snake_case: bool = False,
|
|
@@ -142,7 +143,7 @@ def _build_parser_inner(
|
|
|
142
143
|
origin = typing.get_origin(parsed_type)
|
|
143
144
|
if origin is tuple:
|
|
144
145
|
args = typing.get_args(parsed_type)
|
|
145
|
-
element_parsers:
|
|
146
|
+
element_parsers: list[typing.Callable[[typing.Any], object]] = []
|
|
146
147
|
has_ellipsis = False
|
|
147
148
|
for arg in args:
|
|
148
149
|
assert not has_ellipsis
|
|
@@ -173,10 +174,16 @@ def _build_parser_inner(
|
|
|
173
174
|
raise ValueError("List types only support one argument")
|
|
174
175
|
arg_parser = _build_parser_inner(args[0], context)
|
|
175
176
|
|
|
177
|
+
def parse_element(value: typing.Any) -> typing.Any:
|
|
178
|
+
try:
|
|
179
|
+
return arg_parser(value)
|
|
180
|
+
except Exception as e:
|
|
181
|
+
raise ValueError("Failed to parse element", value) from e
|
|
182
|
+
|
|
176
183
|
def parse(value: typing.Any) -> typing.Any:
|
|
177
184
|
if not isinstance(value, list):
|
|
178
185
|
raise ValueError("value is not a list", parsed_type)
|
|
179
|
-
return origin(
|
|
186
|
+
return origin(parse_element(x) for x in value)
|
|
180
187
|
|
|
181
188
|
return parse
|
|
182
189
|
|
|
@@ -193,7 +200,7 @@ def _build_parser_inner(
|
|
|
193
200
|
return lambda value: origin((k_parser(k), v_parser(v)) for k, v in value.items())
|
|
194
201
|
|
|
195
202
|
if origin == typing.Literal:
|
|
196
|
-
valid_values:
|
|
203
|
+
valid_values: set[T] = set(typing.get_args(parsed_type))
|
|
197
204
|
return lambda value: _invoke_membership_parser(valid_values, value)
|
|
198
205
|
|
|
199
206
|
if parsed_type is str and convert_string_to_snake_case:
|
|
@@ -250,7 +257,7 @@ def _build_parser_inner(
|
|
|
250
257
|
|
|
251
258
|
|
|
252
259
|
def _build_parser_dataclass(
|
|
253
|
-
parsed_type:
|
|
260
|
+
parsed_type: type[T],
|
|
254
261
|
context: ParserContext,
|
|
255
262
|
) -> ParserFunction[T]:
|
|
256
263
|
"""
|
|
@@ -264,9 +271,9 @@ def _build_parser_dataclass(
|
|
|
264
271
|
|
|
265
272
|
type_hints = typing.get_type_hints(parsed_type)
|
|
266
273
|
dc_field_parsers: list[
|
|
267
|
-
|
|
274
|
+
tuple[
|
|
268
275
|
dataclasses.Field[typing.Any],
|
|
269
|
-
|
|
276
|
+
type[typing.Any],
|
|
270
277
|
ParserFunction[typing.Any],
|
|
271
278
|
]
|
|
272
279
|
] = []
|
|
@@ -274,7 +281,7 @@ def _build_parser_dataclass(
|
|
|
274
281
|
serial_class_data = get_serial_class_data(parsed_type)
|
|
275
282
|
|
|
276
283
|
def parse(value: typing.Any) -> typing.Any:
|
|
277
|
-
data:
|
|
284
|
+
data: dict[typing.Any, typing.Any] = {}
|
|
278
285
|
for field, field_type, field_parser in dc_field_parsers:
|
|
279
286
|
field_raw_value = None
|
|
280
287
|
try:
|
|
@@ -340,7 +347,7 @@ _CACHE_MAP: dict[ParserOptions, ParserCache] = defaultdict(ParserCache)
|
|
|
340
347
|
|
|
341
348
|
|
|
342
349
|
def build_parser(
|
|
343
|
-
parsed_type:
|
|
350
|
+
parsed_type: type[T],
|
|
344
351
|
options: ParserOptions,
|
|
345
352
|
) -> ParserFunction[T]:
|
|
346
353
|
"""
|
|
@@ -364,7 +371,7 @@ def build_parser(
|
|
|
364
371
|
class CachedParser(typing.Generic[T]):
|
|
365
372
|
def __init__(
|
|
366
373
|
self,
|
|
367
|
-
args:
|
|
374
|
+
args: type[T],
|
|
368
375
|
):
|
|
369
376
|
self.arguments = args
|
|
370
377
|
self.parser_api: typing.Optional[ParserFunction[T]] = None
|
{UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.18}/pkgs/serialization/serial_class.py
RENAMED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
from __future__ import annotations
|
|
2
2
|
|
|
3
3
|
import dataclasses
|
|
4
|
-
from
|
|
5
|
-
|
|
6
|
-
from
|
|
4
|
+
from collections.abc import Callable
|
|
5
|
+
from enum import StrEnum
|
|
6
|
+
from typing import Any, Optional, TypeVar, cast
|
|
7
7
|
|
|
8
8
|
_ClassT = TypeVar("_ClassT")
|
|
9
9
|
|