UncountablePythonSDK 0.0.37__tar.gz → 0.0.38__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.37/UncountablePythonSDK.egg-info → uncountablepythonsdk-0.0.38}/PKG-INFO +1 -1
- {uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38/UncountablePythonSDK.egg-info}/PKG-INFO +1 -1
- {uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/uncountable/core/client.py +27 -21
- {uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/.github/workflows/documentation.yml +0 -0
- {uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/.github/workflows/publish.yml +0 -0
- {uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/.gitignore +0 -0
- {uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/README.md +0 -0
- {uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/UncountablePythonSDK.egg-info/SOURCES.txt +0 -0
- {uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/UncountablePythonSDK.egg-info/dependency_links.txt +0 -0
- {uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/UncountablePythonSDK.egg-info/requires.txt +0 -0
- {uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/UncountablePythonSDK.egg-info/top_level.txt +0 -0
- {uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/docs/.gitignore +0 -0
- {uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/docs/conf.py +0 -0
- {uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/docs/index.md +0 -0
- {uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/docs/justfile +0 -0
- {uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/docs/quickstart.md +0 -0
- {uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/docs/requirements.txt +0 -0
- {uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/docs/static/favicons/android-chrome-192x192.png +0 -0
- {uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/docs/static/favicons/android-chrome-512x512.png +0 -0
- {uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/docs/static/favicons/apple-touch-icon.png +0 -0
- {uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/docs/static/favicons/browserconfig.xml +0 -0
- {uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/docs/static/favicons/favicon-16x16.png +0 -0
- {uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/docs/static/favicons/favicon-32x32.png +0 -0
- {uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/docs/static/favicons/manifest.json +0 -0
- {uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/docs/static/favicons/mstile-150x150.png +0 -0
- {uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/docs/static/favicons/safari-pinned-tab.svg +0 -0
- {uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/docs/static/logo_blue.png +0 -0
- {uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/examples/async_batch.py +0 -0
- {uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/examples/create_entity.py +0 -0
- {uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/examples/edit_recipe_inputs.py +0 -0
- {uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/examples/upload_files.py +0 -0
- {uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/pkgs/__init__.py +0 -0
- {uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/pkgs/argument_parser/__init__.py +0 -0
- {uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/pkgs/argument_parser/_is_enum.py +0 -0
- {uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/pkgs/argument_parser/_is_namedtuple.py +0 -0
- {uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/pkgs/argument_parser/argument_parser.py +0 -0
- {uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/pkgs/argument_parser/case_convert.py +0 -0
- {uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/pkgs/serialization/__init__.py +0 -0
- {uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/pkgs/serialization/missing_sentry.py +0 -0
- {uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/pkgs/serialization/opaque_key.py +0 -0
- {uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/pkgs/serialization/serial_class.py +0 -0
- {uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/pkgs/serialization/serial_union.py +0 -0
- {uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/pkgs/serialization_util/__init__.py +0 -0
- {uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/pkgs/serialization_util/_get_type_for_serialization.py +0 -0
- {uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/pkgs/serialization_util/convert_to_snakecase.py +0 -0
- {uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/pkgs/serialization_util/serialization_helpers.py +0 -0
- {uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/pkgs/strenum_compat/__init__.py +0 -0
- {uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/pkgs/strenum_compat/strenum_compat.py +0 -0
- {uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/pkgs/type_spec/__init__.py +0 -0
- {uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/pkgs/type_spec/__main__.py +0 -0
- {uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/pkgs/type_spec/actions_registry/__init__.py +0 -0
- {uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/pkgs/type_spec/actions_registry/__main__.py +0 -0
- {uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/pkgs/type_spec/actions_registry/emit_typescript.py +0 -0
- {uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/pkgs/type_spec/builder.py +0 -0
- {uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/pkgs/type_spec/config.py +0 -0
- {uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/pkgs/type_spec/emit_io_ts.py +0 -0
- {uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/pkgs/type_spec/emit_open_api.py +0 -0
- {uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/pkgs/type_spec/emit_open_api_util.py +0 -0
- {uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/pkgs/type_spec/emit_python.py +0 -0
- {uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/pkgs/type_spec/emit_typescript.py +0 -0
- {uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/pkgs/type_spec/emit_typescript_util.py +0 -0
- {uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/pkgs/type_spec/load_types.py +0 -0
- {uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/pkgs/type_spec/open_api_util.py +0 -0
- {uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/pkgs/type_spec/parts/base.py.prepart +0 -0
- {uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/pkgs/type_spec/parts/base.ts.prepart +0 -0
- {uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/pkgs/type_spec/test.py +0 -0
- {uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/pkgs/type_spec/type_info/__main__.py +0 -0
- {uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/pkgs/type_spec/type_info/emit_type_info.py +0 -0
- {uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/pkgs/type_spec/util.py +0 -0
- {uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/pkgs/type_spec/value_spec/__init__.py +0 -0
- {uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/pkgs/type_spec/value_spec/__main__.py +0 -0
- {uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/pkgs/type_spec/value_spec/convert_type.py +0 -0
- {uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/pkgs/type_spec/value_spec/emit_python.py +0 -0
- {uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/pkgs/type_spec/value_spec/types.py +0 -0
- {uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/pyproject.toml +0 -0
- {uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/setup.cfg +0 -0
- {uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/uncountable/__init__.py +0 -0
- {uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/uncountable/core/__init__.py +0 -0
- {uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/uncountable/core/async_batch.py +0 -0
- {uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/uncountable/core/file_upload.py +0 -0
- {uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/uncountable/core/types.py +0 -0
- {uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/uncountable/integration/__init__.py +0 -0
- {uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/uncountable/integration/construct_client.py +0 -0
- {uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/uncountable/integration/cron.py +0 -0
- {uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/uncountable/integration/db/__init__.py +0 -0
- {uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/uncountable/integration/db/connect.py +0 -0
- {uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/uncountable/integration/entrypoint.py +0 -0
- {uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/uncountable/integration/executors/__init__.py +0 -0
- {uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/uncountable/integration/executors/script_executor.py +0 -0
- {uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/uncountable/integration/job.py +0 -0
- {uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/uncountable/integration/server.py +0 -0
- {uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/uncountable/integration/types.py +0 -0
- {uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/uncountable/py.typed +0 -0
- {uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/uncountable/types/__init__.py +0 -0
- {uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/uncountable/types/api/__init__.py +0 -0
- {uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/uncountable/types/api/batch/__init__.py +0 -0
- {uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/uncountable/types/api/batch/execute_batch.py +0 -0
- {uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/uncountable/types/api/batch/execute_batch_load_async.py +0 -0
- {uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/uncountable/types/api/chemical/__init__.py +0 -0
- {uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/uncountable/types/api/chemical/convert_chemical_formats.py +0 -0
- {uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/uncountable/types/api/entity/__init__.py +0 -0
- {uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/uncountable/types/api/entity/create_entities.py +0 -0
- {uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/uncountable/types/api/entity/create_entity.py +0 -0
- {uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/uncountable/types/api/entity/get_entities_data.py +0 -0
- {uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/uncountable/types/api/entity/list_entities.py +0 -0
- {uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/uncountable/types/api/entity/lock_entity.py +0 -0
- {uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/uncountable/types/api/entity/resolve_entity_ids.py +0 -0
- {uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/uncountable/types/api/entity/set_values.py +0 -0
- {uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/uncountable/types/api/entity/transition_entity_phase.py +0 -0
- {uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/uncountable/types/api/entity/unlock_entity.py +0 -0
- {uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/uncountable/types/api/field_options/__init__.py +0 -0
- {uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/uncountable/types/api/field_options/upsert_field_options.py +0 -0
- {uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/uncountable/types/api/id_source/__init__.py +0 -0
- {uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/uncountable/types/api/id_source/list_id_source.py +0 -0
- {uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/uncountable/types/api/id_source/match_id_source.py +0 -0
- {uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/uncountable/types/api/input_groups/__init__.py +0 -0
- {uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/uncountable/types/api/input_groups/get_input_group_names.py +0 -0
- {uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/uncountable/types/api/inputs/__init__.py +0 -0
- {uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/uncountable/types/api/inputs/create_inputs.py +0 -0
- {uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/uncountable/types/api/inputs/get_input_data.py +0 -0
- {uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/uncountable/types/api/inputs/get_input_names.py +0 -0
- {uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/uncountable/types/api/inputs/get_inputs_data.py +0 -0
- {uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/uncountable/types/api/inputs/set_input_attribute_values.py +0 -0
- {uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/uncountable/types/api/inputs/set_input_category.py +0 -0
- {uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/uncountable/types/api/inputs/set_input_subcategories.py +0 -0
- {uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/uncountable/types/api/inputs/set_intermediate_type.py +0 -0
- {uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/uncountable/types/api/material_families/__init__.py +0 -0
- {uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/uncountable/types/api/material_families/update_entity_material_families.py +0 -0
- {uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/uncountable/types/api/outputs/__init__.py +0 -0
- {uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/uncountable/types/api/outputs/get_output_data.py +0 -0
- {uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/uncountable/types/api/outputs/get_output_names.py +0 -0
- {uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/uncountable/types/api/outputs/resolve_output_conditions.py +0 -0
- {uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/uncountable/types/api/permissions/__init__.py +0 -0
- {uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/uncountable/types/api/permissions/set_core_permissions.py +0 -0
- {uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/uncountable/types/api/project/__init__.py +0 -0
- {uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/uncountable/types/api/project/get_projects.py +0 -0
- {uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/uncountable/types/api/project/get_projects_data.py +0 -0
- {uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/uncountable/types/api/recipe_links/__init__.py +0 -0
- {uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/uncountable/types/api/recipe_links/create_recipe_link.py +0 -0
- {uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/uncountable/types/api/recipe_links/remove_recipe_link.py +0 -0
- {uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/uncountable/types/api/recipe_metadata/__init__.py +0 -0
- {uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/uncountable/types/api/recipe_metadata/get_recipe_metadata_data.py +0 -0
- {uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/uncountable/types/api/recipes/__init__.py +0 -0
- {uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/uncountable/types/api/recipes/add_recipe_to_project.py +0 -0
- {uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/uncountable/types/api/recipes/archive_recipes.py +0 -0
- {uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/uncountable/types/api/recipes/associate_recipe_as_input.py +0 -0
- {uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/uncountable/types/api/recipes/associate_recipe_as_lot.py +0 -0
- {uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/uncountable/types/api/recipes/create_recipe.py +0 -0
- {uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/uncountable/types/api/recipes/create_recipes.py +0 -0
- {uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/uncountable/types/api/recipes/disassociate_recipe_as_input.py +0 -0
- {uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/uncountable/types/api/recipes/edit_recipe_inputs.py +0 -0
- {uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/uncountable/types/api/recipes/get_curve.py +0 -0
- {uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/uncountable/types/api/recipes/get_recipe_calculations.py +0 -0
- {uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/uncountable/types/api/recipes/get_recipe_links.py +0 -0
- {uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/uncountable/types/api/recipes/get_recipe_names.py +0 -0
- {uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/uncountable/types/api/recipes/get_recipe_output_metadata.py +0 -0
- {uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/uncountable/types/api/recipes/get_recipes_data.py +0 -0
- {uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/uncountable/types/api/recipes/lock_recipes.py +0 -0
- {uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/uncountable/types/api/recipes/remove_recipe_from_project.py +0 -0
- {uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/uncountable/types/api/recipes/set_recipe_inputs.py +0 -0
- {uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/uncountable/types/api/recipes/set_recipe_metadata.py +0 -0
- {uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/uncountable/types/api/recipes/set_recipe_output_annotations.py +0 -0
- {uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/uncountable/types/api/recipes/set_recipe_outputs.py +0 -0
- {uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/uncountable/types/api/recipes/set_recipe_tags.py +0 -0
- {uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/uncountable/types/api/recipes/unarchive_recipes.py +0 -0
- {uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/uncountable/types/api/recipes/unlock_recipes.py +0 -0
- {uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/uncountable/types/api/triggers/__init__.py +0 -0
- {uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/uncountable/types/api/triggers/run_trigger.py +0 -0
- {uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/uncountable/types/async_batch.py +0 -0
- {uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/uncountable/types/async_batch_processor.py +0 -0
- {uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/uncountable/types/base.py +0 -0
- {uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/uncountable/types/calculations.py +0 -0
- {uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/uncountable/types/chemical_structure.py +0 -0
- {uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/uncountable/types/client_base.py +0 -0
- {uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/uncountable/types/curves.py +0 -0
- {uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/uncountable/types/entity.py +0 -0
- {uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/uncountable/types/experiment_groups.py +0 -0
- {uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/uncountable/types/field_values.py +0 -0
- {uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/uncountable/types/fields.py +0 -0
- {uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/uncountable/types/id_source.py +0 -0
- {uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/uncountable/types/identifier.py +0 -0
- {uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/uncountable/types/input_attributes.py +0 -0
- {uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/uncountable/types/inputs.py +0 -0
- {uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/uncountable/types/outputs.py +0 -0
- {uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/uncountable/types/permissions.py +0 -0
- {uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/uncountable/types/phases.py +0 -0
- {uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/uncountable/types/post_base.py +0 -0
- {uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/uncountable/types/recipe_identifiers.py +0 -0
- {uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/uncountable/types/recipe_inputs.py +0 -0
- {uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/uncountable/types/recipe_links.py +0 -0
- {uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/uncountable/types/recipe_metadata.py +0 -0
- {uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/uncountable/types/recipe_output_metadata.py +0 -0
- {uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/uncountable/types/recipe_tags.py +0 -0
- {uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/uncountable/types/recipe_workflow_steps.py +0 -0
- {uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/uncountable/types/recipes.py +0 -0
- {uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/uncountable/types/response.py +0 -0
- {uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/uncountable/types/units.py +0 -0
- {uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/uncountable/types/users.py +0 -0
- {uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/uncountable/types/workflows.py +0 -0
{uncountablepythonsdk-0.0.37/UncountablePythonSDK.egg-info → uncountablepythonsdk-0.0.38}/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.38
|
|
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
|
{uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38/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.38
|
|
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
|
|
@@ -60,6 +60,8 @@ HTTPRequest = HTTPPostRequest | HTTPGetRequest
|
|
|
60
60
|
@dataclass(kw_only=True)
|
|
61
61
|
class ClientConfig:
|
|
62
62
|
allow_insecure_tls: bool = False
|
|
63
|
+
extra_headers: dict[str, str] | None = None
|
|
64
|
+
transform_request: typing.Callable[[requests.Request], requests.Request] | None = None
|
|
63
65
|
|
|
64
66
|
|
|
65
67
|
OAUTH_REFRESH_WINDOW_SECONDS = 60 * 5
|
|
@@ -144,6 +146,7 @@ class Client(ClientMethods):
|
|
|
144
146
|
_file_uploader: FileUploader
|
|
145
147
|
_cfg: ClientConfig
|
|
146
148
|
_oauth_bearer_token_cache: OAuthBearerTokenCache | None = None
|
|
149
|
+
_session: requests.Session
|
|
147
150
|
|
|
148
151
|
def __init__(
|
|
149
152
|
self,
|
|
@@ -156,6 +159,8 @@ class Client(ClientMethods):
|
|
|
156
159
|
self._base_url = base_url
|
|
157
160
|
self._file_uploader = FileUploader(self._base_url, self._auth_details)
|
|
158
161
|
self._cfg = config or ClientConfig()
|
|
162
|
+
self._session = requests.Session()
|
|
163
|
+
self._session.verify = not self._cfg.allow_insecure_tls
|
|
159
164
|
|
|
160
165
|
def _get_response_json(
|
|
161
166
|
self, response: requests.Response, request_id: str
|
|
@@ -176,6 +181,15 @@ class Client(ClientMethods):
|
|
|
176
181
|
except JSONDecodeError as e:
|
|
177
182
|
raise SDKError("unable to process response", request_id=request_id) from e
|
|
178
183
|
|
|
184
|
+
def _send_request(self, request: requests.Request) -> requests.Response:
|
|
185
|
+
if self._cfg.extra_headers is not None:
|
|
186
|
+
request.headers = {**request.headers, **self._cfg.extra_headers}
|
|
187
|
+
if self._cfg.transform_request is not None:
|
|
188
|
+
request = self._cfg.transform_request(request)
|
|
189
|
+
prepared_request = request.prepare()
|
|
190
|
+
response = self._session.send(prepared_request)
|
|
191
|
+
return response
|
|
192
|
+
|
|
179
193
|
def do_request(self, *, api_request: APIRequest, return_type: type[DT]) -> DT:
|
|
180
194
|
request_id = str(uuid4())
|
|
181
195
|
http_request = self._build_http_request(
|
|
@@ -183,21 +197,15 @@ class Client(ClientMethods):
|
|
|
183
197
|
)
|
|
184
198
|
match http_request:
|
|
185
199
|
case HTTPGetRequest():
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
headers=http_request.headers,
|
|
189
|
-
params=http_request.query_params,
|
|
190
|
-
verify=not self._cfg.allow_insecure_tls,
|
|
191
|
-
)
|
|
200
|
+
request = requests.Request("GET", http_request.url)
|
|
201
|
+
request.params = http_request.query_params
|
|
192
202
|
case HTTPPostRequest():
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
headers=http_request.headers,
|
|
196
|
-
data=http_request.body,
|
|
197
|
-
verify=not self._cfg.allow_insecure_tls,
|
|
198
|
-
)
|
|
203
|
+
request = requests.Request("POST", http_request.url)
|
|
204
|
+
request.data = http_request.body
|
|
199
205
|
case _:
|
|
200
206
|
typing.assert_never(http_request)
|
|
207
|
+
request.headers = http_request.headers
|
|
208
|
+
response = self._send_request(request)
|
|
201
209
|
response_data = self._get_response_json(response, request_id=request_id)
|
|
202
210
|
cached_parser = self._get_cached_parser(return_type)
|
|
203
211
|
try:
|
|
@@ -220,15 +228,13 @@ class Client(ClientMethods):
|
|
|
220
228
|
< OAUTH_REFRESH_WINDOW_SECONDS
|
|
221
229
|
):
|
|
222
230
|
refresh_url = urljoin(self._base_url, "/token/get_bearer_token")
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
verify=not self._cfg.allow_insecure_tls,
|
|
231
|
-
)
|
|
231
|
+
request = requests.Request("POST", refresh_url)
|
|
232
|
+
request.data = {
|
|
233
|
+
"client_secret": oauth_details.refresh_token,
|
|
234
|
+
"scope": oauth_details.scope,
|
|
235
|
+
"grant_type": "client_credentials",
|
|
236
|
+
}
|
|
237
|
+
response = self._send_request(request)
|
|
232
238
|
data = self._get_response_json(response, request_id=str(uuid4()))
|
|
233
239
|
token_data = oauth_bearer_token_data_parser.parse_storage(data)
|
|
234
240
|
self._oauth_bearer_token_cache = OAuthBearerTokenCache(
|
{uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/.github/workflows/documentation.yml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/docs/static/favicons/browserconfig.xml
RENAMED
|
File without changes
|
{uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/docs/static/favicons/favicon-16x16.png
RENAMED
|
File without changes
|
{uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/docs/static/favicons/favicon-32x32.png
RENAMED
|
File without changes
|
{uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/docs/static/favicons/manifest.json
RENAMED
|
File without changes
|
{uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/docs/static/favicons/mstile-150x150.png
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/pkgs/argument_parser/__init__.py
RENAMED
|
File without changes
|
{uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/pkgs/argument_parser/_is_enum.py
RENAMED
|
File without changes
|
{uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/pkgs/argument_parser/_is_namedtuple.py
RENAMED
|
File without changes
|
{uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/pkgs/argument_parser/argument_parser.py
RENAMED
|
File without changes
|
{uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/pkgs/argument_parser/case_convert.py
RENAMED
|
File without changes
|
|
File without changes
|
{uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/pkgs/serialization/missing_sentry.py
RENAMED
|
File without changes
|
{uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/pkgs/serialization/opaque_key.py
RENAMED
|
File without changes
|
{uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/pkgs/serialization/serial_class.py
RENAMED
|
File without changes
|
{uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/pkgs/serialization/serial_union.py
RENAMED
|
File without changes
|
{uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/pkgs/serialization_util/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/pkgs/strenum_compat/strenum_compat.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/pkgs/type_spec/emit_open_api_util.py
RENAMED
|
File without changes
|
|
File without changes
|
{uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/pkgs/type_spec/emit_typescript.py
RENAMED
|
File without changes
|
{uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/pkgs/type_spec/emit_typescript_util.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/pkgs/type_spec/parts/base.py.prepart
RENAMED
|
File without changes
|
{uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/pkgs/type_spec/parts/base.ts.prepart
RENAMED
|
File without changes
|
|
File without changes
|
{uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/pkgs/type_spec/type_info/__main__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/pkgs/type_spec/value_spec/__init__.py
RENAMED
|
File without changes
|
{uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/pkgs/type_spec/value_spec/__main__.py
RENAMED
|
File without changes
|
|
File without changes
|
{uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/pkgs/type_spec/value_spec/emit_python.py
RENAMED
|
File without changes
|
{uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/pkgs/type_spec/value_spec/types.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/uncountable/integration/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/uncountable/integration/db/__init__.py
RENAMED
|
File without changes
|
{uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/uncountable/integration/db/connect.py
RENAMED
|
File without changes
|
{uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/uncountable/integration/entrypoint.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/uncountable/integration/server.py
RENAMED
|
File without changes
|
{uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/uncountable/integration/types.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/uncountable/types/api/__init__.py
RENAMED
|
File without changes
|
{uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/uncountable/types/api/batch/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/uncountable/types/api/entity/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/uncountable/types/api/inputs/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/uncountable/types/async_batch.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/uncountable/types/calculations.py
RENAMED
|
File without changes
|
{uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/uncountable/types/chemical_structure.py
RENAMED
|
File without changes
|
{uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/uncountable/types/client_base.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/uncountable/types/experiment_groups.py
RENAMED
|
File without changes
|
{uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/uncountable/types/field_values.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/uncountable/types/input_attributes.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/uncountable/types/permissions.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/uncountable/types/recipe_identifiers.py
RENAMED
|
File without changes
|
{uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/uncountable/types/recipe_inputs.py
RENAMED
|
File without changes
|
{uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/uncountable/types/recipe_links.py
RENAMED
|
File without changes
|
{uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/uncountable/types/recipe_metadata.py
RENAMED
|
File without changes
|
|
File without changes
|
{uncountablepythonsdk-0.0.37 → uncountablepythonsdk-0.0.38}/uncountable/types/recipe_tags.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|