uipath 2.0.68__tar.gz → 2.0.70__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 uipath might be problematic. Click here for more details.
- {uipath-2.0.68 → uipath-2.0.70}/PKG-INFO +1 -1
- {uipath-2.0.68 → uipath-2.0.70}/pyproject.toml +1 -1
- {uipath-2.0.68 → uipath-2.0.70}/src/uipath/_cli/cli_pack.py +1 -1
- {uipath-2.0.68 → uipath-2.0.70}/src/uipath/_services/buckets_service.py +34 -10
- {uipath-2.0.68 → uipath-2.0.70}/src/uipath/_services/context_grounding_service.py +15 -8
- {uipath-2.0.68 → uipath-2.0.70}/tests/sdk/services/test_buckets_service.py +0 -1
- {uipath-2.0.68 → uipath-2.0.70}/uv.lock +1 -1
- {uipath-2.0.68 → uipath-2.0.70}/.cursorrules +0 -0
- {uipath-2.0.68 → uipath-2.0.70}/.editorconfig +0 -0
- {uipath-2.0.68 → uipath-2.0.70}/.gitattributes +0 -0
- {uipath-2.0.68 → uipath-2.0.70}/.github/workflows/cd.yml +0 -0
- {uipath-2.0.68 → uipath-2.0.70}/.github/workflows/ci.yml +0 -0
- {uipath-2.0.68 → uipath-2.0.70}/.github/workflows/commitlint.yml +0 -0
- {uipath-2.0.68 → uipath-2.0.70}/.github/workflows/lint.yml +0 -0
- {uipath-2.0.68 → uipath-2.0.70}/.github/workflows/publish-dev.yml +0 -0
- {uipath-2.0.68 → uipath-2.0.70}/.github/workflows/publish-docs.yml +0 -0
- {uipath-2.0.68 → uipath-2.0.70}/.github/workflows/slack.yml +0 -0
- {uipath-2.0.68 → uipath-2.0.70}/.github/workflows/test.yml +0 -0
- {uipath-2.0.68 → uipath-2.0.70}/.gitignore +0 -0
- {uipath-2.0.68 → uipath-2.0.70}/.pre-commit-config.yaml +0 -0
- {uipath-2.0.68 → uipath-2.0.70}/.python-version +0 -0
- {uipath-2.0.68 → uipath-2.0.70}/.vscode/extensions.json +0 -0
- {uipath-2.0.68 → uipath-2.0.70}/.vscode/launch.json +0 -0
- {uipath-2.0.68 → uipath-2.0.70}/.vscode/settings.json +0 -0
- {uipath-2.0.68 → uipath-2.0.70}/CONTRIBUTING.md +0 -0
- {uipath-2.0.68 → uipath-2.0.70}/LICENSE +0 -0
- {uipath-2.0.68 → uipath-2.0.70}/README.md +0 -0
- {uipath-2.0.68 → uipath-2.0.70}/docs/CONTRIBUTING.md +0 -0
- {uipath-2.0.68 → uipath-2.0.70}/docs/FAQ.md +0 -0
- {uipath-2.0.68 → uipath-2.0.70}/docs/assets/env-preparation-failed-dark.png +0 -0
- {uipath-2.0.68 → uipath-2.0.70}/docs/assets/env-preparation-failed-light.png +0 -0
- {uipath-2.0.68 → uipath-2.0.70}/docs/assets/favicon.png +0 -0
- {uipath-2.0.68 → uipath-2.0.70}/docs/assets/logo-dark.svg +0 -0
- {uipath-2.0.68 → uipath-2.0.70}/docs/assets/logo-light.svg +0 -0
- {uipath-2.0.68 → uipath-2.0.70}/docs/cli/index.md +0 -0
- {uipath-2.0.68 → uipath-2.0.70}/docs/core/actions.md +0 -0
- {uipath-2.0.68 → uipath-2.0.70}/docs/core/assets/cloud_env_var_dark.gif +0 -0
- {uipath-2.0.68 → uipath-2.0.70}/docs/core/assets/cloud_env_var_light.gif +0 -0
- {uipath-2.0.68 → uipath-2.0.70}/docs/core/assets/cloud_env_var_secret_dark.png +0 -0
- {uipath-2.0.68 → uipath-2.0.70}/docs/core/assets/cloud_env_var_secret_light.png +0 -0
- {uipath-2.0.68 → uipath-2.0.70}/docs/core/assets/copy_path_dark.png +0 -0
- {uipath-2.0.68 → uipath-2.0.70}/docs/core/assets/copy_path_light.png +0 -0
- {uipath-2.0.68 → uipath-2.0.70}/docs/core/assets.md +0 -0
- {uipath-2.0.68 → uipath-2.0.70}/docs/core/attachments.md +0 -0
- {uipath-2.0.68 → uipath-2.0.70}/docs/core/buckets.md +0 -0
- {uipath-2.0.68 → uipath-2.0.70}/docs/core/connections.md +0 -0
- {uipath-2.0.68 → uipath-2.0.70}/docs/core/context_grounding.md +0 -0
- {uipath-2.0.68 → uipath-2.0.70}/docs/core/environment_variables.md +0 -0
- {uipath-2.0.68 → uipath-2.0.70}/docs/core/getting_started.md +0 -0
- {uipath-2.0.68 → uipath-2.0.70}/docs/core/jobs.md +0 -0
- {uipath-2.0.68 → uipath-2.0.70}/docs/core/processes.md +0 -0
- {uipath-2.0.68 → uipath-2.0.70}/docs/core/queues.md +0 -0
- {uipath-2.0.68 → uipath-2.0.70}/docs/core/traced.md +0 -0
- {uipath-2.0.68 → uipath-2.0.70}/docs/hooks.py +0 -0
- {uipath-2.0.68 → uipath-2.0.70}/docs/javascripts/extra.js +0 -0
- {uipath-2.0.68 → uipath-2.0.70}/docs/langchain/chat_models.md +0 -0
- {uipath-2.0.68 → uipath-2.0.70}/docs/langchain/context_grounding.md +0 -0
- {uipath-2.0.68 → uipath-2.0.70}/docs/langchain/human_in_the_loop.md +0 -0
- {uipath-2.0.68 → uipath-2.0.70}/docs/overrides/main.html +0 -0
- {uipath-2.0.68 → uipath-2.0.70}/docs/overrides/partials/actions.html +0 -0
- {uipath-2.0.68 → uipath-2.0.70}/docs/overrides/partials/logo.html +0 -0
- {uipath-2.0.68 → uipath-2.0.70}/docs/release_policy.md +0 -0
- {uipath-2.0.68 → uipath-2.0.70}/docs/stylesheets/extra.css +0 -0
- {uipath-2.0.68 → uipath-2.0.70}/justfile +0 -0
- {uipath-2.0.68 → uipath-2.0.70}/mkdocs.yml +0 -0
- {uipath-2.0.68 → uipath-2.0.70}/py.typed +0 -0
- {uipath-2.0.68 → uipath-2.0.70}/src/uipath/__init__.py +0 -0
- {uipath-2.0.68 → uipath-2.0.70}/src/uipath/_cli/README.md +0 -0
- {uipath-2.0.68 → uipath-2.0.70}/src/uipath/_cli/__init__.py +0 -0
- {uipath-2.0.68 → uipath-2.0.70}/src/uipath/_cli/_auth/_auth_server.py +0 -0
- {uipath-2.0.68 → uipath-2.0.70}/src/uipath/_cli/_auth/_models.py +0 -0
- {uipath-2.0.68 → uipath-2.0.70}/src/uipath/_cli/_auth/_oidc_utils.py +0 -0
- {uipath-2.0.68 → uipath-2.0.70}/src/uipath/_cli/_auth/_portal_service.py +0 -0
- {uipath-2.0.68 → uipath-2.0.70}/src/uipath/_cli/_auth/_utils.py +0 -0
- {uipath-2.0.68 → uipath-2.0.70}/src/uipath/_cli/_auth/auth_config.json +0 -0
- {uipath-2.0.68 → uipath-2.0.70}/src/uipath/_cli/_auth/index.html +0 -0
- {uipath-2.0.68 → uipath-2.0.70}/src/uipath/_cli/_auth/localhost.crt +0 -0
- {uipath-2.0.68 → uipath-2.0.70}/src/uipath/_cli/_auth/localhost.key +0 -0
- {uipath-2.0.68 → uipath-2.0.70}/src/uipath/_cli/_runtime/_contracts.py +0 -0
- {uipath-2.0.68 → uipath-2.0.70}/src/uipath/_cli/_runtime/_escalation.py +0 -0
- {uipath-2.0.68 → uipath-2.0.70}/src/uipath/_cli/_runtime/_hitl.py +0 -0
- {uipath-2.0.68 → uipath-2.0.70}/src/uipath/_cli/_runtime/_logging.py +0 -0
- {uipath-2.0.68 → uipath-2.0.70}/src/uipath/_cli/_runtime/_runtime.py +0 -0
- {uipath-2.0.68 → uipath-2.0.70}/src/uipath/_cli/_templates/.psmdcp.template +0 -0
- {uipath-2.0.68 → uipath-2.0.70}/src/uipath/_cli/_templates/.rels.template +0 -0
- {uipath-2.0.68 → uipath-2.0.70}/src/uipath/_cli/_templates/[Content_Types].xml.template +0 -0
- {uipath-2.0.68 → uipath-2.0.70}/src/uipath/_cli/_templates/main.py.template +0 -0
- {uipath-2.0.68 → uipath-2.0.70}/src/uipath/_cli/_templates/package.nuspec.template +0 -0
- {uipath-2.0.68 → uipath-2.0.70}/src/uipath/_cli/_utils/_common.py +0 -0
- {uipath-2.0.68 → uipath-2.0.70}/src/uipath/_cli/_utils/_console.py +0 -0
- {uipath-2.0.68 → uipath-2.0.70}/src/uipath/_cli/_utils/_constants.py +0 -0
- {uipath-2.0.68 → uipath-2.0.70}/src/uipath/_cli/_utils/_debug.py +0 -0
- {uipath-2.0.68 → uipath-2.0.70}/src/uipath/_cli/_utils/_folders.py +0 -0
- {uipath-2.0.68 → uipath-2.0.70}/src/uipath/_cli/_utils/_input_args.py +0 -0
- {uipath-2.0.68 → uipath-2.0.70}/src/uipath/_cli/_utils/_parse_ast.py +0 -0
- {uipath-2.0.68 → uipath-2.0.70}/src/uipath/_cli/_utils/_processes.py +0 -0
- {uipath-2.0.68 → uipath-2.0.70}/src/uipath/_cli/_utils/_tracing.py +0 -0
- {uipath-2.0.68 → uipath-2.0.70}/src/uipath/_cli/cli_auth.py +0 -0
- {uipath-2.0.68 → uipath-2.0.70}/src/uipath/_cli/cli_deploy.py +0 -0
- {uipath-2.0.68 → uipath-2.0.70}/src/uipath/_cli/cli_init.py +0 -0
- {uipath-2.0.68 → uipath-2.0.70}/src/uipath/_cli/cli_invoke.py +0 -0
- {uipath-2.0.68 → uipath-2.0.70}/src/uipath/_cli/cli_new.py +0 -0
- {uipath-2.0.68 → uipath-2.0.70}/src/uipath/_cli/cli_publish.py +0 -0
- {uipath-2.0.68 → uipath-2.0.70}/src/uipath/_cli/cli_run.py +0 -0
- {uipath-2.0.68 → uipath-2.0.70}/src/uipath/_cli/middlewares.py +0 -0
- {uipath-2.0.68 → uipath-2.0.70}/src/uipath/_cli/spinner.py +0 -0
- {uipath-2.0.68 → uipath-2.0.70}/src/uipath/_config.py +0 -0
- {uipath-2.0.68 → uipath-2.0.70}/src/uipath/_execution_context.py +0 -0
- {uipath-2.0.68 → uipath-2.0.70}/src/uipath/_folder_context.py +0 -0
- {uipath-2.0.68 → uipath-2.0.70}/src/uipath/_services/__init__.py +0 -0
- {uipath-2.0.68 → uipath-2.0.70}/src/uipath/_services/_base_service.py +0 -0
- {uipath-2.0.68 → uipath-2.0.70}/src/uipath/_services/actions_service.py +0 -0
- {uipath-2.0.68 → uipath-2.0.70}/src/uipath/_services/api_client.py +0 -0
- {uipath-2.0.68 → uipath-2.0.70}/src/uipath/_services/assets_service.py +0 -0
- {uipath-2.0.68 → uipath-2.0.70}/src/uipath/_services/attachments_service.py +0 -0
- {uipath-2.0.68 → uipath-2.0.70}/src/uipath/_services/connections_service.py +0 -0
- {uipath-2.0.68 → uipath-2.0.70}/src/uipath/_services/folder_service.py +0 -0
- {uipath-2.0.68 → uipath-2.0.70}/src/uipath/_services/jobs_service.py +0 -0
- {uipath-2.0.68 → uipath-2.0.70}/src/uipath/_services/llm_gateway_service.py +0 -0
- {uipath-2.0.68 → uipath-2.0.70}/src/uipath/_services/processes_service.py +0 -0
- {uipath-2.0.68 → uipath-2.0.70}/src/uipath/_services/queues_service.py +0 -0
- {uipath-2.0.68 → uipath-2.0.70}/src/uipath/_uipath.py +0 -0
- {uipath-2.0.68 → uipath-2.0.70}/src/uipath/_utils/__init__.py +0 -0
- {uipath-2.0.68 → uipath-2.0.70}/src/uipath/_utils/_endpoint.py +0 -0
- {uipath-2.0.68 → uipath-2.0.70}/src/uipath/_utils/_infer_bindings.py +0 -0
- {uipath-2.0.68 → uipath-2.0.70}/src/uipath/_utils/_logs.py +0 -0
- {uipath-2.0.68 → uipath-2.0.70}/src/uipath/_utils/_read_overwrites.py +0 -0
- {uipath-2.0.68 → uipath-2.0.70}/src/uipath/_utils/_request_override.py +0 -0
- {uipath-2.0.68 → uipath-2.0.70}/src/uipath/_utils/_request_spec.py +0 -0
- {uipath-2.0.68 → uipath-2.0.70}/src/uipath/_utils/_url.py +0 -0
- {uipath-2.0.68 → uipath-2.0.70}/src/uipath/_utils/_user_agent.py +0 -0
- {uipath-2.0.68 → uipath-2.0.70}/src/uipath/_utils/constants.py +0 -0
- {uipath-2.0.68 → uipath-2.0.70}/src/uipath/models/__init__.py +0 -0
- {uipath-2.0.68 → uipath-2.0.70}/src/uipath/models/action_schema.py +0 -0
- {uipath-2.0.68 → uipath-2.0.70}/src/uipath/models/actions.py +0 -0
- {uipath-2.0.68 → uipath-2.0.70}/src/uipath/models/assets.py +0 -0
- {uipath-2.0.68 → uipath-2.0.70}/src/uipath/models/attachment.py +0 -0
- {uipath-2.0.68 → uipath-2.0.70}/src/uipath/models/buckets.py +0 -0
- {uipath-2.0.68 → uipath-2.0.70}/src/uipath/models/connections.py +0 -0
- {uipath-2.0.68 → uipath-2.0.70}/src/uipath/models/context_grounding.py +0 -0
- {uipath-2.0.68 → uipath-2.0.70}/src/uipath/models/context_grounding_index.py +0 -0
- {uipath-2.0.68 → uipath-2.0.70}/src/uipath/models/errors.py +0 -0
- {uipath-2.0.68 → uipath-2.0.70}/src/uipath/models/exceptions.py +0 -0
- {uipath-2.0.68 → uipath-2.0.70}/src/uipath/models/interrupt_models.py +0 -0
- {uipath-2.0.68 → uipath-2.0.70}/src/uipath/models/job.py +0 -0
- {uipath-2.0.68 → uipath-2.0.70}/src/uipath/models/llm_gateway.py +0 -0
- {uipath-2.0.68 → uipath-2.0.70}/src/uipath/models/processes.py +0 -0
- {uipath-2.0.68 → uipath-2.0.70}/src/uipath/models/queues.py +0 -0
- {uipath-2.0.68 → uipath-2.0.70}/src/uipath/py.typed +0 -0
- {uipath-2.0.68 → uipath-2.0.70}/src/uipath/telemetry/__init__.py +0 -0
- {uipath-2.0.68 → uipath-2.0.70}/src/uipath/telemetry/_constants.py +0 -0
- {uipath-2.0.68 → uipath-2.0.70}/src/uipath/telemetry/_track.py +0 -0
- {uipath-2.0.68 → uipath-2.0.70}/src/uipath/tracing/__init__.py +0 -0
- {uipath-2.0.68 → uipath-2.0.70}/src/uipath/tracing/_otel_exporters.py +0 -0
- {uipath-2.0.68 → uipath-2.0.70}/src/uipath/tracing/_traced.py +0 -0
- {uipath-2.0.68 → uipath-2.0.70}/src/uipath/tracing/_utils.py +0 -0
- {uipath-2.0.68 → uipath-2.0.70}/tests/__init__.py +0 -0
- {uipath-2.0.68 → uipath-2.0.70}/tests/cli/conftest.py +0 -0
- {uipath-2.0.68 → uipath-2.0.70}/tests/cli/mocks/bindings_script.py +0 -0
- {uipath-2.0.68 → uipath-2.0.70}/tests/cli/mocks/pyproject.toml +0 -0
- {uipath-2.0.68 → uipath-2.0.70}/tests/cli/mocks/simple_script.py +0 -0
- {uipath-2.0.68 → uipath-2.0.70}/tests/cli/mocks/uipath-mock.json +0 -0
- {uipath-2.0.68 → uipath-2.0.70}/tests/cli/mocks/uipath-simple-script-mock.json +0 -0
- {uipath-2.0.68 → uipath-2.0.70}/tests/cli/test_hitl.py +0 -0
- {uipath-2.0.68 → uipath-2.0.70}/tests/cli/test_init.py +0 -0
- {uipath-2.0.68 → uipath-2.0.70}/tests/cli/test_invoke.py +0 -0
- {uipath-2.0.68 → uipath-2.0.70}/tests/cli/test_new.py +0 -0
- {uipath-2.0.68 → uipath-2.0.70}/tests/cli/test_pack.py +0 -0
- {uipath-2.0.68 → uipath-2.0.70}/tests/cli/test_publish.py +0 -0
- {uipath-2.0.68 → uipath-2.0.70}/tests/cli/test_run.py +0 -0
- {uipath-2.0.68 → uipath-2.0.70}/tests/cli/test_utils.py +0 -0
- {uipath-2.0.68 → uipath-2.0.70}/tests/cli/utils/project_details.py +0 -0
- {uipath-2.0.68 → uipath-2.0.70}/tests/cli/utils/uipath_json.py +0 -0
- {uipath-2.0.68 → uipath-2.0.70}/tests/conftest.py +0 -0
- {uipath-2.0.68 → uipath-2.0.70}/tests/sdk/services/conftest.py +0 -0
- {uipath-2.0.68 → uipath-2.0.70}/tests/sdk/services/test_actions_service.py +0 -0
- {uipath-2.0.68 → uipath-2.0.70}/tests/sdk/services/test_api_client.py +0 -0
- {uipath-2.0.68 → uipath-2.0.70}/tests/sdk/services/test_assets_service.py +0 -0
- {uipath-2.0.68 → uipath-2.0.70}/tests/sdk/services/test_attachments_service.py +0 -0
- {uipath-2.0.68 → uipath-2.0.70}/tests/sdk/services/test_base_service.py +0 -0
- {uipath-2.0.68 → uipath-2.0.70}/tests/sdk/services/test_connections_service.py +0 -0
- {uipath-2.0.68 → uipath-2.0.70}/tests/sdk/services/test_context_grounding_service.py +0 -0
- {uipath-2.0.68 → uipath-2.0.70}/tests/sdk/services/test_folder_service.py +0 -0
- {uipath-2.0.68 → uipath-2.0.70}/tests/sdk/services/test_jobs_service.py +0 -0
- {uipath-2.0.68 → uipath-2.0.70}/tests/sdk/services/test_llm_integration.py +0 -0
- {uipath-2.0.68 → uipath-2.0.70}/tests/sdk/services/test_llm_service.py +0 -0
- {uipath-2.0.68 → uipath-2.0.70}/tests/sdk/services/test_processes_service.py +0 -0
- {uipath-2.0.68 → uipath-2.0.70}/tests/sdk/services/test_queues_service.py +0 -0
- {uipath-2.0.68 → uipath-2.0.70}/tests/sdk/services/test_uipath_llm_integration.py +0 -0
- {uipath-2.0.68 → uipath-2.0.70}/tests/sdk/test_bindings_inference.py +0 -0
- {uipath-2.0.68 → uipath-2.0.70}/tests/sdk/test_config.py +0 -0
- {uipath-2.0.68 → uipath-2.0.70}/tests/sdk/test_overwrites.py +0 -0
- {uipath-2.0.68 → uipath-2.0.70}/tests/tracing/test_otel_exporters.py +0 -0
- {uipath-2.0.68 → uipath-2.0.70}/tests/tracing/test_span_utils.py +0 -0
- {uipath-2.0.68 → uipath-2.0.70}/tests/tracing/test_traced.py +0 -0
- {uipath-2.0.68 → uipath-2.0.70}/tests/tracing/test_tracing_manager.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: uipath
|
|
3
|
-
Version: 2.0.
|
|
3
|
+
Version: 2.0.70
|
|
4
4
|
Summary: Python SDK and CLI for UiPath Platform, enabling programmatic interaction with automation services, process management, and deployment tools.
|
|
5
5
|
Project-URL: Homepage, https://uipath.com
|
|
6
6
|
Project-URL: Repository, https://github.com/UiPath/uipath-python
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "uipath"
|
|
3
|
-
version = "2.0.
|
|
3
|
+
version = "2.0.70"
|
|
4
4
|
description = "Python SDK and CLI for UiPath Platform, enabling programmatic interaction with automation services, process management, and deployment tools."
|
|
5
5
|
readme = { file = "README.md", content-type = "text/markdown" }
|
|
6
6
|
requires-python = ">=3.10"
|
|
@@ -223,7 +223,7 @@ def pack_fn(projectName, description, entryPoints, version, authors, directory):
|
|
|
223
223
|
file_extensions_included = [".py", ".mermaid", ".json", ".yaml", ".yml"]
|
|
224
224
|
files_included = []
|
|
225
225
|
# Binary files that should be read in binary mode
|
|
226
|
-
binary_extensions = [".exe", ""]
|
|
226
|
+
binary_extensions = [".exe", "", ".xlsx", ".xls"]
|
|
227
227
|
|
|
228
228
|
with open(config_path, "r") as f:
|
|
229
229
|
config_data = json.load(f)
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import mimetypes
|
|
1
2
|
from typing import Any, Dict, Optional, Union
|
|
2
3
|
|
|
3
4
|
import httpx
|
|
@@ -154,7 +155,7 @@ class BucketsService(FolderContext, BaseService):
|
|
|
154
155
|
key: Optional[str] = None,
|
|
155
156
|
name: Optional[str] = None,
|
|
156
157
|
blob_file_path: str,
|
|
157
|
-
content_type: str,
|
|
158
|
+
content_type: Optional[str] = None,
|
|
158
159
|
source_path: Optional[str] = None,
|
|
159
160
|
content: Optional[Union[str, bytes]] = None,
|
|
160
161
|
folder_key: Optional[str] = None,
|
|
@@ -166,7 +167,7 @@ class BucketsService(FolderContext, BaseService):
|
|
|
166
167
|
key (Optional[str]): The key of the bucket.
|
|
167
168
|
name (Optional[str]): The name of the bucket.
|
|
168
169
|
blob_file_path (str): The path where the file will be stored in the bucket.
|
|
169
|
-
content_type (str): The MIME type of the file.
|
|
170
|
+
content_type (Optional[str]): The MIME type of the file. For file inputs this is computed dynamically. Default is "application/octet-stream".
|
|
170
171
|
source_path (Optional[str]): The local path of the file to upload.
|
|
171
172
|
content (Optional[Union[str, bytes]]): The content to upload (string or bytes).
|
|
172
173
|
folder_key (Optional[str]): The key of the folder where the bucket resides.
|
|
@@ -185,9 +186,17 @@ class BucketsService(FolderContext, BaseService):
|
|
|
185
186
|
name=name, key=key, folder_key=folder_key, folder_path=folder_path
|
|
186
187
|
)
|
|
187
188
|
|
|
189
|
+
# if source_path, dynamically detect the mime type
|
|
190
|
+
# default to application/octet-stream
|
|
191
|
+
if source_path:
|
|
192
|
+
_content_type, _ = mimetypes.guess_type(source_path)
|
|
193
|
+
else:
|
|
194
|
+
_content_type = content_type
|
|
195
|
+
_content_type = _content_type or "application/octet-stream"
|
|
196
|
+
|
|
188
197
|
spec = self._retrieve_writeri_spec(
|
|
189
198
|
bucket.id,
|
|
190
|
-
|
|
199
|
+
_content_type,
|
|
191
200
|
blob_file_path,
|
|
192
201
|
folder_key=folder_key,
|
|
193
202
|
folder_path=folder_path,
|
|
@@ -209,6 +218,8 @@ class BucketsService(FolderContext, BaseService):
|
|
|
209
218
|
)
|
|
210
219
|
}
|
|
211
220
|
|
|
221
|
+
headers["Content-Type"] = _content_type
|
|
222
|
+
|
|
212
223
|
if content is not None:
|
|
213
224
|
if isinstance(content, str):
|
|
214
225
|
content = content.encode("utf-8")
|
|
@@ -220,13 +231,14 @@ class BucketsService(FolderContext, BaseService):
|
|
|
220
231
|
|
|
221
232
|
if source_path is not None:
|
|
222
233
|
with open(source_path, "rb") as file:
|
|
234
|
+
file_content = file.read()
|
|
223
235
|
if result["RequiresAuth"]:
|
|
224
236
|
self.request(
|
|
225
|
-
"PUT", write_uri, headers=headers,
|
|
237
|
+
"PUT", write_uri, headers=headers, content=file_content
|
|
226
238
|
)
|
|
227
239
|
else:
|
|
228
240
|
self.custom_client.put(
|
|
229
|
-
write_uri, headers=headers,
|
|
241
|
+
write_uri, headers=headers, content=file_content
|
|
230
242
|
)
|
|
231
243
|
|
|
232
244
|
@traced(name="buckets_upload", run_type="uipath")
|
|
@@ -237,7 +249,7 @@ class BucketsService(FolderContext, BaseService):
|
|
|
237
249
|
key: Optional[str] = None,
|
|
238
250
|
name: Optional[str] = None,
|
|
239
251
|
blob_file_path: str,
|
|
240
|
-
content_type: str,
|
|
252
|
+
content_type: Optional[str] = None,
|
|
241
253
|
source_path: Optional[str] = None,
|
|
242
254
|
content: Optional[Union[str, bytes]] = None,
|
|
243
255
|
folder_key: Optional[str] = None,
|
|
@@ -249,8 +261,9 @@ class BucketsService(FolderContext, BaseService):
|
|
|
249
261
|
key (Optional[str]): The key of the bucket.
|
|
250
262
|
name (Optional[str]): The name of the bucket.
|
|
251
263
|
blob_file_path (str): The path where the file will be stored in the bucket.
|
|
252
|
-
content_type (str): The MIME type of the file.
|
|
264
|
+
content_type (Optional[str]): The MIME type of the file. For file inputs this is computed dynamically. Default is "application/octet-stream".
|
|
253
265
|
source_path (str): The local path of the file to upload.
|
|
266
|
+
content (Optional[Union[str, bytes]]): The content to upload (string or bytes).
|
|
254
267
|
folder_key (Optional[str]): The key of the folder where the bucket resides.
|
|
255
268
|
folder_path (Optional[str]): The path of the folder where the bucket resides.
|
|
256
269
|
|
|
@@ -267,9 +280,17 @@ class BucketsService(FolderContext, BaseService):
|
|
|
267
280
|
name=name, key=key, folder_key=folder_key, folder_path=folder_path
|
|
268
281
|
)
|
|
269
282
|
|
|
283
|
+
# if source_path, dynamically detect the mime type
|
|
284
|
+
# default to application/octet-stream
|
|
285
|
+
if source_path:
|
|
286
|
+
_content_type, _ = mimetypes.guess_type(source_path)
|
|
287
|
+
else:
|
|
288
|
+
_content_type = content_type
|
|
289
|
+
_content_type = _content_type or "application/octet-stream"
|
|
290
|
+
|
|
270
291
|
spec = self._retrieve_writeri_spec(
|
|
271
292
|
bucket.id,
|
|
272
|
-
|
|
293
|
+
_content_type,
|
|
273
294
|
blob_file_path,
|
|
274
295
|
folder_key=folder_key,
|
|
275
296
|
folder_path=folder_path,
|
|
@@ -293,6 +314,8 @@ class BucketsService(FolderContext, BaseService):
|
|
|
293
314
|
)
|
|
294
315
|
}
|
|
295
316
|
|
|
317
|
+
headers["Content-Type"] = _content_type
|
|
318
|
+
|
|
296
319
|
if content is not None:
|
|
297
320
|
if isinstance(content, str):
|
|
298
321
|
content = content.encode("utf-8")
|
|
@@ -308,13 +331,14 @@ class BucketsService(FolderContext, BaseService):
|
|
|
308
331
|
|
|
309
332
|
if source_path is not None:
|
|
310
333
|
with open(source_path, "rb") as file:
|
|
334
|
+
file_content = file.read()
|
|
311
335
|
if result["RequiresAuth"]:
|
|
312
336
|
await self.request_async(
|
|
313
|
-
"PUT", write_uri, headers=headers,
|
|
337
|
+
"PUT", write_uri, headers=headers, content=file_content
|
|
314
338
|
)
|
|
315
339
|
else:
|
|
316
340
|
await self.custom_client_async.put(
|
|
317
|
-
write_uri, headers=headers,
|
|
341
|
+
write_uri, headers=headers, content=file_content
|
|
318
342
|
)
|
|
319
343
|
|
|
320
344
|
@traced(name="buckets_retrieve", run_type="uipath")
|
|
@@ -50,23 +50,25 @@ class ContextGroundingService(FolderContext, BaseService):
|
|
|
50
50
|
def add_to_index(
|
|
51
51
|
self,
|
|
52
52
|
name: str,
|
|
53
|
-
content_type: str,
|
|
54
53
|
blob_file_path: str,
|
|
54
|
+
content_type: Optional[str] = None,
|
|
55
55
|
content: Optional[Union[str, bytes]] = None,
|
|
56
56
|
source_path: Optional[str] = None,
|
|
57
57
|
folder_key: Optional[str] = None,
|
|
58
58
|
folder_path: Optional[str] = None,
|
|
59
|
+
ingest_data: bool = True,
|
|
59
60
|
) -> None:
|
|
60
61
|
"""Add content to the index.
|
|
61
62
|
|
|
62
63
|
Args:
|
|
63
64
|
name (str): The name of the index to add content to.
|
|
64
|
-
content_type (str): The type of
|
|
65
|
+
content_type (Optional[str]): The MIME type of the file. For file inputs this is computed dynamically. Default is "application/octet-stream".
|
|
65
66
|
blob_file_path (str): The path where the blob will be stored in the storage bucket.
|
|
66
67
|
content (Optional[Union[str, bytes]]): The content to be added, either as a string or bytes.
|
|
67
68
|
source_path (Optional[str]): The source path of the content if it is being uploaded from a file.
|
|
68
69
|
folder_key (Optional[str]): The key of the folder where the index resides.
|
|
69
70
|
folder_path (Optional[str]): The path of the folder where the index resides.
|
|
71
|
+
ingest_data (bool): Whether to ingest data in the index after content is uploaded. Defaults to True.
|
|
70
72
|
|
|
71
73
|
Raises:
|
|
72
74
|
ValueError: If neither content nor source_path is provided, or if both are provided.
|
|
@@ -94,30 +96,34 @@ class ContextGroundingService(FolderContext, BaseService):
|
|
|
94
96
|
folder_path=bucket_folder_path,
|
|
95
97
|
content_type=content_type,
|
|
96
98
|
)
|
|
97
|
-
|
|
99
|
+
|
|
100
|
+
if ingest_data:
|
|
101
|
+
self.ingest_data(index, folder_key=folder_key, folder_path=folder_path)
|
|
98
102
|
|
|
99
103
|
@traced(name="add_to_index", run_type="uipath")
|
|
100
104
|
@infer_bindings(resource_type="index")
|
|
101
105
|
async def add_to_index_async(
|
|
102
106
|
self,
|
|
103
107
|
name: str,
|
|
104
|
-
content_type: str,
|
|
105
108
|
blob_file_path: str,
|
|
109
|
+
content_type: Optional[str] = None,
|
|
106
110
|
content: Optional[Union[str, bytes]] = None,
|
|
107
111
|
source_path: Optional[str] = None,
|
|
108
112
|
folder_key: Optional[str] = None,
|
|
109
113
|
folder_path: Optional[str] = None,
|
|
114
|
+
ingest_data: bool = True,
|
|
110
115
|
) -> None:
|
|
111
116
|
"""Asynchronously add content to the index.
|
|
112
117
|
|
|
113
118
|
Args:
|
|
114
119
|
name (str): The name of the index to add content to.
|
|
115
|
-
content_type (str): The type of
|
|
120
|
+
content_type (Optional[str]): The MIME type of the file. For file inputs this is computed dynamically. Default is "application/octet-stream".
|
|
116
121
|
blob_file_path (str): The path where the blob will be stored in the storage bucket.
|
|
117
122
|
content (Optional[Union[str, bytes]]): The content to be added, either as a string or bytes.
|
|
118
123
|
source_path (Optional[str]): The source path of the content if it is being uploaded from a file.
|
|
119
124
|
folder_key (Optional[str]): The key of the folder where the index resides.
|
|
120
125
|
folder_path (Optional[str]): The path of the folder where the index resides.
|
|
126
|
+
ingest_data (bool): Whether to ingest data in the index after content is uploaded. Defaults to True.
|
|
121
127
|
|
|
122
128
|
Raises:
|
|
123
129
|
ValueError: If neither content nor source_path is provided, or if both are provided.
|
|
@@ -148,9 +154,10 @@ class ContextGroundingService(FolderContext, BaseService):
|
|
|
148
154
|
content_type=content_type,
|
|
149
155
|
)
|
|
150
156
|
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
157
|
+
if ingest_data:
|
|
158
|
+
await self.ingest_data_async(
|
|
159
|
+
index, folder_key=folder_key, folder_path=folder_path
|
|
160
|
+
)
|
|
154
161
|
|
|
155
162
|
@traced(name="contextgrounding_retrieve", run_type="uipath")
|
|
156
163
|
@infer_bindings(resource_type="index")
|
|
@@ -224,7 +224,6 @@ class TestBucketsService:
|
|
|
224
224
|
assert sent_requests[2].url == "https://test-storage.com/test-file.txt"
|
|
225
225
|
|
|
226
226
|
assert b"test content" in sent_requests[2].content
|
|
227
|
-
assert b"Content-Disposition: form-data;" in sent_requests[2].content
|
|
228
227
|
|
|
229
228
|
def test_upload_from_memory(
|
|
230
229
|
self,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|