uipath 2.0.34__tar.gz → 2.0.36__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.34 → uipath-2.0.36}/PKG-INFO +1 -4
- uipath-2.0.36/docs/cli/index.md +165 -0
- {uipath-2.0.34 → uipath-2.0.36}/docs/core/getting_started.md +1 -2
- uipath-2.0.36/docs/javascripts/extra.js +35 -0
- {uipath-2.0.34 → uipath-2.0.36}/docs/stylesheets/extra.css +1 -1
- {uipath-2.0.34 → uipath-2.0.36}/mkdocs.yml +6 -4
- {uipath-2.0.34 → uipath-2.0.36}/pyproject.toml +3 -4
- {uipath-2.0.34 → uipath-2.0.36}/src/uipath/_cli/_auth/_portal_service.py +7 -6
- {uipath-2.0.34 → uipath-2.0.36}/src/uipath/_cli/_utils/_folders.py +3 -2
- {uipath-2.0.34 → uipath-2.0.36}/src/uipath/_cli/_utils/_processes.py +4 -3
- {uipath-2.0.34 → uipath-2.0.36}/src/uipath/_cli/cli_init.py +2 -3
- {uipath-2.0.34 → uipath-2.0.36}/src/uipath/_cli/cli_invoke.py +4 -3
- {uipath-2.0.34 → uipath-2.0.36}/src/uipath/_cli/cli_publish.py +4 -3
- {uipath-2.0.34 → uipath-2.0.36}/tests/cli/test_init.py +1 -8
- {uipath-2.0.34 → uipath-2.0.36}/uv.lock +21 -10
- uipath-2.0.34/docs/core/index.md +0 -7
- uipath-2.0.34/docs/langchain/index.md +0 -7
- {uipath-2.0.34 → uipath-2.0.36}/.cursorrules +0 -0
- {uipath-2.0.34 → uipath-2.0.36}/.editorconfig +0 -0
- {uipath-2.0.34 → uipath-2.0.36}/.gitattributes +0 -0
- {uipath-2.0.34 → uipath-2.0.36}/.github/workflows/build.yml +0 -0
- {uipath-2.0.34 → uipath-2.0.36}/.github/workflows/cd.yml +0 -0
- {uipath-2.0.34 → uipath-2.0.36}/.github/workflows/ci.yml +0 -0
- {uipath-2.0.34 → uipath-2.0.36}/.github/workflows/commitlint.yml +0 -0
- {uipath-2.0.34 → uipath-2.0.36}/.github/workflows/lint.yml +0 -0
- {uipath-2.0.34 → uipath-2.0.36}/.github/workflows/publish-dev.yml +0 -0
- {uipath-2.0.34 → uipath-2.0.36}/.github/workflows/publish-docs.yml +0 -0
- {uipath-2.0.34 → uipath-2.0.36}/.github/workflows/test.yml +0 -0
- {uipath-2.0.34 → uipath-2.0.36}/.gitignore +0 -0
- {uipath-2.0.34 → uipath-2.0.36}/.pre-commit-config.yaml +0 -0
- {uipath-2.0.34 → uipath-2.0.36}/.python-version +0 -0
- {uipath-2.0.34 → uipath-2.0.36}/.vscode/extensions.json +0 -0
- {uipath-2.0.34 → uipath-2.0.36}/.vscode/settings.json +0 -0
- {uipath-2.0.34 → uipath-2.0.36}/CONTRIBUTING.md +0 -0
- {uipath-2.0.34 → uipath-2.0.36}/LICENSE +0 -0
- {uipath-2.0.34 → uipath-2.0.36}/README.md +0 -0
- {uipath-2.0.34 → uipath-2.0.36}/docs/CONTRIBUTING.md +0 -0
- {uipath-2.0.34 → uipath-2.0.36}/docs/assets/favicon.png +0 -0
- {uipath-2.0.34 → uipath-2.0.36}/docs/assets/uipath-logo.svg +0 -0
- {uipath-2.0.34 → uipath-2.0.36}/docs/core/actions.md +0 -0
- {uipath-2.0.34 → uipath-2.0.36}/docs/core/assets.md +0 -0
- {uipath-2.0.34 → uipath-2.0.36}/docs/core/buckets.md +0 -0
- {uipath-2.0.34 → uipath-2.0.36}/docs/core/context_grounding.md +0 -0
- {uipath-2.0.34 → uipath-2.0.36}/docs/core/jobs.md +0 -0
- {uipath-2.0.34 → uipath-2.0.36}/docs/core/processes.md +0 -0
- {uipath-2.0.34 → uipath-2.0.36}/docs/core/queues.md +0 -0
- {uipath-2.0.34 → uipath-2.0.36}/docs/hooks.py +0 -0
- {uipath-2.0.34 → uipath-2.0.36}/docs/langchain/chat_models.md +0 -0
- {uipath-2.0.34 → uipath-2.0.36}/docs/langchain/context_grounding.md +0 -0
- {uipath-2.0.34 → uipath-2.0.36}/docs/langchain/human_in_the_loop.md +0 -0
- {uipath-2.0.34 → uipath-2.0.36}/docs/release_policy.md +0 -0
- {uipath-2.0.34 → uipath-2.0.36}/justfile +0 -0
- {uipath-2.0.34 → uipath-2.0.36}/py.typed +0 -0
- {uipath-2.0.34 → uipath-2.0.36}/src/uipath/__init__.py +0 -0
- {uipath-2.0.34 → uipath-2.0.36}/src/uipath/_cli/README.md +0 -0
- {uipath-2.0.34 → uipath-2.0.36}/src/uipath/_cli/__init__.py +0 -0
- {uipath-2.0.34 → uipath-2.0.36}/src/uipath/_cli/_auth/_auth_server.py +0 -0
- {uipath-2.0.34 → uipath-2.0.36}/src/uipath/_cli/_auth/_models.py +0 -0
- {uipath-2.0.34 → uipath-2.0.36}/src/uipath/_cli/_auth/_oidc_utils.py +0 -0
- {uipath-2.0.34 → uipath-2.0.36}/src/uipath/_cli/_auth/_utils.py +0 -0
- {uipath-2.0.34 → uipath-2.0.36}/src/uipath/_cli/_auth/auth_config.json +0 -0
- {uipath-2.0.34 → uipath-2.0.36}/src/uipath/_cli/_auth/index.html +0 -0
- {uipath-2.0.34 → uipath-2.0.36}/src/uipath/_cli/_auth/localhost.crt +0 -0
- {uipath-2.0.34 → uipath-2.0.36}/src/uipath/_cli/_auth/localhost.key +0 -0
- {uipath-2.0.34 → uipath-2.0.36}/src/uipath/_cli/_runtime/_contracts.py +0 -0
- {uipath-2.0.34 → uipath-2.0.36}/src/uipath/_cli/_runtime/_logging.py +0 -0
- {uipath-2.0.34 → uipath-2.0.36}/src/uipath/_cli/_runtime/_runtime.py +0 -0
- {uipath-2.0.34 → uipath-2.0.36}/src/uipath/_cli/_templates/.psmdcp.template +0 -0
- {uipath-2.0.34 → uipath-2.0.36}/src/uipath/_cli/_templates/.rels.template +0 -0
- {uipath-2.0.34 → uipath-2.0.36}/src/uipath/_cli/_templates/[Content_Types].xml.template +0 -0
- {uipath-2.0.34 → uipath-2.0.36}/src/uipath/_cli/_templates/main.py.template +0 -0
- {uipath-2.0.34 → uipath-2.0.36}/src/uipath/_cli/_templates/package.nuspec.template +0 -0
- {uipath-2.0.34 → uipath-2.0.36}/src/uipath/_cli/_utils/_common.py +0 -0
- {uipath-2.0.34 → uipath-2.0.36}/src/uipath/_cli/_utils/_console.py +0 -0
- {uipath-2.0.34 → uipath-2.0.36}/src/uipath/_cli/_utils/_input_args.py +0 -0
- {uipath-2.0.34 → uipath-2.0.36}/src/uipath/_cli/_utils/_parse_ast.py +0 -0
- {uipath-2.0.34 → uipath-2.0.36}/src/uipath/_cli/cli_auth.py +0 -0
- {uipath-2.0.34 → uipath-2.0.36}/src/uipath/_cli/cli_deploy.py +0 -0
- {uipath-2.0.34 → uipath-2.0.36}/src/uipath/_cli/cli_new.py +0 -0
- {uipath-2.0.34 → uipath-2.0.36}/src/uipath/_cli/cli_pack.py +0 -0
- {uipath-2.0.34 → uipath-2.0.36}/src/uipath/_cli/cli_run.py +0 -0
- {uipath-2.0.34 → uipath-2.0.36}/src/uipath/_cli/middlewares.py +0 -0
- {uipath-2.0.34 → uipath-2.0.36}/src/uipath/_cli/spinner.py +0 -0
- {uipath-2.0.34 → uipath-2.0.36}/src/uipath/_config.py +0 -0
- {uipath-2.0.34 → uipath-2.0.36}/src/uipath/_execution_context.py +0 -0
- {uipath-2.0.34 → uipath-2.0.36}/src/uipath/_folder_context.py +0 -0
- {uipath-2.0.34 → uipath-2.0.36}/src/uipath/_services/__init__.py +0 -0
- {uipath-2.0.34 → uipath-2.0.36}/src/uipath/_services/_base_service.py +0 -0
- {uipath-2.0.34 → uipath-2.0.36}/src/uipath/_services/actions_service.py +0 -0
- {uipath-2.0.34 → uipath-2.0.36}/src/uipath/_services/api_client.py +0 -0
- {uipath-2.0.34 → uipath-2.0.36}/src/uipath/_services/assets_service.py +0 -0
- {uipath-2.0.34 → uipath-2.0.36}/src/uipath/_services/buckets_service.py +0 -0
- {uipath-2.0.34 → uipath-2.0.36}/src/uipath/_services/connections_service.py +0 -0
- {uipath-2.0.34 → uipath-2.0.36}/src/uipath/_services/connections_service.pyi +0 -0
- {uipath-2.0.34 → uipath-2.0.36}/src/uipath/_services/context_grounding_service.py +0 -0
- {uipath-2.0.34 → uipath-2.0.36}/src/uipath/_services/folder_service.py +0 -0
- {uipath-2.0.34 → uipath-2.0.36}/src/uipath/_services/jobs_service.py +0 -0
- {uipath-2.0.34 → uipath-2.0.36}/src/uipath/_services/llm_gateway_service.py +0 -0
- {uipath-2.0.34 → uipath-2.0.36}/src/uipath/_services/processes_service.py +0 -0
- {uipath-2.0.34 → uipath-2.0.36}/src/uipath/_services/queues_service.py +0 -0
- {uipath-2.0.34 → uipath-2.0.36}/src/uipath/_uipath.py +0 -0
- {uipath-2.0.34 → uipath-2.0.36}/src/uipath/_utils/__init__.py +0 -0
- {uipath-2.0.34 → uipath-2.0.36}/src/uipath/_utils/_endpoint.py +0 -0
- {uipath-2.0.34 → uipath-2.0.36}/src/uipath/_utils/_infer_bindings.py +0 -0
- {uipath-2.0.34 → uipath-2.0.36}/src/uipath/_utils/_logs.py +0 -0
- {uipath-2.0.34 → uipath-2.0.36}/src/uipath/_utils/_request_override.py +0 -0
- {uipath-2.0.34 → uipath-2.0.36}/src/uipath/_utils/_request_spec.py +0 -0
- {uipath-2.0.34 → uipath-2.0.36}/src/uipath/_utils/_user_agent.py +0 -0
- {uipath-2.0.34 → uipath-2.0.36}/src/uipath/_utils/constants.py +0 -0
- {uipath-2.0.34 → uipath-2.0.36}/src/uipath/models/__init__.py +0 -0
- {uipath-2.0.34 → uipath-2.0.36}/src/uipath/models/action_schema.py +0 -0
- {uipath-2.0.34 → uipath-2.0.36}/src/uipath/models/actions.py +0 -0
- {uipath-2.0.34 → uipath-2.0.36}/src/uipath/models/assets.py +0 -0
- {uipath-2.0.34 → uipath-2.0.36}/src/uipath/models/connections.py +0 -0
- {uipath-2.0.34 → uipath-2.0.36}/src/uipath/models/context_grounding.py +0 -0
- {uipath-2.0.34 → uipath-2.0.36}/src/uipath/models/context_grounding_index.py +0 -0
- {uipath-2.0.34 → uipath-2.0.36}/src/uipath/models/errors.py +0 -0
- {uipath-2.0.34 → uipath-2.0.36}/src/uipath/models/exceptions.py +0 -0
- {uipath-2.0.34 → uipath-2.0.36}/src/uipath/models/interrupt_models.py +0 -0
- {uipath-2.0.34 → uipath-2.0.36}/src/uipath/models/job.py +0 -0
- {uipath-2.0.34 → uipath-2.0.36}/src/uipath/models/llm_gateway.py +0 -0
- {uipath-2.0.34 → uipath-2.0.36}/src/uipath/models/processes.py +0 -0
- {uipath-2.0.34 → uipath-2.0.36}/src/uipath/models/queues.py +0 -0
- {uipath-2.0.34 → uipath-2.0.36}/src/uipath/py.typed +0 -0
- {uipath-2.0.34 → uipath-2.0.36}/src/uipath/tracing/__init__.py +0 -0
- {uipath-2.0.34 → uipath-2.0.36}/src/uipath/tracing/_otel_exporters.py +0 -0
- {uipath-2.0.34 → uipath-2.0.36}/src/uipath/tracing/_traced.py +0 -0
- {uipath-2.0.34 → uipath-2.0.36}/src/uipath/tracing/_utils.py +0 -0
- {uipath-2.0.34 → uipath-2.0.36}/tests/__init__.py +0 -0
- {uipath-2.0.34 → uipath-2.0.36}/tests/conftest.py +0 -0
- {uipath-2.0.34 → uipath-2.0.36}/tests/sdk/services/test_llm_integration.py +0 -0
- {uipath-2.0.34 → uipath-2.0.36}/tests/sdk/services/test_llm_service.py +0 -0
- {uipath-2.0.34 → uipath-2.0.36}/tests/sdk/services/test_uipath_llm_integration.py +0 -0
- {uipath-2.0.34 → uipath-2.0.36}/tests/sdk/test_config.py +0 -0
- {uipath-2.0.34 → uipath-2.0.36}/tests/tracing/test_otel_exporters.py +0 -0
- {uipath-2.0.34 → uipath-2.0.36}/tests/tracing/test_span_utils.py +0 -0
- {uipath-2.0.34 → uipath-2.0.36}/tests/tracing/test_traced.py +0 -0
- {uipath-2.0.34 → uipath-2.0.36}/tests/tracing/test_tracing_manager.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: uipath
|
|
3
|
-
Version: 2.0.
|
|
3
|
+
Version: 2.0.36
|
|
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
|
|
@@ -18,13 +18,10 @@ Requires-Dist: httpx>=0.28.1
|
|
|
18
18
|
Requires-Dist: opentelemetry-sdk>=1.32.1
|
|
19
19
|
Requires-Dist: pathlib>=1.0.1
|
|
20
20
|
Requires-Dist: pydantic>=2.11.1
|
|
21
|
-
Requires-Dist: pytest-asyncio>=0.25.3
|
|
22
21
|
Requires-Dist: python-dotenv>=1.0.1
|
|
23
|
-
Requires-Dist: requests>=2.32.3
|
|
24
22
|
Requires-Dist: rich>=13.0.0
|
|
25
23
|
Requires-Dist: tenacity>=9.0.0
|
|
26
24
|
Requires-Dist: tomli>=2.2.1
|
|
27
|
-
Requires-Dist: types-requests>=2.32.0.20250306
|
|
28
25
|
Provides-Extra: langchain
|
|
29
26
|
Requires-Dist: uipath-langchain<0.1.0,>=0.0.88; extra == 'langchain'
|
|
30
27
|
Description-Content-Type: text/markdown
|
|
@@ -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
|
+
});
|
|
@@ -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,8 +38,6 @@ 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
|
|
@@ -47,14 +48,14 @@ theme:
|
|
|
47
48
|
|
|
48
49
|
nav:
|
|
49
50
|
- UiPath Langchain SDK:
|
|
50
|
-
- langchain/index.md
|
|
51
51
|
- Getting Started: index.md
|
|
52
|
+
- Sample agents: https://github.com/UiPath/uipath-langchain-python/tree/main/samples
|
|
52
53
|
- Chat Models: langchain/chat_models.md
|
|
53
54
|
- Context Grounding: langchain/context_grounding.md
|
|
54
55
|
- Human In The Loop: langchain/human_in_the_loop.md
|
|
55
56
|
- UiPath SDK:
|
|
56
|
-
- core/index.md
|
|
57
57
|
- Getting Started: core/getting_started.md
|
|
58
|
+
- CLI Reference: cli/index.md
|
|
58
59
|
- Services:
|
|
59
60
|
- Actions: core/actions.md
|
|
60
61
|
- Assets: core/assets.md
|
|
@@ -81,6 +82,7 @@ markdown_extensions:
|
|
|
81
82
|
- attr_list
|
|
82
83
|
- md_in_html
|
|
83
84
|
- admonition
|
|
85
|
+
- mkdocs-click
|
|
84
86
|
- pymdownx.blocks.tab:
|
|
85
87
|
alternate_style: true
|
|
86
88
|
- pymdownx.blocks.admonition:
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "uipath"
|
|
3
|
-
version = "2.0.
|
|
3
|
+
version = "2.0.36"
|
|
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"
|
|
@@ -9,12 +9,9 @@ dependencies = [
|
|
|
9
9
|
"httpx>=0.28.1",
|
|
10
10
|
"opentelemetry-sdk>=1.32.1",
|
|
11
11
|
"pydantic>=2.11.1",
|
|
12
|
-
"pytest-asyncio>=0.25.3",
|
|
13
12
|
"python-dotenv>=1.0.1",
|
|
14
|
-
"requests>=2.32.3",
|
|
15
13
|
"tenacity>=9.0.0",
|
|
16
14
|
"tomli>=2.2.1",
|
|
17
|
-
"types-requests>=2.32.0.20250306",
|
|
18
15
|
"pathlib>=1.0.1",
|
|
19
16
|
"rich>=13.0.0",
|
|
20
17
|
]
|
|
@@ -58,6 +55,8 @@ dev = [
|
|
|
58
55
|
"mkdocstrings-python>=1.16.5",
|
|
59
56
|
"termynal>=0.13.0",
|
|
60
57
|
"mkdocs-simple-hooks>=0.1.5",
|
|
58
|
+
"mkdocs-click>=0.9.0",
|
|
59
|
+
"pytest-asyncio>=0.26.0",
|
|
61
60
|
]
|
|
62
61
|
|
|
63
62
|
[project.optional-dependencies]
|
|
@@ -3,7 +3,7 @@ import time
|
|
|
3
3
|
from typing import Optional
|
|
4
4
|
|
|
5
5
|
import click
|
|
6
|
-
import
|
|
6
|
+
import httpx
|
|
7
7
|
|
|
8
8
|
from .._utils._console import ConsoleLogger
|
|
9
9
|
from ._models import TenantsAndOrganizationInfoResponse, TokenData
|
|
@@ -16,6 +16,7 @@ from ._utils import (
|
|
|
16
16
|
)
|
|
17
17
|
|
|
18
18
|
console = ConsoleLogger()
|
|
19
|
+
client = httpx.Client(follow_redirects=True)
|
|
19
20
|
|
|
20
21
|
|
|
21
22
|
class PortalService:
|
|
@@ -44,10 +45,10 @@ class PortalService:
|
|
|
44
45
|
|
|
45
46
|
def get_tenants_and_organizations(self) -> TenantsAndOrganizationInfoResponse:
|
|
46
47
|
url = f"https://{self.domain}.uipath.com/{self.prt_id}/portal_/api/filtering/leftnav/tenantsAndOrganizationInfo"
|
|
47
|
-
response =
|
|
48
|
+
response = client.get(
|
|
48
49
|
url, headers={"Authorization": f"Bearer {self.access_token}"}
|
|
49
50
|
)
|
|
50
|
-
if response.
|
|
51
|
+
if response.status_code < 400:
|
|
51
52
|
result = response.json()
|
|
52
53
|
self._tenants_and_organizations = result
|
|
53
54
|
return result
|
|
@@ -82,8 +83,8 @@ class PortalService:
|
|
|
82
83
|
|
|
83
84
|
headers = {"Content-Type": "application/x-www-form-urlencoded"}
|
|
84
85
|
|
|
85
|
-
response =
|
|
86
|
-
if response.
|
|
86
|
+
response = client.post(url, data=data, headers=headers)
|
|
87
|
+
if response.status_code < 400:
|
|
87
88
|
return response.json()
|
|
88
89
|
elif response.status_code == 401:
|
|
89
90
|
console.error("Unauthorized")
|
|
@@ -147,7 +148,7 @@ class PortalService:
|
|
|
147
148
|
|
|
148
149
|
try:
|
|
149
150
|
[try_enable_first_run_response, acquire_license_response] = [
|
|
150
|
-
|
|
151
|
+
client.post(
|
|
151
152
|
url,
|
|
152
153
|
headers={"Authorization": f"Bearer {self.access_token}"},
|
|
153
154
|
)
|
|
@@ -1,17 +1,18 @@
|
|
|
1
1
|
from typing import Optional, Tuple
|
|
2
2
|
|
|
3
|
-
import
|
|
3
|
+
import httpx
|
|
4
4
|
|
|
5
5
|
from ._console import ConsoleLogger
|
|
6
6
|
|
|
7
7
|
console = ConsoleLogger()
|
|
8
|
+
client = httpx.Client(follow_redirects=True)
|
|
8
9
|
|
|
9
10
|
|
|
10
11
|
def get_personal_workspace_info(
|
|
11
12
|
base_url: str, token: str
|
|
12
13
|
) -> Tuple[Optional[str], Optional[str]]:
|
|
13
14
|
user_url = f"{base_url}/orchestrator_/odata/Users/UiPath.Server.Configuration.OData.GetCurrentUserExtended?$expand=PersonalWorkspace"
|
|
14
|
-
user_response =
|
|
15
|
+
user_response = client.get(user_url, headers={"Authorization": f"Bearer {token}"})
|
|
15
16
|
|
|
16
17
|
if user_response.status_code != 200:
|
|
17
18
|
console.error("Error: Failed to fetch user info. Please try reauthenticating.")
|
|
@@ -2,11 +2,12 @@ import json
|
|
|
2
2
|
import urllib.parse
|
|
3
3
|
from typing import Any
|
|
4
4
|
|
|
5
|
-
import
|
|
5
|
+
import httpx
|
|
6
6
|
|
|
7
7
|
from ._console import ConsoleLogger
|
|
8
8
|
|
|
9
9
|
console = ConsoleLogger()
|
|
10
|
+
client = httpx.Client(follow_redirects=True)
|
|
10
11
|
|
|
11
12
|
|
|
12
13
|
def get_release_info(
|
|
@@ -18,7 +19,7 @@ def get_release_info(
|
|
|
18
19
|
}
|
|
19
20
|
|
|
20
21
|
release_url = f"{base_url}/orchestrator_/odata/Releases/UiPath.Server.Configuration.OData.ListReleases?$select=Id,Key&$top=1&$filter=Name%20eq%20%27{urllib.parse.quote(package_name)}%27"
|
|
21
|
-
response =
|
|
22
|
+
response = client.get(release_url, headers=headers)
|
|
22
23
|
if response.status_code == 200:
|
|
23
24
|
try:
|
|
24
25
|
data = json.loads(response.text)
|
|
@@ -30,7 +31,7 @@ def get_release_info(
|
|
|
30
31
|
return None, None
|
|
31
32
|
except IndexError:
|
|
32
33
|
console.error(
|
|
33
|
-
"Error: No process found in your workspace. Please publish the process first."
|
|
34
|
+
f"Error: No process with name '{package_name}' found in your workspace. Please publish the process first."
|
|
34
35
|
)
|
|
35
36
|
return None, None
|
|
36
37
|
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]:
|
|
@@ -4,7 +4,7 @@ import os
|
|
|
4
4
|
from typing import Optional
|
|
5
5
|
|
|
6
6
|
import click
|
|
7
|
-
import
|
|
7
|
+
import httpx
|
|
8
8
|
from dotenv import load_dotenv
|
|
9
9
|
|
|
10
10
|
from ._utils._console import ConsoleLogger
|
|
@@ -21,6 +21,7 @@ from ._utils._processes import get_release_info
|
|
|
21
21
|
logger = logging.getLogger(__name__)
|
|
22
22
|
load_dotenv()
|
|
23
23
|
console = ConsoleLogger()
|
|
24
|
+
client = httpx.Client(follow_redirects=True)
|
|
24
25
|
|
|
25
26
|
|
|
26
27
|
def _read_project_name() -> str:
|
|
@@ -43,7 +44,7 @@ def _read_project_name() -> str:
|
|
|
43
44
|
@click.argument("entrypoint", required=False)
|
|
44
45
|
@click.argument("input", required=False, default="{}")
|
|
45
46
|
def invoke(entrypoint: Optional[str], input: Optional[str]) -> None:
|
|
46
|
-
"""Invoke
|
|
47
|
+
"""Invoke an agent published in my workspace."""
|
|
47
48
|
with console.spinner("Loading configuration ..."):
|
|
48
49
|
current_path = os.getcwd()
|
|
49
50
|
load_dotenv(os.path.join(current_path, ".env"), override=True)
|
|
@@ -74,7 +75,7 @@ def invoke(entrypoint: Optional[str], input: Optional[str]) -> None:
|
|
|
74
75
|
"x-uipath-organizationunitid": str(personal_workspace_folder_id),
|
|
75
76
|
}
|
|
76
77
|
|
|
77
|
-
response =
|
|
78
|
+
response = client.post(url, json=payload, headers=headers)
|
|
78
79
|
|
|
79
80
|
if response.status_code == 201:
|
|
80
81
|
job_key = None
|
|
@@ -3,7 +3,7 @@ import json
|
|
|
3
3
|
import os
|
|
4
4
|
|
|
5
5
|
import click
|
|
6
|
-
import
|
|
6
|
+
import httpx
|
|
7
7
|
from dotenv import load_dotenv
|
|
8
8
|
|
|
9
9
|
from ._utils._common import get_env_vars
|
|
@@ -12,6 +12,7 @@ from ._utils._folders import get_personal_workspace_info
|
|
|
12
12
|
from ._utils._processes import get_release_info
|
|
13
13
|
|
|
14
14
|
console = ConsoleLogger()
|
|
15
|
+
client = httpx.Client(follow_redirects=True)
|
|
15
16
|
|
|
16
17
|
|
|
17
18
|
def get_most_recent_package():
|
|
@@ -33,7 +34,7 @@ def get_available_feeds(
|
|
|
33
34
|
base_url: str, headers: dict[str, str]
|
|
34
35
|
) -> list[tuple[str, str]]:
|
|
35
36
|
url = f"{base_url}/orchestrator_/api/PackageFeeds/GetFeeds"
|
|
36
|
-
response =
|
|
37
|
+
response = httpx.get(url, headers=headers)
|
|
37
38
|
if response.status_code != 200:
|
|
38
39
|
console.error(
|
|
39
40
|
f"Failed to fetch available feeds. Please check your connection. Status code: {response.status_code} {response.text}"
|
|
@@ -122,7 +123,7 @@ def publish(feed):
|
|
|
122
123
|
|
|
123
124
|
with open(package_to_publish_path, "rb") as f:
|
|
124
125
|
files = {"file": (package_to_publish_path, f, "application/octet-stream")}
|
|
125
|
-
response =
|
|
126
|
+
response = client.post(url, headers=headers, files=files)
|
|
126
127
|
|
|
127
128
|
if response.status_code == 200:
|
|
128
129
|
console.success("Package published successfully!")
|
|
@@ -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"
|
|
@@ -1156,6 +1156,19 @@ wheels = [
|
|
|
1156
1156
|
{ url = "https://files.pythonhosted.org/packages/f8/29/1125f7b11db63e8e32bcfa0752a4eea30abff3ebd0796f808e14571ddaa2/mkdocs_autorefs-1.4.1-py3-none-any.whl", hash = "sha256:9793c5ac06a6ebbe52ec0f8439256e66187badf4b5334b5fde0b128ec134df4f", size = 5782047 },
|
|
1157
1157
|
]
|
|
1158
1158
|
|
|
1159
|
+
[[package]]
|
|
1160
|
+
name = "mkdocs-click"
|
|
1161
|
+
version = "0.9.0"
|
|
1162
|
+
source = { registry = "https://pypi.org/simple" }
|
|
1163
|
+
dependencies = [
|
|
1164
|
+
{ name = "click" },
|
|
1165
|
+
{ name = "markdown" },
|
|
1166
|
+
]
|
|
1167
|
+
sdist = { url = "https://files.pythonhosted.org/packages/a1/c7/8c25f3a3b379def41e6d0bb5c4beeab7aa8a394b17e749f498504102cfa5/mkdocs_click-0.9.0.tar.gz", hash = "sha256:6050917628d4740517541422b607404d044117bc31b770c4f9e9e1939a50c908", size = 18720 }
|
|
1168
|
+
wheels = [
|
|
1169
|
+
{ url = "https://files.pythonhosted.org/packages/e9/fc/9124ab36e2341e78d8d9c669511bd70f52ea0de8105760c31fabec1f9396/mkdocs_click-0.9.0-py3-none-any.whl", hash = "sha256:5208e828f4f68f63c847c1ef7be48edee9964090390afc8f5b3d4cbe5ea9bbed", size = 15104 },
|
|
1170
|
+
]
|
|
1171
|
+
|
|
1159
1172
|
[[package]]
|
|
1160
1173
|
name = "mkdocs-get-deps"
|
|
1161
1174
|
version = "0.2.0"
|
|
@@ -2022,14 +2035,14 @@ wheels = [
|
|
|
2022
2035
|
|
|
2023
2036
|
[[package]]
|
|
2024
2037
|
name = "pytest-asyncio"
|
|
2025
|
-
version = "0.
|
|
2038
|
+
version = "0.26.0"
|
|
2026
2039
|
source = { registry = "https://pypi.org/simple" }
|
|
2027
2040
|
dependencies = [
|
|
2028
2041
|
{ name = "pytest" },
|
|
2029
2042
|
]
|
|
2030
|
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
|
2043
|
+
sdist = { url = "https://files.pythonhosted.org/packages/8e/c4/453c52c659521066969523e87d85d54139bbd17b78f09532fb8eb8cdb58e/pytest_asyncio-0.26.0.tar.gz", hash = "sha256:c4df2a697648241ff39e7f0e4a73050b03f123f760673956cf0d72a4990e312f", size = 54156 }
|
|
2031
2044
|
wheels = [
|
|
2032
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
2045
|
+
{ url = "https://files.pythonhosted.org/packages/20/7f/338843f449ace853647ace35870874f69a764d251872ed1b4de9f234822c/pytest_asyncio-0.26.0-py3-none-any.whl", hash = "sha256:7b51ed894f4fbea1340262bdae5135797ebbe21d8638978e35d31c6d19f72fb0", size = 19694 },
|
|
2033
2046
|
]
|
|
2034
2047
|
|
|
2035
2048
|
[[package]]
|
|
@@ -2543,7 +2556,7 @@ wheels = [
|
|
|
2543
2556
|
|
|
2544
2557
|
[[package]]
|
|
2545
2558
|
name = "uipath"
|
|
2546
|
-
version = "2.0.
|
|
2559
|
+
version = "2.0.36"
|
|
2547
2560
|
source = { editable = "." }
|
|
2548
2561
|
dependencies = [
|
|
2549
2562
|
{ name = "click" },
|
|
@@ -2551,13 +2564,10 @@ dependencies = [
|
|
|
2551
2564
|
{ name = "opentelemetry-sdk" },
|
|
2552
2565
|
{ name = "pathlib" },
|
|
2553
2566
|
{ name = "pydantic" },
|
|
2554
|
-
{ name = "pytest-asyncio" },
|
|
2555
2567
|
{ name = "python-dotenv" },
|
|
2556
|
-
{ name = "requests" },
|
|
2557
2568
|
{ name = "rich" },
|
|
2558
2569
|
{ name = "tenacity" },
|
|
2559
2570
|
{ name = "tomli" },
|
|
2560
|
-
{ name = "types-requests" },
|
|
2561
2571
|
]
|
|
2562
2572
|
|
|
2563
2573
|
[package.optional-dependencies]
|
|
@@ -2569,6 +2579,7 @@ langchain = [
|
|
|
2569
2579
|
dev = [
|
|
2570
2580
|
{ name = "bandit" },
|
|
2571
2581
|
{ name = "mkdocs" },
|
|
2582
|
+
{ name = "mkdocs-click" },
|
|
2572
2583
|
{ name = "mkdocs-material", extra = ["imaging"] },
|
|
2573
2584
|
{ name = "mkdocs-simple-hooks" },
|
|
2574
2585
|
{ name = "mkdocstrings" },
|
|
@@ -2576,6 +2587,7 @@ dev = [
|
|
|
2576
2587
|
{ name = "mypy" },
|
|
2577
2588
|
{ name = "pre-commit" },
|
|
2578
2589
|
{ name = "pytest" },
|
|
2590
|
+
{ name = "pytest-asyncio" },
|
|
2579
2591
|
{ name = "pytest-cov" },
|
|
2580
2592
|
{ name = "pytest-mock" },
|
|
2581
2593
|
{ name = "ruff" },
|
|
@@ -2590,13 +2602,10 @@ requires-dist = [
|
|
|
2590
2602
|
{ name = "opentelemetry-sdk", specifier = ">=1.32.1" },
|
|
2591
2603
|
{ name = "pathlib", specifier = ">=1.0.1" },
|
|
2592
2604
|
{ name = "pydantic", specifier = ">=2.11.1" },
|
|
2593
|
-
{ name = "pytest-asyncio", specifier = ">=0.25.3" },
|
|
2594
2605
|
{ name = "python-dotenv", specifier = ">=1.0.1" },
|
|
2595
|
-
{ name = "requests", specifier = ">=2.32.3" },
|
|
2596
2606
|
{ name = "rich", specifier = ">=13.0.0" },
|
|
2597
2607
|
{ name = "tenacity", specifier = ">=9.0.0" },
|
|
2598
2608
|
{ name = "tomli", specifier = ">=2.2.1" },
|
|
2599
|
-
{ name = "types-requests", specifier = ">=2.32.0.20250306" },
|
|
2600
2609
|
{ name = "uipath-langchain", marker = "extra == 'langchain'", specifier = ">=0.0.88,<0.1.0" },
|
|
2601
2610
|
]
|
|
2602
2611
|
|
|
@@ -2604,6 +2613,7 @@ requires-dist = [
|
|
|
2604
2613
|
dev = [
|
|
2605
2614
|
{ name = "bandit", specifier = ">=1.8.2" },
|
|
2606
2615
|
{ name = "mkdocs", specifier = ">=1.6.1" },
|
|
2616
|
+
{ name = "mkdocs-click", specifier = ">=0.9.0" },
|
|
2607
2617
|
{ name = "mkdocs-material", extras = ["imaging"], specifier = ">=9.6.7" },
|
|
2608
2618
|
{ name = "mkdocs-simple-hooks", specifier = ">=0.1.5" },
|
|
2609
2619
|
{ name = "mkdocstrings", specifier = ">=0.29.0" },
|
|
@@ -2611,6 +2621,7 @@ dev = [
|
|
|
2611
2621
|
{ name = "mypy", specifier = ">=1.14.1" },
|
|
2612
2622
|
{ name = "pre-commit", specifier = ">=4.1.0" },
|
|
2613
2623
|
{ name = "pytest", specifier = ">=7.4.0" },
|
|
2624
|
+
{ name = "pytest-asyncio", specifier = ">=0.26.0" },
|
|
2614
2625
|
{ name = "pytest-cov", specifier = ">=4.1.0" },
|
|
2615
2626
|
{ name = "pytest-mock", specifier = ">=3.11.1" },
|
|
2616
2627
|
{ name = "ruff", specifier = ">=0.9.4" },
|
uipath-2.0.34/docs/core/index.md
DELETED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|