UncountablePythonSDK 0.0.86__tar.gz → 0.0.88__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.86 → uncountablepythonsdk-0.0.88}/.github/workflows/documentation.yml +1 -1
- {uncountablepythonsdk-0.0.86/UncountablePythonSDK.egg-info → uncountablepythonsdk-0.0.88}/PKG-INFO +2 -1
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88/UncountablePythonSDK.egg-info}/PKG-INFO +2 -1
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/UncountablePythonSDK.egg-info/SOURCES.txt +2 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/UncountablePythonSDK.egg-info/requires.txt +1 -0
- uncountablepythonsdk-0.0.88/pkgs/filesystem_utils/_blob_session.py +137 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/pkgs/filesystem_utils/file_type_utils.py +20 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/pkgs/serialization/opaque_key.py +1 -1
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/pkgs/type_spec/emit_python.py +3 -1
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/pkgs/type_spec/emit_typescript_util.py +5 -3
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/pyproject.toml +4 -3
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/uncountable/core/client.py +26 -4
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/uncountable/integration/queue_runner/job_scheduler.py +4 -1
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/uncountable/types/__init__.py +2 -0
- uncountablepythonsdk-0.0.88/uncountable/types/api/entity/set_entity_values.py +44 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/uncountable/types/async_batch.py +1 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/uncountable/types/async_batch_processor.py +37 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/uncountable/types/async_batch_t.py +16 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/uncountable/types/client_base.py +23 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/uncountable/types/entity.py +1 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/uncountable/types/entity_t.py +29 -17
- uncountablepythonsdk-0.0.88/uncountable/types/field_values.py +22 -0
- uncountablepythonsdk-0.0.88/uncountable/types/field_values_t.py +204 -0
- uncountablepythonsdk-0.0.86/uncountable/types/field_values.py +0 -11
- uncountablepythonsdk-0.0.86/uncountable/types/field_values_t.py +0 -69
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/.github/workflows/publish.yml +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/.gitignore +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/README.md +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/UncountablePythonSDK.egg-info/dependency_links.txt +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/UncountablePythonSDK.egg-info/top_level.txt +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/docs/.gitignore +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/docs/conf.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/docs/index.md +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/docs/justfile +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/docs/quickstart.md +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/docs/requirements.txt +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/docs/static/favicons/android-chrome-192x192.png +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/docs/static/favicons/android-chrome-512x512.png +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/docs/static/favicons/apple-touch-icon.png +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/docs/static/favicons/browserconfig.xml +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/docs/static/favicons/favicon-16x16.png +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/docs/static/favicons/favicon-32x32.png +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/docs/static/favicons/manifest.json +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/docs/static/favicons/mstile-150x150.png +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/docs/static/favicons/safari-pinned-tab.svg +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/docs/static/logo_blue.png +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/examples/async_batch.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/examples/create_entity.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/examples/edit_recipe_inputs.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/examples/integration-server/jobs/materials_auto/example_cron.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/examples/integration-server/jobs/materials_auto/example_wh.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/examples/integration-server/jobs/materials_auto/profile.yaml +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/examples/integration-server/pyproject.toml +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/examples/invoke_uploader.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/examples/set_recipe_metadata_file.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/examples/set_recipe_output_file_sdk.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/examples/upload_files.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/pkgs/__init__.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/pkgs/argument_parser/__init__.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/pkgs/argument_parser/_is_enum.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/pkgs/argument_parser/_is_namedtuple.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/pkgs/argument_parser/argument_parser.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/pkgs/argument_parser/case_convert.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/pkgs/filesystem_utils/__init__.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/pkgs/filesystem_utils/_gdrive_session.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/pkgs/filesystem_utils/_local_session.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/pkgs/filesystem_utils/_s3_session.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/pkgs/filesystem_utils/_sftp_session.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/pkgs/filesystem_utils/filesystem_session.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/pkgs/py.typed +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/pkgs/serialization/__init__.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/pkgs/serialization/missing_sentry.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/pkgs/serialization/serial_class.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/pkgs/serialization/serial_union.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/pkgs/serialization/yaml.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/pkgs/serialization_util/__init__.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/pkgs/serialization_util/_get_type_for_serialization.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/pkgs/serialization_util/convert_to_snakecase.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/pkgs/serialization_util/serialization_helpers.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/pkgs/strenum_compat/__init__.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/pkgs/strenum_compat/strenum_compat.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/pkgs/type_spec/__init__.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/pkgs/type_spec/__main__.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/pkgs/type_spec/actions_registry/__init__.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/pkgs/type_spec/actions_registry/__main__.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/pkgs/type_spec/actions_registry/emit_typescript.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/pkgs/type_spec/builder.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/pkgs/type_spec/config.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/pkgs/type_spec/emit_io_ts.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/pkgs/type_spec/emit_open_api.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/pkgs/type_spec/emit_open_api_util.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/pkgs/type_spec/emit_typescript.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/pkgs/type_spec/load_types.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/pkgs/type_spec/open_api_util.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/pkgs/type_spec/parts/base.py.prepart +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/pkgs/type_spec/parts/base.ts.prepart +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/pkgs/type_spec/test.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/pkgs/type_spec/type_info/__main__.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/pkgs/type_spec/type_info/emit_type_info.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/pkgs/type_spec/util.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/pkgs/type_spec/value_spec/__init__.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/pkgs/type_spec/value_spec/__main__.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/pkgs/type_spec/value_spec/convert_type.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/pkgs/type_spec/value_spec/emit_python.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/pkgs/type_spec/value_spec/types.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/setup.cfg +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/uncountable/__init__.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/uncountable/core/__init__.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/uncountable/core/async_batch.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/uncountable/core/environment.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/uncountable/core/file_upload.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/uncountable/core/types.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/uncountable/integration/__init__.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/uncountable/integration/cli.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/uncountable/integration/construct_client.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/uncountable/integration/cron.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/uncountable/integration/db/__init__.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/uncountable/integration/db/connect.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/uncountable/integration/db/session.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/uncountable/integration/entrypoint.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/uncountable/integration/executors/__init__.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/uncountable/integration/executors/executors.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/uncountable/integration/executors/generic_upload_executor.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/uncountable/integration/executors/script_executor.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/uncountable/integration/job.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/uncountable/integration/queue_runner/__init__.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/uncountable/integration/queue_runner/command_server/__init__.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/uncountable/integration/queue_runner/command_server/command_client.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/uncountable/integration/queue_runner/command_server/command_server.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/uncountable/integration/queue_runner/command_server/protocol/__init__.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/uncountable/integration/queue_runner/command_server/protocol/command_server.proto +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/uncountable/integration/queue_runner/command_server/protocol/command_server_pb2.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/uncountable/integration/queue_runner/command_server/protocol/command_server_pb2.pyi +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/uncountable/integration/queue_runner/command_server/protocol/command_server_pb2_grpc.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/uncountable/integration/queue_runner/command_server/types.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/uncountable/integration/queue_runner/datastore/__init__.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/uncountable/integration/queue_runner/datastore/datastore_sqlite.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/uncountable/integration/queue_runner/datastore/interface.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/uncountable/integration/queue_runner/datastore/model.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/uncountable/integration/queue_runner/queue_runner.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/uncountable/integration/queue_runner/types.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/uncountable/integration/queue_runner/worker.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/uncountable/integration/scan_profiles.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/uncountable/integration/scheduler.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/uncountable/integration/secret_retrieval/__init__.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/uncountable/integration/secret_retrieval/retrieve_secret.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/uncountable/integration/server.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/uncountable/integration/telemetry.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/uncountable/integration/webhook_server/entrypoint.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/uncountable/py.typed +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/uncountable/types/api/__init__.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/uncountable/types/api/batch/__init__.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/uncountable/types/api/batch/execute_batch.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/uncountable/types/api/batch/execute_batch_load_async.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/uncountable/types/api/chemical/__init__.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/uncountable/types/api/chemical/convert_chemical_formats.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/uncountable/types/api/entity/__init__.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/uncountable/types/api/entity/create_entities.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/uncountable/types/api/entity/create_entity.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/uncountable/types/api/entity/get_entities_data.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/uncountable/types/api/entity/grant_entity_permissions.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/uncountable/types/api/entity/list_entities.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/uncountable/types/api/entity/lock_entity.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/uncountable/types/api/entity/resolve_entity_ids.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/uncountable/types/api/entity/set_values.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/uncountable/types/api/entity/transition_entity_phase.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/uncountable/types/api/entity/unlock_entity.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/uncountable/types/api/equipment/__init__.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/uncountable/types/api/equipment/associate_equipment_input.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/uncountable/types/api/field_options/__init__.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/uncountable/types/api/field_options/upsert_field_options.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/uncountable/types/api/id_source/__init__.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/uncountable/types/api/id_source/list_id_source.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/uncountable/types/api/id_source/match_id_source.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/uncountable/types/api/input_groups/__init__.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/uncountable/types/api/input_groups/get_input_group_names.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/uncountable/types/api/inputs/__init__.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/uncountable/types/api/inputs/create_inputs.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/uncountable/types/api/inputs/get_input_data.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/uncountable/types/api/inputs/get_input_names.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/uncountable/types/api/inputs/get_inputs_data.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/uncountable/types/api/inputs/set_input_attribute_values.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/uncountable/types/api/inputs/set_input_category.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/uncountable/types/api/inputs/set_input_subcategories.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/uncountable/types/api/inputs/set_intermediate_type.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/uncountable/types/api/material_families/__init__.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/uncountable/types/api/material_families/update_entity_material_families.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/uncountable/types/api/outputs/__init__.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/uncountable/types/api/outputs/get_output_data.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/uncountable/types/api/outputs/get_output_names.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/uncountable/types/api/outputs/resolve_output_conditions.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/uncountable/types/api/permissions/__init__.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/uncountable/types/api/permissions/set_core_permissions.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/uncountable/types/api/project/__init__.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/uncountable/types/api/project/get_projects.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/uncountable/types/api/project/get_projects_data.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/uncountable/types/api/recipe_links/__init__.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/uncountable/types/api/recipe_links/create_recipe_link.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/uncountable/types/api/recipe_links/remove_recipe_link.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/uncountable/types/api/recipe_metadata/__init__.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/uncountable/types/api/recipe_metadata/get_recipe_metadata_data.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/uncountable/types/api/recipes/__init__.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/uncountable/types/api/recipes/add_recipe_to_project.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/uncountable/types/api/recipes/archive_recipes.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/uncountable/types/api/recipes/associate_recipe_as_input.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/uncountable/types/api/recipes/associate_recipe_as_lot.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/uncountable/types/api/recipes/clear_recipe_outputs.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/uncountable/types/api/recipes/create_recipe.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/uncountable/types/api/recipes/create_recipes.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/uncountable/types/api/recipes/disassociate_recipe_as_input.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/uncountable/types/api/recipes/edit_recipe_inputs.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/uncountable/types/api/recipes/get_column_calculation_values.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/uncountable/types/api/recipes/get_curve.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/uncountable/types/api/recipes/get_recipe_calculations.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/uncountable/types/api/recipes/get_recipe_links.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/uncountable/types/api/recipes/get_recipe_names.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/uncountable/types/api/recipes/get_recipe_output_metadata.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/uncountable/types/api/recipes/get_recipes_data.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/uncountable/types/api/recipes/lock_recipes.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/uncountable/types/api/recipes/remove_recipe_from_project.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/uncountable/types/api/recipes/set_recipe_inputs.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/uncountable/types/api/recipes/set_recipe_metadata.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/uncountable/types/api/recipes/set_recipe_output_annotations.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/uncountable/types/api/recipes/set_recipe_output_file.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/uncountable/types/api/recipes/set_recipe_outputs.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/uncountable/types/api/recipes/set_recipe_tags.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/uncountable/types/api/recipes/unarchive_recipes.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/uncountable/types/api/recipes/unlock_recipes.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/uncountable/types/api/triggers/__init__.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/uncountable/types/api/triggers/run_trigger.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/uncountable/types/api/uploader/__init__.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/uncountable/types/api/uploader/invoke_uploader.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/uncountable/types/async_jobs.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/uncountable/types/async_jobs_t.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/uncountable/types/auth_retrieval.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/uncountable/types/auth_retrieval_t.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/uncountable/types/base.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/uncountable/types/base_t.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/uncountable/types/calculations.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/uncountable/types/calculations_t.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/uncountable/types/chemical_structure.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/uncountable/types/chemical_structure_t.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/uncountable/types/client_config.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/uncountable/types/client_config_t.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/uncountable/types/curves.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/uncountable/types/curves_t.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/uncountable/types/experiment_groups.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/uncountable/types/experiment_groups_t.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/uncountable/types/fields.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/uncountable/types/fields_t.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/uncountable/types/generic_upload.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/uncountable/types/generic_upload_t.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/uncountable/types/id_source.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/uncountable/types/id_source_t.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/uncountable/types/identifier.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/uncountable/types/identifier_t.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/uncountable/types/input_attributes.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/uncountable/types/input_attributes_t.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/uncountable/types/inputs.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/uncountable/types/inputs_t.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/uncountable/types/integration_server.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/uncountable/types/integration_server_t.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/uncountable/types/job_definition.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/uncountable/types/job_definition_t.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/uncountable/types/outputs.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/uncountable/types/outputs_t.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/uncountable/types/overrides.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/uncountable/types/overrides_t.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/uncountable/types/permissions.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/uncountable/types/permissions_t.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/uncountable/types/phases.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/uncountable/types/phases_t.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/uncountable/types/post_base.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/uncountable/types/post_base_t.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/uncountable/types/queued_job.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/uncountable/types/queued_job_t.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/uncountable/types/recipe_identifiers.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/uncountable/types/recipe_identifiers_t.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/uncountable/types/recipe_inputs.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/uncountable/types/recipe_inputs_t.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/uncountable/types/recipe_links.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/uncountable/types/recipe_links_t.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/uncountable/types/recipe_metadata.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/uncountable/types/recipe_metadata_t.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/uncountable/types/recipe_output_metadata.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/uncountable/types/recipe_output_metadata_t.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/uncountable/types/recipe_tags.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/uncountable/types/recipe_tags_t.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/uncountable/types/recipe_workflow_steps.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/uncountable/types/recipe_workflow_steps_t.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/uncountable/types/recipes.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/uncountable/types/recipes_t.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/uncountable/types/response.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/uncountable/types/response_t.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/uncountable/types/secret_retrieval.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/uncountable/types/secret_retrieval_t.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/uncountable/types/units.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/uncountable/types/units_t.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/uncountable/types/users.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/uncountable/types/users_t.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/uncountable/types/webhook_job.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/uncountable/types/webhook_job_t.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/uncountable/types/workflows.py +0 -0
- {uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/uncountable/types/workflows_t.py +0 -0
{uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/.github/workflows/documentation.yml
RENAMED
|
@@ -9,7 +9,7 @@ jobs:
|
|
|
9
9
|
docs:
|
|
10
10
|
runs-on: ubuntu-latest
|
|
11
11
|
steps:
|
|
12
|
-
- uses: actions/checkout@
|
|
12
|
+
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
|
|
13
13
|
- uses: actions/setup-python@82c7e631bb3cdc910f68e0081d67478d79c6982d # v5
|
|
14
14
|
- uses: extractions/setup-crate@4993624604c307fbca528d28a3c8b60fa5ecc859 # v1
|
|
15
15
|
with:
|
{uncountablepythonsdk-0.0.86/UncountablePythonSDK.egg-info → uncountablepythonsdk-0.0.88}/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.88
|
|
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
|
|
@@ -37,6 +37,7 @@ Requires-Dist: flask==3.*
|
|
|
37
37
|
Requires-Dist: simplejson==3.*
|
|
38
38
|
Requires-Dist: grpcio==1.67.1
|
|
39
39
|
Requires-Dist: protobuf>=4.21.1
|
|
40
|
+
Requires-Dist: azure-storage-blob==12.*
|
|
40
41
|
Provides-Extra: test
|
|
41
42
|
Requires-Dist: mypy==1.*; extra == "test"
|
|
42
43
|
Requires-Dist: ruff==0.*; extra == "test"
|
{uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88/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.88
|
|
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
|
|
@@ -37,6 +37,7 @@ Requires-Dist: flask==3.*
|
|
|
37
37
|
Requires-Dist: simplejson==3.*
|
|
38
38
|
Requires-Dist: grpcio==1.67.1
|
|
39
39
|
Requires-Dist: protobuf>=4.21.1
|
|
40
|
+
Requires-Dist: azure-storage-blob==12.*
|
|
40
41
|
Provides-Extra: test
|
|
41
42
|
Requires-Dist: mypy==1.*; extra == "test"
|
|
42
43
|
Requires-Dist: ruff==0.*; extra == "test"
|
|
@@ -43,6 +43,7 @@ pkgs/argument_parser/_is_namedtuple.py
|
|
|
43
43
|
pkgs/argument_parser/argument_parser.py
|
|
44
44
|
pkgs/argument_parser/case_convert.py
|
|
45
45
|
pkgs/filesystem_utils/__init__.py
|
|
46
|
+
pkgs/filesystem_utils/_blob_session.py
|
|
46
47
|
pkgs/filesystem_utils/_gdrive_session.py
|
|
47
48
|
pkgs/filesystem_utils/_local_session.py
|
|
48
49
|
pkgs/filesystem_utils/_s3_session.py
|
|
@@ -228,6 +229,7 @@ uncountable/types/api/entity/grant_entity_permissions.py
|
|
|
228
229
|
uncountable/types/api/entity/list_entities.py
|
|
229
230
|
uncountable/types/api/entity/lock_entity.py
|
|
230
231
|
uncountable/types/api/entity/resolve_entity_ids.py
|
|
232
|
+
uncountable/types/api/entity/set_entity_values.py
|
|
231
233
|
uncountable/types/api/entity/set_values.py
|
|
232
234
|
uncountable/types/api/entity/transition_entity_phase.py
|
|
233
235
|
uncountable/types/api/entity/unlock_entity.py
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
from io import BytesIO
|
|
2
|
+
|
|
3
|
+
from azure.storage.blob import BlobServiceClient, ContainerClient
|
|
4
|
+
|
|
5
|
+
from pkgs.filesystem_utils.file_type_utils import (
|
|
6
|
+
FileObjectData,
|
|
7
|
+
FileSystemBlobConfig,
|
|
8
|
+
FileSystemFileReference,
|
|
9
|
+
FileSystemObject,
|
|
10
|
+
FileTransfer,
|
|
11
|
+
IncompatibleFileReference,
|
|
12
|
+
)
|
|
13
|
+
|
|
14
|
+
from .filesystem_session import FileSystemSession
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
def _add_slash(prefix: str) -> str:
|
|
18
|
+
if len(prefix) > 0 and prefix[-1] != "/":
|
|
19
|
+
prefix = prefix + "/"
|
|
20
|
+
return prefix
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
class BlobSession(FileSystemSession):
|
|
24
|
+
config: FileSystemBlobConfig
|
|
25
|
+
|
|
26
|
+
def __init__(self, blob_config: FileSystemBlobConfig) -> None:
|
|
27
|
+
super().__init__()
|
|
28
|
+
self.config = blob_config
|
|
29
|
+
|
|
30
|
+
def start(self) -> None:
|
|
31
|
+
self.service_client: BlobServiceClient | None = BlobServiceClient(
|
|
32
|
+
self.config.account_url, credential=self.config.credential
|
|
33
|
+
)
|
|
34
|
+
self.container_client: ContainerClient | None = (
|
|
35
|
+
self.service_client.get_container_client(self.config.container)
|
|
36
|
+
)
|
|
37
|
+
|
|
38
|
+
def __enter__(self) -> "BlobSession":
|
|
39
|
+
self.start()
|
|
40
|
+
return self
|
|
41
|
+
|
|
42
|
+
def __exit__(self, exc_type: object, exc_val: object, exc_tb: object) -> None:
|
|
43
|
+
self.service_client = None
|
|
44
|
+
self.container_client = None
|
|
45
|
+
|
|
46
|
+
def list_files(
|
|
47
|
+
self,
|
|
48
|
+
dir_path: FileSystemObject,
|
|
49
|
+
*,
|
|
50
|
+
recursive: bool = False,
|
|
51
|
+
valid_extensions: list[str] | None = None,
|
|
52
|
+
) -> list[FileSystemObject]:
|
|
53
|
+
if not isinstance(dir_path, FileSystemFileReference):
|
|
54
|
+
raise IncompatibleFileReference()
|
|
55
|
+
|
|
56
|
+
assert self.service_client is not None and self.container_client is not None, (
|
|
57
|
+
"call to list_files on uninitialized blob session"
|
|
58
|
+
)
|
|
59
|
+
|
|
60
|
+
filesystem_file_references: list[FileSystemObject] = []
|
|
61
|
+
prefix = _add_slash(dir_path.filepath)
|
|
62
|
+
for blob in self.container_client.list_blobs(name_starts_with=prefix):
|
|
63
|
+
if not recursive and (
|
|
64
|
+
blob.name == prefix or "/" in blob.name[len(prefix) :]
|
|
65
|
+
):
|
|
66
|
+
continue
|
|
67
|
+
if valid_extensions is None or any(
|
|
68
|
+
blob.name.endswith(valid_extension)
|
|
69
|
+
for valid_extension in valid_extensions
|
|
70
|
+
):
|
|
71
|
+
filesystem_file_references.append(
|
|
72
|
+
FileSystemFileReference(
|
|
73
|
+
filepath=blob.name,
|
|
74
|
+
)
|
|
75
|
+
)
|
|
76
|
+
|
|
77
|
+
return filesystem_file_references
|
|
78
|
+
|
|
79
|
+
def download_files(
|
|
80
|
+
self,
|
|
81
|
+
filepaths: list[FileSystemObject],
|
|
82
|
+
) -> list[FileObjectData]:
|
|
83
|
+
downloaded_files: list[FileObjectData] = []
|
|
84
|
+
assert self.service_client is not None and self.container_client is not None, (
|
|
85
|
+
"call to download_files on uninitialized blob session"
|
|
86
|
+
)
|
|
87
|
+
|
|
88
|
+
for file_object in filepaths:
|
|
89
|
+
if (
|
|
90
|
+
not isinstance(file_object, FileSystemFileReference)
|
|
91
|
+
or file_object.filename is None
|
|
92
|
+
):
|
|
93
|
+
raise IncompatibleFileReference()
|
|
94
|
+
|
|
95
|
+
blob_client = self.container_client.get_blob_client(file_object.filepath)
|
|
96
|
+
download_stream = blob_client.download_blob()
|
|
97
|
+
file_data = download_stream.readall()
|
|
98
|
+
downloaded_files.append(
|
|
99
|
+
FileObjectData(
|
|
100
|
+
file_data=file_data,
|
|
101
|
+
file_IO=BytesIO(file_data),
|
|
102
|
+
filename=file_object.filename,
|
|
103
|
+
filepath=file_object.filepath,
|
|
104
|
+
)
|
|
105
|
+
)
|
|
106
|
+
|
|
107
|
+
return downloaded_files
|
|
108
|
+
|
|
109
|
+
def move_files(self, file_mappings: list[FileTransfer]) -> None:
|
|
110
|
+
assert self.service_client is not None and self.container_client is not None, (
|
|
111
|
+
"call to move_files on uninitialized blob session"
|
|
112
|
+
)
|
|
113
|
+
|
|
114
|
+
for src_file, dest_file in file_mappings:
|
|
115
|
+
if not isinstance(src_file, FileSystemFileReference) or not isinstance(
|
|
116
|
+
dest_file, FileSystemFileReference
|
|
117
|
+
):
|
|
118
|
+
raise IncompatibleFileReference()
|
|
119
|
+
|
|
120
|
+
source_blob_client = self.container_client.get_blob_client(
|
|
121
|
+
src_file.filepath
|
|
122
|
+
)
|
|
123
|
+
dest_blob_client = self.container_client.get_blob_client(dest_file.filepath)
|
|
124
|
+
|
|
125
|
+
dest_blob_client.start_copy_from_url(source_blob_client.url)
|
|
126
|
+
source_blob_client.delete_blob()
|
|
127
|
+
|
|
128
|
+
def delete_files(self, filepaths: list[FileSystemObject]) -> None:
|
|
129
|
+
assert self.service_client is not None and self.container_client is not None, (
|
|
130
|
+
"call to delete_files on uninitialized blob session"
|
|
131
|
+
)
|
|
132
|
+
for file_object in filepaths:
|
|
133
|
+
if not isinstance(file_object, FileSystemFileReference):
|
|
134
|
+
raise IncompatibleFileReference()
|
|
135
|
+
|
|
136
|
+
blob_client = self.container_client.get_blob_client(file_object.filepath)
|
|
137
|
+
blob_client.delete_blob()
|
{uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/pkgs/filesystem_utils/file_type_utils.py
RENAMED
|
@@ -4,6 +4,12 @@ from io import BytesIO
|
|
|
4
4
|
from typing import Optional, Union
|
|
5
5
|
|
|
6
6
|
import paramiko
|
|
7
|
+
from azure.core.credentials import (
|
|
8
|
+
AzureNamedKeyCredential,
|
|
9
|
+
AzureSasCredential,
|
|
10
|
+
TokenCredential,
|
|
11
|
+
)
|
|
12
|
+
from azure.storage.blob import ContainerProperties
|
|
7
13
|
|
|
8
14
|
|
|
9
15
|
@dataclass
|
|
@@ -69,3 +75,17 @@ class FileSystemS3Config:
|
|
|
69
75
|
access_key_id: Optional[str]
|
|
70
76
|
secret_access_key: Optional[str]
|
|
71
77
|
session_token: Optional[str]
|
|
78
|
+
|
|
79
|
+
|
|
80
|
+
@dataclass(kw_only=True)
|
|
81
|
+
class FileSystemBlobConfig:
|
|
82
|
+
account_url: str
|
|
83
|
+
credential: (
|
|
84
|
+
str
|
|
85
|
+
| dict[str, str]
|
|
86
|
+
| AzureNamedKeyCredential
|
|
87
|
+
| AzureSasCredential
|
|
88
|
+
| TokenCredential
|
|
89
|
+
| None
|
|
90
|
+
)
|
|
91
|
+
container: ContainerProperties | str
|
|
@@ -1148,13 +1148,15 @@ def _create_api_function(
|
|
|
1148
1148
|
|
|
1149
1149
|
ruff_requires_wrap = len(endpoint.path_basename) > 14
|
|
1150
1150
|
|
|
1151
|
+
account_type = endpoint.root if endpoint.root != "external" else "materials"
|
|
1152
|
+
|
|
1151
1153
|
api_out.write(
|
|
1152
1154
|
f"""import {api_import} as api
|
|
1153
1155
|
from main.db.session import Session, SessionMaker
|
|
1154
1156
|
from main.site.decorators import APIError, APIResponse, {validated_method}
|
|
1155
1157
|
|
|
1156
1158
|
|
|
1157
|
-
@{validated_method}(api.ENDPOINT_PATH, "{
|
|
1159
|
+
@{validated_method}(api.ENDPOINT_PATH, "{account_type}", api.Arguments)
|
|
1158
1160
|
def {endpoint.path_basename}({WRAP_ARGS_START if ruff_requires_wrap else ""}args: api.Arguments, client_sm: SessionMaker{WRAP_ARGS_END if ruff_requires_wrap else ""}) -> APIResponse[api.Data]:
|
|
1159
1161
|
with Session(client_sm) as session:
|
|
1160
1162
|
# return APIResponse(data=api.Data())
|
{uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/pkgs/type_spec/emit_typescript_util.py
RENAMED
|
@@ -82,9 +82,11 @@ def emit_value_ts(
|
|
|
82
82
|
return (
|
|
83
83
|
"{\n\t"
|
|
84
84
|
+ ",\n\t".join(
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
85
|
+
(
|
|
86
|
+
f"[{emit_value_ts(ctx, key_type, dkey)}]: "
|
|
87
|
+
if not key_type.is_base_type(builder.BaseTypeName.s_string)
|
|
88
|
+
else f"{dkey}: "
|
|
89
|
+
)
|
|
88
90
|
+ emit_value_ts(ctx, value_type, dvalue)
|
|
89
91
|
for dkey, dvalue in value.items()
|
|
90
92
|
)
|
|
@@ -61,15 +61,16 @@ dependencies = [
|
|
|
61
61
|
"tqdm == 4.*",
|
|
62
62
|
"pysftp == 0.*",
|
|
63
63
|
"opentelemetry-api==1.*",
|
|
64
|
-
"opentelemetry-exporter-otlp-proto-common==1.*",
|
|
65
|
-
"opentelemetry-exporter-otlp-proto-http==1.*",
|
|
64
|
+
"opentelemetry-exporter-otlp-proto-common==1.*",
|
|
65
|
+
"opentelemetry-exporter-otlp-proto-http==1.*",
|
|
66
66
|
"opentelemetry-sdk==1.*",
|
|
67
67
|
"paramiko == 3.*",
|
|
68
68
|
"boto3 == 1.*",
|
|
69
69
|
"flask == 3.*",
|
|
70
70
|
"simplejson == 3.*",
|
|
71
71
|
"grpcio == 1.67.1",
|
|
72
|
-
"protobuf >= 4.21.1"
|
|
72
|
+
"protobuf >= 4.21.1",
|
|
73
|
+
"azure-storage-blob == 12.*"
|
|
73
74
|
]
|
|
74
75
|
dynamic = ["version"]
|
|
75
76
|
|
|
@@ -71,16 +71,24 @@ class APIResponseError(Exception):
|
|
|
71
71
|
extra_details: dict[str, JsonValue] | None
|
|
72
72
|
|
|
73
73
|
def __init__(
|
|
74
|
-
self,
|
|
74
|
+
self,
|
|
75
|
+
status_code: int,
|
|
76
|
+
message: str,
|
|
77
|
+
extra_details: dict[str, JsonValue] | None,
|
|
78
|
+
request_id: str,
|
|
75
79
|
) -> None:
|
|
76
80
|
super().__init__(status_code, message, extra_details)
|
|
77
81
|
self.status_code = status_code
|
|
78
82
|
self.message = message
|
|
79
83
|
self.extra_details = extra_details
|
|
84
|
+
self.request_id = request_id
|
|
80
85
|
|
|
81
86
|
@classmethod
|
|
82
87
|
def construct_error(
|
|
83
|
-
cls,
|
|
88
|
+
cls,
|
|
89
|
+
status_code: int,
|
|
90
|
+
extra_details: dict[str, JsonValue] | None,
|
|
91
|
+
request_id: str,
|
|
84
92
|
) -> "APIResponseError":
|
|
85
93
|
message: str
|
|
86
94
|
match status_code:
|
|
@@ -103,9 +111,21 @@ class APIResponseError(Exception):
|
|
|
103
111
|
case _:
|
|
104
112
|
message = "unknown error"
|
|
105
113
|
return APIResponseError(
|
|
106
|
-
status_code=status_code,
|
|
114
|
+
status_code=status_code,
|
|
115
|
+
message=message,
|
|
116
|
+
extra_details=extra_details,
|
|
117
|
+
request_id=request_id,
|
|
107
118
|
)
|
|
108
119
|
|
|
120
|
+
def __str__(self) -> str:
|
|
121
|
+
details_obj = {
|
|
122
|
+
"request_id": self.request_id,
|
|
123
|
+
"status_code": self.status_code,
|
|
124
|
+
"extra_details": self.extra_details,
|
|
125
|
+
}
|
|
126
|
+
details = json.dumps(details_obj)
|
|
127
|
+
return f"API response error ({self.status_code}): '{self.message}'. Details: {details}"
|
|
128
|
+
|
|
109
129
|
|
|
110
130
|
class SDKError(Exception):
|
|
111
131
|
message: str
|
|
@@ -174,7 +194,9 @@ class Client(ClientMethods):
|
|
|
174
194
|
except JSONDecodeError:
|
|
175
195
|
pass
|
|
176
196
|
raise APIResponseError.construct_error(
|
|
177
|
-
status_code=response.status_code,
|
|
197
|
+
status_code=response.status_code,
|
|
198
|
+
extra_details=extra_details,
|
|
199
|
+
request_id=request_id,
|
|
178
200
|
)
|
|
179
201
|
try:
|
|
180
202
|
return typing.cast(dict[str, JsonValue], response.json())
|
|
@@ -106,7 +106,10 @@ async def start_scheduler(command_queue: CommandQueue) -> None:
|
|
|
106
106
|
) -> str:
|
|
107
107
|
if isinstance(
|
|
108
108
|
payload.invocation_context,
|
|
109
|
-
|
|
109
|
+
(
|
|
110
|
+
queued_job_t.InvocationContextCron,
|
|
111
|
+
queued_job_t.InvocationContextManual,
|
|
112
|
+
),
|
|
110
113
|
):
|
|
111
114
|
existing_queued_jobs = datastore.load_job_queue()
|
|
112
115
|
duplicate_job = next(
|
|
@@ -85,6 +85,7 @@ from . import response_t as response_t
|
|
|
85
85
|
from .api.triggers import run_trigger as run_trigger_t
|
|
86
86
|
from . import secret_retrieval_t as secret_retrieval_t
|
|
87
87
|
from .api.permissions import set_core_permissions as set_core_permissions_t
|
|
88
|
+
from .api.entity import set_entity_values as set_entity_values_t
|
|
88
89
|
from .api.inputs import set_input_attribute_values as set_input_attribute_values_t
|
|
89
90
|
from .api.inputs import set_input_category as set_input_category_t
|
|
90
91
|
from .api.inputs import set_input_subcategories as set_input_subcategories_t
|
|
@@ -191,6 +192,7 @@ __all__: list[str] = [
|
|
|
191
192
|
"run_trigger_t",
|
|
192
193
|
"secret_retrieval_t",
|
|
193
194
|
"set_core_permissions_t",
|
|
195
|
+
"set_entity_values_t",
|
|
194
196
|
"set_input_attribute_values_t",
|
|
195
197
|
"set_input_category_t",
|
|
196
198
|
"set_input_subcategories_t",
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
2
|
+
# flake8: noqa: F821
|
|
3
|
+
# ruff: noqa: E402 Q003
|
|
4
|
+
# fmt: off
|
|
5
|
+
# isort: skip_file
|
|
6
|
+
from __future__ import annotations
|
|
7
|
+
import typing # noqa: F401
|
|
8
|
+
import datetime # noqa: F401
|
|
9
|
+
from decimal import Decimal # noqa: F401
|
|
10
|
+
import dataclasses
|
|
11
|
+
from pkgs.serialization import serial_class
|
|
12
|
+
from ... import async_batch_t
|
|
13
|
+
from ... import entity_t
|
|
14
|
+
from ... import field_values_t
|
|
15
|
+
|
|
16
|
+
__all__: list[str] = [
|
|
17
|
+
"Arguments",
|
|
18
|
+
"Data",
|
|
19
|
+
"ENDPOINT_METHOD",
|
|
20
|
+
"ENDPOINT_PATH",
|
|
21
|
+
]
|
|
22
|
+
|
|
23
|
+
ENDPOINT_METHOD = "POST"
|
|
24
|
+
ENDPOINT_PATH = "api/external/entity/set_entity_values"
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
28
|
+
@serial_class(
|
|
29
|
+
named_type_path="sdk.api.entity.set_entity_values.Arguments",
|
|
30
|
+
)
|
|
31
|
+
@dataclasses.dataclass(kw_only=True)
|
|
32
|
+
class Arguments:
|
|
33
|
+
entity_identifier: entity_t.EntityIdentifier
|
|
34
|
+
field_values: list[field_values_t.FieldArgumentValue]
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
38
|
+
@serial_class(
|
|
39
|
+
named_type_path="sdk.api.entity.set_entity_values.Data",
|
|
40
|
+
)
|
|
41
|
+
@dataclasses.dataclass(kw_only=True)
|
|
42
|
+
class Data(async_batch_t.AsyncBatchActionReturn):
|
|
43
|
+
pass
|
|
44
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
{uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/uncountable/types/async_batch.py
RENAMED
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
# Kept only for SDK backwards compatibility
|
|
7
7
|
from .async_batch_t import AsyncBatchRequestPath as AsyncBatchRequestPath
|
|
8
8
|
from .async_batch_t import AsyncBatchRequest as AsyncBatchRequest
|
|
9
|
+
from .async_batch_t import AsyncBatchResultValue as AsyncBatchResultValue
|
|
9
10
|
from .async_batch_t import AsyncBatchActionReturn as AsyncBatchActionReturn
|
|
10
11
|
from .async_batch_t import SavedAsyncBatchActionReturn as SavedAsyncBatchActionReturn
|
|
11
12
|
from .async_batch_t import QueuedAsyncBatchRequest as QueuedAsyncBatchRequest
|
|
@@ -16,6 +16,7 @@ import uncountable.types.api.recipes.clear_recipe_outputs as clear_recipe_output
|
|
|
16
16
|
import uncountable.types.api.recipes.create_recipe as create_recipe_t
|
|
17
17
|
import uncountable.types.api.recipes.edit_recipe_inputs as edit_recipe_inputs_t
|
|
18
18
|
from uncountable.types import entity_t
|
|
19
|
+
from uncountable.types import field_values_t
|
|
19
20
|
from uncountable.types import generic_upload_t
|
|
20
21
|
import uncountable.types.api.entity.grant_entity_permissions as grant_entity_permissions_t
|
|
21
22
|
from uncountable.types import identifier_t
|
|
@@ -23,6 +24,7 @@ import uncountable.types.api.uploader.invoke_uploader as invoke_uploader_t
|
|
|
23
24
|
from uncountable.types import recipe_identifiers_t
|
|
24
25
|
from uncountable.types import recipe_metadata_t
|
|
25
26
|
from uncountable.types import recipe_workflow_steps_t
|
|
27
|
+
import uncountable.types.api.entity.set_entity_values as set_entity_values_t
|
|
26
28
|
import uncountable.types.api.recipes.set_recipe_metadata as set_recipe_metadata_t
|
|
27
29
|
import uuid
|
|
28
30
|
from abc import ABC, abstractmethod
|
|
@@ -311,6 +313,41 @@ class AsyncBatchProcessorBase(ABC):
|
|
|
311
313
|
batch_reference=req.batch_reference,
|
|
312
314
|
)
|
|
313
315
|
|
|
316
|
+
def set_entity_values(
|
|
317
|
+
self,
|
|
318
|
+
*,
|
|
319
|
+
entity_identifier: entity_t.EntityIdentifier,
|
|
320
|
+
field_values: list[field_values_t.FieldArgumentValue],
|
|
321
|
+
depends_on: typing.Optional[list[str]] = None,
|
|
322
|
+
) -> async_batch_t.QueuedAsyncBatchRequest:
|
|
323
|
+
"""Sets field values for an entity
|
|
324
|
+
|
|
325
|
+
:param entity_identifier: Entity to update
|
|
326
|
+
:param field_values: Field values to set
|
|
327
|
+
:param depends_on: A list of batch reference keys to process before processing this request
|
|
328
|
+
"""
|
|
329
|
+
args = set_entity_values_t.Arguments(
|
|
330
|
+
entity_identifier=entity_identifier,
|
|
331
|
+
field_values=field_values,
|
|
332
|
+
)
|
|
333
|
+
json_data = serialize_for_api(args)
|
|
334
|
+
|
|
335
|
+
batch_reference = str(uuid.uuid4())
|
|
336
|
+
|
|
337
|
+
req = async_batch_t.AsyncBatchRequest(
|
|
338
|
+
path=async_batch_t.AsyncBatchRequestPath.SET_ENTITY_VALUES,
|
|
339
|
+
data=json_data,
|
|
340
|
+
depends_on=depends_on,
|
|
341
|
+
batch_reference=batch_reference,
|
|
342
|
+
)
|
|
343
|
+
|
|
344
|
+
self._enqueue(req)
|
|
345
|
+
|
|
346
|
+
return async_batch_t.QueuedAsyncBatchRequest(
|
|
347
|
+
path=req.path,
|
|
348
|
+
batch_reference=req.batch_reference,
|
|
349
|
+
)
|
|
350
|
+
|
|
314
351
|
def set_recipe_metadata(
|
|
315
352
|
self,
|
|
316
353
|
*,
|
{uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/uncountable/types/async_batch_t.py
RENAMED
|
@@ -11,11 +11,13 @@ from pkgs.strenum_compat import StrEnum
|
|
|
11
11
|
import dataclasses
|
|
12
12
|
from pkgs.serialization import serial_class
|
|
13
13
|
from . import base_t
|
|
14
|
+
from . import entity_t
|
|
14
15
|
|
|
15
16
|
__all__: list[str] = [
|
|
16
17
|
"AsyncBatchActionReturn",
|
|
17
18
|
"AsyncBatchRequest",
|
|
18
19
|
"AsyncBatchRequestPath",
|
|
20
|
+
"AsyncBatchResultValue",
|
|
19
21
|
"QueuedAsyncBatchRequest",
|
|
20
22
|
"SavedAsyncBatchActionReturn",
|
|
21
23
|
]
|
|
@@ -35,6 +37,7 @@ class AsyncBatchRequestPath(StrEnum):
|
|
|
35
37
|
ASSOCIATE_RECIPE_AS_INPUT = "recipes/associate_recipe_as_input"
|
|
36
38
|
CLEAR_RECIPE_OUTPUTS = "recipes/clear_recipe_outputs"
|
|
37
39
|
GRANT_ENTITY_PERMISSIONS = "entity/grant_entity_permissions"
|
|
40
|
+
SET_ENTITY_VALUES = "entity/set_entity_values"
|
|
38
41
|
|
|
39
42
|
|
|
40
43
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
@@ -50,6 +53,17 @@ class AsyncBatchRequest:
|
|
|
50
53
|
depends_on: typing.Optional[list[str]] = None
|
|
51
54
|
|
|
52
55
|
|
|
56
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
57
|
+
@serial_class(
|
|
58
|
+
named_type_path="sdk.async_batch.AsyncBatchResultValue",
|
|
59
|
+
unconverted_values={"value"},
|
|
60
|
+
)
|
|
61
|
+
@dataclasses.dataclass(kw_only=True)
|
|
62
|
+
class AsyncBatchResultValue:
|
|
63
|
+
data_key: str
|
|
64
|
+
value: base_t.JsonValue
|
|
65
|
+
|
|
66
|
+
|
|
53
67
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
54
68
|
@serial_class(
|
|
55
69
|
named_type_path="sdk.async_batch.AsyncBatchActionReturn",
|
|
@@ -58,6 +72,8 @@ class AsyncBatchRequest:
|
|
|
58
72
|
class AsyncBatchActionReturn:
|
|
59
73
|
modification_made: bool
|
|
60
74
|
result_id: typing.Optional[base_t.ObjectId] = None
|
|
75
|
+
entity: typing.Optional[entity_t.Entity] = None
|
|
76
|
+
result_values: typing.Optional[list[AsyncBatchResultValue]] = None
|
|
61
77
|
|
|
62
78
|
|
|
63
79
|
# DO NOT MODIFY -- This file is generated by type_spec
|
{uncountablepythonsdk-0.0.86 → uncountablepythonsdk-0.0.88}/uncountable/types/client_base.py
RENAMED
|
@@ -69,6 +69,7 @@ import uncountable.types.api.entity.resolve_entity_ids as resolve_entity_ids_t
|
|
|
69
69
|
import uncountable.types.api.outputs.resolve_output_conditions as resolve_output_conditions_t
|
|
70
70
|
import uncountable.types.api.triggers.run_trigger as run_trigger_t
|
|
71
71
|
import uncountable.types.api.permissions.set_core_permissions as set_core_permissions_t
|
|
72
|
+
import uncountable.types.api.entity.set_entity_values as set_entity_values_t
|
|
72
73
|
import uncountable.types.api.inputs.set_input_attribute_values as set_input_attribute_values_t
|
|
73
74
|
import uncountable.types.api.inputs.set_input_category as set_input_category_t
|
|
74
75
|
import uncountable.types.api.inputs.set_input_subcategories as set_input_subcategories_t
|
|
@@ -1232,6 +1233,28 @@ class ClientMethods(ABC):
|
|
|
1232
1233
|
)
|
|
1233
1234
|
return self.do_request(api_request=api_request, return_type=set_core_permissions_t.Data)
|
|
1234
1235
|
|
|
1236
|
+
def set_entity_values(
|
|
1237
|
+
self,
|
|
1238
|
+
*,
|
|
1239
|
+
entity_identifier: entity_t.EntityIdentifier,
|
|
1240
|
+
field_values: list[field_values_t.FieldArgumentValue],
|
|
1241
|
+
) -> set_entity_values_t.Data:
|
|
1242
|
+
"""Sets field values for an entity
|
|
1243
|
+
|
|
1244
|
+
:param entity_identifier: Entity to update
|
|
1245
|
+
:param field_values: Field values to set
|
|
1246
|
+
"""
|
|
1247
|
+
args = set_entity_values_t.Arguments(
|
|
1248
|
+
entity_identifier=entity_identifier,
|
|
1249
|
+
field_values=field_values,
|
|
1250
|
+
)
|
|
1251
|
+
api_request = APIRequest(
|
|
1252
|
+
method=set_entity_values_t.ENDPOINT_METHOD,
|
|
1253
|
+
endpoint=set_entity_values_t.ENDPOINT_PATH,
|
|
1254
|
+
args=args,
|
|
1255
|
+
)
|
|
1256
|
+
return self.do_request(api_request=api_request, return_type=set_entity_values_t.Data)
|
|
1257
|
+
|
|
1235
1258
|
def set_input_attribute_values(
|
|
1236
1259
|
self,
|
|
1237
1260
|
*,
|
|
@@ -9,4 +9,5 @@ from .entity_t import LimitedEntityType as LimitedEntityType
|
|
|
9
9
|
from .entity_t import EntityPermissionType as EntityPermissionType
|
|
10
10
|
from .entity_t import GrantableEntityPermissionType as GrantableEntityPermissionType
|
|
11
11
|
from .entity_t import Entity as Entity
|
|
12
|
+
from .entity_t import EntityIdentifier as EntityIdentifier
|
|
12
13
|
# DO NOT MODIFY -- This file is generated by type_spec
|