UncountablePythonSDK 0.0.16__tar.gz → 0.0.17__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.
Potentially problematic release.
This version of UncountablePythonSDK might be problematic. Click here for more details.
- uncountablepythonsdk-0.0.17/.github/workflows/documentation.yml +34 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.17}/PKG-INFO +15 -1
- uncountablepythonsdk-0.0.17/README.md +13 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.17}/UncountablePythonSDK.egg-info/PKG-INFO +15 -1
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.17}/UncountablePythonSDK.egg-info/SOURCES.txt +39 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.17}/UncountablePythonSDK.egg-info/top_level.txt +1 -0
- uncountablepythonsdk-0.0.17/docs/.gitignore +1 -0
- uncountablepythonsdk-0.0.17/docs/conf.py +52 -0
- uncountablepythonsdk-0.0.17/docs/index.md +13 -0
- uncountablepythonsdk-0.0.17/docs/justfile +12 -0
- uncountablepythonsdk-0.0.17/docs/quickstart.md +19 -0
- uncountablepythonsdk-0.0.17/docs/requirements.txt +7 -0
- uncountablepythonsdk-0.0.17/docs/static/favicons/android-chrome-192x192.png +0 -0
- uncountablepythonsdk-0.0.17/docs/static/favicons/android-chrome-512x512.png +0 -0
- uncountablepythonsdk-0.0.17/docs/static/favicons/apple-touch-icon.png +0 -0
- uncountablepythonsdk-0.0.17/docs/static/favicons/browserconfig.xml +9 -0
- uncountablepythonsdk-0.0.17/docs/static/favicons/favicon-16x16.png +0 -0
- uncountablepythonsdk-0.0.17/docs/static/favicons/favicon-32x32.png +0 -0
- uncountablepythonsdk-0.0.17/docs/static/favicons/manifest.json +18 -0
- uncountablepythonsdk-0.0.17/docs/static/favicons/mstile-150x150.png +0 -0
- uncountablepythonsdk-0.0.17/docs/static/favicons/safari-pinned-tab.svg +32 -0
- uncountablepythonsdk-0.0.17/docs/static/logo_blue.png +0 -0
- uncountablepythonsdk-0.0.17/examples/create_entity.py +25 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.17}/pkgs/argument_parser/argument_parser.py +13 -6
- uncountablepythonsdk-0.0.17/pkgs/type_spec/actions_registry/__main__.py +108 -0
- uncountablepythonsdk-0.0.17/pkgs/type_spec/actions_registry/emit_typescript.py +106 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.17}/pkgs/type_spec/builder.py +4 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.17}/pkgs/type_spec/emit_python.py +35 -1
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.17}/pkgs/type_spec/emit_typescript.py +6 -7
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.17}/pkgs/type_spec/value_spec/emit_python.py +1 -0
- uncountablepythonsdk-0.0.17/type_spec/external/api/chemical/convert_chemical_formats.yaml +33 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.17}/type_spec/external/api/entity/create_entities.yaml +1 -1
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.17}/type_spec/external/api/entity/create_entity.yaml +1 -1
- uncountablepythonsdk-0.0.17/type_spec/external/api/recipe_links/create_recipe_link.yaml +25 -0
- uncountablepythonsdk-0.0.17/type_spec/external/api/recipes/associate_recipe_as_input.yaml +19 -0
- uncountablepythonsdk-0.0.17/type_spec/external/api/recipes/associate_recipe_as_lot.yaml +19 -0
- uncountablepythonsdk-0.0.17/type_spec/external/api/recipes/create_recipe.yaml +35 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.17}/type_spec/external/api/recipes/set_recipe_inputs.yaml +3 -0
- uncountablepythonsdk-0.0.17/type_spec/external/api/recipes/set_recipe_metadata.yaml +19 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.17}/uncountable/core/client.py +13 -14
- uncountablepythonsdk-0.0.17/uncountable/py.typed +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.17}/uncountable/types/__init__.py +20 -0
- uncountablepythonsdk-0.0.17/uncountable/types/api/chemical/convert_chemical_formats.py +50 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.17}/uncountable/types/api/entity/create_entities.py +1 -1
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.17}/uncountable/types/api/entity/create_entity.py +1 -1
- uncountablepythonsdk-0.0.17/uncountable/types/api/recipe_links/create_recipe_link.py +39 -0
- uncountablepythonsdk-0.0.17/uncountable/types/api/recipe_metadata/__init__.py +1 -0
- uncountablepythonsdk-0.0.17/uncountable/types/api/recipes/__init__.py +1 -0
- uncountablepythonsdk-0.0.17/uncountable/types/api/recipes/associate_recipe_as_input.py +35 -0
- uncountablepythonsdk-0.0.17/uncountable/types/api/recipes/associate_recipe_as_lot.py +36 -0
- uncountablepythonsdk-0.0.17/uncountable/types/api/recipes/create_recipe.py +41 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.17}/uncountable/types/api/recipes/set_recipe_inputs.py +1 -0
- uncountablepythonsdk-0.0.17/uncountable/types/api/recipes/set_recipe_metadata.py +36 -0
- uncountablepythonsdk-0.0.17/uncountable/types/async_batch.py +23 -0
- uncountablepythonsdk-0.0.17/uncountable/types/chemical_structure.py +27 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.17}/uncountable/types/client_base.py +303 -2
- uncountablepythonsdk-0.0.17/uncountable/types/identifier.py +54 -0
- uncountablepythonsdk-0.0.17/uncountable/types/recipe_identifiers.py +62 -0
- UncountablePythonSDK-0.0.16/examples/create_entity.py +0 -18
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.17}/.github/workflows/publish.yml +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.17}/.gitignore +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.17}/UncountablePythonSDK.egg-info/dependency_links.txt +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.17}/UncountablePythonSDK.egg-info/requires.txt +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.17}/examples/recipe-import/importer.py +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.17}/pkgs/__init__.py +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.17}/pkgs/argument_parser/__init__.py +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.17}/pkgs/argument_parser/_is_enum.py +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.17}/pkgs/argument_parser/_is_namedtuple.py +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.17}/pkgs/argument_parser/case_convert.py +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.17}/pkgs/serialization/__init__.py +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.17}/pkgs/serialization/missing_sentry.py +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.17}/pkgs/serialization/opaque_key.py +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.17}/pkgs/serialization/serial_class.py +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.17}/pkgs/serialization_util/__init__.py +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.17}/pkgs/serialization_util/_get_type_for_serialization.py +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.17}/pkgs/serialization_util/serialization_helpers.py +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.17}/pkgs/strenum_compat/__init__.py +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.17}/pkgs/strenum_compat/strenum_compat.py +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.17}/pkgs/type_spec/__init__.py +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.17}/pkgs/type_spec/__main__.py +0 -0
- {UncountablePythonSDK-0.0.16/uncountable/integration → uncountablepythonsdk-0.0.17/pkgs/type_spec/actions_registry}/__init__.py +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.17}/pkgs/type_spec/config.py +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.17}/pkgs/type_spec/emit_io_ts.py +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.17}/pkgs/type_spec/emit_open_api.py +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.17}/pkgs/type_spec/emit_open_api_util.py +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.17}/pkgs/type_spec/emit_typescript_util.py +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.17}/pkgs/type_spec/load_types.py +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.17}/pkgs/type_spec/open_api_util.py +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.17}/pkgs/type_spec/parts/base.py.prepart +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.17}/pkgs/type_spec/parts/base.ts.prepart +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.17}/pkgs/type_spec/test.py +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.17}/pkgs/type_spec/type_info/__main__.py +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.17}/pkgs/type_spec/type_info/emit_type_info.py +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.17}/pkgs/type_spec/util.py +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.17}/pkgs/type_spec/value_spec/__init__.py +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.17}/pkgs/type_spec/value_spec/__main__.py +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.17}/pkgs/type_spec/value_spec/convert_type.py +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.17}/pkgs/type_spec/value_spec/types.py +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.17}/pyproject.toml +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.17}/setup.cfg +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.17}/type_spec/external/api/batch/execute_batch.yaml +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.17}/type_spec/external/api/entity/get_entities_data.yaml +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.17}/type_spec/external/api/entity/list_entities.yaml +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.17}/type_spec/external/api/entity/resolve_entity_ids.yaml +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.17}/type_spec/external/api/entity/set_values.yaml +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.17}/type_spec/external/api/input_groups/get_input_group_names.yaml +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.17}/type_spec/external/api/inputs/create_inputs.yaml +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.17}/type_spec/external/api/inputs/get_input_data.yaml +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.17}/type_spec/external/api/inputs/get_input_names.yaml +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.17}/type_spec/external/api/inputs/get_inputs_data.yaml +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.17}/type_spec/external/api/inputs/set_input_attribute_values.yaml +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.17}/type_spec/external/api/outputs/get_output_data.yaml +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.17}/type_spec/external/api/outputs/get_output_names.yaml +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.17}/type_spec/external/api/outputs/resolve_output_conditions.yaml +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.17}/type_spec/external/api/project/get_projects.yaml +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.17}/type_spec/external/api/project/get_projects_data.yaml +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.17}/type_spec/external/api/recipe_metadata/get_recipe_metadata_data.yaml +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.17}/type_spec/external/api/recipes/create_recipes.yaml +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.17}/type_spec/external/api/recipes/get_curve.yaml +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.17}/type_spec/external/api/recipes/get_recipe_calculations.yaml +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.17}/type_spec/external/api/recipes/get_recipe_links.yaml +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.17}/type_spec/external/api/recipes/get_recipe_names.yaml +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.17}/type_spec/external/api/recipes/get_recipe_output_metadata.yaml +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.17}/type_spec/external/api/recipes/get_recipes_data.yaml +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.17}/type_spec/external/api/recipes/set_recipe_outputs.yaml +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.17}/uncountable/__init__.py +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.17}/uncountable/core/__init__.py +0 -0
- {UncountablePythonSDK-0.0.16/uncountable/integration/db → uncountablepythonsdk-0.0.17/uncountable/integration}/__init__.py +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.17}/uncountable/integration/construct_client.py +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.17}/uncountable/integration/cron.py +0 -0
- {UncountablePythonSDK-0.0.16/uncountable/integration/executors → uncountablepythonsdk-0.0.17/uncountable/integration/db}/__init__.py +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.17}/uncountable/integration/db/connect.py +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.17}/uncountable/integration/entrypoint.py +0 -0
- /UncountablePythonSDK-0.0.16/uncountable/py.typed → /uncountablepythonsdk-0.0.17/uncountable/integration/executors/__init__.py +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.17}/uncountable/integration/executors/script_executor.py +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.17}/uncountable/integration/job.py +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.17}/uncountable/integration/server.py +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.17}/uncountable/integration/types.py +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.17}/uncountable/types/api/__init__.py +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.17}/uncountable/types/api/batch/__init__.py +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.17}/uncountable/types/api/batch/execute_batch.py +0 -0
- {UncountablePythonSDK-0.0.16/uncountable/types/api/entity → uncountablepythonsdk-0.0.17/uncountable/types/api/chemical}/__init__.py +0 -0
- {UncountablePythonSDK-0.0.16/uncountable/types/api/input_groups → uncountablepythonsdk-0.0.17/uncountable/types/api/entity}/__init__.py +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.17}/uncountable/types/api/entity/get_entities_data.py +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.17}/uncountable/types/api/entity/list_entities.py +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.17}/uncountable/types/api/entity/resolve_entity_ids.py +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.17}/uncountable/types/api/entity/set_values.py +0 -0
- {UncountablePythonSDK-0.0.16/uncountable/types/api/inputs → uncountablepythonsdk-0.0.17/uncountable/types/api/input_groups}/__init__.py +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.17}/uncountable/types/api/input_groups/get_input_group_names.py +0 -0
- {UncountablePythonSDK-0.0.16/uncountable/types/api/outputs → uncountablepythonsdk-0.0.17/uncountable/types/api/inputs}/__init__.py +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.17}/uncountable/types/api/inputs/create_inputs.py +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.17}/uncountable/types/api/inputs/get_input_data.py +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.17}/uncountable/types/api/inputs/get_input_names.py +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.17}/uncountable/types/api/inputs/get_inputs_data.py +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.17}/uncountable/types/api/inputs/set_input_attribute_values.py +0 -0
- {UncountablePythonSDK-0.0.16/uncountable/types/api/project → uncountablepythonsdk-0.0.17/uncountable/types/api/outputs}/__init__.py +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.17}/uncountable/types/api/outputs/get_output_data.py +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.17}/uncountable/types/api/outputs/get_output_names.py +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.17}/uncountable/types/api/outputs/resolve_output_conditions.py +0 -0
- {UncountablePythonSDK-0.0.16/uncountable/types/api/recipe_metadata → uncountablepythonsdk-0.0.17/uncountable/types/api/project}/__init__.py +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.17}/uncountable/types/api/project/get_projects.py +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.17}/uncountable/types/api/project/get_projects_data.py +0 -0
- {UncountablePythonSDK-0.0.16/uncountable/types/api/recipes → uncountablepythonsdk-0.0.17/uncountable/types/api/recipe_links}/__init__.py +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.17}/uncountable/types/api/recipe_metadata/get_recipe_metadata_data.py +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.17}/uncountable/types/api/recipes/create_recipes.py +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.17}/uncountable/types/api/recipes/get_curve.py +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.17}/uncountable/types/api/recipes/get_recipe_calculations.py +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.17}/uncountable/types/api/recipes/get_recipe_links.py +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.17}/uncountable/types/api/recipes/get_recipe_names.py +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.17}/uncountable/types/api/recipes/get_recipe_output_metadata.py +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.17}/uncountable/types/api/recipes/get_recipes_data.py +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.17}/uncountable/types/api/recipes/set_recipe_outputs.py +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.17}/uncountable/types/base.py +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.17}/uncountable/types/calculations.py +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.17}/uncountable/types/curves.py +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.17}/uncountable/types/entity.py +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.17}/uncountable/types/experiment_groups.py +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.17}/uncountable/types/field_values.py +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.17}/uncountable/types/fields.py +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.17}/uncountable/types/input_attributes.py +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.17}/uncountable/types/inputs.py +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.17}/uncountable/types/outputs.py +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.17}/uncountable/types/phases.py +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.17}/uncountable/types/recipe_links.py +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.17}/uncountable/types/recipe_metadata.py +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.17}/uncountable/types/recipe_output_metadata.py +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.17}/uncountable/types/recipe_tags.py +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.17}/uncountable/types/response.py +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.17}/uncountable/types/units.py +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.17}/uncountable/types/users.py +0 -0
- {UncountablePythonSDK-0.0.16 → uncountablepythonsdk-0.0.17}/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.17
|
|
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.17}/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.17
|
|
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,6 +68,7 @@ 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/chemical/convert_chemical_formats.yaml
|
|
50
72
|
type_spec/external/api/entity/create_entities.yaml
|
|
51
73
|
type_spec/external/api/entity/create_entity.yaml
|
|
52
74
|
type_spec/external/api/entity/get_entities_data.yaml
|
|
@@ -64,7 +86,11 @@ type_spec/external/api/outputs/get_output_names.yaml
|
|
|
64
86
|
type_spec/external/api/outputs/resolve_output_conditions.yaml
|
|
65
87
|
type_spec/external/api/project/get_projects.yaml
|
|
66
88
|
type_spec/external/api/project/get_projects_data.yaml
|
|
89
|
+
type_spec/external/api/recipe_links/create_recipe_link.yaml
|
|
67
90
|
type_spec/external/api/recipe_metadata/get_recipe_metadata_data.yaml
|
|
91
|
+
type_spec/external/api/recipes/associate_recipe_as_input.yaml
|
|
92
|
+
type_spec/external/api/recipes/associate_recipe_as_lot.yaml
|
|
93
|
+
type_spec/external/api/recipes/create_recipe.yaml
|
|
68
94
|
type_spec/external/api/recipes/create_recipes.yaml
|
|
69
95
|
type_spec/external/api/recipes/get_curve.yaml
|
|
70
96
|
type_spec/external/api/recipes/get_recipe_calculations.yaml
|
|
@@ -73,6 +99,7 @@ type_spec/external/api/recipes/get_recipe_names.yaml
|
|
|
73
99
|
type_spec/external/api/recipes/get_recipe_output_metadata.yaml
|
|
74
100
|
type_spec/external/api/recipes/get_recipes_data.yaml
|
|
75
101
|
type_spec/external/api/recipes/set_recipe_inputs.yaml
|
|
102
|
+
type_spec/external/api/recipes/set_recipe_metadata.yaml
|
|
76
103
|
type_spec/external/api/recipes/set_recipe_outputs.yaml
|
|
77
104
|
uncountable/__init__.py
|
|
78
105
|
uncountable/py.typed
|
|
@@ -90,18 +117,22 @@ uncountable/integration/db/connect.py
|
|
|
90
117
|
uncountable/integration/executors/__init__.py
|
|
91
118
|
uncountable/integration/executors/script_executor.py
|
|
92
119
|
uncountable/types/__init__.py
|
|
120
|
+
uncountable/types/async_batch.py
|
|
93
121
|
uncountable/types/base.py
|
|
94
122
|
uncountable/types/calculations.py
|
|
123
|
+
uncountable/types/chemical_structure.py
|
|
95
124
|
uncountable/types/client_base.py
|
|
96
125
|
uncountable/types/curves.py
|
|
97
126
|
uncountable/types/entity.py
|
|
98
127
|
uncountable/types/experiment_groups.py
|
|
99
128
|
uncountable/types/field_values.py
|
|
100
129
|
uncountable/types/fields.py
|
|
130
|
+
uncountable/types/identifier.py
|
|
101
131
|
uncountable/types/input_attributes.py
|
|
102
132
|
uncountable/types/inputs.py
|
|
103
133
|
uncountable/types/outputs.py
|
|
104
134
|
uncountable/types/phases.py
|
|
135
|
+
uncountable/types/recipe_identifiers.py
|
|
105
136
|
uncountable/types/recipe_links.py
|
|
106
137
|
uncountable/types/recipe_metadata.py
|
|
107
138
|
uncountable/types/recipe_output_metadata.py
|
|
@@ -113,6 +144,8 @@ uncountable/types/workflows.py
|
|
|
113
144
|
uncountable/types/api/__init__.py
|
|
114
145
|
uncountable/types/api/batch/__init__.py
|
|
115
146
|
uncountable/types/api/batch/execute_batch.py
|
|
147
|
+
uncountable/types/api/chemical/__init__.py
|
|
148
|
+
uncountable/types/api/chemical/convert_chemical_formats.py
|
|
116
149
|
uncountable/types/api/entity/__init__.py
|
|
117
150
|
uncountable/types/api/entity/create_entities.py
|
|
118
151
|
uncountable/types/api/entity/create_entity.py
|
|
@@ -135,9 +168,14 @@ uncountable/types/api/outputs/resolve_output_conditions.py
|
|
|
135
168
|
uncountable/types/api/project/__init__.py
|
|
136
169
|
uncountable/types/api/project/get_projects.py
|
|
137
170
|
uncountable/types/api/project/get_projects_data.py
|
|
171
|
+
uncountable/types/api/recipe_links/__init__.py
|
|
172
|
+
uncountable/types/api/recipe_links/create_recipe_link.py
|
|
138
173
|
uncountable/types/api/recipe_metadata/__init__.py
|
|
139
174
|
uncountable/types/api/recipe_metadata/get_recipe_metadata_data.py
|
|
140
175
|
uncountable/types/api/recipes/__init__.py
|
|
176
|
+
uncountable/types/api/recipes/associate_recipe_as_input.py
|
|
177
|
+
uncountable/types/api/recipes/associate_recipe_as_lot.py
|
|
178
|
+
uncountable/types/api/recipes/create_recipe.py
|
|
141
179
|
uncountable/types/api/recipes/create_recipes.py
|
|
142
180
|
uncountable/types/api/recipes/get_curve.py
|
|
143
181
|
uncountable/types/api/recipes/get_recipe_calculations.py
|
|
@@ -146,4 +184,5 @@ uncountable/types/api/recipes/get_recipe_names.py
|
|
|
146
184
|
uncountable/types/api/recipes/get_recipe_output_metadata.py
|
|
147
185
|
uncountable/types/api/recipes/get_recipes_data.py
|
|
148
186
|
uncountable/types/api/recipes/set_recipe_inputs.py
|
|
187
|
+
uncountable/types/api/recipes/set_recipe_metadata.py
|
|
149
188
|
uncountable/types/api/recipes/set_recipe_outputs.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.17}/pkgs/argument_parser/argument_parser.py
RENAMED
|
@@ -43,9 +43,7 @@ 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(
|
|
@@ -72,14 +70,17 @@ def _invoke_fallback_parsers(
|
|
|
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(
|
|
@@ -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
|
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
"""
|
|
2
|
+
This processes the directory main/unc/materials/shared/actions_registry and emits actions_registry/action_definitions.tsx
|
|
3
|
+
"""
|
|
4
|
+
|
|
5
|
+
import os
|
|
6
|
+
import sys
|
|
7
|
+
from collections import defaultdict
|
|
8
|
+
from dataclasses import dataclass
|
|
9
|
+
from typing import TypeVar
|
|
10
|
+
|
|
11
|
+
from main.base.types import actions_registry_t
|
|
12
|
+
from pkgs.type_spec import builder
|
|
13
|
+
|
|
14
|
+
from ...argument_parser import CachedParser
|
|
15
|
+
from ..emit_typescript_util import ts_name
|
|
16
|
+
from ..util import rewrite_file
|
|
17
|
+
from .emit_typescript import emit_action_definitions
|
|
18
|
+
|
|
19
|
+
key_name = "name"
|
|
20
|
+
key_icon = "icon"
|
|
21
|
+
key_short_description = "short_description"
|
|
22
|
+
key_description = "description"
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
TypeT = TypeVar("TypeT")
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
class InvalidSpecException(Exception):
|
|
29
|
+
pass
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
@dataclass(kw_only=True)
|
|
33
|
+
class ActionRegistryFileInfo:
|
|
34
|
+
directories: list[str]
|
|
35
|
+
filename: str
|
|
36
|
+
filepath: str
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
ACTIONS_REGISTRY_ROOT = "main/unc/materials/shared/actions_registry/"
|
|
40
|
+
action_definition_parser = CachedParser(
|
|
41
|
+
dict[str, actions_registry_t.ActionDefinitionYaml]
|
|
42
|
+
)
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
def get_action_registry_files_info() -> list[ActionRegistryFileInfo]:
|
|
46
|
+
files_info = []
|
|
47
|
+
for dirname, _, files in os.walk(ACTIONS_REGISTRY_ROOT):
|
|
48
|
+
directories = dirname.replace(ACTIONS_REGISTRY_ROOT, "").split("/")
|
|
49
|
+
for filename in files:
|
|
50
|
+
filepath = os.path.join(dirname, filename)
|
|
51
|
+
if os.path.isfile(filepath) and filepath.endswith(".yaml"):
|
|
52
|
+
files_info.append(
|
|
53
|
+
ActionRegistryFileInfo(
|
|
54
|
+
directories=directories,
|
|
55
|
+
filename=filename.replace(".yaml", ""),
|
|
56
|
+
filepath=filepath,
|
|
57
|
+
)
|
|
58
|
+
)
|
|
59
|
+
return files_info
|
|
60
|
+
|
|
61
|
+
|
|
62
|
+
def main() -> None:
|
|
63
|
+
files_info = get_action_registry_files_info()
|
|
64
|
+
action_definitions: defaultdict[str, list[actions_registry_t.ActionDefinition]] = (
|
|
65
|
+
defaultdict(list)
|
|
66
|
+
)
|
|
67
|
+
for file_info in files_info:
|
|
68
|
+
in_action_definitions = action_definition_parser.parse_yaml_file(
|
|
69
|
+
file_info.filepath
|
|
70
|
+
)
|
|
71
|
+
if len(in_action_definitions) == 0:
|
|
72
|
+
continue
|
|
73
|
+
|
|
74
|
+
for ref_name, definition in in_action_definitions.items():
|
|
75
|
+
modules = [*file_info.directories]
|
|
76
|
+
# if the actions are stored in index.yaml, parent dir should be treated as module
|
|
77
|
+
if file_info.filename != "index":
|
|
78
|
+
modules.append(file_info.filename)
|
|
79
|
+
|
|
80
|
+
module_str = "_".join(modules)
|
|
81
|
+
action_definitions[module_str].append(
|
|
82
|
+
actions_registry_t.ActionDefinition(
|
|
83
|
+
name=definition.name,
|
|
84
|
+
short_description=definition.short_description,
|
|
85
|
+
description=definition.description,
|
|
86
|
+
icon=definition.icon,
|
|
87
|
+
ref_name=ref_name,
|
|
88
|
+
module=actions_registry_t.ActionsRegistryModule(
|
|
89
|
+
ts_name(module_str, name_case=builder.NameCase.convert)
|
|
90
|
+
),
|
|
91
|
+
visibility_scope=[
|
|
92
|
+
actions_registry_t.ActionDefinitionVisibilityScope(item)
|
|
93
|
+
for item in definition.visibility_scope
|
|
94
|
+
]
|
|
95
|
+
if definition.visibility_scope is not None
|
|
96
|
+
else None,
|
|
97
|
+
)
|
|
98
|
+
)
|
|
99
|
+
|
|
100
|
+
ts_content = emit_action_definitions(action_definitions)
|
|
101
|
+
rewrite_file(
|
|
102
|
+
"main/site/js/materials/base/actions_registry/action_definitions.tsx",
|
|
103
|
+
ts_content,
|
|
104
|
+
)
|
|
105
|
+
sys.exit(0)
|
|
106
|
+
|
|
107
|
+
|
|
108
|
+
main()
|