UncountablePythonSDK 0.0.103__tar.gz → 0.0.105__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.103 → uncountablepythonsdk-0.0.105}/.github/workflows/documentation.yml +3 -1
- {uncountablepythonsdk-0.0.103/UncountablePythonSDK.egg-info → uncountablepythonsdk-0.0.105}/PKG-INFO +1 -1
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105/UncountablePythonSDK.egg-info}/PKG-INFO +1 -1
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/docs/requirements.txt +1 -1
- uncountablepythonsdk-0.0.105/examples/integration-server/jobs/materials_auto/example_wh.py +23 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/pkgs/argument_parser/argument_parser.py +44 -9
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/pkgs/serialization/serial_class.py +11 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/pkgs/type_spec/builder.py +7 -1
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/pkgs/type_spec/emit_python.py +8 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/pkgs/type_spec/value_spec/__main__.py +7 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/pkgs/type_spec/value_spec/emit_python.py +2 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/uncountable/integration/job.py +6 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/uncountable/types/api/entity/lookup_entity.py +3 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/uncountable/types/api/recipes/add_time_series_data.py +1 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/uncountable/types/api/recipes/edit_recipe_inputs.py +2 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/uncountable/types/api/recipes/get_recipe_links.py +1 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/uncountable/types/api/recipes/lock_recipes.py +1 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/uncountable/types/api/recipes/set_recipe_outputs.py +1 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/uncountable/types/api/recipes/unlock_recipes.py +1 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/uncountable/types/client_base.py +21 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/uncountable/types/client_config_t.py +1 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/uncountable/types/entity_t.py +53 -19
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/uncountable/types/field_values.py +2 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/uncountable/types/field_values_t.py +28 -1
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/uncountable/types/generic_upload_t.py +1 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/uncountable/types/job_definition_t.py +2 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/uncountable/types/recipe_workflow_steps_t.py +1 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/uncountable/types/response_t.py +1 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/uncountable/types/webhook_job.py +1 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/uncountable/types/webhook_job_t.py +11 -0
- uncountablepythonsdk-0.0.103/examples/integration-server/jobs/materials_auto/example_wh.py +0 -15
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/.github/workflows/publish.yml +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/.gitignore +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/README.md +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/UncountablePythonSDK.egg-info/SOURCES.txt +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/UncountablePythonSDK.egg-info/dependency_links.txt +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/UncountablePythonSDK.egg-info/requires.txt +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/UncountablePythonSDK.egg-info/top_level.txt +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/docs/.gitignore +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/docs/conf.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/docs/index.md +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/docs/justfile +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/docs/quickstart.md +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/docs/static/favicons/android-chrome-192x192.png +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/docs/static/favicons/android-chrome-512x512.png +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/docs/static/favicons/apple-touch-icon.png +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/docs/static/favicons/browserconfig.xml +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/docs/static/favicons/favicon-16x16.png +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/docs/static/favicons/favicon-32x32.png +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/docs/static/favicons/manifest.json +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/docs/static/favicons/mstile-150x150.png +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/docs/static/favicons/safari-pinned-tab.svg +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/docs/static/logo_blue.png +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/examples/async_batch.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/examples/create_entity.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/examples/download_files.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/examples/edit_recipe_inputs.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/examples/integration-server/jobs/materials_auto/example_cron.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/examples/integration-server/jobs/materials_auto/profile.yaml +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/examples/integration-server/pyproject.toml +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/examples/invoke_uploader.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/examples/set_recipe_metadata_file.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/examples/set_recipe_output_file_sdk.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/examples/upload_files.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/pkgs/__init__.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/pkgs/argument_parser/__init__.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/pkgs/argument_parser/_is_enum.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/pkgs/argument_parser/_is_namedtuple.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/pkgs/argument_parser/case_convert.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/pkgs/filesystem_utils/__init__.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/pkgs/filesystem_utils/_blob_session.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/pkgs/filesystem_utils/_gdrive_session.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/pkgs/filesystem_utils/_local_session.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/pkgs/filesystem_utils/_s3_session.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/pkgs/filesystem_utils/_sftp_session.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/pkgs/filesystem_utils/file_type_utils.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/pkgs/filesystem_utils/filesystem_session.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/pkgs/py.typed +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/pkgs/serialization/__init__.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/pkgs/serialization/annotation.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/pkgs/serialization/missing_sentry.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/pkgs/serialization/opaque_key.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/pkgs/serialization/serial_alias.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/pkgs/serialization/serial_generic.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/pkgs/serialization/serial_union.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/pkgs/serialization/yaml.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/pkgs/serialization_util/__init__.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/pkgs/serialization_util/_get_type_for_serialization.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/pkgs/serialization_util/convert_to_snakecase.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/pkgs/serialization_util/dataclasses.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/pkgs/serialization_util/serialization_helpers.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/pkgs/strenum_compat/__init__.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/pkgs/strenum_compat/strenum_compat.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/pkgs/type_spec/__init__.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/pkgs/type_spec/__main__.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/pkgs/type_spec/actions_registry/__init__.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/pkgs/type_spec/actions_registry/__main__.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/pkgs/type_spec/actions_registry/emit_typescript.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/pkgs/type_spec/config.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/pkgs/type_spec/cross_output_links.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/pkgs/type_spec/emit_io_ts.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/pkgs/type_spec/emit_open_api.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/pkgs/type_spec/emit_open_api_util.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/pkgs/type_spec/emit_typescript.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/pkgs/type_spec/emit_typescript_util.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/pkgs/type_spec/load_types.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/pkgs/type_spec/open_api_util.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/pkgs/type_spec/parts/base.py.prepart +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/pkgs/type_spec/parts/base.ts.prepart +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/pkgs/type_spec/test.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/pkgs/type_spec/type_info/__main__.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/pkgs/type_spec/type_info/emit_type_info.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/pkgs/type_spec/util.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/pkgs/type_spec/value_spec/__init__.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/pkgs/type_spec/value_spec/convert_type.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/pkgs/type_spec/value_spec/types.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/pyproject.toml +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/setup.cfg +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/uncountable/__init__.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/uncountable/core/__init__.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/uncountable/core/async_batch.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/uncountable/core/client.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/uncountable/core/environment.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/uncountable/core/file_upload.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/uncountable/core/types.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/uncountable/integration/__init__.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/uncountable/integration/cli.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/uncountable/integration/construct_client.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/uncountable/integration/cron.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/uncountable/integration/db/__init__.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/uncountable/integration/db/connect.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/uncountable/integration/db/session.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/uncountable/integration/entrypoint.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/uncountable/integration/executors/__init__.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/uncountable/integration/executors/executors.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/uncountable/integration/executors/generic_upload_executor.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/uncountable/integration/executors/script_executor.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/uncountable/integration/queue_runner/__init__.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/uncountable/integration/queue_runner/command_server/__init__.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/uncountable/integration/queue_runner/command_server/command_client.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/uncountable/integration/queue_runner/command_server/command_server.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/uncountable/integration/queue_runner/command_server/protocol/__init__.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/uncountable/integration/queue_runner/command_server/protocol/command_server.proto +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/uncountable/integration/queue_runner/command_server/protocol/command_server_pb2.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/uncountable/integration/queue_runner/command_server/protocol/command_server_pb2.pyi +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/uncountable/integration/queue_runner/command_server/protocol/command_server_pb2_grpc.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/uncountable/integration/queue_runner/command_server/types.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/uncountable/integration/queue_runner/datastore/__init__.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/uncountable/integration/queue_runner/datastore/datastore_sqlite.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/uncountable/integration/queue_runner/datastore/interface.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/uncountable/integration/queue_runner/datastore/model.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/uncountable/integration/queue_runner/job_scheduler.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/uncountable/integration/queue_runner/queue_runner.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/uncountable/integration/queue_runner/types.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/uncountable/integration/queue_runner/worker.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/uncountable/integration/scan_profiles.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/uncountable/integration/scheduler.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/uncountable/integration/secret_retrieval/__init__.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/uncountable/integration/secret_retrieval/retrieve_secret.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/uncountable/integration/server.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/uncountable/integration/telemetry.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/uncountable/integration/webhook_server/entrypoint.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/uncountable/py.typed +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/uncountable/types/__init__.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/uncountable/types/api/__init__.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/uncountable/types/api/batch/__init__.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/uncountable/types/api/batch/execute_batch.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/uncountable/types/api/batch/execute_batch_load_async.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/uncountable/types/api/chemical/__init__.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/uncountable/types/api/chemical/convert_chemical_formats.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/uncountable/types/api/entity/__init__.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/uncountable/types/api/entity/create_entities.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/uncountable/types/api/entity/create_entity.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/uncountable/types/api/entity/create_or_update_entity.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/uncountable/types/api/entity/get_entities_data.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/uncountable/types/api/entity/grant_entity_permissions.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/uncountable/types/api/entity/list_entities.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/uncountable/types/api/entity/lock_entity.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/uncountable/types/api/entity/resolve_entity_ids.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/uncountable/types/api/entity/set_entity_field_values.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/uncountable/types/api/entity/set_values.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/uncountable/types/api/entity/transition_entity_phase.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/uncountable/types/api/entity/unlock_entity.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/uncountable/types/api/equipment/__init__.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/uncountable/types/api/equipment/associate_equipment_input.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/uncountable/types/api/field_options/__init__.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/uncountable/types/api/field_options/upsert_field_options.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/uncountable/types/api/files/__init__.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/uncountable/types/api/files/download_file.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/uncountable/types/api/id_source/__init__.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/uncountable/types/api/id_source/list_id_source.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/uncountable/types/api/id_source/match_id_source.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/uncountable/types/api/input_groups/__init__.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/uncountable/types/api/input_groups/get_input_group_names.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/uncountable/types/api/inputs/__init__.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/uncountable/types/api/inputs/create_inputs.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/uncountable/types/api/inputs/get_input_data.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/uncountable/types/api/inputs/get_input_names.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/uncountable/types/api/inputs/get_inputs_data.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/uncountable/types/api/inputs/set_input_attribute_values.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/uncountable/types/api/inputs/set_input_category.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/uncountable/types/api/inputs/set_input_subcategories.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/uncountable/types/api/inputs/set_intermediate_type.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/uncountable/types/api/material_families/__init__.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/uncountable/types/api/material_families/update_entity_material_families.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/uncountable/types/api/outputs/__init__.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/uncountable/types/api/outputs/get_output_data.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/uncountable/types/api/outputs/get_output_names.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/uncountable/types/api/outputs/resolve_output_conditions.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/uncountable/types/api/permissions/__init__.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/uncountable/types/api/permissions/set_core_permissions.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/uncountable/types/api/project/__init__.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/uncountable/types/api/project/get_projects.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/uncountable/types/api/project/get_projects_data.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/uncountable/types/api/recipe_links/__init__.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/uncountable/types/api/recipe_links/create_recipe_link.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/uncountable/types/api/recipe_links/remove_recipe_link.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/uncountable/types/api/recipe_metadata/__init__.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/uncountable/types/api/recipe_metadata/get_recipe_metadata_data.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/uncountable/types/api/recipes/__init__.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/uncountable/types/api/recipes/add_recipe_to_project.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/uncountable/types/api/recipes/archive_recipes.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/uncountable/types/api/recipes/associate_recipe_as_input.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/uncountable/types/api/recipes/associate_recipe_as_lot.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/uncountable/types/api/recipes/clear_recipe_outputs.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/uncountable/types/api/recipes/create_recipe.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/uncountable/types/api/recipes/create_recipes.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/uncountable/types/api/recipes/disassociate_recipe_as_input.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/uncountable/types/api/recipes/get_column_calculation_values.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/uncountable/types/api/recipes/get_curve.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/uncountable/types/api/recipes/get_recipe_calculations.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/uncountable/types/api/recipes/get_recipe_names.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/uncountable/types/api/recipes/get_recipe_output_metadata.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/uncountable/types/api/recipes/get_recipes_data.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/uncountable/types/api/recipes/remove_recipe_from_project.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/uncountable/types/api/recipes/set_recipe_inputs.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/uncountable/types/api/recipes/set_recipe_metadata.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/uncountable/types/api/recipes/set_recipe_output_annotations.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/uncountable/types/api/recipes/set_recipe_output_file.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/uncountable/types/api/recipes/set_recipe_tags.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/uncountable/types/api/recipes/unarchive_recipes.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/uncountable/types/api/triggers/__init__.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/uncountable/types/api/triggers/run_trigger.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/uncountable/types/api/uploader/__init__.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/uncountable/types/api/uploader/invoke_uploader.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/uncountable/types/async_batch.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/uncountable/types/async_batch_processor.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/uncountable/types/async_batch_t.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/uncountable/types/async_jobs.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/uncountable/types/async_jobs_t.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/uncountable/types/auth_retrieval.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/uncountable/types/auth_retrieval_t.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/uncountable/types/base.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/uncountable/types/base_t.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/uncountable/types/calculations.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/uncountable/types/calculations_t.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/uncountable/types/chemical_structure.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/uncountable/types/chemical_structure_t.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/uncountable/types/client_config.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/uncountable/types/curves.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/uncountable/types/curves_t.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/uncountable/types/entity.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/uncountable/types/experiment_groups.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/uncountable/types/experiment_groups_t.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/uncountable/types/fields.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/uncountable/types/fields_t.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/uncountable/types/generic_upload.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/uncountable/types/id_source.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/uncountable/types/id_source_t.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/uncountable/types/identifier.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/uncountable/types/identifier_t.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/uncountable/types/input_attributes.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/uncountable/types/input_attributes_t.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/uncountable/types/inputs.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/uncountable/types/inputs_t.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/uncountable/types/integration_server.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/uncountable/types/integration_server_t.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/uncountable/types/job_definition.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/uncountable/types/outputs.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/uncountable/types/outputs_t.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/uncountable/types/overrides.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/uncountable/types/overrides_t.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/uncountable/types/permissions.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/uncountable/types/permissions_t.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/uncountable/types/phases.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/uncountable/types/phases_t.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/uncountable/types/post_base.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/uncountable/types/post_base_t.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/uncountable/types/queued_job.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/uncountable/types/queued_job_t.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/uncountable/types/recipe_identifiers.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/uncountable/types/recipe_identifiers_t.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/uncountable/types/recipe_inputs.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/uncountable/types/recipe_inputs_t.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/uncountable/types/recipe_links.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/uncountable/types/recipe_links_t.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/uncountable/types/recipe_metadata.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/uncountable/types/recipe_metadata_t.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/uncountable/types/recipe_output_metadata.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/uncountable/types/recipe_output_metadata_t.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/uncountable/types/recipe_tags.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/uncountable/types/recipe_tags_t.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/uncountable/types/recipe_workflow_steps.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/uncountable/types/recipes.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/uncountable/types/recipes_t.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/uncountable/types/response.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/uncountable/types/secret_retrieval.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/uncountable/types/secret_retrieval_t.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/uncountable/types/units.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/uncountable/types/units_t.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/uncountable/types/users.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/uncountable/types/users_t.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/uncountable/types/workflows.py +0 -0
- {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/uncountable/types/workflows_t.py +0 -0
{uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/.github/workflows/documentation.yml
RENAMED
|
@@ -11,6 +11,8 @@ jobs:
|
|
|
11
11
|
steps:
|
|
12
12
|
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
|
|
13
13
|
- uses: actions/setup-python@82c7e631bb3cdc910f68e0081d67478d79c6982d # v5
|
|
14
|
+
with:
|
|
15
|
+
python-version: '3.12'
|
|
14
16
|
- uses: extractions/setup-crate@4993624604c307fbca528d28a3c8b60fa5ecc859 # v1
|
|
15
17
|
with:
|
|
16
18
|
repo: casey/just@0.10
|
|
@@ -23,7 +25,7 @@ jobs:
|
|
|
23
25
|
- name: Install dependencies
|
|
24
26
|
run: |
|
|
25
27
|
# install the dependencies for the package
|
|
26
|
-
uv pip install
|
|
28
|
+
uv pip install .
|
|
27
29
|
# install the dependencies for building the sphinx documentation
|
|
28
30
|
just -f docs/justfile docs-setup-python
|
|
29
31
|
- name: Sphinx build
|
{uncountablepythonsdk-0.0.103/UncountablePythonSDK.egg-info → uncountablepythonsdk-0.0.105}/PKG-INFO
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.2
|
|
2
2
|
Name: UncountablePythonSDK
|
|
3
|
-
Version: 0.0.
|
|
3
|
+
Version: 0.0.105
|
|
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.103 → uncountablepythonsdk-0.0.105/UncountablePythonSDK.egg-info}/PKG-INFO
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.2
|
|
2
2
|
Name: UncountablePythonSDK
|
|
3
|
-
Version: 0.0.
|
|
3
|
+
Version: 0.0.105
|
|
4
4
|
Summary: Uncountable SDK
|
|
5
5
|
Project-URL: Homepage, https://github.com/uncountableinc/uncountable-python-sdk
|
|
6
6
|
Project-URL: Repository, https://github.com/uncountableinc/uncountable-python-sdk.git
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
from dataclasses import dataclass
|
|
2
|
+
|
|
3
|
+
from uncountable.integration.job import JobArguments, WebhookJob, register_job
|
|
4
|
+
from uncountable.types import job_definition_t
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
@dataclass(kw_only=True)
|
|
8
|
+
class ExampleWebhookPayload:
|
|
9
|
+
id: int
|
|
10
|
+
message: str
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
@register_job
|
|
14
|
+
class WebhookExample(WebhookJob[ExampleWebhookPayload]):
|
|
15
|
+
def run(
|
|
16
|
+
self, args: JobArguments, payload: ExampleWebhookPayload
|
|
17
|
+
) -> job_definition_t.JobResult:
|
|
18
|
+
args.logger.log_info(f"webhook invoked with payload: {payload}")
|
|
19
|
+
return job_definition_t.JobResult(success=True)
|
|
20
|
+
|
|
21
|
+
@property
|
|
22
|
+
def webhook_payload_type(self) -> type:
|
|
23
|
+
return ExampleWebhookPayload
|
|
@@ -58,7 +58,9 @@ class ParserOptions:
|
|
|
58
58
|
return self.encoding == SourceEncoding.API
|
|
59
59
|
|
|
60
60
|
@property
|
|
61
|
-
def
|
|
61
|
+
def allow_direct_type(self) -> bool:
|
|
62
|
+
"""This allows parsing from a DB column without having to check whether it's
|
|
63
|
+
the native format of the type, a JSON column, or a string encoding."""
|
|
62
64
|
return self.encoding == SourceEncoding.STORAGE
|
|
63
65
|
|
|
64
66
|
|
|
@@ -97,6 +99,22 @@ def is_missing(field_type: typing.Any) -> bool:
|
|
|
97
99
|
return not (len(args) == 0 or args[0] is not MissingSentryType)
|
|
98
100
|
|
|
99
101
|
|
|
102
|
+
def _has_field_default(field: dataclasses.Field[typing.Any]) -> bool:
|
|
103
|
+
return (
|
|
104
|
+
field.default != dataclasses.MISSING
|
|
105
|
+
and not isinstance(field.default, MissingSentryType)
|
|
106
|
+
) or field.default_factory != dataclasses.MISSING
|
|
107
|
+
|
|
108
|
+
|
|
109
|
+
def _get_field_default(
|
|
110
|
+
field: dataclasses.Field[typing.Any],
|
|
111
|
+
) -> typing.Any:
|
|
112
|
+
if field.default != dataclasses.MISSING:
|
|
113
|
+
return field.default
|
|
114
|
+
assert field.default_factory != dataclasses.MISSING
|
|
115
|
+
return field.default_factory()
|
|
116
|
+
|
|
117
|
+
|
|
100
118
|
def _invoke_tuple_parsers[T](
|
|
101
119
|
tuple_type: type[T],
|
|
102
120
|
arg_parsers: typing.Sequence[typing.Callable[[typing.Any], object]],
|
|
@@ -155,7 +173,7 @@ def _build_parser_discriminated_union[T](
|
|
|
155
173
|
discriminator_map: dict[str, ParserFunction[T]],
|
|
156
174
|
) -> ParserFunction[T]:
|
|
157
175
|
def parse(value: typing.Any) -> typing.Any:
|
|
158
|
-
if context.options.
|
|
176
|
+
if context.options.allow_direct_type and dataclasses.is_dataclass(value):
|
|
159
177
|
discriminant = getattr(value, discriminator)
|
|
160
178
|
else:
|
|
161
179
|
discriminant = value.get(discriminator)
|
|
@@ -318,10 +336,22 @@ def _build_parser_inner[T](
|
|
|
318
336
|
return parse_int
|
|
319
337
|
|
|
320
338
|
if parsed_type is datetime:
|
|
321
|
-
|
|
339
|
+
|
|
340
|
+
def parse_datetime(value: typing.Any) -> T:
|
|
341
|
+
if context.options.allow_direct_type and isinstance(value, datetime):
|
|
342
|
+
return value # type: ignore
|
|
343
|
+
return dateutil.parser.isoparse(value) # type:ignore
|
|
344
|
+
|
|
345
|
+
return parse_datetime
|
|
322
346
|
|
|
323
347
|
if parsed_type is date:
|
|
324
|
-
|
|
348
|
+
|
|
349
|
+
def parse_date(value: typing.Any) -> T:
|
|
350
|
+
if context.options.allow_direct_type and isinstance(value, date):
|
|
351
|
+
return value # type:ignore
|
|
352
|
+
return date.fromisoformat(value) # type:ignore
|
|
353
|
+
|
|
354
|
+
return parse_date
|
|
325
355
|
|
|
326
356
|
# MyPy: It's unclear why `parsed_type in (str, OpaqueKey)` is flagged as invalid
|
|
327
357
|
# Thus an or statement is used instead, which isn't flagged as invalid.
|
|
@@ -405,7 +435,7 @@ def _build_parser_dataclass[T](
|
|
|
405
435
|
|
|
406
436
|
def parse(value: typing.Any) -> typing.Any:
|
|
407
437
|
# Use an exact type match to prevent base/derived class mismatches
|
|
408
|
-
if context.options.
|
|
438
|
+
if context.options.allow_direct_type and type(value) is parsed_type:
|
|
409
439
|
return value
|
|
410
440
|
|
|
411
441
|
data: dict[typing.Any, typing.Any] = {}
|
|
@@ -420,10 +450,8 @@ def _build_parser_dataclass[T](
|
|
|
420
450
|
if field_raw_value == dataclasses.MISSING:
|
|
421
451
|
if serial_class_data.has_parse_require(field.name):
|
|
422
452
|
raise ValueError("missing-required-field", field.name)
|
|
423
|
-
if field
|
|
424
|
-
field_value = field
|
|
425
|
-
elif field.default_factory != dataclasses.MISSING:
|
|
426
|
-
field_value = field.default_factory()
|
|
453
|
+
if _has_field_default(field):
|
|
454
|
+
field_value = _get_field_default(field)
|
|
427
455
|
elif is_missing(field_type):
|
|
428
456
|
field_value = MissingSentryType()
|
|
429
457
|
elif is_optional(field_type):
|
|
@@ -435,6 +463,13 @@ def _build_parser_dataclass[T](
|
|
|
435
463
|
field_value = False
|
|
436
464
|
else:
|
|
437
465
|
raise ValueError("missing-value-for-field", field.name)
|
|
466
|
+
elif (
|
|
467
|
+
field_raw_value is None
|
|
468
|
+
and not is_optional(field_type)
|
|
469
|
+
and _has_field_default(field)
|
|
470
|
+
and not serial_class_data.has_parse_require(field.name)
|
|
471
|
+
):
|
|
472
|
+
field_value = _get_field_default(field)
|
|
438
473
|
elif serial_class_data.has_unconverted_value(field.name):
|
|
439
474
|
field_value = field_raw_value
|
|
440
475
|
else:
|
{uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/pkgs/serialization/serial_class.py
RENAMED
|
@@ -17,6 +17,7 @@ class _SerialClassData(SerialBase):
|
|
|
17
17
|
to_string_values: set[str] = dataclasses.field(default_factory=set)
|
|
18
18
|
parse_require: set[str] = dataclasses.field(default_factory=set)
|
|
19
19
|
named_type_path: str | None = None
|
|
20
|
+
explicit_defaults: set[str] = dataclasses.field(default_factory=set)
|
|
20
21
|
|
|
21
22
|
|
|
22
23
|
EMPTY_SERIAL_CLASS_DATA = _SerialClassData()
|
|
@@ -30,6 +31,7 @@ def serial_class(
|
|
|
30
31
|
parse_require: set[str] | None = None,
|
|
31
32
|
named_type_path: str | None = None,
|
|
32
33
|
is_dynamic_allowed: bool = False,
|
|
34
|
+
explicit_defaults: set[str] | None = None,
|
|
33
35
|
) -> Callable[[ClassT], ClassT]:
|
|
34
36
|
"""
|
|
35
37
|
An additional decorator to a dataclass that specifies serialization options.
|
|
@@ -52,6 +54,9 @@ def serial_class(
|
|
|
52
54
|
requiring them for the API input.
|
|
53
55
|
@param named_type_path
|
|
54
56
|
The type_spec type-path to this type. This applies only to named types.
|
|
57
|
+
@param explicit_defaults
|
|
58
|
+
Fields that have explicit defaults in the definition. This is useful for
|
|
59
|
+
falling back onto these defaults when the field is mandatory but receives a null value.
|
|
55
60
|
"""
|
|
56
61
|
|
|
57
62
|
def decorate(orig_class: ClassT) -> ClassT:
|
|
@@ -63,6 +68,7 @@ def serial_class(
|
|
|
63
68
|
named_type_path=named_type_path,
|
|
64
69
|
from_decorator=True,
|
|
65
70
|
is_dynamic_allowed=is_dynamic_allowed,
|
|
71
|
+
explicit_defaults=explicit_defaults or set(),
|
|
66
72
|
)
|
|
67
73
|
return orig_class
|
|
68
74
|
|
|
@@ -90,6 +96,9 @@ class SerialClassDataInspector(SerialInspector[ClassT]):
|
|
|
90
96
|
def has_parse_require(self, key: str) -> bool:
|
|
91
97
|
return key in self.current.parse_require
|
|
92
98
|
|
|
99
|
+
def has_explicit_default(self, key: str) -> bool:
|
|
100
|
+
return key in self.current.explicit_defaults
|
|
101
|
+
|
|
93
102
|
|
|
94
103
|
def get_merged_serial_class_data(type_class: type[Any]) -> _SerialClassData | None:
|
|
95
104
|
base_class_data = (
|
|
@@ -115,6 +124,8 @@ def get_merged_serial_class_data(type_class: type[Any]) -> _SerialClassData | No
|
|
|
115
124
|
| curr_base_class_data.to_string_values,
|
|
116
125
|
parse_require=base_class_data.parse_require
|
|
117
126
|
| curr_base_class_data.parse_require,
|
|
127
|
+
explicit_defaults=base_class_data.explicit_defaults
|
|
128
|
+
| curr_base_class_data.explicit_defaults,
|
|
118
129
|
)
|
|
119
130
|
return base_class_data
|
|
120
131
|
|
|
@@ -62,6 +62,7 @@ class SpecProperty:
|
|
|
62
62
|
# Holds extra information that will be emitted along with type_info. The builder knows nothing
|
|
63
63
|
# about the contents of this information.
|
|
64
64
|
ext_info: Any = None
|
|
65
|
+
explicit_default: bool = False
|
|
65
66
|
|
|
66
67
|
|
|
67
68
|
class NameCase(StrEnum):
|
|
@@ -389,6 +390,7 @@ class SpecTypeDefn(SpecType):
|
|
|
389
390
|
ptype = builder.parse_type(self.namespace, data_type, scope=self)
|
|
390
391
|
|
|
391
392
|
default_spec = data.get("default", MISSING)
|
|
393
|
+
explicit_default = default_spec != MISSING
|
|
392
394
|
if default_spec == MISSING:
|
|
393
395
|
has_default = False
|
|
394
396
|
default = None
|
|
@@ -396,7 +398,10 @@ class SpecTypeDefn(SpecType):
|
|
|
396
398
|
has_default = True
|
|
397
399
|
# IMPROVE: check the type against the ptype
|
|
398
400
|
default = default_spec
|
|
399
|
-
|
|
401
|
+
if extant == PropertyExtant.missing and explicit_default:
|
|
402
|
+
raise Exception(
|
|
403
|
+
f"cannot have extant missing and default for property {name}"
|
|
404
|
+
)
|
|
400
405
|
parse_require = False
|
|
401
406
|
literal = unwrap_literal_type(ptype)
|
|
402
407
|
if literal is not None:
|
|
@@ -419,6 +424,7 @@ class SpecTypeDefn(SpecType):
|
|
|
419
424
|
parse_require=parse_require,
|
|
420
425
|
desc=data.get("desc", None),
|
|
421
426
|
ext_info=ext_info,
|
|
427
|
+
explicit_default=explicit_default,
|
|
422
428
|
)
|
|
423
429
|
finally:
|
|
424
430
|
builder.pop_where()
|
|
@@ -697,6 +697,7 @@ class EmittedPropertiesMetadata:
|
|
|
697
697
|
unconverted_values: set[str]
|
|
698
698
|
to_string_values: set[str]
|
|
699
699
|
parse_require: set[str]
|
|
700
|
+
explicit_defaults: set[str]
|
|
700
701
|
|
|
701
702
|
|
|
702
703
|
def _emit_type_properties(
|
|
@@ -728,6 +729,7 @@ def _emit_properties(
|
|
|
728
729
|
unconverted_values: set[str] = set()
|
|
729
730
|
to_string_values: set[str] = set()
|
|
730
731
|
parse_require: set[str] = set()
|
|
732
|
+
explicit_defaults: set[str] = set()
|
|
731
733
|
|
|
732
734
|
if len(properties) > 0:
|
|
733
735
|
|
|
@@ -748,6 +750,9 @@ def _emit_properties(
|
|
|
748
750
|
if prop.parse_require:
|
|
749
751
|
parse_require.add(py_name)
|
|
750
752
|
|
|
753
|
+
if prop.explicit_default:
|
|
754
|
+
explicit_defaults.add(py_name)
|
|
755
|
+
|
|
751
756
|
ref_type = refer_to(ctx, stype)
|
|
752
757
|
default = None
|
|
753
758
|
if prop.extant == builder.PropertyExtant.missing:
|
|
@@ -791,6 +796,7 @@ def _emit_properties(
|
|
|
791
796
|
unconverted_values=unconverted_values,
|
|
792
797
|
to_string_values=to_string_values,
|
|
793
798
|
parse_require=parse_require,
|
|
799
|
+
explicit_defaults=explicit_defaults,
|
|
794
800
|
)
|
|
795
801
|
|
|
796
802
|
|
|
@@ -881,6 +887,7 @@ def _emit_type(ctx: Context, stype: builder.SpecType) -> None:
|
|
|
881
887
|
unconverted_values = emitted_properties_metadata.unconverted_values
|
|
882
888
|
to_string_values = emitted_properties_metadata.to_string_values
|
|
883
889
|
parse_require = emitted_properties_metadata.parse_require
|
|
890
|
+
explicit_defaults = emitted_properties_metadata.explicit_defaults
|
|
884
891
|
|
|
885
892
|
_emit_generics(ctx, generics)
|
|
886
893
|
|
|
@@ -902,6 +909,7 @@ def _emit_type(ctx: Context, stype: builder.SpecType) -> None:
|
|
|
902
909
|
write_values("unconverted_values", unconverted_values)
|
|
903
910
|
write_values("to_string_values", to_string_values)
|
|
904
911
|
write_values("parse_require", parse_require)
|
|
912
|
+
write_values("explicit_defaults", explicit_defaults)
|
|
905
913
|
|
|
906
914
|
ctx.out.write(")\n")
|
|
907
915
|
|
{uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/pkgs/type_spec/value_spec/__main__.py
RENAMED
|
@@ -155,6 +155,7 @@ key_return = "return"
|
|
|
155
155
|
key_description = "description"
|
|
156
156
|
key_brief = "brief"
|
|
157
157
|
key_name = "name"
|
|
158
|
+
key_draft = "draft"
|
|
158
159
|
|
|
159
160
|
|
|
160
161
|
TypeT = TypeVar("TypeT")
|
|
@@ -229,6 +230,11 @@ def main() -> None:
|
|
|
229
230
|
|
|
230
231
|
brief = get_as(spec, key_brief, str)
|
|
231
232
|
description = get_as(spec, key_description, str)
|
|
233
|
+
draft = (
|
|
234
|
+
get_as(spec, key_draft, bool)
|
|
235
|
+
if spec.get(key_draft) is not None
|
|
236
|
+
else None
|
|
237
|
+
)
|
|
232
238
|
|
|
233
239
|
return_value = get(spec, key_return)
|
|
234
240
|
where.append("return")
|
|
@@ -245,6 +251,7 @@ def main() -> None:
|
|
|
245
251
|
type=convert_to_value_spec_type(parsed.return_type_path),
|
|
246
252
|
description=return_description,
|
|
247
253
|
),
|
|
254
|
+
draft=draft,
|
|
248
255
|
)
|
|
249
256
|
)
|
|
250
257
|
where.pop()
|
|
@@ -164,6 +164,8 @@ def _emit_function(function: value_spec_t.Function, indent: str) -> str:
|
|
|
164
164
|
f"{sub_indent}description={encode_common_string(function.description)},\n"
|
|
165
165
|
)
|
|
166
166
|
out.write(f"{sub_indent}brief={encode_common_string(function.brief)},\n")
|
|
167
|
+
if function.draft:
|
|
168
|
+
out.write(f"{sub_indent}draft={function.draft},\n")
|
|
167
169
|
out.write(
|
|
168
170
|
f"{sub_indent}return_value={_emit_function_return(function.return_value, sub_indent)},\n"
|
|
169
171
|
)
|
{uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/uncountable/integration/job.py
RENAMED
|
@@ -85,3 +85,9 @@ class WebhookJob[WPT](Job[webhook_job_t.WebhookEventPayload]):
|
|
|
85
85
|
def register_job(cls: type[Job]) -> type[Job]:
|
|
86
86
|
cls._unc_job_registered = True
|
|
87
87
|
return cls
|
|
88
|
+
|
|
89
|
+
|
|
90
|
+
class RunsheetWebhookJob(WebhookJob[webhook_job_t.RunsheetWebhookPayload]):
|
|
91
|
+
@property
|
|
92
|
+
def webhook_payload_type(self) -> type:
|
|
93
|
+
return webhook_job_t.RunsheetWebhookPayload
|
|
@@ -13,6 +13,7 @@ from pkgs.serialization import serial_union_annotation
|
|
|
13
13
|
from ... import async_batch_t
|
|
14
14
|
from ... import base_t
|
|
15
15
|
from ... import entity_t
|
|
16
|
+
from ... import field_values_t
|
|
16
17
|
from ... import identifier_t
|
|
17
18
|
|
|
18
19
|
__all__: list[str] = [
|
|
@@ -49,11 +50,13 @@ class LookupEntityQueryBase:
|
|
|
49
50
|
@serial_class(
|
|
50
51
|
named_type_path="sdk.api.entity.lookup_entity.LookupFieldArgumentValue",
|
|
51
52
|
unconverted_values={"field_value"},
|
|
53
|
+
explicit_defaults={"value_resolution"},
|
|
52
54
|
)
|
|
53
55
|
@dataclasses.dataclass(kw_only=True)
|
|
54
56
|
class LookupFieldArgumentValue:
|
|
55
57
|
field_key: identifier_t.IdentifierKey
|
|
56
58
|
field_value: base_t.JsonValue
|
|
59
|
+
value_resolution: field_values_t.ValueResolution = field_values_t.ValueResolution.DIRECT
|
|
57
60
|
|
|
58
61
|
|
|
59
62
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
@@ -45,6 +45,7 @@ class TimeSeriesDatum:
|
|
|
45
45
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
46
46
|
@serial_class(
|
|
47
47
|
named_type_path="sdk.api.recipes.add_time_series_data.Arguments",
|
|
48
|
+
explicit_defaults={"on_conflict"},
|
|
48
49
|
)
|
|
49
50
|
@dataclasses.dataclass(kw_only=True)
|
|
50
51
|
class Arguments:
|
|
@@ -81,6 +81,7 @@ class RecipeInputEditClearInputs(RecipeInputEditBase):
|
|
|
81
81
|
@serial_class(
|
|
82
82
|
named_type_path="sdk.api.recipes.edit_recipe_inputs.RecipeInputEditInputBase",
|
|
83
83
|
to_string_values={"value_numeric"},
|
|
84
|
+
explicit_defaults={"input_value_type", "quantity_basis"},
|
|
84
85
|
)
|
|
85
86
|
@dataclasses.dataclass(kw_only=True)
|
|
86
87
|
class RecipeInputEditInputBase(RecipeInputEditBase):
|
|
@@ -196,6 +197,7 @@ class PlaceholderDisplayMode(StrEnum):
|
|
|
196
197
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
197
198
|
@serial_class(
|
|
198
199
|
named_type_path="sdk.api.recipes.edit_recipe_inputs.PlaceholderBase",
|
|
200
|
+
explicit_defaults={"display_mode", "require_for_creation"},
|
|
199
201
|
)
|
|
200
202
|
@dataclasses.dataclass(kw_only=True)
|
|
201
203
|
class PlaceholderBase:
|
|
@@ -25,6 +25,7 @@ ENDPOINT_PATH = "api/external/recipes/external_get_recipe_links"
|
|
|
25
25
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
26
26
|
@serial_class(
|
|
27
27
|
named_type_path="sdk.api.recipes.get_recipe_links.Arguments",
|
|
28
|
+
explicit_defaults={"depth"},
|
|
28
29
|
)
|
|
29
30
|
@dataclasses.dataclass(kw_only=True)
|
|
30
31
|
class Arguments:
|
|
@@ -48,6 +48,7 @@ class NullBehavior(StrEnum):
|
|
|
48
48
|
@serial_class(
|
|
49
49
|
named_type_path="sdk.api.recipes.set_recipe_outputs.RecipeOutputValue",
|
|
50
50
|
to_string_values={"value_numeric"},
|
|
51
|
+
explicit_defaults={"null_behavior"},
|
|
51
52
|
)
|
|
52
53
|
@dataclasses.dataclass(kw_only=True)
|
|
53
54
|
class RecipeOutputValue:
|
|
@@ -31,6 +31,7 @@ class RecipeUnlockType(StrEnum):
|
|
|
31
31
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
32
32
|
@serial_class(
|
|
33
33
|
named_type_path="sdk.api.recipes.unlock_recipes.Arguments",
|
|
34
|
+
explicit_defaults={"type"},
|
|
34
35
|
)
|
|
35
36
|
@dataclasses.dataclass(kw_only=True)
|
|
36
37
|
class Arguments:
|
{uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/uncountable/types/client_base.py
RENAMED
|
@@ -57,6 +57,7 @@ import uncountable.types.api.entity.list_entities as list_entities_t
|
|
|
57
57
|
import uncountable.types.api.id_source.list_id_source as list_id_source_t
|
|
58
58
|
import uncountable.types.api.entity.lock_entity as lock_entity_t
|
|
59
59
|
import uncountable.types.api.recipes.lock_recipes as lock_recipes_t
|
|
60
|
+
import uncountable.types.api.entity.lookup_entity as lookup_entity_t
|
|
60
61
|
import uncountable.types.api.id_source.match_id_source as match_id_source_t
|
|
61
62
|
from uncountable.types import permissions_t
|
|
62
63
|
from uncountable.types import post_base_t
|
|
@@ -1127,6 +1128,26 @@ class ClientMethods(ABC):
|
|
|
1127
1128
|
)
|
|
1128
1129
|
return self.do_request(api_request=api_request, return_type=lock_recipes_t.Data)
|
|
1129
1130
|
|
|
1131
|
+
def lookup_entity(
|
|
1132
|
+
self,
|
|
1133
|
+
*,
|
|
1134
|
+
entity_type: entity_t.EntityType,
|
|
1135
|
+
query: lookup_entity_t.LookupEntityQuery,
|
|
1136
|
+
) -> lookup_entity_t.Data:
|
|
1137
|
+
"""Look up an entity based on an identifier or field values
|
|
1138
|
+
|
|
1139
|
+
"""
|
|
1140
|
+
args = lookup_entity_t.Arguments(
|
|
1141
|
+
entity_type=entity_type,
|
|
1142
|
+
query=query,
|
|
1143
|
+
)
|
|
1144
|
+
api_request = APIRequest(
|
|
1145
|
+
method=lookup_entity_t.ENDPOINT_METHOD,
|
|
1146
|
+
endpoint=lookup_entity_t.ENDPOINT_PATH,
|
|
1147
|
+
args=args,
|
|
1148
|
+
)
|
|
1149
|
+
return self.do_request(api_request=api_request, return_type=lookup_entity_t.Data)
|
|
1150
|
+
|
|
1130
1151
|
def match_id_source(
|
|
1131
1152
|
self,
|
|
1132
1153
|
*,
|
{uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.105}/uncountable/types/client_config_t.py
RENAMED
|
@@ -17,6 +17,7 @@ __all__: list[str] = [
|
|
|
17
17
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
18
18
|
@serial_class(
|
|
19
19
|
named_type_path="sdk.client_config.ClientConfigOptions",
|
|
20
|
+
explicit_defaults={"allow_insecure_tls"},
|
|
20
21
|
)
|
|
21
22
|
@dataclasses.dataclass(kw_only=True)
|
|
22
23
|
class ClientConfigOptions:
|