uipath 2.0.82__tar.gz → 2.1.0__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.
- {uipath-2.0.82 → uipath-2.1.0}/.github/workflows/publish-docs.yml +3 -0
- {uipath-2.0.82 → uipath-2.1.0}/PKG-INFO +1 -3
- {uipath-2.0.82 → uipath-2.1.0}/docs/index.md +11 -0
- {uipath-2.0.82 → uipath-2.1.0}/mkdocs.yml +19 -15
- {uipath-2.0.82 → uipath-2.1.0}/pyproject.toml +1 -4
- {uipath-2.0.82 → uipath-2.1.0}/src/uipath/_cli/_runtime/_contracts.py +20 -0
- {uipath-2.0.82 → uipath-2.1.0}/src/uipath/_cli/_utils/_debug.py +4 -0
- {uipath-2.0.82 → uipath-2.1.0}/src/uipath/_cli/cli_pack.py +1 -1
- {uipath-2.0.82 → uipath-2.1.0}/src/uipath/_cli/cli_run.py +30 -8
- {uipath-2.0.82 → uipath-2.1.0}/tests/cli/test_run.py +30 -4
- uipath-2.1.0/uv.lock +2246 -0
- uipath-2.0.82/uv.lock +0 -3528
- {uipath-2.0.82 → uipath-2.1.0}/.cursorrules +0 -0
- {uipath-2.0.82 → uipath-2.1.0}/.editorconfig +0 -0
- {uipath-2.0.82 → uipath-2.1.0}/.gitattributes +0 -0
- {uipath-2.0.82 → uipath-2.1.0}/.github/workflows/cd.yml +0 -0
- {uipath-2.0.82 → uipath-2.1.0}/.github/workflows/ci.yml +0 -0
- {uipath-2.0.82 → uipath-2.1.0}/.github/workflows/commitlint.yml +0 -0
- {uipath-2.0.82 → uipath-2.1.0}/.github/workflows/lint.yml +0 -0
- {uipath-2.0.82 → uipath-2.1.0}/.github/workflows/publish-dev.yml +0 -0
- {uipath-2.0.82 → uipath-2.1.0}/.github/workflows/slack.yml +0 -0
- {uipath-2.0.82 → uipath-2.1.0}/.github/workflows/test.yml +0 -0
- {uipath-2.0.82 → uipath-2.1.0}/.gitignore +0 -0
- {uipath-2.0.82 → uipath-2.1.0}/.pre-commit-config.yaml +0 -0
- {uipath-2.0.82 → uipath-2.1.0}/.python-version +0 -0
- {uipath-2.0.82 → uipath-2.1.0}/.vscode/extensions.json +0 -0
- {uipath-2.0.82 → uipath-2.1.0}/.vscode/launch.json +0 -0
- {uipath-2.0.82 → uipath-2.1.0}/.vscode/settings.json +0 -0
- {uipath-2.0.82 → uipath-2.1.0}/CONTRIBUTING.md +0 -0
- {uipath-2.0.82 → uipath-2.1.0}/LICENSE +0 -0
- {uipath-2.0.82 → uipath-2.1.0}/README.md +0 -0
- {uipath-2.0.82 → uipath-2.1.0}/docs/CONTRIBUTING.md +0 -0
- {uipath-2.0.82 → uipath-2.1.0}/docs/FAQ.md +0 -0
- {uipath-2.0.82 → uipath-2.1.0}/docs/assets/env-preparation-failed-dark.png +0 -0
- {uipath-2.0.82 → uipath-2.1.0}/docs/assets/env-preparation-failed-light.png +0 -0
- {uipath-2.0.82 → uipath-2.1.0}/docs/assets/favicon.png +0 -0
- {uipath-2.0.82 → uipath-2.1.0}/docs/assets/logo-dark.svg +0 -0
- {uipath-2.0.82 → uipath-2.1.0}/docs/assets/logo-light.svg +0 -0
- {uipath-2.0.82 → uipath-2.1.0}/docs/cli/index.md +0 -0
- {uipath-2.0.82 → uipath-2.1.0}/docs/core/actions.md +0 -0
- {uipath-2.0.82 → uipath-2.1.0}/docs/core/assets/cloud_env_var_dark.gif +0 -0
- {uipath-2.0.82 → uipath-2.1.0}/docs/core/assets/cloud_env_var_light.gif +0 -0
- {uipath-2.0.82 → uipath-2.1.0}/docs/core/assets/cloud_env_var_secret_dark.png +0 -0
- {uipath-2.0.82 → uipath-2.1.0}/docs/core/assets/cloud_env_var_secret_light.png +0 -0
- {uipath-2.0.82 → uipath-2.1.0}/docs/core/assets/copy_path_dark.png +0 -0
- {uipath-2.0.82 → uipath-2.1.0}/docs/core/assets/copy_path_light.png +0 -0
- {uipath-2.0.82 → uipath-2.1.0}/docs/core/assets.md +0 -0
- {uipath-2.0.82 → uipath-2.1.0}/docs/core/attachments.md +0 -0
- {uipath-2.0.82 → uipath-2.1.0}/docs/core/buckets.md +0 -0
- {uipath-2.0.82 → uipath-2.1.0}/docs/core/connections.md +0 -0
- {uipath-2.0.82 → uipath-2.1.0}/docs/core/context_grounding.md +0 -0
- {uipath-2.0.82 → uipath-2.1.0}/docs/core/environment_variables.md +0 -0
- {uipath-2.0.82 → uipath-2.1.0}/docs/core/getting_started.md +0 -0
- {uipath-2.0.82 → uipath-2.1.0}/docs/core/jobs.md +0 -0
- {uipath-2.0.82 → uipath-2.1.0}/docs/core/llm_gateway.md +0 -0
- {uipath-2.0.82 → uipath-2.1.0}/docs/core/processes.md +0 -0
- {uipath-2.0.82 → uipath-2.1.0}/docs/core/queues.md +0 -0
- {uipath-2.0.82 → uipath-2.1.0}/docs/core/traced.md +0 -0
- {uipath-2.0.82 → uipath-2.1.0}/docs/hooks.py +0 -0
- {uipath-2.0.82 → uipath-2.1.0}/docs/javascripts/extra.js +0 -0
- {uipath-2.0.82 → uipath-2.1.0}/docs/overrides/main.html +0 -0
- {uipath-2.0.82 → uipath-2.1.0}/docs/overrides/partials/actions.html +0 -0
- {uipath-2.0.82 → uipath-2.1.0}/docs/overrides/partials/logo.html +0 -0
- {uipath-2.0.82 → uipath-2.1.0}/docs/release_policy.md +0 -0
- {uipath-2.0.82 → uipath-2.1.0}/docs/sample_images/google-ADK-agent/agent-output.png +0 -0
- {uipath-2.0.82 → uipath-2.1.0}/docs/stylesheets/extra.css +0 -0
- {uipath-2.0.82 → uipath-2.1.0}/justfile +0 -0
- {uipath-2.0.82 → uipath-2.1.0}/py.typed +0 -0
- {uipath-2.0.82 → uipath-2.1.0}/samples/google-ADK-agent/.env.example +0 -0
- {uipath-2.0.82 → uipath-2.1.0}/samples/google-ADK-agent/README.md +0 -0
- {uipath-2.0.82 → uipath-2.1.0}/samples/google-ADK-agent/input.json +0 -0
- {uipath-2.0.82 → uipath-2.1.0}/samples/google-ADK-agent/multi_tool_agent/__init__.py +0 -0
- {uipath-2.0.82 → uipath-2.1.0}/samples/google-ADK-agent/multi_tool_agent/agent.py +0 -0
- {uipath-2.0.82 → uipath-2.1.0}/samples/google-ADK-agent/pyproject.toml +0 -0
- {uipath-2.0.82 → uipath-2.1.0}/samples/google-ADK-agent/uv.lock +0 -0
- {uipath-2.0.82 → uipath-2.1.0}/scripts/debug_test.py +0 -0
- {uipath-2.0.82 → uipath-2.1.0}/scripts/lint_httpx_client.py +0 -0
- {uipath-2.0.82 → uipath-2.1.0}/src/uipath/__init__.py +0 -0
- {uipath-2.0.82 → uipath-2.1.0}/src/uipath/_cli/README.md +0 -0
- {uipath-2.0.82 → uipath-2.1.0}/src/uipath/_cli/__init__.py +0 -0
- {uipath-2.0.82 → uipath-2.1.0}/src/uipath/_cli/_auth/_auth_server.py +0 -0
- {uipath-2.0.82 → uipath-2.1.0}/src/uipath/_cli/_auth/_client_credentials.py +0 -0
- {uipath-2.0.82 → uipath-2.1.0}/src/uipath/_cli/_auth/_models.py +0 -0
- {uipath-2.0.82 → uipath-2.1.0}/src/uipath/_cli/_auth/_oidc_utils.py +0 -0
- {uipath-2.0.82 → uipath-2.1.0}/src/uipath/_cli/_auth/_portal_service.py +0 -0
- {uipath-2.0.82 → uipath-2.1.0}/src/uipath/_cli/_auth/_utils.py +0 -0
- {uipath-2.0.82 → uipath-2.1.0}/src/uipath/_cli/_auth/auth_config.json +0 -0
- {uipath-2.0.82 → uipath-2.1.0}/src/uipath/_cli/_auth/index.html +0 -0
- {uipath-2.0.82 → uipath-2.1.0}/src/uipath/_cli/_auth/localhost.crt +0 -0
- {uipath-2.0.82 → uipath-2.1.0}/src/uipath/_cli/_auth/localhost.key +0 -0
- {uipath-2.0.82 → uipath-2.1.0}/src/uipath/_cli/_runtime/_escalation.py +0 -0
- {uipath-2.0.82 → uipath-2.1.0}/src/uipath/_cli/_runtime/_hitl.py +0 -0
- {uipath-2.0.82 → uipath-2.1.0}/src/uipath/_cli/_runtime/_logging.py +0 -0
- {uipath-2.0.82 → uipath-2.1.0}/src/uipath/_cli/_runtime/_runtime.py +0 -0
- {uipath-2.0.82 → uipath-2.1.0}/src/uipath/_cli/_templates/.psmdcp.template +0 -0
- {uipath-2.0.82 → uipath-2.1.0}/src/uipath/_cli/_templates/.rels.template +0 -0
- {uipath-2.0.82 → uipath-2.1.0}/src/uipath/_cli/_templates/[Content_Types].xml.template +0 -0
- {uipath-2.0.82 → uipath-2.1.0}/src/uipath/_cli/_templates/main.py.template +0 -0
- {uipath-2.0.82 → uipath-2.1.0}/src/uipath/_cli/_templates/package.nuspec.template +0 -0
- {uipath-2.0.82 → uipath-2.1.0}/src/uipath/_cli/_utils/_common.py +0 -0
- {uipath-2.0.82 → uipath-2.1.0}/src/uipath/_cli/_utils/_console.py +0 -0
- {uipath-2.0.82 → uipath-2.1.0}/src/uipath/_cli/_utils/_constants.py +0 -0
- {uipath-2.0.82 → uipath-2.1.0}/src/uipath/_cli/_utils/_folders.py +0 -0
- {uipath-2.0.82 → uipath-2.1.0}/src/uipath/_cli/_utils/_input_args.py +0 -0
- {uipath-2.0.82 → uipath-2.1.0}/src/uipath/_cli/_utils/_parse_ast.py +0 -0
- {uipath-2.0.82 → uipath-2.1.0}/src/uipath/_cli/_utils/_processes.py +0 -0
- {uipath-2.0.82 → uipath-2.1.0}/src/uipath/_cli/_utils/_tracing.py +0 -0
- {uipath-2.0.82 → uipath-2.1.0}/src/uipath/_cli/cli_auth.py +0 -0
- {uipath-2.0.82 → uipath-2.1.0}/src/uipath/_cli/cli_deploy.py +0 -0
- {uipath-2.0.82 → uipath-2.1.0}/src/uipath/_cli/cli_init.py +0 -0
- {uipath-2.0.82 → uipath-2.1.0}/src/uipath/_cli/cli_invoke.py +0 -0
- {uipath-2.0.82 → uipath-2.1.0}/src/uipath/_cli/cli_new.py +0 -0
- {uipath-2.0.82 → uipath-2.1.0}/src/uipath/_cli/cli_publish.py +0 -0
- {uipath-2.0.82 → uipath-2.1.0}/src/uipath/_cli/middlewares.py +0 -0
- {uipath-2.0.82 → uipath-2.1.0}/src/uipath/_cli/spinner.py +0 -0
- {uipath-2.0.82 → uipath-2.1.0}/src/uipath/_config.py +0 -0
- {uipath-2.0.82 → uipath-2.1.0}/src/uipath/_execution_context.py +0 -0
- {uipath-2.0.82 → uipath-2.1.0}/src/uipath/_folder_context.py +0 -0
- {uipath-2.0.82 → uipath-2.1.0}/src/uipath/_services/__init__.py +0 -0
- {uipath-2.0.82 → uipath-2.1.0}/src/uipath/_services/_base_service.py +0 -0
- {uipath-2.0.82 → uipath-2.1.0}/src/uipath/_services/actions_service.py +0 -0
- {uipath-2.0.82 → uipath-2.1.0}/src/uipath/_services/api_client.py +0 -0
- {uipath-2.0.82 → uipath-2.1.0}/src/uipath/_services/assets_service.py +0 -0
- {uipath-2.0.82 → uipath-2.1.0}/src/uipath/_services/attachments_service.py +0 -0
- {uipath-2.0.82 → uipath-2.1.0}/src/uipath/_services/buckets_service.py +0 -0
- {uipath-2.0.82 → uipath-2.1.0}/src/uipath/_services/connections_service.py +0 -0
- {uipath-2.0.82 → uipath-2.1.0}/src/uipath/_services/context_grounding_service.py +0 -0
- {uipath-2.0.82 → uipath-2.1.0}/src/uipath/_services/folder_service.py +0 -0
- {uipath-2.0.82 → uipath-2.1.0}/src/uipath/_services/jobs_service.py +0 -0
- {uipath-2.0.82 → uipath-2.1.0}/src/uipath/_services/llm_gateway_service.py +0 -0
- {uipath-2.0.82 → uipath-2.1.0}/src/uipath/_services/processes_service.py +0 -0
- {uipath-2.0.82 → uipath-2.1.0}/src/uipath/_services/queues_service.py +0 -0
- {uipath-2.0.82 → uipath-2.1.0}/src/uipath/_uipath.py +0 -0
- {uipath-2.0.82 → uipath-2.1.0}/src/uipath/_utils/__init__.py +0 -0
- {uipath-2.0.82 → uipath-2.1.0}/src/uipath/_utils/_endpoint.py +0 -0
- {uipath-2.0.82 → uipath-2.1.0}/src/uipath/_utils/_infer_bindings.py +0 -0
- {uipath-2.0.82 → uipath-2.1.0}/src/uipath/_utils/_logs.py +0 -0
- {uipath-2.0.82 → uipath-2.1.0}/src/uipath/_utils/_read_overwrites.py +0 -0
- {uipath-2.0.82 → uipath-2.1.0}/src/uipath/_utils/_request_override.py +0 -0
- {uipath-2.0.82 → uipath-2.1.0}/src/uipath/_utils/_request_spec.py +0 -0
- {uipath-2.0.82 → uipath-2.1.0}/src/uipath/_utils/_ssl_context.py +0 -0
- {uipath-2.0.82 → uipath-2.1.0}/src/uipath/_utils/_url.py +0 -0
- {uipath-2.0.82 → uipath-2.1.0}/src/uipath/_utils/_user_agent.py +0 -0
- {uipath-2.0.82 → uipath-2.1.0}/src/uipath/_utils/constants.py +0 -0
- {uipath-2.0.82 → uipath-2.1.0}/src/uipath/models/__init__.py +0 -0
- {uipath-2.0.82 → uipath-2.1.0}/src/uipath/models/action_schema.py +0 -0
- {uipath-2.0.82 → uipath-2.1.0}/src/uipath/models/actions.py +0 -0
- {uipath-2.0.82 → uipath-2.1.0}/src/uipath/models/assets.py +0 -0
- {uipath-2.0.82 → uipath-2.1.0}/src/uipath/models/attachment.py +0 -0
- {uipath-2.0.82 → uipath-2.1.0}/src/uipath/models/buckets.py +0 -0
- {uipath-2.0.82 → uipath-2.1.0}/src/uipath/models/connections.py +0 -0
- {uipath-2.0.82 → uipath-2.1.0}/src/uipath/models/context_grounding.py +0 -0
- {uipath-2.0.82 → uipath-2.1.0}/src/uipath/models/context_grounding_index.py +0 -0
- {uipath-2.0.82 → uipath-2.1.0}/src/uipath/models/errors.py +0 -0
- {uipath-2.0.82 → uipath-2.1.0}/src/uipath/models/exceptions.py +0 -0
- {uipath-2.0.82 → uipath-2.1.0}/src/uipath/models/interrupt_models.py +0 -0
- {uipath-2.0.82 → uipath-2.1.0}/src/uipath/models/job.py +0 -0
- {uipath-2.0.82 → uipath-2.1.0}/src/uipath/models/llm_gateway.py +0 -0
- {uipath-2.0.82 → uipath-2.1.0}/src/uipath/models/processes.py +0 -0
- {uipath-2.0.82 → uipath-2.1.0}/src/uipath/models/queues.py +0 -0
- {uipath-2.0.82 → uipath-2.1.0}/src/uipath/py.typed +0 -0
- {uipath-2.0.82 → uipath-2.1.0}/src/uipath/telemetry/__init__.py +0 -0
- {uipath-2.0.82 → uipath-2.1.0}/src/uipath/telemetry/_constants.py +0 -0
- {uipath-2.0.82 → uipath-2.1.0}/src/uipath/telemetry/_track.py +0 -0
- {uipath-2.0.82 → uipath-2.1.0}/src/uipath/tracing/__init__.py +0 -0
- {uipath-2.0.82 → uipath-2.1.0}/src/uipath/tracing/_otel_exporters.py +0 -0
- {uipath-2.0.82 → uipath-2.1.0}/src/uipath/tracing/_traced.py +0 -0
- {uipath-2.0.82 → uipath-2.1.0}/src/uipath/tracing/_utils.py +0 -0
- {uipath-2.0.82 → uipath-2.1.0}/src/uipath/utils/__init__.py +0 -0
- {uipath-2.0.82 → uipath-2.1.0}/src/uipath/utils/_endpoints_manager.py +0 -0
- {uipath-2.0.82 → uipath-2.1.0}/tests/__init__.py +0 -0
- {uipath-2.0.82 → uipath-2.1.0}/tests/cli/conftest.py +0 -0
- {uipath-2.0.82 → uipath-2.1.0}/tests/cli/mocks/bindings_script.py +0 -0
- {uipath-2.0.82 → uipath-2.1.0}/tests/cli/mocks/pyproject.toml +0 -0
- {uipath-2.0.82 → uipath-2.1.0}/tests/cli/mocks/simple_script.py +0 -0
- {uipath-2.0.82 → uipath-2.1.0}/tests/cli/mocks/uipath-mock.json +0 -0
- {uipath-2.0.82 → uipath-2.1.0}/tests/cli/mocks/uipath-simple-script-mock.json +0 -0
- {uipath-2.0.82 → uipath-2.1.0}/tests/cli/test_hitl.py +0 -0
- {uipath-2.0.82 → uipath-2.1.0}/tests/cli/test_init.py +0 -0
- {uipath-2.0.82 → uipath-2.1.0}/tests/cli/test_invoke.py +0 -0
- {uipath-2.0.82 → uipath-2.1.0}/tests/cli/test_new.py +0 -0
- {uipath-2.0.82 → uipath-2.1.0}/tests/cli/test_pack.py +0 -0
- {uipath-2.0.82 → uipath-2.1.0}/tests/cli/test_publish.py +0 -0
- {uipath-2.0.82 → uipath-2.1.0}/tests/cli/test_utils.py +0 -0
- {uipath-2.0.82 → uipath-2.1.0}/tests/cli/utils/project_details.py +0 -0
- {uipath-2.0.82 → uipath-2.1.0}/tests/cli/utils/uipath_json.py +0 -0
- {uipath-2.0.82 → uipath-2.1.0}/tests/conftest.py +0 -0
- {uipath-2.0.82 → uipath-2.1.0}/tests/sdk/services/conftest.py +0 -0
- {uipath-2.0.82 → uipath-2.1.0}/tests/sdk/services/test_actions_service.py +0 -0
- {uipath-2.0.82 → uipath-2.1.0}/tests/sdk/services/test_api_client.py +0 -0
- {uipath-2.0.82 → uipath-2.1.0}/tests/sdk/services/test_assets_service.py +0 -0
- {uipath-2.0.82 → uipath-2.1.0}/tests/sdk/services/test_attachments_service.py +0 -0
- {uipath-2.0.82 → uipath-2.1.0}/tests/sdk/services/test_base_service.py +0 -0
- {uipath-2.0.82 → uipath-2.1.0}/tests/sdk/services/test_buckets_service.py +0 -0
- {uipath-2.0.82 → uipath-2.1.0}/tests/sdk/services/test_connections_service.py +0 -0
- {uipath-2.0.82 → uipath-2.1.0}/tests/sdk/services/test_context_grounding_service.py +0 -0
- {uipath-2.0.82 → uipath-2.1.0}/tests/sdk/services/test_folder_service.py +0 -0
- {uipath-2.0.82 → uipath-2.1.0}/tests/sdk/services/test_jobs_service.py +0 -0
- {uipath-2.0.82 → uipath-2.1.0}/tests/sdk/services/test_llm_integration.py +0 -0
- {uipath-2.0.82 → uipath-2.1.0}/tests/sdk/services/test_llm_service.py +0 -0
- {uipath-2.0.82 → uipath-2.1.0}/tests/sdk/services/test_processes_service.py +0 -0
- {uipath-2.0.82 → uipath-2.1.0}/tests/sdk/services/test_queues_service.py +0 -0
- {uipath-2.0.82 → uipath-2.1.0}/tests/sdk/services/test_uipath_llm_integration.py +0 -0
- {uipath-2.0.82 → uipath-2.1.0}/tests/sdk/test_bindings_inference.py +0 -0
- {uipath-2.0.82 → uipath-2.1.0}/tests/sdk/test_config.py +0 -0
- {uipath-2.0.82 → uipath-2.1.0}/tests/sdk/test_overwrites.py +0 -0
- {uipath-2.0.82 → uipath-2.1.0}/tests/tracing/test_otel_exporters.py +0 -0
- {uipath-2.0.82 → uipath-2.1.0}/tests/tracing/test_span_utils.py +0 -0
- {uipath-2.0.82 → uipath-2.1.0}/tests/tracing/test_traced.py +0 -0
- {uipath-2.0.82 → uipath-2.1.0}/tests/tracing/test_tracing_manager.py +0 -0
@@ -40,13 +40,16 @@ jobs:
|
|
40
40
|
run: |
|
41
41
|
git clone https://x-access-token:${{ secrets.REPO_ACCESS }}@github.com/UiPath/uipath-langchain-python plugins/uipath-langchain-python
|
42
42
|
git clone https://x-access-token:${{ secrets.REPO_ACCESS }}@github.com/UiPath/uipath-llamaindex-python plugins/uipath-llamaindex-python
|
43
|
+
git clone https://x-access-token:${{ secrets.REPO_ACCESS }}@github.com/UiPath/uipath-mcp-python plugins/uipath-mcp-python
|
43
44
|
|
44
45
|
- name: Symlink plugin docs
|
45
46
|
run: |
|
46
47
|
ln -s ../plugins/uipath-langchain-python/docs docs/langchain
|
47
48
|
ln -s ../plugins/uipath-llamaindex-python/docs docs/llamaindex
|
49
|
+
ln -s ../plugins/uipath-mcp-python/docs docs/mcp
|
48
50
|
ls -a docs/langchain
|
49
51
|
ls -a docs/llamaindex
|
52
|
+
ls -a docs/mcp
|
50
53
|
|
51
54
|
- name: Publish Docs
|
52
55
|
run: uv run mkdocs gh-deploy --force
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: uipath
|
3
|
-
Version: 2.0
|
3
|
+
Version: 2.1.0
|
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
|
@@ -25,8 +25,6 @@ Requires-Dist: rich>=13.0.0
|
|
25
25
|
Requires-Dist: tenacity>=9.0.0
|
26
26
|
Requires-Dist: tomli>=2.2.1
|
27
27
|
Requires-Dist: truststore>=0.10.1
|
28
|
-
Provides-Extra: langchain
|
29
|
-
Requires-Dist: uipath-langchain<0.1.0,>=0.0.88; extra == 'langchain'
|
30
28
|
Description-Content-Type: text/markdown
|
31
29
|
|
32
30
|
# UiPath Python SDK
|
@@ -13,6 +13,17 @@ title: Getting Started
|
|
13
13
|
|
14
14
|
</div>
|
15
15
|
|
16
|
+
<div class="grid cards" markdown>
|
17
|
+
- __UiPath MCP SDK__
|
18
|
+
|
19
|
+
---
|
20
|
+
|
21
|
+
Build and host Coded MCP Servers within UiPath.
|
22
|
+
|
23
|
+
[Start Building](./mcp/quick_start.md)
|
24
|
+
|
25
|
+
</div>
|
26
|
+
|
16
27
|
<h2> Extensions </h2>
|
17
28
|
<div class="grid cards" markdown>
|
18
29
|
- __UiPath Langchain SDK__
|
@@ -53,6 +53,25 @@ theme:
|
|
53
53
|
- toc.follow
|
54
54
|
|
55
55
|
nav:
|
56
|
+
- UiPath SDK:
|
57
|
+
- Getting Started: core/getting_started.md
|
58
|
+
- Environment Variables: core/environment_variables.md
|
59
|
+
- CLI Reference: cli/index.md
|
60
|
+
- Tracing: core/traced.md
|
61
|
+
- Services:
|
62
|
+
- Actions: core/actions.md
|
63
|
+
- Assets: core/assets.md
|
64
|
+
- Buckets: core/buckets.md
|
65
|
+
- Connections: core/connections.md
|
66
|
+
- Context Grounding: core/context_grounding.md
|
67
|
+
- Jobs: core/jobs.md
|
68
|
+
- LLM Gateway: core/llm_gateway.md
|
69
|
+
- Queues: core/queues.md
|
70
|
+
- Processes: core/processes.md
|
71
|
+
- UiPath MCP SDK:
|
72
|
+
- Getting Started: mcp/quick_start.md
|
73
|
+
- How To Pack Binary: mcp/how_to_pack_binary.md
|
74
|
+
- Sample MCP Servers: https://github.com/UiPath/uipath-mcp-python/tree/main/samples
|
56
75
|
- UiPath Langchain SDK:
|
57
76
|
- Getting Started: langchain/quick_start.md
|
58
77
|
- Chat Models: langchain/chat_models.md
|
@@ -65,21 +84,6 @@ nav:
|
|
65
84
|
- Context Grounding: llamaindex/context_grounding.md
|
66
85
|
- Human In The Loop: llamaindex/human_in_the_loop.md
|
67
86
|
- Sample Agents: https://github.com/UiPath/uipath-llamaindex-python/tree/main/samples
|
68
|
-
- UiPath SDK:
|
69
|
-
- Getting Started: core/getting_started.md
|
70
|
-
- Environment Variables: core/environment_variables.md
|
71
|
-
- CLI Reference: cli/index.md
|
72
|
-
- Tracing: core/traced.md
|
73
|
-
- Services:
|
74
|
-
- Actions: core/actions.md
|
75
|
-
- Assets: core/assets.md
|
76
|
-
- Buckets: core/buckets.md
|
77
|
-
- Connections: core/connections.md
|
78
|
-
- Context Grounding: core/context_grounding.md
|
79
|
-
- Jobs: core/jobs.md
|
80
|
-
- LLM Gateway: core/llm_gateway.md
|
81
|
-
- Queues: core/queues.md
|
82
|
-
- Processes: core/processes.md
|
83
87
|
- How To Contribute: CONTRIBUTING.md
|
84
88
|
- FAQ: FAQ.md
|
85
89
|
- Release Policy: release_policy.md
|
@@ -1,6 +1,6 @@
|
|
1
1
|
[project]
|
2
2
|
name = "uipath"
|
3
|
-
version = "2.0
|
3
|
+
version = "2.1.0"
|
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"
|
@@ -67,9 +67,6 @@ dev = [
|
|
67
67
|
"types-toml>=0.10.8",
|
68
68
|
]
|
69
69
|
|
70
|
-
[project.optional-dependencies]
|
71
|
-
langchain = ["uipath-langchain>=0.0.88,<0.1.0"]
|
72
|
-
|
73
70
|
[tool.hatch.build.targets.wheel]
|
74
71
|
packages = ["src/uipath"]
|
75
72
|
|
@@ -148,6 +148,7 @@ class UiPathRuntimeContext(BaseModel):
|
|
148
148
|
trace_context: Optional[UiPathTraceContext] = None
|
149
149
|
tracing_enabled: Union[bool, str] = False
|
150
150
|
resume: bool = False
|
151
|
+
debug: bool = False
|
151
152
|
config_path: str = "uipath.json"
|
152
153
|
runtime_dir: Optional[str] = "__uipath"
|
153
154
|
logs_file: Optional[str] = "execution.log"
|
@@ -155,6 +156,8 @@ class UiPathRuntimeContext(BaseModel):
|
|
155
156
|
output_file: str = "output.json"
|
156
157
|
state_file: str = "state.db"
|
157
158
|
result: Optional[UiPathRuntimeResult] = None
|
159
|
+
execution_output_file: Optional[str] = None
|
160
|
+
input_file: Optional[str] = None
|
158
161
|
|
159
162
|
model_config = {"arbitrary_types_allowed": True}
|
160
163
|
|
@@ -295,6 +298,18 @@ class UiPathBaseRuntime(ABC):
|
|
295
298
|
Returns:
|
296
299
|
The runtime instance
|
297
300
|
"""
|
301
|
+
# Read the input from file if provided
|
302
|
+
if self.context.input_file:
|
303
|
+
_, file_extension = os.path.splitext(self.context.input_file)
|
304
|
+
if file_extension != ".json":
|
305
|
+
raise UiPathRuntimeError(
|
306
|
+
code="INVALID_INPUT_FILE_EXTENSION",
|
307
|
+
title="Invalid Input File Extension",
|
308
|
+
detail="The provided input file must be in JSON format.",
|
309
|
+
)
|
310
|
+
with open(self.context.input_file) as f:
|
311
|
+
self.context.input = f.read()
|
312
|
+
|
298
313
|
# Intercept all stdout/stderr/logs and write them to a file (runtime), stdout (debug)
|
299
314
|
self.logs_interceptor = LogsInterceptor(
|
300
315
|
min_level=self.context.logs_min_level,
|
@@ -370,6 +385,11 @@ class UiPathBaseRuntime(ABC):
|
|
370
385
|
with open(self.output_file_path, "w") as f:
|
371
386
|
json.dump(content, f, indent=2, default=str)
|
372
387
|
|
388
|
+
# Write the execution output to file if requested
|
389
|
+
if self.context.execution_output_file:
|
390
|
+
with open(self.context.execution_output_file, "w") as f:
|
391
|
+
json.dump(execution_result.output or {}, f, indent=2, default=str)
|
392
|
+
|
373
393
|
# Don't suppress exceptions
|
374
394
|
return False
|
375
395
|
|
@@ -42,6 +42,10 @@ def setup_debugging(debug: bool, debug_port: int = 5678) -> bool:
|
|
42
42
|
console.info(f"🐛 Debug server started on port {debug_port}")
|
43
43
|
console.info("📌 Waiting for debugger to attach...")
|
44
44
|
console.info(" - VS Code: Run -> Start Debugging -> Python: Remote Attach")
|
45
|
+
console.link(
|
46
|
+
" CLI Documentation reference: ",
|
47
|
+
"https://uipath.github.io/uipath-python/cli/#run",
|
48
|
+
)
|
45
49
|
|
46
50
|
debugpy.wait_for_client()
|
47
51
|
console.success("Debugger attached successfully!")
|
@@ -264,7 +264,7 @@ def pack_fn(
|
|
264
264
|
console.error("uipath.json not found, please run `uipath init`.")
|
265
265
|
|
266
266
|
# Define the allowlist of file extensions to include
|
267
|
-
file_extensions_included = [".py", ".mermaid", ".json", ".yaml", ".yml"]
|
267
|
+
file_extensions_included = [".py", ".mermaid", ".json", ".yaml", ".yml", ".md"]
|
268
268
|
files_included = []
|
269
269
|
|
270
270
|
with open(config_path, "r") as f:
|
@@ -32,6 +32,7 @@ def python_run_middleware(
|
|
32
32
|
entrypoint: Optional[str],
|
33
33
|
input: Optional[str],
|
34
34
|
resume: bool,
|
35
|
+
**kwargs,
|
35
36
|
) -> MiddlewareResult:
|
36
37
|
"""Middleware to handle Python script execution.
|
37
38
|
|
@@ -70,6 +71,8 @@ Usage: `uipath run <entrypoint_path> <input_arguments> [-f <input_json_file_path
|
|
70
71
|
context.resume = resume
|
71
72
|
context.job_id = env.get("UIPATH_JOB_KEY")
|
72
73
|
context.trace_id = env.get("UIPATH_TRACE_ID")
|
74
|
+
context.input_file = kwargs.get("input_file", None)
|
75
|
+
context.execution_output_file = kwargs.get("execution_output_file", None)
|
73
76
|
context.tracing_enabled = env.get("UIPATH_TRACING_ENABLED", True)
|
74
77
|
context.trace_context = UiPathTraceContext(
|
75
78
|
trace_id=env.get("UIPATH_TRACE_ID"),
|
@@ -118,6 +121,18 @@ Usage: `uipath run <entrypoint_path> <input_arguments> [-f <input_json_file_path
|
|
118
121
|
type=click.Path(exists=True),
|
119
122
|
help="File path for the .json input",
|
120
123
|
)
|
124
|
+
@click.option(
|
125
|
+
"--input-file",
|
126
|
+
required=False,
|
127
|
+
type=click.Path(exists=True),
|
128
|
+
help="Alias for '-f/--file' arguments",
|
129
|
+
)
|
130
|
+
@click.option(
|
131
|
+
"--output-file",
|
132
|
+
required=False,
|
133
|
+
type=click.Path(exists=False),
|
134
|
+
help="File path where the output will be written",
|
135
|
+
)
|
121
136
|
@click.option(
|
122
137
|
"--debug",
|
123
138
|
is_flag=True,
|
@@ -135,29 +150,36 @@ def run(
|
|
135
150
|
input: Optional[str],
|
136
151
|
resume: bool,
|
137
152
|
file: Optional[str],
|
153
|
+
input_file: Optional[str],
|
154
|
+
output_file: Optional[str],
|
138
155
|
debug: bool,
|
139
156
|
debug_port: int,
|
140
157
|
) -> None:
|
141
158
|
"""Execute the project."""
|
142
|
-
|
143
|
-
_, file_extension = os.path.splitext(file)
|
144
|
-
if file_extension != ".json":
|
145
|
-
console.error("Input file extension must be '.json'.")
|
146
|
-
with open(file) as f:
|
147
|
-
input = f.read()
|
159
|
+
input_file = file or input_file
|
148
160
|
# Setup debugging if requested
|
149
|
-
|
150
161
|
if not setup_debugging(debug, debug_port):
|
151
162
|
console.error(f"Failed to start debug server on port {debug_port}")
|
152
163
|
|
153
164
|
# Process through middleware chain
|
154
|
-
result = Middlewares.next(
|
165
|
+
result = Middlewares.next(
|
166
|
+
"run",
|
167
|
+
entrypoint,
|
168
|
+
input,
|
169
|
+
resume,
|
170
|
+
debug=debug,
|
171
|
+
debug_port=debug_port,
|
172
|
+
input_file=input_file,
|
173
|
+
execution_output_file=output_file,
|
174
|
+
)
|
155
175
|
|
156
176
|
if result.should_continue:
|
157
177
|
result = python_run_middleware(
|
158
178
|
entrypoint=entrypoint,
|
159
179
|
input=input,
|
160
180
|
resume=resume,
|
181
|
+
input_file=input_file,
|
182
|
+
execution_output_file=output_file,
|
161
183
|
)
|
162
184
|
|
163
185
|
# Handle result from middleware
|
@@ -53,6 +53,9 @@ class TestRun:
|
|
53
53
|
entrypoint: str,
|
54
54
|
):
|
55
55
|
with runner.isolated_filesystem(temp_dir=temp_dir):
|
56
|
+
file_path = os.path.join(temp_dir, entrypoint)
|
57
|
+
with open(file_path, "w") as f:
|
58
|
+
f.write("script content")
|
56
59
|
result = runner.invoke(run, [entrypoint, "--file", "not-here.json"])
|
57
60
|
assert result.exit_code != 0
|
58
61
|
assert "Error: Invalid value for '-f' / '--file'" in result.output
|
@@ -65,12 +68,15 @@ class TestRun:
|
|
65
68
|
):
|
66
69
|
file_name = "not-json.txt"
|
67
70
|
with runner.isolated_filesystem(temp_dir=temp_dir):
|
71
|
+
script_file_path = os.path.join(temp_dir, entrypoint)
|
72
|
+
with open(script_file_path, "w") as f:
|
73
|
+
f.write("script content")
|
68
74
|
file_path = os.path.join(temp_dir, file_name)
|
69
75
|
with open(file_path, "w") as f:
|
70
76
|
f.write("file content")
|
71
|
-
result = runner.invoke(run, [
|
77
|
+
result = runner.invoke(run, [script_file_path, "--file", file_path])
|
72
78
|
assert result.exit_code == 1
|
73
|
-
assert "Input
|
79
|
+
assert "Invalid Input File Extension" in result.output
|
74
80
|
|
75
81
|
def test_run_input_file_success(
|
76
82
|
self,
|
@@ -100,7 +106,14 @@ class TestRun:
|
|
100
106
|
assert "Successful execution." in result.output
|
101
107
|
assert mock_middleware.call_count == 1
|
102
108
|
assert mock_middleware.call_args == mock.call(
|
103
|
-
"run",
|
109
|
+
"run",
|
110
|
+
entrypoint,
|
111
|
+
"{}",
|
112
|
+
False,
|
113
|
+
debug=False,
|
114
|
+
debug_port=5678,
|
115
|
+
input_file=file_path,
|
116
|
+
execution_output_file=None,
|
104
117
|
)
|
105
118
|
|
106
119
|
class TestMiddleware:
|
@@ -134,6 +147,7 @@ class TestRun:
|
|
134
147
|
simple_script: str,
|
135
148
|
):
|
136
149
|
input_file_name = "input.json"
|
150
|
+
output_file_name = "output.json"
|
137
151
|
input_json_content = """
|
138
152
|
{
|
139
153
|
"message": "Hello world",
|
@@ -142,6 +156,7 @@ class TestRun:
|
|
142
156
|
with runner.isolated_filesystem(temp_dir=temp_dir):
|
143
157
|
# create input file
|
144
158
|
input_file_path = os.path.join(temp_dir, input_file_name)
|
159
|
+
output_file_path = os.path.join(temp_dir, output_file_name)
|
145
160
|
with open(input_file_path, "w") as f:
|
146
161
|
f.write(input_json_content)
|
147
162
|
# Create test script
|
@@ -152,11 +167,22 @@ class TestRun:
|
|
152
167
|
with open("uipath.json", "w") as f:
|
153
168
|
f.write(uipath_json.to_json())
|
154
169
|
result = runner.invoke(
|
155
|
-
run,
|
170
|
+
run,
|
171
|
+
[
|
172
|
+
script_file_path,
|
173
|
+
"--input-file",
|
174
|
+
input_file_path,
|
175
|
+
"--output-file",
|
176
|
+
output_file_path,
|
177
|
+
],
|
156
178
|
)
|
157
179
|
assert result.exit_code == 0
|
158
180
|
assert "Successful execution." in result.output
|
159
181
|
assert result.output.count("Hello world") == 2
|
182
|
+
assert os.path.exists(output_file_path)
|
183
|
+
with open(output_file_path, "r") as f:
|
184
|
+
output = f.read()
|
185
|
+
assert output.count("Hello world") == 2
|
160
186
|
|
161
187
|
def test_no_main_function_found(
|
162
188
|
self,
|