uipath 2.0.33__tar.gz → 2.0.35__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.33 → uipath-2.0.35}/.github/workflows/build.yml +0 -17
- uipath-2.0.35/.github/workflows/publish-docs.yml +38 -0
- {uipath-2.0.33 → uipath-2.0.35}/.gitignore +3 -0
- {uipath-2.0.33 → uipath-2.0.35}/PKG-INFO +1 -1
- uipath-2.0.35/docs/assets/favicon.png +0 -0
- uipath-2.0.35/docs/cli/index.md +165 -0
- {uipath-2.0.33 → uipath-2.0.35}/docs/core/getting_started.md +1 -2
- uipath-2.0.35/docs/javascripts/extra.js +35 -0
- uipath-2.0.35/docs/release_policy.md +124 -0
- {uipath-2.0.33 → uipath-2.0.35}/docs/stylesheets/extra.css +1 -1
- {uipath-2.0.33 → uipath-2.0.35}/mkdocs.yml +12 -5
- {uipath-2.0.33 → uipath-2.0.35}/pyproject.toml +3 -2
- {uipath-2.0.33 → uipath-2.0.35}/src/uipath/_cli/_utils/_processes.py +1 -1
- {uipath-2.0.33 → uipath-2.0.35}/src/uipath/_cli/cli_init.py +2 -3
- {uipath-2.0.33 → uipath-2.0.35}/src/uipath/_cli/cli_invoke.py +1 -1
- {uipath-2.0.33 → uipath-2.0.35}/src/uipath/_cli/cli_new.py +2 -3
- {uipath-2.0.33 → uipath-2.0.35}/src/uipath/_cli/cli_run.py +29 -12
- {uipath-2.0.33 → uipath-2.0.35}/tests/cli/test_init.py +1 -8
- {uipath-2.0.33 → uipath-2.0.35}/uv.lock +1666 -1517
- uipath-2.0.33/docs/core/index.md +0 -7
- uipath-2.0.33/docs/langchain/index.md +0 -7
- {uipath-2.0.33 → uipath-2.0.35}/.cursorrules +0 -0
- {uipath-2.0.33 → uipath-2.0.35}/.editorconfig +0 -0
- {uipath-2.0.33 → uipath-2.0.35}/.gitattributes +0 -0
- {uipath-2.0.33 → uipath-2.0.35}/.github/workflows/cd.yml +0 -0
- {uipath-2.0.33 → uipath-2.0.35}/.github/workflows/ci.yml +0 -0
- {uipath-2.0.33 → uipath-2.0.35}/.github/workflows/commitlint.yml +0 -0
- {uipath-2.0.33 → uipath-2.0.35}/.github/workflows/lint.yml +0 -0
- {uipath-2.0.33 → uipath-2.0.35}/.github/workflows/publish-dev.yml +0 -0
- {uipath-2.0.33 → uipath-2.0.35}/.github/workflows/test.yml +0 -0
- {uipath-2.0.33 → uipath-2.0.35}/.pre-commit-config.yaml +0 -0
- {uipath-2.0.33 → uipath-2.0.35}/.python-version +0 -0
- {uipath-2.0.33 → uipath-2.0.35}/.vscode/extensions.json +0 -0
- {uipath-2.0.33 → uipath-2.0.35}/.vscode/settings.json +0 -0
- {uipath-2.0.33 → uipath-2.0.35}/CONTRIBUTING.md +0 -0
- {uipath-2.0.33 → uipath-2.0.35}/LICENSE +0 -0
- {uipath-2.0.33 → uipath-2.0.35}/README.md +0 -0
- {uipath-2.0.33 → uipath-2.0.35}/docs/CONTRIBUTING.md +0 -0
- {uipath-2.0.33 → uipath-2.0.35}/docs/assets/uipath-logo.svg +0 -0
- {uipath-2.0.33 → uipath-2.0.35}/docs/core/actions.md +0 -0
- {uipath-2.0.33 → uipath-2.0.35}/docs/core/assets.md +0 -0
- {uipath-2.0.33 → uipath-2.0.35}/docs/core/buckets.md +0 -0
- {uipath-2.0.33 → uipath-2.0.35}/docs/core/context_grounding.md +0 -0
- {uipath-2.0.33 → uipath-2.0.35}/docs/core/jobs.md +0 -0
- {uipath-2.0.33 → uipath-2.0.35}/docs/core/processes.md +0 -0
- {uipath-2.0.33 → uipath-2.0.35}/docs/core/queues.md +0 -0
- {uipath-2.0.33 → uipath-2.0.35}/docs/hooks.py +0 -0
- {uipath-2.0.33 → uipath-2.0.35}/docs/langchain/chat_models.md +0 -0
- {uipath-2.0.33 → uipath-2.0.35}/docs/langchain/context_grounding.md +0 -0
- {uipath-2.0.33 → uipath-2.0.35}/docs/langchain/human_in_the_loop.md +0 -0
- {uipath-2.0.33 → uipath-2.0.35}/justfile +0 -0
- {uipath-2.0.33 → uipath-2.0.35}/py.typed +0 -0
- {uipath-2.0.33 → uipath-2.0.35}/src/uipath/__init__.py +0 -0
- {uipath-2.0.33 → uipath-2.0.35}/src/uipath/_cli/README.md +0 -0
- {uipath-2.0.33 → uipath-2.0.35}/src/uipath/_cli/__init__.py +0 -0
- {uipath-2.0.33 → uipath-2.0.35}/src/uipath/_cli/_auth/_auth_server.py +0 -0
- {uipath-2.0.33 → uipath-2.0.35}/src/uipath/_cli/_auth/_models.py +0 -0
- {uipath-2.0.33 → uipath-2.0.35}/src/uipath/_cli/_auth/_oidc_utils.py +0 -0
- {uipath-2.0.33 → uipath-2.0.35}/src/uipath/_cli/_auth/_portal_service.py +0 -0
- {uipath-2.0.33 → uipath-2.0.35}/src/uipath/_cli/_auth/_utils.py +0 -0
- {uipath-2.0.33 → uipath-2.0.35}/src/uipath/_cli/_auth/auth_config.json +0 -0
- {uipath-2.0.33 → uipath-2.0.35}/src/uipath/_cli/_auth/index.html +0 -0
- {uipath-2.0.33 → uipath-2.0.35}/src/uipath/_cli/_auth/localhost.crt +0 -0
- {uipath-2.0.33 → uipath-2.0.35}/src/uipath/_cli/_auth/localhost.key +0 -0
- {uipath-2.0.33 → uipath-2.0.35}/src/uipath/_cli/_runtime/_contracts.py +0 -0
- {uipath-2.0.33 → uipath-2.0.35}/src/uipath/_cli/_runtime/_logging.py +0 -0
- {uipath-2.0.33 → uipath-2.0.35}/src/uipath/_cli/_runtime/_runtime.py +0 -0
- {uipath-2.0.33 → uipath-2.0.35}/src/uipath/_cli/_templates/.psmdcp.template +0 -0
- {uipath-2.0.33 → uipath-2.0.35}/src/uipath/_cli/_templates/.rels.template +0 -0
- {uipath-2.0.33 → uipath-2.0.35}/src/uipath/_cli/_templates/[Content_Types].xml.template +0 -0
- {uipath-2.0.33 → uipath-2.0.35}/src/uipath/_cli/_templates/main.py.template +0 -0
- {uipath-2.0.33 → uipath-2.0.35}/src/uipath/_cli/_templates/package.nuspec.template +0 -0
- {uipath-2.0.33 → uipath-2.0.35}/src/uipath/_cli/_utils/_common.py +0 -0
- {uipath-2.0.33 → uipath-2.0.35}/src/uipath/_cli/_utils/_console.py +0 -0
- {uipath-2.0.33 → uipath-2.0.35}/src/uipath/_cli/_utils/_folders.py +0 -0
- {uipath-2.0.33 → uipath-2.0.35}/src/uipath/_cli/_utils/_input_args.py +0 -0
- {uipath-2.0.33 → uipath-2.0.35}/src/uipath/_cli/_utils/_parse_ast.py +0 -0
- {uipath-2.0.33 → uipath-2.0.35}/src/uipath/_cli/cli_auth.py +0 -0
- {uipath-2.0.33 → uipath-2.0.35}/src/uipath/_cli/cli_deploy.py +0 -0
- {uipath-2.0.33 → uipath-2.0.35}/src/uipath/_cli/cli_pack.py +0 -0
- {uipath-2.0.33 → uipath-2.0.35}/src/uipath/_cli/cli_publish.py +0 -0
- {uipath-2.0.33 → uipath-2.0.35}/src/uipath/_cli/middlewares.py +0 -0
- {uipath-2.0.33 → uipath-2.0.35}/src/uipath/_cli/spinner.py +0 -0
- {uipath-2.0.33 → uipath-2.0.35}/src/uipath/_config.py +0 -0
- {uipath-2.0.33 → uipath-2.0.35}/src/uipath/_execution_context.py +0 -0
- {uipath-2.0.33 → uipath-2.0.35}/src/uipath/_folder_context.py +0 -0
- {uipath-2.0.33 → uipath-2.0.35}/src/uipath/_services/__init__.py +0 -0
- {uipath-2.0.33 → uipath-2.0.35}/src/uipath/_services/_base_service.py +0 -0
- {uipath-2.0.33 → uipath-2.0.35}/src/uipath/_services/actions_service.py +0 -0
- {uipath-2.0.33 → uipath-2.0.35}/src/uipath/_services/api_client.py +0 -0
- {uipath-2.0.33 → uipath-2.0.35}/src/uipath/_services/assets_service.py +0 -0
- {uipath-2.0.33 → uipath-2.0.35}/src/uipath/_services/buckets_service.py +0 -0
- {uipath-2.0.33 → uipath-2.0.35}/src/uipath/_services/connections_service.py +0 -0
- {uipath-2.0.33 → uipath-2.0.35}/src/uipath/_services/connections_service.pyi +0 -0
- {uipath-2.0.33 → uipath-2.0.35}/src/uipath/_services/context_grounding_service.py +0 -0
- {uipath-2.0.33 → uipath-2.0.35}/src/uipath/_services/folder_service.py +0 -0
- {uipath-2.0.33 → uipath-2.0.35}/src/uipath/_services/jobs_service.py +0 -0
- {uipath-2.0.33 → uipath-2.0.35}/src/uipath/_services/llm_gateway_service.py +0 -0
- {uipath-2.0.33 → uipath-2.0.35}/src/uipath/_services/processes_service.py +0 -0
- {uipath-2.0.33 → uipath-2.0.35}/src/uipath/_services/queues_service.py +0 -0
- {uipath-2.0.33 → uipath-2.0.35}/src/uipath/_uipath.py +0 -0
- {uipath-2.0.33 → uipath-2.0.35}/src/uipath/_utils/__init__.py +0 -0
- {uipath-2.0.33 → uipath-2.0.35}/src/uipath/_utils/_endpoint.py +0 -0
- {uipath-2.0.33 → uipath-2.0.35}/src/uipath/_utils/_infer_bindings.py +0 -0
- {uipath-2.0.33 → uipath-2.0.35}/src/uipath/_utils/_logs.py +0 -0
- {uipath-2.0.33 → uipath-2.0.35}/src/uipath/_utils/_request_override.py +0 -0
- {uipath-2.0.33 → uipath-2.0.35}/src/uipath/_utils/_request_spec.py +0 -0
- {uipath-2.0.33 → uipath-2.0.35}/src/uipath/_utils/_user_agent.py +0 -0
- {uipath-2.0.33 → uipath-2.0.35}/src/uipath/_utils/constants.py +0 -0
- {uipath-2.0.33 → uipath-2.0.35}/src/uipath/models/__init__.py +0 -0
- {uipath-2.0.33 → uipath-2.0.35}/src/uipath/models/action_schema.py +0 -0
- {uipath-2.0.33 → uipath-2.0.35}/src/uipath/models/actions.py +0 -0
- {uipath-2.0.33 → uipath-2.0.35}/src/uipath/models/assets.py +0 -0
- {uipath-2.0.33 → uipath-2.0.35}/src/uipath/models/connections.py +0 -0
- {uipath-2.0.33 → uipath-2.0.35}/src/uipath/models/context_grounding.py +0 -0
- {uipath-2.0.33 → uipath-2.0.35}/src/uipath/models/context_grounding_index.py +0 -0
- {uipath-2.0.33 → uipath-2.0.35}/src/uipath/models/errors.py +0 -0
- {uipath-2.0.33 → uipath-2.0.35}/src/uipath/models/exceptions.py +0 -0
- {uipath-2.0.33 → uipath-2.0.35}/src/uipath/models/interrupt_models.py +0 -0
- {uipath-2.0.33 → uipath-2.0.35}/src/uipath/models/job.py +0 -0
- {uipath-2.0.33 → uipath-2.0.35}/src/uipath/models/llm_gateway.py +0 -0
- {uipath-2.0.33 → uipath-2.0.35}/src/uipath/models/processes.py +0 -0
- {uipath-2.0.33 → uipath-2.0.35}/src/uipath/models/queues.py +0 -0
- {uipath-2.0.33 → uipath-2.0.35}/src/uipath/py.typed +0 -0
- {uipath-2.0.33 → uipath-2.0.35}/src/uipath/tracing/__init__.py +0 -0
- {uipath-2.0.33 → uipath-2.0.35}/src/uipath/tracing/_otel_exporters.py +0 -0
- {uipath-2.0.33 → uipath-2.0.35}/src/uipath/tracing/_traced.py +0 -0
- {uipath-2.0.33 → uipath-2.0.35}/src/uipath/tracing/_utils.py +0 -0
- {uipath-2.0.33 → uipath-2.0.35}/tests/__init__.py +0 -0
- {uipath-2.0.33 → uipath-2.0.35}/tests/conftest.py +0 -0
- {uipath-2.0.33 → uipath-2.0.35}/tests/sdk/services/test_llm_integration.py +0 -0
- {uipath-2.0.33 → uipath-2.0.35}/tests/sdk/services/test_llm_service.py +0 -0
- {uipath-2.0.33 → uipath-2.0.35}/tests/sdk/services/test_uipath_llm_integration.py +0 -0
- {uipath-2.0.33 → uipath-2.0.35}/tests/sdk/test_config.py +0 -0
- {uipath-2.0.33 → uipath-2.0.35}/tests/tracing/test_otel_exporters.py +0 -0
- {uipath-2.0.33 → uipath-2.0.35}/tests/tracing/test_span_utils.py +0 -0
- {uipath-2.0.33 → uipath-2.0.35}/tests/tracing/test_traced.py +0 -0
- {uipath-2.0.33 → uipath-2.0.35}/tests/tracing/test_tracing_manager.py +0 -0
|
@@ -46,20 +46,3 @@ jobs:
|
|
|
46
46
|
uv publish
|
|
47
47
|
env:
|
|
48
48
|
UV_PUBLISH_TOKEN: ${{ secrets.token }}
|
|
49
|
-
|
|
50
|
-
- name: Clone plugins
|
|
51
|
-
if: ${{ steps.check_version.outputs.modified }} == 'true'
|
|
52
|
-
run: |
|
|
53
|
-
git clone https://x-access-token:${{ secrets.repo_access }}@github.com/UiPath/uipath-langchain-python plugins/uipath-langchain-python
|
|
54
|
-
|
|
55
|
-
- name: Symlink plugin docs
|
|
56
|
-
if: ${{ steps.check_version.outputs.modified }} == 'true'
|
|
57
|
-
run: |
|
|
58
|
-
mkdir -p docs/plugins
|
|
59
|
-
ln -s ../../plugins/uipath-langchain-python docs/plugins/uipath-langchain-python
|
|
60
|
-
|
|
61
|
-
- name: Publish Docs
|
|
62
|
-
if: ${{ steps.check_version.outputs.modified }} == 'true'
|
|
63
|
-
run: |
|
|
64
|
-
ls -la docs
|
|
65
|
-
uv run mkdocs gh-deploy --force
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
name: Publish Docs
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches:
|
|
6
|
+
- main
|
|
7
|
+
|
|
8
|
+
jobs:
|
|
9
|
+
publish-docs:
|
|
10
|
+
runs-on: "ubuntu-24.04"
|
|
11
|
+
|
|
12
|
+
steps:
|
|
13
|
+
- uses: actions/checkout@v4
|
|
14
|
+
|
|
15
|
+
- uses: astral-sh/setup-uv@v5
|
|
16
|
+
|
|
17
|
+
- uses: actions/setup-python@v5
|
|
18
|
+
with:
|
|
19
|
+
python-version-file: ".python-version"
|
|
20
|
+
|
|
21
|
+
- name: Setup venv
|
|
22
|
+
run: |
|
|
23
|
+
uv venv
|
|
24
|
+
uv sync --all-extras
|
|
25
|
+
|
|
26
|
+
- name: Clone plugins
|
|
27
|
+
run: |
|
|
28
|
+
git clone https://x-access-token:${{ secrets.REPO_ACCESS }}@github.com/UiPath/uipath-langchain-python plugins/uipath-langchain-python
|
|
29
|
+
|
|
30
|
+
- name: Symlink plugin docs
|
|
31
|
+
run: |
|
|
32
|
+
mkdir -p docs/plugins
|
|
33
|
+
ln -s ../../plugins/uipath-langchain-python docs/plugins/uipath-langchain-python
|
|
34
|
+
|
|
35
|
+
- name: Publish Docs
|
|
36
|
+
run: |
|
|
37
|
+
ls -la docs
|
|
38
|
+
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.0.35
|
|
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
|
|
Binary file
|
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
# CLI Reference
|
|
2
|
+
|
|
3
|
+
::: mkdocs-click
|
|
4
|
+
:module: uipath._cli
|
|
5
|
+
:command: auth
|
|
6
|
+
:depth: 1
|
|
7
|
+
:style: table
|
|
8
|
+
|
|
9
|
+
<!-- termynal -->
|
|
10
|
+
|
|
11
|
+
```shell
|
|
12
|
+
> uipath auth
|
|
13
|
+
⠋ Authenticating with UiPath ...
|
|
14
|
+
🔗 If a browser window did not open, please open the following URL in your browser: [LINK]
|
|
15
|
+
👇 Select tenant:
|
|
16
|
+
0: Tenant1
|
|
17
|
+
1: Tenant2
|
|
18
|
+
Select tenant number: 0
|
|
19
|
+
Selected tenant: Tenant1
|
|
20
|
+
✓ Authentication successful.
|
|
21
|
+
```
|
|
22
|
+
---
|
|
23
|
+
|
|
24
|
+
::: mkdocs-click
|
|
25
|
+
:module: uipath._cli
|
|
26
|
+
:command: init
|
|
27
|
+
:depth: 1
|
|
28
|
+
:style: table
|
|
29
|
+
|
|
30
|
+
/// warning
|
|
31
|
+
|
|
32
|
+
The `uipath init` command executes your `main.py` file to analyze its structure and collect information about inputs and outputs.
|
|
33
|
+
///
|
|
34
|
+
|
|
35
|
+
<!-- termynal -->
|
|
36
|
+
```shell
|
|
37
|
+
> uipath init
|
|
38
|
+
⠋ Initializing UiPath project ...
|
|
39
|
+
✓ Created 'uipath.json' file.
|
|
40
|
+
```
|
|
41
|
+
---
|
|
42
|
+
|
|
43
|
+
::: mkdocs-click
|
|
44
|
+
:module: uipath._cli
|
|
45
|
+
:command: run
|
|
46
|
+
:depth: 1
|
|
47
|
+
:style: table
|
|
48
|
+
|
|
49
|
+
/// warning
|
|
50
|
+
Depending on the shell you are using, it may be necessary to escape the input json:
|
|
51
|
+
|
|
52
|
+
/// tab | Bash/ZSH
|
|
53
|
+
```console
|
|
54
|
+
uipath run agent '{"topic": "UiPath"}'
|
|
55
|
+
```
|
|
56
|
+
///
|
|
57
|
+
|
|
58
|
+
/// tab | Windows CMD
|
|
59
|
+
```console
|
|
60
|
+
uipath run agent "{""topic"": ""UiPath""}"
|
|
61
|
+
```
|
|
62
|
+
///
|
|
63
|
+
|
|
64
|
+
/// tab | Windows PowerShell
|
|
65
|
+
```console
|
|
66
|
+
uipath run agent '{\"topic\":\"uipath\"}'
|
|
67
|
+
```
|
|
68
|
+
///
|
|
69
|
+
|
|
70
|
+
///
|
|
71
|
+
|
|
72
|
+
<!-- termynal -->
|
|
73
|
+
|
|
74
|
+
```shell
|
|
75
|
+
> uipath run main.py '{"message": "test"}'
|
|
76
|
+
[2025-04-11 10:13:58,857][INFO] {'message': 'test'}
|
|
77
|
+
```
|
|
78
|
+
---
|
|
79
|
+
|
|
80
|
+
::: mkdocs-click
|
|
81
|
+
:module: uipath._cli
|
|
82
|
+
:command: pack
|
|
83
|
+
:depth: 1
|
|
84
|
+
:style: table
|
|
85
|
+
|
|
86
|
+
Packages your project into a `.nupkg` file that can be deployed to UiPath.
|
|
87
|
+
|
|
88
|
+
/// warning
|
|
89
|
+
Your `pyproject.toml` must include:
|
|
90
|
+
|
|
91
|
+
- A description field (avoid characters: &, <, >, ", ', ;)
|
|
92
|
+
- Author information
|
|
93
|
+
|
|
94
|
+
Example:
|
|
95
|
+
|
|
96
|
+
```toml
|
|
97
|
+
description = "Your package description"
|
|
98
|
+
authors = [{name = "Your Name", email = "your.email@example.com"}]
|
|
99
|
+
```
|
|
100
|
+
///
|
|
101
|
+
|
|
102
|
+
<!-- termynal -->
|
|
103
|
+
```shell
|
|
104
|
+
> uipath pack
|
|
105
|
+
⠋ Packaging project ...
|
|
106
|
+
Name : test
|
|
107
|
+
Version : 0.1.0
|
|
108
|
+
Description: Add your description here
|
|
109
|
+
Authors : Your Name
|
|
110
|
+
✓ Project successfully packaged.
|
|
111
|
+
```
|
|
112
|
+
---
|
|
113
|
+
|
|
114
|
+
::: mkdocs-click
|
|
115
|
+
:module: uipath._cli
|
|
116
|
+
:command: publish
|
|
117
|
+
:depth: 1
|
|
118
|
+
:style: table
|
|
119
|
+
|
|
120
|
+
/// warning
|
|
121
|
+
To properly use the CLI for packaging and publishing, your project should include:
|
|
122
|
+
|
|
123
|
+
- A `pyproject.toml` file with project metadata
|
|
124
|
+
- A `uipath.json` file (generated by `uipath init`)
|
|
125
|
+
- Any Python files needed for your automation
|
|
126
|
+
///
|
|
127
|
+
|
|
128
|
+
<!-- termynal -->
|
|
129
|
+
|
|
130
|
+
```shell
|
|
131
|
+
> uipath publish
|
|
132
|
+
⠋ Fetching available package feeds...
|
|
133
|
+
👇 Select package feed:
|
|
134
|
+
0: Orchestrator Tenant Processes Feed
|
|
135
|
+
1: Orchestrator Personal Workspace Feed
|
|
136
|
+
Select feed number: 0
|
|
137
|
+
Selected feed: Orchestrator Tenant Processes Feed
|
|
138
|
+
⠸ Publishing most recent package: test.0.1.0.nupkg ...
|
|
139
|
+
✓ Package published successfully!
|
|
140
|
+
```
|
|
141
|
+
---
|
|
142
|
+
|
|
143
|
+
::: mkdocs-click
|
|
144
|
+
:module: uipath._cli
|
|
145
|
+
:command: deploy
|
|
146
|
+
:depth: 1
|
|
147
|
+
:style: table
|
|
148
|
+
|
|
149
|
+
---
|
|
150
|
+
|
|
151
|
+
::: mkdocs-click
|
|
152
|
+
:module: uipath._cli
|
|
153
|
+
:command: invoke
|
|
154
|
+
:depth: 1
|
|
155
|
+
:style: table
|
|
156
|
+
|
|
157
|
+
<!-- termynal -->
|
|
158
|
+
|
|
159
|
+
```shell
|
|
160
|
+
> uipath invoke agent '{"topic": "UiPath"}'
|
|
161
|
+
⠴ Loading configuration ...
|
|
162
|
+
⠴ Starting job ...
|
|
163
|
+
✨ Job started successfully!
|
|
164
|
+
🔗 Monitor your job here: [LINK]
|
|
165
|
+
```
|
|
@@ -153,8 +153,7 @@ To create a UiPath project, run the following command in your terminal:
|
|
|
153
153
|
✓ Created 'uipath.json' file.
|
|
154
154
|
```
|
|
155
155
|
|
|
156
|
-
///
|
|
157
|
-
type: warning
|
|
156
|
+
/// warning
|
|
158
157
|
|
|
159
158
|
The `uipath init` command executes your `main.py` file to analyze its structure and collect information about inputs and outputs.
|
|
160
159
|
///
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
function updateThemePictures() {
|
|
2
|
+
const body = document.body;
|
|
3
|
+
const mediaAttr = body.getAttribute("data-md-color-media") || "";
|
|
4
|
+
const isDark = mediaAttr.includes("dark");
|
|
5
|
+
|
|
6
|
+
const pictures = document.querySelectorAll("picture");
|
|
7
|
+
|
|
8
|
+
pictures.forEach((picture) => {
|
|
9
|
+
const darkSrc = picture.getAttribute("data-dark");
|
|
10
|
+
const lightSrc = picture.getAttribute("data-light");
|
|
11
|
+
|
|
12
|
+
const source = picture.querySelector("source");
|
|
13
|
+
const img = picture.querySelector("img");
|
|
14
|
+
|
|
15
|
+
if (isDark) {
|
|
16
|
+
source.media = "all";
|
|
17
|
+
source.srcset = darkSrc;
|
|
18
|
+
img.src = darkSrc;
|
|
19
|
+
} else {
|
|
20
|
+
source.media = "not all";
|
|
21
|
+
source.srcset = lightSrc;
|
|
22
|
+
img.src = lightSrc;
|
|
23
|
+
}
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
// Run on load
|
|
28
|
+
updateThemePictures();
|
|
29
|
+
|
|
30
|
+
// Watch for changes to the theme
|
|
31
|
+
const observer = new MutationObserver(updateThemePictures);
|
|
32
|
+
observer.observe(document.body, {
|
|
33
|
+
attributes: true,
|
|
34
|
+
attributeFilter: ["data-md-color-media"],
|
|
35
|
+
});
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
# Release Policy
|
|
2
|
+
|
|
3
|
+
The UiPath Python ecosystem is composed of different component packages:
|
|
4
|
+
|
|
5
|
+
- `uipath`: The core SDK package (version >= 2.0.0)
|
|
6
|
+
- `uipath-langchain`: The LangChain integration package (version >= 0.0.0)
|
|
7
|
+
|
|
8
|
+
Both packages are under rapid development, following semantic versioning in the format of **X.Y.Z**:
|
|
9
|
+
|
|
10
|
+
- **X** (major version):
|
|
11
|
+
- `uipath`: X = 2
|
|
12
|
+
- `uipath-langchain`: X = 0
|
|
13
|
+
- **Y** (minor version) increases indicate breaking changes for public interfaces not marked as beta
|
|
14
|
+
- **Z** (patch version) increases indicate:
|
|
15
|
+
- Bug fixes
|
|
16
|
+
- New features
|
|
17
|
+
- Changes to private interfaces
|
|
18
|
+
- Changes to beta features
|
|
19
|
+
|
|
20
|
+
### Version Number Format
|
|
21
|
+
|
|
22
|
+
The version format is `X.Y.Z` where:
|
|
23
|
+
|
|
24
|
+
- For `uipath`: X = 2 (e.g., 2.0.0, 2.1.0)
|
|
25
|
+
- For `uipath-langchain`: X = 0 (e.g., 0.0.0, 0.1.0)
|
|
26
|
+
- Y represents the minor version
|
|
27
|
+
- Z represents the patch version
|
|
28
|
+
|
|
29
|
+
### Release Candidates
|
|
30
|
+
|
|
31
|
+
From time to time, we will version packages as release candidates. These are versions that are intended to be released as stable versions, but we want to get feedback from the community before doing so.
|
|
32
|
+
|
|
33
|
+
Release candidates are versioned as `X.Y.ZrcN`. For example:
|
|
34
|
+
|
|
35
|
+
- `uipath`: `2.2.0rc1`
|
|
36
|
+
- `uipath-langchain`: `0.1.0rc1`
|
|
37
|
+
|
|
38
|
+
If no issues are found, the release candidate will be released as a stable version with the same version number. If issues are found, we will release a new release candidate with an incremented N value (e.g., `2.2.0rc2` or `0.1.0rc2`).
|
|
39
|
+
|
|
40
|
+
When upgrading between minor versions, users should review the list of breaking changes and deprecations.
|
|
41
|
+
|
|
42
|
+
## Release Cadence
|
|
43
|
+
|
|
44
|
+
### Minor Releases (X.Y.0)
|
|
45
|
+
|
|
46
|
+
- Released as needed based on feature development and breaking changes
|
|
47
|
+
- Include breaking changes for public interfaces not marked as beta
|
|
48
|
+
- Require a migration guide for users
|
|
49
|
+
- Preceded by a release candidate (RC) phase
|
|
50
|
+
|
|
51
|
+
### Patch Releases (X.Y.Z)
|
|
52
|
+
|
|
53
|
+
- Released as needed based on bug fixes and improvements
|
|
54
|
+
- Include bug fixes, new features, and changes to private interfaces
|
|
55
|
+
- Always maintain backward compatibility for public interfaces
|
|
56
|
+
|
|
57
|
+
## API Stability
|
|
58
|
+
|
|
59
|
+
### Public API
|
|
60
|
+
The following components are considered part of the public API:
|
|
61
|
+
|
|
62
|
+
- All classes and methods in the `src/uipath` directory
|
|
63
|
+
- CLI commands and their interfaces
|
|
64
|
+
|
|
65
|
+
### Internal API
|
|
66
|
+
Components marked as internal include:
|
|
67
|
+
|
|
68
|
+
- Methods and classes prefixed with `_`
|
|
69
|
+
- Test utilities and fixtures
|
|
70
|
+
- Build and development tools
|
|
71
|
+
|
|
72
|
+
## Breaking Changes
|
|
73
|
+
|
|
74
|
+
Breaking changes are introduced in minor releases (X.Y.0) and follow these guidelines:
|
|
75
|
+
|
|
76
|
+
1. **Deprecation Period**: Features marked for removal will be deprecated for at least one minor release cycle
|
|
77
|
+
2. **Migration Path**: Breaking changes must provide a clear migration path
|
|
78
|
+
3. **Documentation**: All breaking changes must be documented in the release notes and migration guide
|
|
79
|
+
4. **Beta Features**: Breaking changes to beta features can occur in patch releases
|
|
80
|
+
|
|
81
|
+
## Deprecation Policy
|
|
82
|
+
|
|
83
|
+
1. **Announcement**: Features to be deprecated will be announced in release notes
|
|
84
|
+
2. **Warning Period**: Deprecated features will trigger warnings when used
|
|
85
|
+
3. **Removal**: Deprecated features will be removed in the next major release
|
|
86
|
+
|
|
87
|
+
## Release Process
|
|
88
|
+
|
|
89
|
+
1. **Development**:
|
|
90
|
+
- Features and fixes are developed in feature branches
|
|
91
|
+
- All changes require tests and documentation
|
|
92
|
+
- Code must pass all CI checks
|
|
93
|
+
|
|
94
|
+
2. **Release Candidate**:
|
|
95
|
+
- Minor releases include an RC phase
|
|
96
|
+
- RCs are versioned as `X.Y.ZrcN`
|
|
97
|
+
- Community feedback is collected during RC phase
|
|
98
|
+
|
|
99
|
+
3. **Release**:
|
|
100
|
+
- Version number is updated in `pyproject.toml`
|
|
101
|
+
- Release notes are prepared
|
|
102
|
+
- Package is published to PyPI
|
|
103
|
+
- Documentation is updated
|
|
104
|
+
|
|
105
|
+
## Support Policy
|
|
106
|
+
|
|
107
|
+
- Current major version: Full support
|
|
108
|
+
- Previous major version: Security fixes only
|
|
109
|
+
- Older versions: No official support
|
|
110
|
+
|
|
111
|
+
## Dependencies
|
|
112
|
+
|
|
113
|
+
The SDK maintains compatibility with:
|
|
114
|
+
|
|
115
|
+
- Python 3.10+
|
|
116
|
+
- Key dependencies as specified in `pyproject.toml`
|
|
117
|
+
- Regular updates to dependencies are performed in minor releases
|
|
118
|
+
|
|
119
|
+
## Documentation
|
|
120
|
+
|
|
121
|
+
- All public APIs must be documented
|
|
122
|
+
- Documentation follows Google-style docstrings
|
|
123
|
+
- Examples and usage guides are provided for new features
|
|
124
|
+
- Breaking changes are clearly documented in migration guides
|
|
@@ -9,6 +9,9 @@ copyright: Copyright © 2025 UiPath
|
|
|
9
9
|
extra_css:
|
|
10
10
|
- stylesheets/extra.css
|
|
11
11
|
|
|
12
|
+
extra_javascript:
|
|
13
|
+
- javascripts/extra.js
|
|
14
|
+
|
|
12
15
|
theme:
|
|
13
16
|
name: material
|
|
14
17
|
palette:
|
|
@@ -35,25 +38,24 @@ theme:
|
|
|
35
38
|
- content.tooltips
|
|
36
39
|
- navigation.expand
|
|
37
40
|
- navigation.footer
|
|
38
|
-
- navigation.instant.prefetch
|
|
39
|
-
- navigation.instant.progress
|
|
40
41
|
- navigation.sections
|
|
41
42
|
- search.highlight
|
|
42
43
|
- search.share
|
|
43
44
|
- search.suggest
|
|
44
45
|
- toc.follow
|
|
45
46
|
logo: assets/uipath-logo.svg
|
|
47
|
+
favicon: assets/favicon.png
|
|
46
48
|
|
|
47
49
|
nav:
|
|
48
50
|
- UiPath Langchain SDK:
|
|
49
|
-
- langchain/index.md
|
|
50
51
|
- Getting Started: index.md
|
|
52
|
+
- Sample agents: https://github.com/UiPath/uipath-langchain-python/tree/main/samples
|
|
51
53
|
- Chat Models: langchain/chat_models.md
|
|
52
54
|
- Context Grounding: langchain/context_grounding.md
|
|
53
55
|
- Human In The Loop: langchain/human_in_the_loop.md
|
|
54
56
|
- UiPath SDK:
|
|
55
|
-
- core/index.md
|
|
56
57
|
- Getting Started: core/getting_started.md
|
|
58
|
+
- CLI Reference: cli/index.md
|
|
57
59
|
- Services:
|
|
58
60
|
- Actions: core/actions.md
|
|
59
61
|
- Assets: core/assets.md
|
|
@@ -63,6 +65,7 @@ nav:
|
|
|
63
65
|
- Queues: core/queues.md
|
|
64
66
|
- Processes: core/processes.md
|
|
65
67
|
- How To Contribute: CONTRIBUTING.md
|
|
68
|
+
- Release Policy: release_policy.md
|
|
66
69
|
|
|
67
70
|
plugins:
|
|
68
71
|
- search
|
|
@@ -74,11 +77,12 @@ plugins:
|
|
|
74
77
|
prompt_literal_start:
|
|
75
78
|
- "$"
|
|
76
79
|
- ">"
|
|
77
|
-
|
|
80
|
+
- social
|
|
78
81
|
markdown_extensions:
|
|
79
82
|
- attr_list
|
|
80
83
|
- md_in_html
|
|
81
84
|
- admonition
|
|
85
|
+
- mkdocs-click
|
|
82
86
|
- pymdownx.blocks.tab:
|
|
83
87
|
alternate_style: true
|
|
84
88
|
- pymdownx.blocks.admonition:
|
|
@@ -102,5 +106,8 @@ markdown_extensions:
|
|
|
102
106
|
- pymdownx.inlinehilite
|
|
103
107
|
- pymdownx.magiclink
|
|
104
108
|
- pymdownx.snippets
|
|
109
|
+
- pymdownx.fancylists
|
|
105
110
|
- pymdownx.tabbed:
|
|
106
111
|
alternate_style: true
|
|
112
|
+
- toc:
|
|
113
|
+
title: On this page
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "uipath"
|
|
3
|
-
version = "2.0.
|
|
3
|
+
version = "2.0.35"
|
|
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"
|
|
@@ -53,11 +53,12 @@ dev = [
|
|
|
53
53
|
"pytest-mock>=3.11.1",
|
|
54
54
|
"pre-commit>=4.1.0",
|
|
55
55
|
"mkdocs>=1.6.1",
|
|
56
|
-
"mkdocs-material>=9.6.7",
|
|
56
|
+
"mkdocs-material[imaging]>=9.6.7",
|
|
57
57
|
"mkdocstrings>=0.29.0",
|
|
58
58
|
"mkdocstrings-python>=1.16.5",
|
|
59
59
|
"termynal>=0.13.0",
|
|
60
60
|
"mkdocs-simple-hooks>=0.1.5",
|
|
61
|
+
"mkdocs-click>=0.9.0",
|
|
61
62
|
]
|
|
62
63
|
|
|
63
64
|
[project.optional-dependencies]
|
|
@@ -30,7 +30,7 @@ def get_release_info(
|
|
|
30
30
|
return None, None
|
|
31
31
|
except IndexError:
|
|
32
32
|
console.error(
|
|
33
|
-
"Error: No process found in your workspace. Please publish the process first."
|
|
33
|
+
f"Error: No process with name '{package_name}' found in your workspace. Please publish the process first."
|
|
34
34
|
)
|
|
35
35
|
return None, None
|
|
36
36
|
else:
|
|
@@ -20,10 +20,9 @@ def generate_env_file(target_directory):
|
|
|
20
20
|
|
|
21
21
|
if not os.path.exists(env_path):
|
|
22
22
|
relative_path = os.path.relpath(env_path, target_directory)
|
|
23
|
+
with open(env_path, "w"):
|
|
24
|
+
pass
|
|
23
25
|
console.success(f" Created '{relative_path}' file.")
|
|
24
|
-
with open(env_path, "w") as f:
|
|
25
|
-
f.write("UIPATH_ACCESS_TOKEN=YOUR_TOKEN_HERE\n")
|
|
26
|
-
f.write("UIPATH_URL=https://cloud.uipath.com/ACCOUNT_NAME/TENANT_NAME\n")
|
|
27
26
|
|
|
28
27
|
|
|
29
28
|
def get_user_script(directory: str, entrypoint: Optional[str] = None) -> Optional[str]:
|
|
@@ -43,7 +43,7 @@ def _read_project_name() -> str:
|
|
|
43
43
|
@click.argument("entrypoint", required=False)
|
|
44
44
|
@click.argument("input", required=False, default="{}")
|
|
45
45
|
def invoke(entrypoint: Optional[str], input: Optional[str]) -> None:
|
|
46
|
-
"""Invoke
|
|
46
|
+
"""Invoke an agent published in my workspace."""
|
|
47
47
|
with console.spinner("Loading configuration ..."):
|
|
48
48
|
current_path = os.getcwd()
|
|
49
49
|
load_dotenv(os.path.join(current_path, ".env"), override=True)
|
|
@@ -68,9 +68,8 @@ def new(name: str):
|
|
|
68
68
|
ctx = click.get_current_context()
|
|
69
69
|
init_cmd = ctx.parent.command.get_command(ctx, "init")
|
|
70
70
|
ctx.invoke(init_cmd)
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
)
|
|
71
|
+
run_command = """uipath run main.py '{"message": "Hello World!"}'"""
|
|
72
|
+
console.hint(f"""Run project: {click.style(run_command, fg="cyan")}""")
|
|
74
73
|
|
|
75
74
|
|
|
76
75
|
if __name__ == "__main__":
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
# type: ignore
|
|
2
2
|
import asyncio
|
|
3
|
-
import logging
|
|
4
3
|
import os
|
|
5
4
|
import traceback
|
|
6
5
|
from os import environ as env
|
|
@@ -16,9 +15,10 @@ from ._runtime._contracts import (
|
|
|
16
15
|
UiPathTraceContext,
|
|
17
16
|
)
|
|
18
17
|
from ._runtime._runtime import UiPathRuntime
|
|
18
|
+
from ._utils._console import ConsoleLogger
|
|
19
19
|
from .middlewares import MiddlewareResult, Middlewares
|
|
20
20
|
|
|
21
|
-
|
|
21
|
+
console = ConsoleLogger()
|
|
22
22
|
load_dotenv()
|
|
23
23
|
|
|
24
24
|
|
|
@@ -39,14 +39,14 @@ def python_run_middleware(
|
|
|
39
39
|
return MiddlewareResult(
|
|
40
40
|
should_continue=False,
|
|
41
41
|
info_message="""Error: No entrypoint specified. Please provide a path to a Python script.
|
|
42
|
-
Usage: `uipath run <entrypoint_path> <input_arguments
|
|
42
|
+
Usage: `uipath run <entrypoint_path> <input_arguments> [-f <input_json_file_path>]`""",
|
|
43
43
|
)
|
|
44
44
|
|
|
45
45
|
if not os.path.exists(entrypoint):
|
|
46
46
|
return MiddlewareResult(
|
|
47
47
|
should_continue=False,
|
|
48
48
|
error_message=f"""Error: Script not found at path {entrypoint}.
|
|
49
|
-
Usage: `uipath run <entrypoint_path> <input_arguments
|
|
49
|
+
Usage: `uipath run <entrypoint_path> <input_arguments> [-f <input_json_file_path>]`""",
|
|
50
50
|
)
|
|
51
51
|
|
|
52
52
|
try:
|
|
@@ -74,7 +74,6 @@ Usage: `uipath run <entrypoint_path> <input_arguments>`""",
|
|
|
74
74
|
reference_id=env.get("UIPATH_JOB_KEY") or str(uuid4()),
|
|
75
75
|
)
|
|
76
76
|
context.logs_min_level = env.get("LOG_LEVEL", "INFO")
|
|
77
|
-
|
|
78
77
|
async with UiPathRuntime.from_context(context) as runtime:
|
|
79
78
|
await runtime.execute()
|
|
80
79
|
|
|
@@ -91,7 +90,6 @@ Usage: `uipath run <entrypoint_path> <input_arguments>`""",
|
|
|
91
90
|
)
|
|
92
91
|
except Exception as e:
|
|
93
92
|
# Handle unexpected errors
|
|
94
|
-
logger.exception("Unexpected error in Python runtime middleware")
|
|
95
93
|
return MiddlewareResult(
|
|
96
94
|
should_continue=False,
|
|
97
95
|
error_message=f"Error: Unexpected error occurred - {str(e)}",
|
|
@@ -103,8 +101,23 @@ Usage: `uipath run <entrypoint_path> <input_arguments>`""",
|
|
|
103
101
|
@click.argument("entrypoint", required=False)
|
|
104
102
|
@click.argument("input", required=False, default="{}")
|
|
105
103
|
@click.option("--resume", is_flag=True, help="Resume execution from a previous state")
|
|
106
|
-
|
|
104
|
+
@click.option(
|
|
105
|
+
"-f",
|
|
106
|
+
"--file",
|
|
107
|
+
required=False,
|
|
108
|
+
type=click.Path(exists=True),
|
|
109
|
+
help="File path for the .json input",
|
|
110
|
+
)
|
|
111
|
+
def run(
|
|
112
|
+
entrypoint: Optional[str], input: Optional[str], resume: bool, file: Optional[str]
|
|
113
|
+
) -> None:
|
|
107
114
|
"""Execute the project."""
|
|
115
|
+
if file:
|
|
116
|
+
_, file_extension = os.path.splitext(file)
|
|
117
|
+
if file_extension != ".json":
|
|
118
|
+
console.error("Input file extension must be '.json'.")
|
|
119
|
+
with open(file) as f:
|
|
120
|
+
input = f.read()
|
|
108
121
|
# Process through middleware chain
|
|
109
122
|
result = Middlewares.next("run", entrypoint, input, resume)
|
|
110
123
|
|
|
@@ -115,18 +128,22 @@ def run(entrypoint: Optional[str], input: Optional[str], resume: bool) -> None:
|
|
|
115
128
|
|
|
116
129
|
# Handle result from middleware
|
|
117
130
|
if result.error_message:
|
|
118
|
-
|
|
131
|
+
console.error(result.error_message, include_traceback=True)
|
|
119
132
|
if result.should_include_stacktrace:
|
|
120
|
-
|
|
133
|
+
console.error(traceback.format_exc())
|
|
121
134
|
click.get_current_context().exit(1)
|
|
122
135
|
|
|
123
136
|
if result.info_message:
|
|
124
|
-
|
|
137
|
+
console.info(result.info_message)
|
|
125
138
|
|
|
126
139
|
# If middleware chain completed but didn't handle the request
|
|
127
140
|
if result.should_continue:
|
|
128
|
-
|
|
129
|
-
|
|
141
|
+
console.error(
|
|
142
|
+
"Error: Could not process the request with any available handler."
|
|
143
|
+
)
|
|
144
|
+
|
|
145
|
+
if not result.should_continue and not result.error_message:
|
|
146
|
+
console.success("Successful execution.")
|
|
130
147
|
|
|
131
148
|
|
|
132
149
|
if __name__ == "__main__":
|
|
@@ -19,14 +19,7 @@ def test_init_env_file_creation(runner: CliRunner, temp_dir: str) -> None:
|
|
|
19
19
|
assert result.exit_code == 0
|
|
20
20
|
assert "Created '.env' file" in result.output
|
|
21
21
|
|
|
22
|
-
|
|
23
|
-
with open(".env", "r") as f:
|
|
24
|
-
content = f.read()
|
|
25
|
-
assert "UIPATH_ACCESS_TOKEN=YOUR_TOKEN_HERE" in content
|
|
26
|
-
assert (
|
|
27
|
-
"UIPATH_URL=https://cloud.uipath.com/ACCOUNT_NAME/TENANT_NAME"
|
|
28
|
-
in content
|
|
29
|
-
)
|
|
22
|
+
assert os.path.exists(".env")
|
|
30
23
|
|
|
31
24
|
# Test existing .env isn't overwritten
|
|
32
25
|
original_content = "EXISTING=CONFIG"
|