uipath 2.1.12__tar.gz → 2.1.14__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.1.12 → uipath-2.1.14}/PKG-INFO +1 -1
- {uipath-2.1.12 → uipath-2.1.14}/pyproject.toml +1 -1
- {uipath-2.1.12 → uipath-2.1.14}/src/uipath/_cli/_utils/_common.py +16 -0
- {uipath-2.1.12 → uipath-2.1.14}/src/uipath/_cli/cli_init.py +27 -0
- {uipath-2.1.12 → uipath-2.1.14}/src/uipath/_cli/cli_pack.py +23 -1
- {uipath-2.1.12 → uipath-2.1.14}/src/uipath/telemetry/_constants.py +3 -0
- {uipath-2.1.12 → uipath-2.1.14}/src/uipath/telemetry/_track.py +24 -0
- {uipath-2.1.12 → uipath-2.1.14}/tests/cli/test_pack.py +76 -0
- {uipath-2.1.12 → uipath-2.1.14}/uv.lock +846 -846
- {uipath-2.1.12 → uipath-2.1.14}/.cursorrules +0 -0
- {uipath-2.1.12 → uipath-2.1.14}/.editorconfig +0 -0
- {uipath-2.1.12 → uipath-2.1.14}/.gitattributes +0 -0
- {uipath-2.1.12 → uipath-2.1.14}/.github/workflows/cd.yml +0 -0
- {uipath-2.1.12 → uipath-2.1.14}/.github/workflows/ci.yml +0 -0
- {uipath-2.1.12 → uipath-2.1.14}/.github/workflows/commitlint.yml +0 -0
- {uipath-2.1.12 → uipath-2.1.14}/.github/workflows/lint.yml +0 -0
- {uipath-2.1.12 → uipath-2.1.14}/.github/workflows/publish-dev.yml +0 -0
- {uipath-2.1.12 → uipath-2.1.14}/.github/workflows/publish-docs.yml +0 -0
- {uipath-2.1.12 → uipath-2.1.14}/.github/workflows/slack.yml +0 -0
- {uipath-2.1.12 → uipath-2.1.14}/.github/workflows/test.yml +0 -0
- {uipath-2.1.12 → uipath-2.1.14}/.gitignore +0 -0
- {uipath-2.1.12 → uipath-2.1.14}/.pre-commit-config.yaml +0 -0
- {uipath-2.1.12 → uipath-2.1.14}/.python-version +0 -0
- {uipath-2.1.12 → uipath-2.1.14}/.vscode/extensions.json +0 -0
- {uipath-2.1.12 → uipath-2.1.14}/.vscode/launch.json +0 -0
- {uipath-2.1.12 → uipath-2.1.14}/.vscode/settings.json +0 -0
- {uipath-2.1.12 → uipath-2.1.14}/CONTRIBUTING.md +0 -0
- {uipath-2.1.12 → uipath-2.1.14}/LICENSE +0 -0
- {uipath-2.1.12 → uipath-2.1.14}/README.md +0 -0
- {uipath-2.1.12 → uipath-2.1.14}/docs/CONTRIBUTING.md +0 -0
- {uipath-2.1.12 → uipath-2.1.14}/docs/FAQ.md +0 -0
- {uipath-2.1.12 → uipath-2.1.14}/docs/assets/env-preparation-failed-dark.png +0 -0
- {uipath-2.1.12 → uipath-2.1.14}/docs/assets/env-preparation-failed-light.png +0 -0
- {uipath-2.1.12 → uipath-2.1.14}/docs/assets/favicon.png +0 -0
- {uipath-2.1.12 → uipath-2.1.14}/docs/assets/logo-dark.svg +0 -0
- {uipath-2.1.12 → uipath-2.1.14}/docs/assets/logo-light.svg +0 -0
- {uipath-2.1.12 → uipath-2.1.14}/docs/cli/index.md +0 -0
- {uipath-2.1.12 → uipath-2.1.14}/docs/core/actions.md +0 -0
- {uipath-2.1.12 → uipath-2.1.14}/docs/core/assets/cloud_env_var_dark.gif +0 -0
- {uipath-2.1.12 → uipath-2.1.14}/docs/core/assets/cloud_env_var_light.gif +0 -0
- {uipath-2.1.12 → uipath-2.1.14}/docs/core/assets/cloud_env_var_secret_dark.png +0 -0
- {uipath-2.1.12 → uipath-2.1.14}/docs/core/assets/cloud_env_var_secret_light.png +0 -0
- {uipath-2.1.12 → uipath-2.1.14}/docs/core/assets/copy_path_dark.png +0 -0
- {uipath-2.1.12 → uipath-2.1.14}/docs/core/assets/copy_path_light.png +0 -0
- {uipath-2.1.12 → uipath-2.1.14}/docs/core/assets.md +0 -0
- {uipath-2.1.12 → uipath-2.1.14}/docs/core/attachments.md +0 -0
- {uipath-2.1.12 → uipath-2.1.14}/docs/core/buckets.md +0 -0
- {uipath-2.1.12 → uipath-2.1.14}/docs/core/connections.md +0 -0
- {uipath-2.1.12 → uipath-2.1.14}/docs/core/context_grounding.md +0 -0
- {uipath-2.1.12 → uipath-2.1.14}/docs/core/environment_variables.md +0 -0
- {uipath-2.1.12 → uipath-2.1.14}/docs/core/getting_started.md +0 -0
- {uipath-2.1.12 → uipath-2.1.14}/docs/core/jobs.md +0 -0
- {uipath-2.1.12 → uipath-2.1.14}/docs/core/llm_gateway.md +0 -0
- {uipath-2.1.12 → uipath-2.1.14}/docs/core/processes.md +0 -0
- {uipath-2.1.12 → uipath-2.1.14}/docs/core/queues.md +0 -0
- {uipath-2.1.12 → uipath-2.1.14}/docs/core/traced.md +0 -0
- {uipath-2.1.12 → uipath-2.1.14}/docs/hooks.py +0 -0
- {uipath-2.1.12 → uipath-2.1.14}/docs/index.md +0 -0
- {uipath-2.1.12 → uipath-2.1.14}/docs/javascripts/extra.js +0 -0
- {uipath-2.1.12 → uipath-2.1.14}/docs/overrides/main.html +0 -0
- {uipath-2.1.12 → uipath-2.1.14}/docs/overrides/partials/actions.html +0 -0
- {uipath-2.1.12 → uipath-2.1.14}/docs/overrides/partials/logo.html +0 -0
- {uipath-2.1.12 → uipath-2.1.14}/docs/release_policy.md +0 -0
- {uipath-2.1.12 → uipath-2.1.14}/docs/sample_images/google-ADK-agent/agent-output.png +0 -0
- {uipath-2.1.12 → uipath-2.1.14}/docs/stylesheets/extra.css +0 -0
- {uipath-2.1.12 → uipath-2.1.14}/justfile +0 -0
- {uipath-2.1.12 → uipath-2.1.14}/mkdocs.yml +0 -0
- {uipath-2.1.12 → uipath-2.1.14}/py.typed +0 -0
- {uipath-2.1.12 → uipath-2.1.14}/samples/google-ADK-agent/.env.example +0 -0
- {uipath-2.1.12 → uipath-2.1.14}/samples/google-ADK-agent/README.md +0 -0
- {uipath-2.1.12 → uipath-2.1.14}/samples/google-ADK-agent/input.json +0 -0
- {uipath-2.1.12 → uipath-2.1.14}/samples/google-ADK-agent/multi_tool_agent/__init__.py +0 -0
- {uipath-2.1.12 → uipath-2.1.14}/samples/google-ADK-agent/multi_tool_agent/agent.py +0 -0
- {uipath-2.1.12 → uipath-2.1.14}/samples/google-ADK-agent/pyproject.toml +0 -0
- {uipath-2.1.12 → uipath-2.1.14}/samples/google-ADK-agent/uv.lock +0 -0
- {uipath-2.1.12 → uipath-2.1.14}/scripts/debug_test.py +0 -0
- {uipath-2.1.12 → uipath-2.1.14}/scripts/lint_httpx_client.py +0 -0
- {uipath-2.1.12 → uipath-2.1.14}/src/uipath/__init__.py +0 -0
- {uipath-2.1.12 → uipath-2.1.14}/src/uipath/_cli/README.md +0 -0
- {uipath-2.1.12 → uipath-2.1.14}/src/uipath/_cli/__init__.py +0 -0
- {uipath-2.1.12 → uipath-2.1.14}/src/uipath/_cli/_auth/_auth_server.py +0 -0
- {uipath-2.1.12 → uipath-2.1.14}/src/uipath/_cli/_auth/_client_credentials.py +0 -0
- {uipath-2.1.12 → uipath-2.1.14}/src/uipath/_cli/_auth/_models.py +0 -0
- {uipath-2.1.12 → uipath-2.1.14}/src/uipath/_cli/_auth/_oidc_utils.py +0 -0
- {uipath-2.1.12 → uipath-2.1.14}/src/uipath/_cli/_auth/_portal_service.py +0 -0
- {uipath-2.1.12 → uipath-2.1.14}/src/uipath/_cli/_auth/_utils.py +0 -0
- {uipath-2.1.12 → uipath-2.1.14}/src/uipath/_cli/_auth/auth_config.json +0 -0
- {uipath-2.1.12 → uipath-2.1.14}/src/uipath/_cli/_auth/index.html +0 -0
- {uipath-2.1.12 → uipath-2.1.14}/src/uipath/_cli/_auth/localhost.crt +0 -0
- {uipath-2.1.12 → uipath-2.1.14}/src/uipath/_cli/_auth/localhost.key +0 -0
- {uipath-2.1.12 → uipath-2.1.14}/src/uipath/_cli/_evals/_evaluators/__init__.py +0 -0
- {uipath-2.1.12 → uipath-2.1.14}/src/uipath/_cli/_evals/_evaluators/_agent_scorer_evaluator.py +0 -0
- {uipath-2.1.12 → uipath-2.1.14}/src/uipath/_cli/_evals/_evaluators/_deterministic_evaluator.py +0 -0
- {uipath-2.1.12 → uipath-2.1.14}/src/uipath/_cli/_evals/_evaluators/_evaluator_base.py +0 -0
- {uipath-2.1.12 → uipath-2.1.14}/src/uipath/_cli/_evals/_evaluators/_evaluator_factory.py +0 -0
- {uipath-2.1.12 → uipath-2.1.14}/src/uipath/_cli/_evals/_evaluators/_llm_as_judge_evaluator.py +0 -0
- {uipath-2.1.12 → uipath-2.1.14}/src/uipath/_cli/_evals/_evaluators/_trajectory_evaluator.py +0 -0
- {uipath-2.1.12 → uipath-2.1.14}/src/uipath/_cli/_evals/_models/__init__.py +0 -0
- {uipath-2.1.12 → uipath-2.1.14}/src/uipath/_cli/_evals/_models/_evaluation_set.py +0 -0
- {uipath-2.1.12 → uipath-2.1.14}/src/uipath/_cli/_evals/_models/_evaluators.py +0 -0
- {uipath-2.1.12 → uipath-2.1.14}/src/uipath/_cli/_evals/evaluation_service.py +0 -0
- {uipath-2.1.12 → uipath-2.1.14}/src/uipath/_cli/_evals/progress_reporter.py +0 -0
- {uipath-2.1.12 → uipath-2.1.14}/src/uipath/_cli/_runtime/_contracts.py +0 -0
- {uipath-2.1.12 → uipath-2.1.14}/src/uipath/_cli/_runtime/_escalation.py +0 -0
- {uipath-2.1.12 → uipath-2.1.14}/src/uipath/_cli/_runtime/_hitl.py +0 -0
- {uipath-2.1.12 → uipath-2.1.14}/src/uipath/_cli/_runtime/_logging.py +0 -0
- {uipath-2.1.12 → uipath-2.1.14}/src/uipath/_cli/_runtime/_runtime.py +0 -0
- {uipath-2.1.12 → uipath-2.1.14}/src/uipath/_cli/_templates/.psmdcp.template +0 -0
- {uipath-2.1.12 → uipath-2.1.14}/src/uipath/_cli/_templates/.rels.template +0 -0
- {uipath-2.1.12 → uipath-2.1.14}/src/uipath/_cli/_templates/[Content_Types].xml.template +0 -0
- {uipath-2.1.12 → uipath-2.1.14}/src/uipath/_cli/_templates/main.py.template +0 -0
- {uipath-2.1.12 → uipath-2.1.14}/src/uipath/_cli/_templates/package.nuspec.template +0 -0
- {uipath-2.1.12 → uipath-2.1.14}/src/uipath/_cli/_utils/_console.py +0 -0
- {uipath-2.1.12 → uipath-2.1.14}/src/uipath/_cli/_utils/_constants.py +0 -0
- {uipath-2.1.12 → uipath-2.1.14}/src/uipath/_cli/_utils/_debug.py +0 -0
- {uipath-2.1.12 → uipath-2.1.14}/src/uipath/_cli/_utils/_folders.py +0 -0
- {uipath-2.1.12 → uipath-2.1.14}/src/uipath/_cli/_utils/_input_args.py +0 -0
- {uipath-2.1.12 → uipath-2.1.14}/src/uipath/_cli/_utils/_parse_ast.py +0 -0
- {uipath-2.1.12 → uipath-2.1.14}/src/uipath/_cli/_utils/_processes.py +0 -0
- {uipath-2.1.12 → uipath-2.1.14}/src/uipath/_cli/_utils/_project_files.py +0 -0
- {uipath-2.1.12 → uipath-2.1.14}/src/uipath/_cli/_utils/_studio_project.py +0 -0
- {uipath-2.1.12 → uipath-2.1.14}/src/uipath/_cli/_utils/_tracing.py +0 -0
- {uipath-2.1.12 → uipath-2.1.14}/src/uipath/_cli/_utils/_uv_helpers.py +0 -0
- {uipath-2.1.12 → uipath-2.1.14}/src/uipath/_cli/cli_auth.py +0 -0
- {uipath-2.1.12 → uipath-2.1.14}/src/uipath/_cli/cli_deploy.py +0 -0
- {uipath-2.1.12 → uipath-2.1.14}/src/uipath/_cli/cli_eval.py +0 -0
- {uipath-2.1.12 → uipath-2.1.14}/src/uipath/_cli/cli_invoke.py +0 -0
- {uipath-2.1.12 → uipath-2.1.14}/src/uipath/_cli/cli_new.py +0 -0
- {uipath-2.1.12 → uipath-2.1.14}/src/uipath/_cli/cli_publish.py +0 -0
- {uipath-2.1.12 → uipath-2.1.14}/src/uipath/_cli/cli_pull.py +0 -0
- {uipath-2.1.12 → uipath-2.1.14}/src/uipath/_cli/cli_push.py +0 -0
- {uipath-2.1.12 → uipath-2.1.14}/src/uipath/_cli/cli_run.py +0 -0
- {uipath-2.1.12 → uipath-2.1.14}/src/uipath/_cli/middlewares.py +0 -0
- {uipath-2.1.12 → uipath-2.1.14}/src/uipath/_cli/spinner.py +0 -0
- {uipath-2.1.12 → uipath-2.1.14}/src/uipath/_config.py +0 -0
- {uipath-2.1.12 → uipath-2.1.14}/src/uipath/_execution_context.py +0 -0
- {uipath-2.1.12 → uipath-2.1.14}/src/uipath/_folder_context.py +0 -0
- {uipath-2.1.12 → uipath-2.1.14}/src/uipath/_services/__init__.py +0 -0
- {uipath-2.1.12 → uipath-2.1.14}/src/uipath/_services/_base_service.py +0 -0
- {uipath-2.1.12 → uipath-2.1.14}/src/uipath/_services/actions_service.py +0 -0
- {uipath-2.1.12 → uipath-2.1.14}/src/uipath/_services/api_client.py +0 -0
- {uipath-2.1.12 → uipath-2.1.14}/src/uipath/_services/assets_service.py +0 -0
- {uipath-2.1.12 → uipath-2.1.14}/src/uipath/_services/attachments_service.py +0 -0
- {uipath-2.1.12 → uipath-2.1.14}/src/uipath/_services/buckets_service.py +0 -0
- {uipath-2.1.12 → uipath-2.1.14}/src/uipath/_services/connections_service.py +0 -0
- {uipath-2.1.12 → uipath-2.1.14}/src/uipath/_services/context_grounding_service.py +0 -0
- {uipath-2.1.12 → uipath-2.1.14}/src/uipath/_services/folder_service.py +0 -0
- {uipath-2.1.12 → uipath-2.1.14}/src/uipath/_services/jobs_service.py +0 -0
- {uipath-2.1.12 → uipath-2.1.14}/src/uipath/_services/llm_gateway_service.py +0 -0
- {uipath-2.1.12 → uipath-2.1.14}/src/uipath/_services/processes_service.py +0 -0
- {uipath-2.1.12 → uipath-2.1.14}/src/uipath/_services/queues_service.py +0 -0
- {uipath-2.1.12 → uipath-2.1.14}/src/uipath/_uipath.py +0 -0
- {uipath-2.1.12 → uipath-2.1.14}/src/uipath/_utils/__init__.py +0 -0
- {uipath-2.1.12 → uipath-2.1.14}/src/uipath/_utils/_endpoint.py +0 -0
- {uipath-2.1.12 → uipath-2.1.14}/src/uipath/_utils/_infer_bindings.py +0 -0
- {uipath-2.1.12 → uipath-2.1.14}/src/uipath/_utils/_logs.py +0 -0
- {uipath-2.1.12 → uipath-2.1.14}/src/uipath/_utils/_read_overwrites.py +0 -0
- {uipath-2.1.12 → uipath-2.1.14}/src/uipath/_utils/_request_override.py +0 -0
- {uipath-2.1.12 → uipath-2.1.14}/src/uipath/_utils/_request_spec.py +0 -0
- {uipath-2.1.12 → uipath-2.1.14}/src/uipath/_utils/_ssl_context.py +0 -0
- {uipath-2.1.12 → uipath-2.1.14}/src/uipath/_utils/_url.py +0 -0
- {uipath-2.1.12 → uipath-2.1.14}/src/uipath/_utils/_user_agent.py +0 -0
- {uipath-2.1.12 → uipath-2.1.14}/src/uipath/_utils/constants.py +0 -0
- {uipath-2.1.12 → uipath-2.1.14}/src/uipath/models/__init__.py +0 -0
- {uipath-2.1.12 → uipath-2.1.14}/src/uipath/models/action_schema.py +0 -0
- {uipath-2.1.12 → uipath-2.1.14}/src/uipath/models/actions.py +0 -0
- {uipath-2.1.12 → uipath-2.1.14}/src/uipath/models/assets.py +0 -0
- {uipath-2.1.12 → uipath-2.1.14}/src/uipath/models/attachment.py +0 -0
- {uipath-2.1.12 → uipath-2.1.14}/src/uipath/models/buckets.py +0 -0
- {uipath-2.1.12 → uipath-2.1.14}/src/uipath/models/connections.py +0 -0
- {uipath-2.1.12 → uipath-2.1.14}/src/uipath/models/context_grounding.py +0 -0
- {uipath-2.1.12 → uipath-2.1.14}/src/uipath/models/context_grounding_index.py +0 -0
- {uipath-2.1.12 → uipath-2.1.14}/src/uipath/models/errors.py +0 -0
- {uipath-2.1.12 → uipath-2.1.14}/src/uipath/models/exceptions.py +0 -0
- {uipath-2.1.12 → uipath-2.1.14}/src/uipath/models/interrupt_models.py +0 -0
- {uipath-2.1.12 → uipath-2.1.14}/src/uipath/models/job.py +0 -0
- {uipath-2.1.12 → uipath-2.1.14}/src/uipath/models/llm_gateway.py +0 -0
- {uipath-2.1.12 → uipath-2.1.14}/src/uipath/models/processes.py +0 -0
- {uipath-2.1.12 → uipath-2.1.14}/src/uipath/models/queues.py +0 -0
- {uipath-2.1.12 → uipath-2.1.14}/src/uipath/py.typed +0 -0
- {uipath-2.1.12 → uipath-2.1.14}/src/uipath/telemetry/__init__.py +0 -0
- {uipath-2.1.12 → uipath-2.1.14}/src/uipath/tracing/__init__.py +0 -0
- {uipath-2.1.12 → uipath-2.1.14}/src/uipath/tracing/_otel_exporters.py +0 -0
- {uipath-2.1.12 → uipath-2.1.14}/src/uipath/tracing/_traced.py +0 -0
- {uipath-2.1.12 → uipath-2.1.14}/src/uipath/tracing/_utils.py +0 -0
- {uipath-2.1.12 → uipath-2.1.14}/src/uipath/utils/__init__.py +0 -0
- {uipath-2.1.12 → uipath-2.1.14}/src/uipath/utils/_endpoints_manager.py +0 -0
- {uipath-2.1.12 → uipath-2.1.14}/tests/__init__.py +0 -0
- {uipath-2.1.12 → uipath-2.1.14}/tests/cli/conftest.py +0 -0
- {uipath-2.1.12 → uipath-2.1.14}/tests/cli/mocks/bindings_script.py +0 -0
- {uipath-2.1.12 → uipath-2.1.14}/tests/cli/mocks/pyproject.toml +0 -0
- {uipath-2.1.12 → uipath-2.1.14}/tests/cli/mocks/simple_script.py +0 -0
- {uipath-2.1.12 → uipath-2.1.14}/tests/cli/mocks/uipath-mock.json +0 -0
- {uipath-2.1.12 → uipath-2.1.14}/tests/cli/mocks/uipath-simple-script-mock.json +0 -0
- {uipath-2.1.12 → uipath-2.1.14}/tests/cli/test_hitl.py +0 -0
- {uipath-2.1.12 → uipath-2.1.14}/tests/cli/test_init.py +0 -0
- {uipath-2.1.12 → uipath-2.1.14}/tests/cli/test_invoke.py +0 -0
- {uipath-2.1.12 → uipath-2.1.14}/tests/cli/test_new.py +0 -0
- {uipath-2.1.12 → uipath-2.1.14}/tests/cli/test_publish.py +0 -0
- {uipath-2.1.12 → uipath-2.1.14}/tests/cli/test_pull.py +0 -0
- {uipath-2.1.12 → uipath-2.1.14}/tests/cli/test_push.py +0 -0
- {uipath-2.1.12 → uipath-2.1.14}/tests/cli/test_run.py +0 -0
- {uipath-2.1.12 → uipath-2.1.14}/tests/cli/test_utils.py +0 -0
- {uipath-2.1.12 → uipath-2.1.14}/tests/cli/utils/common.py +0 -0
- {uipath-2.1.12 → uipath-2.1.14}/tests/cli/utils/project_details.py +0 -0
- {uipath-2.1.12 → uipath-2.1.14}/tests/cli/utils/uipath_json.py +0 -0
- {uipath-2.1.12 → uipath-2.1.14}/tests/conftest.py +0 -0
- {uipath-2.1.12 → uipath-2.1.14}/tests/sdk/services/conftest.py +0 -0
- {uipath-2.1.12 → uipath-2.1.14}/tests/sdk/services/test_actions_service.py +0 -0
- {uipath-2.1.12 → uipath-2.1.14}/tests/sdk/services/test_api_client.py +0 -0
- {uipath-2.1.12 → uipath-2.1.14}/tests/sdk/services/test_assets_service.py +0 -0
- {uipath-2.1.12 → uipath-2.1.14}/tests/sdk/services/test_attachments_service.py +0 -0
- {uipath-2.1.12 → uipath-2.1.14}/tests/sdk/services/test_base_service.py +0 -0
- {uipath-2.1.12 → uipath-2.1.14}/tests/sdk/services/test_buckets_service.py +0 -0
- {uipath-2.1.12 → uipath-2.1.14}/tests/sdk/services/test_connections_service.py +0 -0
- {uipath-2.1.12 → uipath-2.1.14}/tests/sdk/services/test_context_grounding_service.py +0 -0
- {uipath-2.1.12 → uipath-2.1.14}/tests/sdk/services/test_folder_service.py +0 -0
- {uipath-2.1.12 → uipath-2.1.14}/tests/sdk/services/test_jobs_service.py +0 -0
- {uipath-2.1.12 → uipath-2.1.14}/tests/sdk/services/test_llm_integration.py +0 -0
- {uipath-2.1.12 → uipath-2.1.14}/tests/sdk/services/test_llm_schema_cleanup.py +0 -0
- {uipath-2.1.12 → uipath-2.1.14}/tests/sdk/services/test_llm_service.py +0 -0
- {uipath-2.1.12 → uipath-2.1.14}/tests/sdk/services/test_processes_service.py +0 -0
- {uipath-2.1.12 → uipath-2.1.14}/tests/sdk/services/test_queues_service.py +0 -0
- {uipath-2.1.12 → uipath-2.1.14}/tests/sdk/services/test_uipath_llm_integration.py +0 -0
- {uipath-2.1.12 → uipath-2.1.14}/tests/sdk/test_bindings_inference.py +0 -0
- {uipath-2.1.12 → uipath-2.1.14}/tests/sdk/test_config.py +0 -0
- {uipath-2.1.12 → uipath-2.1.14}/tests/sdk/test_overwrites.py +0 -0
- {uipath-2.1.12 → uipath-2.1.14}/tests/tracing/test_otel_exporters.py +0 -0
- {uipath-2.1.12 → uipath-2.1.14}/tests/tracing/test_span_utils.py +0 -0
- {uipath-2.1.12 → uipath-2.1.14}/tests/tracing/test_traced.py +0 -0
- {uipath-2.1.12 → uipath-2.1.14}/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.1.
|
3
|
+
Version: 2.1.14
|
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.1.
|
3
|
+
version = "2.1.14"
|
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"
|
@@ -86,3 +86,19 @@ def get_org_scoped_url(base_url: str) -> str:
|
|
86
86
|
org_name, *_ = parsed.path.strip("/").split("/")
|
87
87
|
org_scoped_url = f"{parsed.scheme}://{parsed.netloc}/{org_name}"
|
88
88
|
return org_scoped_url
|
89
|
+
|
90
|
+
|
91
|
+
def clean_directory(directory: str) -> None:
|
92
|
+
"""Clean up Python files in the specified directory.
|
93
|
+
|
94
|
+
Args:
|
95
|
+
directory (str): Path to the directory to clean.
|
96
|
+
|
97
|
+
This function removes all Python files (*.py) from the specified directory.
|
98
|
+
It's used to prepare a directory for a quickstart agent/coded MCP server.
|
99
|
+
"""
|
100
|
+
for file_name in os.listdir(directory):
|
101
|
+
file_path = os.path.join(directory, file_name)
|
102
|
+
|
103
|
+
if os.path.isfile(file_path) and file_name.endswith(".py"):
|
104
|
+
os.remove(file_path)
|
@@ -8,7 +8,9 @@ from typing import Any, Dict, Optional
|
|
8
8
|
import click
|
9
9
|
from dotenv import load_dotenv
|
10
10
|
|
11
|
+
from .._utils.constants import ENV_TELEMETRY_ENABLED
|
11
12
|
from ..telemetry import track
|
13
|
+
from ..telemetry._constants import _PROJECT_KEY, _TELEMETRY_CONFIG_FILE
|
12
14
|
from ._utils._console import ConsoleLogger
|
13
15
|
from ._utils._input_args import generate_args
|
14
16
|
from ._utils._parse_ast import generate_bindings_json
|
@@ -19,6 +21,30 @@ console = ConsoleLogger()
|
|
19
21
|
CONFIG_PATH = "uipath.json"
|
20
22
|
|
21
23
|
|
24
|
+
def create_telemetry_config_file(target_directory: str) -> None:
|
25
|
+
"""Create telemetry file if telemetry is enabled.
|
26
|
+
|
27
|
+
Args:
|
28
|
+
target_directory: The directory where the .uipath folder should be created.
|
29
|
+
"""
|
30
|
+
telemetry_enabled = os.getenv(ENV_TELEMETRY_ENABLED, "true").lower() == "true"
|
31
|
+
|
32
|
+
if not telemetry_enabled:
|
33
|
+
return
|
34
|
+
|
35
|
+
uipath_dir = os.path.join(target_directory, ".uipath")
|
36
|
+
telemetry_file = os.path.join(uipath_dir, _TELEMETRY_CONFIG_FILE)
|
37
|
+
|
38
|
+
if os.path.exists(telemetry_file):
|
39
|
+
return
|
40
|
+
|
41
|
+
os.makedirs(uipath_dir, exist_ok=True)
|
42
|
+
telemetry_data = {_PROJECT_KEY: str(uuid.uuid4())}
|
43
|
+
|
44
|
+
with open(telemetry_file, "w") as f:
|
45
|
+
json.dump(telemetry_data, f, indent=4)
|
46
|
+
|
47
|
+
|
22
48
|
def generate_env_file(target_directory):
|
23
49
|
env_path = os.path.join(target_directory, ".env")
|
24
50
|
|
@@ -103,6 +129,7 @@ def init(entrypoint: str, infer_bindings: bool) -> None:
|
|
103
129
|
with console.spinner("Initializing UiPath project ..."):
|
104
130
|
current_directory = os.getcwd()
|
105
131
|
generate_env_file(current_directory)
|
132
|
+
create_telemetry_config_file(current_directory)
|
106
133
|
|
107
134
|
result = Middlewares.next(
|
108
135
|
"init",
|
@@ -8,6 +8,7 @@ from string import Template
|
|
8
8
|
import click
|
9
9
|
|
10
10
|
from ..telemetry import track
|
11
|
+
from ..telemetry._constants import _PROJECT_KEY, _TELEMETRY_CONFIG_FILE
|
11
12
|
from ._utils._console import ConsoleLogger
|
12
13
|
from ._utils._project_files import (
|
13
14
|
ensure_config_file,
|
@@ -23,6 +24,27 @@ console = ConsoleLogger()
|
|
23
24
|
schema = "https://cloud.uipath.com/draft/2024-12/entry-point"
|
24
25
|
|
25
26
|
|
27
|
+
def get_project_id() -> str:
|
28
|
+
"""Get project ID from telemetry file if it exists, otherwise generate a new one.
|
29
|
+
|
30
|
+
Returns:
|
31
|
+
Project ID string (either from telemetry file or newly generated).
|
32
|
+
"""
|
33
|
+
telemetry_file = os.path.join(".uipath", _TELEMETRY_CONFIG_FILE)
|
34
|
+
|
35
|
+
if os.path.exists(telemetry_file):
|
36
|
+
try:
|
37
|
+
with open(telemetry_file, "r") as f:
|
38
|
+
telemetry_data = json.load(f)
|
39
|
+
project_id = telemetry_data.get(_PROJECT_KEY)
|
40
|
+
if project_id:
|
41
|
+
return project_id
|
42
|
+
except (json.JSONDecodeError, IOError):
|
43
|
+
pass
|
44
|
+
|
45
|
+
return str(uuid.uuid4())
|
46
|
+
|
47
|
+
|
26
48
|
def get_project_version(directory):
|
27
49
|
toml_path = os.path.join(directory, "pyproject.toml")
|
28
50
|
if not os.path.exists(toml_path):
|
@@ -40,7 +62,7 @@ def validate_config_structure(config_data):
|
|
40
62
|
|
41
63
|
|
42
64
|
def generate_operate_file(entryPoints, dependencies=None):
|
43
|
-
project_id =
|
65
|
+
project_id = get_project_id()
|
44
66
|
|
45
67
|
first_entry = entryPoints[0]
|
46
68
|
file_path = first_entry["filePath"]
|
@@ -3,6 +3,9 @@ _CONNECTION_STRING = "InstrumentationKey=4128b5ed-f5ec-4612-ac32-b8cff0f2de93;In
|
|
3
3
|
_APP_INSIGHTS_EVENT_MARKER_ATTRIBUTE = "APPLICATION_INSIGHTS_EVENT_MARKER_ATTRIBUTE"
|
4
4
|
_OTEL_RESOURCE_ATTRIBUTES = "OTEL_RESOURCE_ATTRIBUTES"
|
5
5
|
_SDK_VERSION = "SdkVersion"
|
6
|
+
_PROJECT_KEY = "ProjectKey"
|
7
|
+
|
8
|
+
_TELEMETRY_CONFIG_FILE = ".telemetry.json"
|
6
9
|
|
7
10
|
_CODE_FILEPATH = "code.file.path"
|
8
11
|
_CODE_FUNCTION = "code.function.name"
|
@@ -1,3 +1,4 @@
|
|
1
|
+
import json
|
1
2
|
import os
|
2
3
|
from functools import wraps
|
3
4
|
from importlib.metadata import version
|
@@ -25,7 +26,9 @@ from ._constants import (
|
|
25
26
|
_CODE_LINENO,
|
26
27
|
_CONNECTION_STRING,
|
27
28
|
_OTEL_RESOURCE_ATTRIBUTES,
|
29
|
+
_PROJECT_KEY,
|
28
30
|
_SDK_VERSION,
|
31
|
+
_TELEMETRY_CONFIG_FILE,
|
29
32
|
_UNKNOWN,
|
30
33
|
)
|
31
34
|
|
@@ -33,6 +36,26 @@ _logger = getLogger(__name__)
|
|
33
36
|
_logger.propagate = False
|
34
37
|
|
35
38
|
|
39
|
+
def _get_project_key() -> str:
|
40
|
+
"""Get project key from telemetry file if present.
|
41
|
+
|
42
|
+
Returns:
|
43
|
+
Project key string if available, otherwise empty string.
|
44
|
+
"""
|
45
|
+
try:
|
46
|
+
telemetry_file = os.path.join(".uipath", _TELEMETRY_CONFIG_FILE)
|
47
|
+
if os.path.exists(telemetry_file):
|
48
|
+
with open(telemetry_file, "r") as f:
|
49
|
+
telemetry_data = json.load(f)
|
50
|
+
project_id = telemetry_data.get(_PROJECT_KEY)
|
51
|
+
if project_id:
|
52
|
+
return project_id
|
53
|
+
except (json.JSONDecodeError, IOError, KeyError):
|
54
|
+
pass
|
55
|
+
|
56
|
+
return _UNKNOWN
|
57
|
+
|
58
|
+
|
36
59
|
class _AzureMonitorOpenTelemetryEventHandler(LoggingHandler):
|
37
60
|
@staticmethod
|
38
61
|
def _get_attributes(record: LogRecord) -> Attributes:
|
@@ -43,6 +66,7 @@ class _AzureMonitorOpenTelemetryEventHandler(LoggingHandler):
|
|
43
66
|
attributes[_CLOUD_URL] = os.getenv(ENV_BASE_URL, _UNKNOWN)
|
44
67
|
attributes[_APP_NAME] = "UiPath.Sdk"
|
45
68
|
attributes[_SDK_VERSION] = version("uipath")
|
69
|
+
attributes[_PROJECT_KEY] = _get_project_key()
|
46
70
|
|
47
71
|
if _CODE_FILEPATH in attributes:
|
48
72
|
del attributes[_CODE_FILEPATH]
|
@@ -493,3 +493,79 @@ class TestPack:
|
|
493
493
|
assert "projectId" in operate_data
|
494
494
|
assert operate_data["targetRuntime"] == "python"
|
495
495
|
assert operate_data["targetFramework"] == "Portable"
|
496
|
+
|
497
|
+
def test_nupkg_contains_all_necessary_files(
|
498
|
+
self,
|
499
|
+
runner: CliRunner,
|
500
|
+
temp_dir: str,
|
501
|
+
project_details: ProjectDetails,
|
502
|
+
uipath_json: UiPathJson,
|
503
|
+
) -> None:
|
504
|
+
with runner.isolated_filesystem(temp_dir=temp_dir):
|
505
|
+
with open("uipath.json", "w") as f:
|
506
|
+
f.write(uipath_json.to_json())
|
507
|
+
with open("pyproject.toml", "w") as f:
|
508
|
+
f.write(project_details.to_toml())
|
509
|
+
with open("uv.lock", "w") as f:
|
510
|
+
f.write("# uv.lock content")
|
511
|
+
for entry in uipath_json.entry_points:
|
512
|
+
with open(f"{entry.file_path}.py", "w") as f:
|
513
|
+
f.write("# agent content")
|
514
|
+
|
515
|
+
result = runner.invoke(pack, ["./"])
|
516
|
+
assert result.exit_code == 0
|
517
|
+
|
518
|
+
nupkg_path = (
|
519
|
+
f".uipath/{project_details.name}.{project_details.version}.nupkg"
|
520
|
+
)
|
521
|
+
assert os.path.exists(nupkg_path)
|
522
|
+
|
523
|
+
# List of expected files in the package
|
524
|
+
expected_files = [
|
525
|
+
"content/uipath.json",
|
526
|
+
"content/pyproject.toml",
|
527
|
+
"content/operate.json",
|
528
|
+
"content/entry-points.json",
|
529
|
+
"content/bindings_v2.json",
|
530
|
+
"content/uv.lock",
|
531
|
+
]
|
532
|
+
|
533
|
+
for entry in uipath_json.entry_points:
|
534
|
+
expected_files.append(f"content/{entry.file_path}.py")
|
535
|
+
|
536
|
+
with zipfile.ZipFile(nupkg_path, "r") as z:
|
537
|
+
actual_files = set(z.namelist())
|
538
|
+
for expected in expected_files:
|
539
|
+
assert expected in actual_files, f"Missing {expected} in nupkg"
|
540
|
+
|
541
|
+
def test_no_uv_lock_with_nolock(
|
542
|
+
self,
|
543
|
+
runner: CliRunner,
|
544
|
+
temp_dir: str,
|
545
|
+
project_details: ProjectDetails,
|
546
|
+
uipath_json: UiPathJson,
|
547
|
+
) -> None:
|
548
|
+
with runner.isolated_filesystem(temp_dir=temp_dir):
|
549
|
+
with open("uipath.json", "w") as f:
|
550
|
+
f.write(uipath_json.to_json())
|
551
|
+
with open("pyproject.toml", "w") as f:
|
552
|
+
f.write(project_details.to_toml())
|
553
|
+
with open("uv.lock", "w") as f:
|
554
|
+
f.write("# uv.lock content")
|
555
|
+
for entry in uipath_json.entry_points:
|
556
|
+
with open(f"{entry.file_path}.py", "w") as f:
|
557
|
+
f.write("# agent content")
|
558
|
+
|
559
|
+
result = runner.invoke(pack, ["./", "--nolock"])
|
560
|
+
assert result.exit_code == 0
|
561
|
+
|
562
|
+
nupkg_path = (
|
563
|
+
f".uipath/{project_details.name}.{project_details.version}.nupkg"
|
564
|
+
)
|
565
|
+
assert os.path.exists(nupkg_path)
|
566
|
+
|
567
|
+
with zipfile.ZipFile(nupkg_path, "r") as z:
|
568
|
+
actual_files = set(z.namelist())
|
569
|
+
assert "content/uv.lock" not in actual_files, (
|
570
|
+
"uv.lock should not be in nupkg when --nolock is used"
|
571
|
+
)
|