uipath 2.0.61__tar.gz → 2.0.63__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.61 → uipath-2.0.63}/.github/workflows/publish-dev.yml +14 -9
- {uipath-2.0.61 → uipath-2.0.63}/PKG-INFO +1 -1
- {uipath-2.0.61 → uipath-2.0.63}/pyproject.toml +7 -1
- {uipath-2.0.61 → uipath-2.0.63}/src/uipath/_services/attachments_service.py +6 -4
- {uipath-2.0.61 → uipath-2.0.63}/src/uipath/_services/jobs_service.py +74 -8
- {uipath-2.0.61 → uipath-2.0.63}/tests/sdk/services/test_jobs_service.py +6 -9
- {uipath-2.0.61 → uipath-2.0.63}/uv.lock +1 -1
- {uipath-2.0.61 → uipath-2.0.63}/.cursorrules +0 -0
- {uipath-2.0.61 → uipath-2.0.63}/.editorconfig +0 -0
- {uipath-2.0.61 → uipath-2.0.63}/.gitattributes +0 -0
- {uipath-2.0.61 → uipath-2.0.63}/.github/workflows/cd.yml +0 -0
- {uipath-2.0.61 → uipath-2.0.63}/.github/workflows/ci.yml +0 -0
- {uipath-2.0.61 → uipath-2.0.63}/.github/workflows/commitlint.yml +0 -0
- {uipath-2.0.61 → uipath-2.0.63}/.github/workflows/lint.yml +0 -0
- {uipath-2.0.61 → uipath-2.0.63}/.github/workflows/publish-docs.yml +0 -0
- {uipath-2.0.61 → uipath-2.0.63}/.github/workflows/slack.yml +0 -0
- {uipath-2.0.61 → uipath-2.0.63}/.github/workflows/test.yml +0 -0
- {uipath-2.0.61 → uipath-2.0.63}/.gitignore +0 -0
- {uipath-2.0.61 → uipath-2.0.63}/.pre-commit-config.yaml +0 -0
- {uipath-2.0.61 → uipath-2.0.63}/.python-version +0 -0
- {uipath-2.0.61 → uipath-2.0.63}/.vscode/extensions.json +0 -0
- {uipath-2.0.61 → uipath-2.0.63}/.vscode/settings.json +0 -0
- {uipath-2.0.61 → uipath-2.0.63}/CONTRIBUTING.md +0 -0
- {uipath-2.0.61 → uipath-2.0.63}/LICENSE +0 -0
- {uipath-2.0.61 → uipath-2.0.63}/README.md +0 -0
- {uipath-2.0.61 → uipath-2.0.63}/docs/CONTRIBUTING.md +0 -0
- {uipath-2.0.61 → uipath-2.0.63}/docs/FAQ.md +0 -0
- {uipath-2.0.61 → uipath-2.0.63}/docs/assets/env-preparation-failed-dark.png +0 -0
- {uipath-2.0.61 → uipath-2.0.63}/docs/assets/env-preparation-failed-light.png +0 -0
- {uipath-2.0.61 → uipath-2.0.63}/docs/assets/favicon.png +0 -0
- {uipath-2.0.61 → uipath-2.0.63}/docs/assets/logo-dark.svg +0 -0
- {uipath-2.0.61 → uipath-2.0.63}/docs/assets/logo-light.svg +0 -0
- {uipath-2.0.61 → uipath-2.0.63}/docs/cli/index.md +0 -0
- {uipath-2.0.61 → uipath-2.0.63}/docs/core/actions.md +0 -0
- {uipath-2.0.61 → uipath-2.0.63}/docs/core/assets/cloud_env_var_dark.gif +0 -0
- {uipath-2.0.61 → uipath-2.0.63}/docs/core/assets/cloud_env_var_light.gif +0 -0
- {uipath-2.0.61 → uipath-2.0.63}/docs/core/assets/cloud_env_var_secret_dark.png +0 -0
- {uipath-2.0.61 → uipath-2.0.63}/docs/core/assets/cloud_env_var_secret_light.png +0 -0
- {uipath-2.0.61 → uipath-2.0.63}/docs/core/assets/copy_path_dark.png +0 -0
- {uipath-2.0.61 → uipath-2.0.63}/docs/core/assets/copy_path_light.png +0 -0
- {uipath-2.0.61 → uipath-2.0.63}/docs/core/assets.md +0 -0
- {uipath-2.0.61 → uipath-2.0.63}/docs/core/attachments.md +0 -0
- {uipath-2.0.61 → uipath-2.0.63}/docs/core/buckets.md +0 -0
- {uipath-2.0.61 → uipath-2.0.63}/docs/core/connections.md +0 -0
- {uipath-2.0.61 → uipath-2.0.63}/docs/core/context_grounding.md +0 -0
- {uipath-2.0.61 → uipath-2.0.63}/docs/core/environment_variables.md +0 -0
- {uipath-2.0.61 → uipath-2.0.63}/docs/core/getting_started.md +0 -0
- {uipath-2.0.61 → uipath-2.0.63}/docs/core/jobs.md +0 -0
- {uipath-2.0.61 → uipath-2.0.63}/docs/core/processes.md +0 -0
- {uipath-2.0.61 → uipath-2.0.63}/docs/core/queues.md +0 -0
- {uipath-2.0.61 → uipath-2.0.63}/docs/core/traced.md +0 -0
- {uipath-2.0.61 → uipath-2.0.63}/docs/hooks.py +0 -0
- {uipath-2.0.61 → uipath-2.0.63}/docs/javascripts/extra.js +0 -0
- {uipath-2.0.61 → uipath-2.0.63}/docs/langchain/chat_models.md +0 -0
- {uipath-2.0.61 → uipath-2.0.63}/docs/langchain/context_grounding.md +0 -0
- {uipath-2.0.61 → uipath-2.0.63}/docs/langchain/human_in_the_loop.md +0 -0
- {uipath-2.0.61 → uipath-2.0.63}/docs/overrides/main.html +0 -0
- {uipath-2.0.61 → uipath-2.0.63}/docs/overrides/partials/actions.html +0 -0
- {uipath-2.0.61 → uipath-2.0.63}/docs/overrides/partials/logo.html +0 -0
- {uipath-2.0.61 → uipath-2.0.63}/docs/release_policy.md +0 -0
- {uipath-2.0.61 → uipath-2.0.63}/docs/stylesheets/extra.css +0 -0
- {uipath-2.0.61 → uipath-2.0.63}/justfile +0 -0
- {uipath-2.0.61 → uipath-2.0.63}/mkdocs.yml +0 -0
- {uipath-2.0.61 → uipath-2.0.63}/py.typed +0 -0
- {uipath-2.0.61 → uipath-2.0.63}/src/uipath/__init__.py +0 -0
- {uipath-2.0.61 → uipath-2.0.63}/src/uipath/_cli/README.md +0 -0
- {uipath-2.0.61 → uipath-2.0.63}/src/uipath/_cli/__init__.py +0 -0
- {uipath-2.0.61 → uipath-2.0.63}/src/uipath/_cli/_auth/_auth_server.py +0 -0
- {uipath-2.0.61 → uipath-2.0.63}/src/uipath/_cli/_auth/_models.py +0 -0
- {uipath-2.0.61 → uipath-2.0.63}/src/uipath/_cli/_auth/_oidc_utils.py +0 -0
- {uipath-2.0.61 → uipath-2.0.63}/src/uipath/_cli/_auth/_portal_service.py +0 -0
- {uipath-2.0.61 → uipath-2.0.63}/src/uipath/_cli/_auth/_utils.py +0 -0
- {uipath-2.0.61 → uipath-2.0.63}/src/uipath/_cli/_auth/auth_config.json +0 -0
- {uipath-2.0.61 → uipath-2.0.63}/src/uipath/_cli/_auth/index.html +0 -0
- {uipath-2.0.61 → uipath-2.0.63}/src/uipath/_cli/_auth/localhost.crt +0 -0
- {uipath-2.0.61 → uipath-2.0.63}/src/uipath/_cli/_auth/localhost.key +0 -0
- {uipath-2.0.61 → uipath-2.0.63}/src/uipath/_cli/_runtime/_contracts.py +0 -0
- {uipath-2.0.61 → uipath-2.0.63}/src/uipath/_cli/_runtime/_logging.py +0 -0
- {uipath-2.0.61 → uipath-2.0.63}/src/uipath/_cli/_runtime/_runtime.py +0 -0
- {uipath-2.0.61 → uipath-2.0.63}/src/uipath/_cli/_templates/.psmdcp.template +0 -0
- {uipath-2.0.61 → uipath-2.0.63}/src/uipath/_cli/_templates/.rels.template +0 -0
- {uipath-2.0.61 → uipath-2.0.63}/src/uipath/_cli/_templates/[Content_Types].xml.template +0 -0
- {uipath-2.0.61 → uipath-2.0.63}/src/uipath/_cli/_templates/main.py.template +0 -0
- {uipath-2.0.61 → uipath-2.0.63}/src/uipath/_cli/_templates/package.nuspec.template +0 -0
- {uipath-2.0.61 → uipath-2.0.63}/src/uipath/_cli/_utils/_common.py +0 -0
- {uipath-2.0.61 → uipath-2.0.63}/src/uipath/_cli/_utils/_console.py +0 -0
- {uipath-2.0.61 → uipath-2.0.63}/src/uipath/_cli/_utils/_constants.py +0 -0
- {uipath-2.0.61 → uipath-2.0.63}/src/uipath/_cli/_utils/_folders.py +0 -0
- {uipath-2.0.61 → uipath-2.0.63}/src/uipath/_cli/_utils/_input_args.py +0 -0
- {uipath-2.0.61 → uipath-2.0.63}/src/uipath/_cli/_utils/_parse_ast.py +0 -0
- {uipath-2.0.61 → uipath-2.0.63}/src/uipath/_cli/_utils/_processes.py +0 -0
- {uipath-2.0.61 → uipath-2.0.63}/src/uipath/_cli/cli_auth.py +0 -0
- {uipath-2.0.61 → uipath-2.0.63}/src/uipath/_cli/cli_deploy.py +0 -0
- {uipath-2.0.61 → uipath-2.0.63}/src/uipath/_cli/cli_init.py +0 -0
- {uipath-2.0.61 → uipath-2.0.63}/src/uipath/_cli/cli_invoke.py +0 -0
- {uipath-2.0.61 → uipath-2.0.63}/src/uipath/_cli/cli_new.py +0 -0
- {uipath-2.0.61 → uipath-2.0.63}/src/uipath/_cli/cli_pack.py +0 -0
- {uipath-2.0.61 → uipath-2.0.63}/src/uipath/_cli/cli_publish.py +0 -0
- {uipath-2.0.61 → uipath-2.0.63}/src/uipath/_cli/cli_run.py +0 -0
- {uipath-2.0.61 → uipath-2.0.63}/src/uipath/_cli/middlewares.py +0 -0
- {uipath-2.0.61 → uipath-2.0.63}/src/uipath/_cli/spinner.py +0 -0
- {uipath-2.0.61 → uipath-2.0.63}/src/uipath/_config.py +0 -0
- {uipath-2.0.61 → uipath-2.0.63}/src/uipath/_execution_context.py +0 -0
- {uipath-2.0.61 → uipath-2.0.63}/src/uipath/_folder_context.py +0 -0
- {uipath-2.0.61 → uipath-2.0.63}/src/uipath/_services/__init__.py +0 -0
- {uipath-2.0.61 → uipath-2.0.63}/src/uipath/_services/_base_service.py +0 -0
- {uipath-2.0.61 → uipath-2.0.63}/src/uipath/_services/actions_service.py +0 -0
- {uipath-2.0.61 → uipath-2.0.63}/src/uipath/_services/api_client.py +0 -0
- {uipath-2.0.61 → uipath-2.0.63}/src/uipath/_services/assets_service.py +0 -0
- {uipath-2.0.61 → uipath-2.0.63}/src/uipath/_services/buckets_service.py +0 -0
- {uipath-2.0.61 → uipath-2.0.63}/src/uipath/_services/connections_service.py +0 -0
- {uipath-2.0.61 → uipath-2.0.63}/src/uipath/_services/context_grounding_service.py +0 -0
- {uipath-2.0.61 → uipath-2.0.63}/src/uipath/_services/folder_service.py +0 -0
- {uipath-2.0.61 → uipath-2.0.63}/src/uipath/_services/llm_gateway_service.py +0 -0
- {uipath-2.0.61 → uipath-2.0.63}/src/uipath/_services/processes_service.py +0 -0
- {uipath-2.0.61 → uipath-2.0.63}/src/uipath/_services/queues_service.py +0 -0
- {uipath-2.0.61 → uipath-2.0.63}/src/uipath/_uipath.py +0 -0
- {uipath-2.0.61 → uipath-2.0.63}/src/uipath/_utils/__init__.py +0 -0
- {uipath-2.0.61 → uipath-2.0.63}/src/uipath/_utils/_endpoint.py +0 -0
- {uipath-2.0.61 → uipath-2.0.63}/src/uipath/_utils/_infer_bindings.py +0 -0
- {uipath-2.0.61 → uipath-2.0.63}/src/uipath/_utils/_logs.py +0 -0
- {uipath-2.0.61 → uipath-2.0.63}/src/uipath/_utils/_read_overwrites.py +0 -0
- {uipath-2.0.61 → uipath-2.0.63}/src/uipath/_utils/_request_override.py +0 -0
- {uipath-2.0.61 → uipath-2.0.63}/src/uipath/_utils/_request_spec.py +0 -0
- {uipath-2.0.61 → uipath-2.0.63}/src/uipath/_utils/_url.py +0 -0
- {uipath-2.0.61 → uipath-2.0.63}/src/uipath/_utils/_user_agent.py +0 -0
- {uipath-2.0.61 → uipath-2.0.63}/src/uipath/_utils/constants.py +0 -0
- {uipath-2.0.61 → uipath-2.0.63}/src/uipath/models/__init__.py +0 -0
- {uipath-2.0.61 → uipath-2.0.63}/src/uipath/models/action_schema.py +0 -0
- {uipath-2.0.61 → uipath-2.0.63}/src/uipath/models/actions.py +0 -0
- {uipath-2.0.61 → uipath-2.0.63}/src/uipath/models/assets.py +0 -0
- {uipath-2.0.61 → uipath-2.0.63}/src/uipath/models/attachment.py +0 -0
- {uipath-2.0.61 → uipath-2.0.63}/src/uipath/models/buckets.py +0 -0
- {uipath-2.0.61 → uipath-2.0.63}/src/uipath/models/connections.py +0 -0
- {uipath-2.0.61 → uipath-2.0.63}/src/uipath/models/context_grounding.py +0 -0
- {uipath-2.0.61 → uipath-2.0.63}/src/uipath/models/context_grounding_index.py +0 -0
- {uipath-2.0.61 → uipath-2.0.63}/src/uipath/models/errors.py +0 -0
- {uipath-2.0.61 → uipath-2.0.63}/src/uipath/models/exceptions.py +0 -0
- {uipath-2.0.61 → uipath-2.0.63}/src/uipath/models/interrupt_models.py +0 -0
- {uipath-2.0.61 → uipath-2.0.63}/src/uipath/models/job.py +0 -0
- {uipath-2.0.61 → uipath-2.0.63}/src/uipath/models/llm_gateway.py +0 -0
- {uipath-2.0.61 → uipath-2.0.63}/src/uipath/models/processes.py +0 -0
- {uipath-2.0.61 → uipath-2.0.63}/src/uipath/models/queues.py +0 -0
- {uipath-2.0.61 → uipath-2.0.63}/src/uipath/py.typed +0 -0
- {uipath-2.0.61 → uipath-2.0.63}/src/uipath/telemetry/__init__.py +0 -0
- {uipath-2.0.61 → uipath-2.0.63}/src/uipath/telemetry/_constants.py +0 -0
- {uipath-2.0.61 → uipath-2.0.63}/src/uipath/telemetry/_track.py +0 -0
- {uipath-2.0.61 → uipath-2.0.63}/src/uipath/tracing/__init__.py +0 -0
- {uipath-2.0.61 → uipath-2.0.63}/src/uipath/tracing/_otel_exporters.py +0 -0
- {uipath-2.0.61 → uipath-2.0.63}/src/uipath/tracing/_traced.py +0 -0
- {uipath-2.0.61 → uipath-2.0.63}/src/uipath/tracing/_utils.py +0 -0
- {uipath-2.0.61 → uipath-2.0.63}/tests/__init__.py +0 -0
- {uipath-2.0.61 → uipath-2.0.63}/tests/cli/conftest.py +0 -0
- {uipath-2.0.61 → uipath-2.0.63}/tests/cli/mocks/bindings_script.py +0 -0
- {uipath-2.0.61 → uipath-2.0.63}/tests/cli/mocks/pyproject.toml +0 -0
- {uipath-2.0.61 → uipath-2.0.63}/tests/cli/mocks/simple_script.py +0 -0
- {uipath-2.0.61 → uipath-2.0.63}/tests/cli/mocks/uipath-mock.json +0 -0
- {uipath-2.0.61 → uipath-2.0.63}/tests/cli/mocks/uipath-simple-script-mock.json +0 -0
- {uipath-2.0.61 → uipath-2.0.63}/tests/cli/test_init.py +0 -0
- {uipath-2.0.61 → uipath-2.0.63}/tests/cli/test_invoke.py +0 -0
- {uipath-2.0.61 → uipath-2.0.63}/tests/cli/test_new.py +0 -0
- {uipath-2.0.61 → uipath-2.0.63}/tests/cli/test_pack.py +0 -0
- {uipath-2.0.61 → uipath-2.0.63}/tests/cli/test_publish.py +0 -0
- {uipath-2.0.61 → uipath-2.0.63}/tests/cli/test_run.py +0 -0
- {uipath-2.0.61 → uipath-2.0.63}/tests/cli/utils/project_details.py +0 -0
- {uipath-2.0.61 → uipath-2.0.63}/tests/cli/utils/uipath_json.py +0 -0
- {uipath-2.0.61 → uipath-2.0.63}/tests/conftest.py +0 -0
- {uipath-2.0.61 → uipath-2.0.63}/tests/sdk/services/conftest.py +0 -0
- {uipath-2.0.61 → uipath-2.0.63}/tests/sdk/services/test_actions_service.py +0 -0
- {uipath-2.0.61 → uipath-2.0.63}/tests/sdk/services/test_api_client.py +0 -0
- {uipath-2.0.61 → uipath-2.0.63}/tests/sdk/services/test_assets_service.py +0 -0
- {uipath-2.0.61 → uipath-2.0.63}/tests/sdk/services/test_attachments_service.py +0 -0
- {uipath-2.0.61 → uipath-2.0.63}/tests/sdk/services/test_base_service.py +0 -0
- {uipath-2.0.61 → uipath-2.0.63}/tests/sdk/services/test_buckets_service.py +0 -0
- {uipath-2.0.61 → uipath-2.0.63}/tests/sdk/services/test_connections_service.py +0 -0
- {uipath-2.0.61 → uipath-2.0.63}/tests/sdk/services/test_context_grounding_service.py +0 -0
- {uipath-2.0.61 → uipath-2.0.63}/tests/sdk/services/test_folder_service.py +0 -0
- {uipath-2.0.61 → uipath-2.0.63}/tests/sdk/services/test_llm_integration.py +0 -0
- {uipath-2.0.61 → uipath-2.0.63}/tests/sdk/services/test_llm_service.py +0 -0
- {uipath-2.0.61 → uipath-2.0.63}/tests/sdk/services/test_processes_service.py +0 -0
- {uipath-2.0.61 → uipath-2.0.63}/tests/sdk/services/test_queues_service.py +0 -0
- {uipath-2.0.61 → uipath-2.0.63}/tests/sdk/services/test_uipath_llm_integration.py +0 -0
- {uipath-2.0.61 → uipath-2.0.63}/tests/sdk/test_bindings_inference.py +0 -0
- {uipath-2.0.61 → uipath-2.0.63}/tests/sdk/test_config.py +0 -0
- {uipath-2.0.61 → uipath-2.0.63}/tests/sdk/test_overwrites.py +0 -0
- {uipath-2.0.61 → uipath-2.0.63}/tests/tracing/test_otel_exporters.py +0 -0
- {uipath-2.0.61 → uipath-2.0.63}/tests/tracing/test_span_utils.py +0 -0
- {uipath-2.0.61 → uipath-2.0.63}/tests/tracing/test_traced.py +0 -0
- {uipath-2.0.61 → uipath-2.0.63}/tests/tracing/test_tracing_manager.py +0 -0
|
@@ -51,7 +51,6 @@ jobs:
|
|
|
51
51
|
|
|
52
52
|
$PROJECT_NAME = ($pyprojcontent | Select-String -Pattern '(?m)^\[(project|tool\.poetry)\][^\[]*?name\s*=\s*"([^"]*)"' -AllMatches).Matches[0].Groups[2].Value
|
|
53
53
|
$CURRENT_VERSION = ($pyprojcontent | Select-String -Pattern '(?m)^\[(project|tool\.poetry)\][^\[]*?version\s*=\s*"([^"]*)"' -AllMatches).Matches[0].Groups[2].Value
|
|
54
|
-
$NIGHTLY_NAME = "$PROJECT_NAME-nightly"
|
|
55
54
|
|
|
56
55
|
|
|
57
56
|
# Get PR number and run number with proper padding
|
|
@@ -70,10 +69,6 @@ jobs:
|
|
|
70
69
|
# Update version in pyproject.toml
|
|
71
70
|
(Get-Content pyproject.toml) -replace "version = `"$CURRENT_VERSION`"", "version = `"$DEV_VERSION`"" | Set-Content pyproject.toml
|
|
72
71
|
|
|
73
|
-
# Update project name in pyproject.toml
|
|
74
|
-
(Get-Content pyproject.toml) -replace "name = `"$PROJECT_NAME`"", "name = `"$NIGHTLY_NAME`"" | Set-Content pyproject.toml
|
|
75
|
-
|
|
76
|
-
|
|
77
72
|
Write-Output "Package version set to $DEV_VERSION"
|
|
78
73
|
|
|
79
74
|
$dependencyMessage = @"
|
|
@@ -85,11 +80,20 @@ jobs:
|
|
|
85
80
|
[project]
|
|
86
81
|
dependencies = [
|
|
87
82
|
# Exact version:
|
|
88
|
-
"$
|
|
83
|
+
"$PROJECT_NAME==$DEV_VERSION",
|
|
89
84
|
|
|
90
85
|
# Any version from PR
|
|
91
|
-
"$
|
|
86
|
+
"$PROJECT_NAME>=$MIN_VERSION,<$MAX_VERSION"
|
|
92
87
|
]
|
|
88
|
+
|
|
89
|
+
[[tool.uv.index]]
|
|
90
|
+
name = "testpypi"
|
|
91
|
+
url = "https://test.pypi.org/simple/"
|
|
92
|
+
publish-url = "https://test.pypi.org/legacy/"
|
|
93
|
+
explicit = true
|
|
94
|
+
|
|
95
|
+
[tool.uv.sources]
|
|
96
|
+
$PROJECT_NAME = { index = "testpypi" }
|
|
93
97
|
``````
|
|
94
98
|
"@
|
|
95
99
|
|
|
@@ -130,6 +134,7 @@ jobs:
|
|
|
130
134
|
run: uv build
|
|
131
135
|
|
|
132
136
|
- name: Publish
|
|
133
|
-
run: uv publish
|
|
137
|
+
run: uv publish --index testpypi
|
|
134
138
|
env:
|
|
135
|
-
UV_PUBLISH_TOKEN: ${{ secrets.
|
|
139
|
+
UV_PUBLISH_TOKEN: ${{ secrets.TESTPYPI_TOKEN }}
|
|
140
|
+
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: uipath
|
|
3
|
-
Version: 2.0.
|
|
3
|
+
Version: 2.0.63
|
|
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.63"
|
|
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"
|
|
@@ -128,3 +128,9 @@ show_missing = true
|
|
|
128
128
|
|
|
129
129
|
[tool.coverage.run]
|
|
130
130
|
source = ["src"]
|
|
131
|
+
|
|
132
|
+
[[tool.uv.index]]
|
|
133
|
+
name = "testpypi"
|
|
134
|
+
url = "https://test.pypi.org/simple/"
|
|
135
|
+
publish-url = "https://test.pypi.org/legacy/"
|
|
136
|
+
explicit = true
|
|
@@ -384,13 +384,14 @@ class AttachmentsService(FolderContext, BaseService):
|
|
|
384
384
|
if source_path:
|
|
385
385
|
# Upload from file
|
|
386
386
|
with open(source_path, "rb") as file:
|
|
387
|
+
file_content = file.read()
|
|
387
388
|
if result["BlobFileAccess"]["RequiresAuth"]:
|
|
388
389
|
self.request(
|
|
389
|
-
"PUT", upload_uri, headers=headers,
|
|
390
|
+
"PUT", upload_uri, headers=headers, content=file_content
|
|
390
391
|
)
|
|
391
392
|
else:
|
|
392
393
|
with httpx.Client() as client:
|
|
393
|
-
client.put(upload_uri, headers=headers,
|
|
394
|
+
client.put(upload_uri, headers=headers, content=file_content)
|
|
394
395
|
else:
|
|
395
396
|
# Upload from memory
|
|
396
397
|
# Convert string to bytes if needed
|
|
@@ -519,13 +520,14 @@ class AttachmentsService(FolderContext, BaseService):
|
|
|
519
520
|
if source_path:
|
|
520
521
|
# Upload from file
|
|
521
522
|
with open(source_path, "rb") as file:
|
|
523
|
+
file_content = file.read()
|
|
522
524
|
if result["BlobFileAccess"]["RequiresAuth"]:
|
|
523
525
|
await self.request_async(
|
|
524
|
-
"PUT", upload_uri, headers=headers,
|
|
526
|
+
"PUT", upload_uri, headers=headers, content=file_content
|
|
525
527
|
)
|
|
526
528
|
else:
|
|
527
529
|
with httpx.Client() as client:
|
|
528
|
-
client.put(upload_uri, headers=headers,
|
|
530
|
+
client.put(upload_uri, headers=headers, content=file_content)
|
|
529
531
|
else:
|
|
530
532
|
# Upload from memory
|
|
531
533
|
# Convert string to bytes if needed
|
|
@@ -113,8 +113,6 @@ class JobsService(FolderContext, BaseService):
|
|
|
113
113
|
|
|
114
114
|
async def main(): # noqa: D103
|
|
115
115
|
payload = await sdk.jobs.resume_async(job_id="38073051", payload="The response")
|
|
116
|
-
print(payload)
|
|
117
|
-
|
|
118
116
|
|
|
119
117
|
asyncio.run(main())
|
|
120
118
|
```
|
|
@@ -154,11 +152,35 @@ class JobsService(FolderContext, BaseService):
|
|
|
154
152
|
def retrieve(
|
|
155
153
|
self,
|
|
156
154
|
job_key: str,
|
|
155
|
+
*,
|
|
156
|
+
folder_key: Optional[str] = None,
|
|
157
|
+
folder_path: Optional[str] = None,
|
|
157
158
|
) -> Job:
|
|
158
|
-
|
|
159
|
+
"""Retrieve a job identified by its key.
|
|
160
|
+
|
|
161
|
+
Args:
|
|
162
|
+
job_key (str): The job unique identifier.
|
|
163
|
+
folder_key (Optional[str]): The key of the folder in which the job was executed.
|
|
164
|
+
folder_path (Optional[str]): The path of the folder in which the job was executed.
|
|
165
|
+
|
|
166
|
+
Returns:
|
|
167
|
+
Job: The retrieved job.
|
|
168
|
+
|
|
169
|
+
Examples:
|
|
170
|
+
```python
|
|
171
|
+
from uipath import UiPath
|
|
172
|
+
|
|
173
|
+
sdk = UiPath()
|
|
174
|
+
job = sdk.jobs.retrieve(job_key="ee9327fd-237d-419e-86ef-9946b34461e3", folder_path="Shared")
|
|
175
|
+
```
|
|
176
|
+
"""
|
|
177
|
+
spec = self._retrieve_spec(
|
|
178
|
+
job_key=job_key, folder_key=folder_key, folder_path=folder_path
|
|
179
|
+
)
|
|
159
180
|
response = self.request(
|
|
160
181
|
spec.method,
|
|
161
182
|
url=spec.endpoint,
|
|
183
|
+
headers=spec.headers,
|
|
162
184
|
)
|
|
163
185
|
|
|
164
186
|
return Job.model_validate(response.json())
|
|
@@ -166,11 +188,42 @@ class JobsService(FolderContext, BaseService):
|
|
|
166
188
|
async def retrieve_async(
|
|
167
189
|
self,
|
|
168
190
|
job_key: str,
|
|
191
|
+
*,
|
|
192
|
+
folder_key: Optional[str] = None,
|
|
193
|
+
folder_path: Optional[str] = None,
|
|
169
194
|
) -> Job:
|
|
170
|
-
|
|
195
|
+
"""Asynchronously retrieve a job identified by its key.
|
|
196
|
+
|
|
197
|
+
Args:
|
|
198
|
+
job_key (str): The job unique identifier.
|
|
199
|
+
folder_key (Optional[str]): The key of the folder in which the job was executed.
|
|
200
|
+
folder_path (Optional[str]): The path of the folder in which the job was executed.
|
|
201
|
+
|
|
202
|
+
Returns:
|
|
203
|
+
Job: The retrieved job.
|
|
204
|
+
|
|
205
|
+
Examples:
|
|
206
|
+
```python
|
|
207
|
+
import asyncio
|
|
208
|
+
|
|
209
|
+
from uipath import UiPath
|
|
210
|
+
|
|
211
|
+
sdk = UiPath()
|
|
212
|
+
|
|
213
|
+
|
|
214
|
+
async def main(): # noqa: D103
|
|
215
|
+
job = await sdk.jobs.retrieve_async(job_key="ee9327fd-237d-419e-86ef-9946b34461e3", folder_path="Shared")
|
|
216
|
+
|
|
217
|
+
asyncio.run(main())
|
|
218
|
+
```
|
|
219
|
+
"""
|
|
220
|
+
spec = self._retrieve_spec(
|
|
221
|
+
job_key=job_key, folder_key=folder_key, folder_path=folder_path
|
|
222
|
+
)
|
|
171
223
|
response = await self.request_async(
|
|
172
224
|
spec.method,
|
|
173
225
|
url=spec.endpoint,
|
|
226
|
+
headers=spec.headers,
|
|
174
227
|
)
|
|
175
228
|
|
|
176
229
|
return Job.model_validate(response.json())
|
|
@@ -268,12 +321,17 @@ class JobsService(FolderContext, BaseService):
|
|
|
268
321
|
self,
|
|
269
322
|
*,
|
|
270
323
|
job_key: str,
|
|
324
|
+
folder_key: Optional[str] = None,
|
|
325
|
+
folder_path: Optional[str] = None,
|
|
271
326
|
) -> RequestSpec:
|
|
272
327
|
return RequestSpec(
|
|
273
328
|
method="GET",
|
|
274
329
|
endpoint=Endpoint(
|
|
275
330
|
f"/orchestrator_/odata/Jobs/UiPath.Server.Configuration.OData.GetByKey(identifier={job_key})"
|
|
276
331
|
),
|
|
332
|
+
headers={
|
|
333
|
+
**header_folder(folder_key, folder_path),
|
|
334
|
+
},
|
|
277
335
|
)
|
|
278
336
|
|
|
279
337
|
@traced(name="jobs_list_attachments", run_type="uipath")
|
|
@@ -553,8 +611,12 @@ class JobsService(FolderContext, BaseService):
|
|
|
553
611
|
|
|
554
612
|
# Get job key from context if not explicitly provided
|
|
555
613
|
context_job_key = None
|
|
556
|
-
if job_key is None
|
|
557
|
-
|
|
614
|
+
if job_key is None:
|
|
615
|
+
try:
|
|
616
|
+
context_job_key = self._execution_context.instance_key
|
|
617
|
+
except ValueError:
|
|
618
|
+
# Instance key is not set in environment
|
|
619
|
+
context_job_key = None
|
|
558
620
|
|
|
559
621
|
# Check if a job is available
|
|
560
622
|
if job_key is not None or context_job_key is not None:
|
|
@@ -690,8 +752,12 @@ class JobsService(FolderContext, BaseService):
|
|
|
690
752
|
|
|
691
753
|
# Get job key from context if not explicitly provided
|
|
692
754
|
context_job_key = None
|
|
693
|
-
if job_key is None
|
|
694
|
-
|
|
755
|
+
if job_key is None:
|
|
756
|
+
try:
|
|
757
|
+
context_job_key = self._execution_context.instance_key
|
|
758
|
+
except ValueError:
|
|
759
|
+
# Instance key is not set in environment
|
|
760
|
+
context_job_key = None
|
|
695
761
|
|
|
696
762
|
# Check if a job is available
|
|
697
763
|
if job_key is not None or context_job_key is not None:
|
|
@@ -579,16 +579,13 @@ class TestJobsService:
|
|
|
579
579
|
content = "Test attachment content"
|
|
580
580
|
name = "test_attachment.txt"
|
|
581
581
|
|
|
582
|
-
# Set job key in
|
|
583
|
-
|
|
584
|
-
# Add job_key attribute to ExecutionContext
|
|
585
|
-
execution_context.__dict__["job_key"] = job_key
|
|
586
|
-
else:
|
|
587
|
-
execution_context.job_key = job_key
|
|
588
|
-
|
|
589
|
-
# Create service with our execution context
|
|
582
|
+
# Set job key in environment - must be string
|
|
583
|
+
monkeypatch.setenv("UIPATH_JOB_KEY", str(job_key))
|
|
590
584
|
monkeypatch.setenv("UIPATH_FOLDER_PATH", "test-folder-path")
|
|
591
|
-
|
|
585
|
+
|
|
586
|
+
# Create fresh execution context after setting environment variables
|
|
587
|
+
fresh_execution_context = ExecutionContext()
|
|
588
|
+
service = JobsService(config=config, execution_context=fresh_execution_context)
|
|
592
589
|
|
|
593
590
|
# Mock the attachment service's upload method
|
|
594
591
|
mock_upload = mocker.patch.object(
|
|
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
|