uipath 2.1.3__tar.gz → 2.1.5__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.
Files changed (218) hide show
  1. {uipath-2.1.3 → uipath-2.1.5}/PKG-INFO +1 -1
  2. {uipath-2.1.3 → uipath-2.1.5}/docs/core/getting_started.md +23 -0
  3. {uipath-2.1.3 → uipath-2.1.5}/pyproject.toml +1 -1
  4. {uipath-2.1.3 → uipath-2.1.5}/src/uipath/_cli/__init__.py +2 -0
  5. {uipath-2.1.3 → uipath-2.1.5}/src/uipath/_cli/_auth/_auth_server.py +28 -9
  6. uipath-2.1.5/src/uipath/_cli/_auth/auth_config.json +6 -0
  7. uipath-2.1.5/src/uipath/_cli/_auth/index.html +608 -0
  8. {uipath-2.1.3 → uipath-2.1.5}/src/uipath/_cli/_utils/_constants.py +6 -0
  9. uipath-2.1.5/src/uipath/_cli/_utils/_project_files.py +361 -0
  10. uipath-2.1.5/src/uipath/_cli/_utils/_studio_project.py +138 -0
  11. uipath-2.1.5/src/uipath/_cli/_utils/_uv_helpers.py +114 -0
  12. {uipath-2.1.3 → uipath-2.1.5}/src/uipath/_cli/cli_auth.py +12 -5
  13. uipath-2.1.5/src/uipath/_cli/cli_pack.py +320 -0
  14. uipath-2.1.5/src/uipath/_cli/cli_push.py +546 -0
  15. {uipath-2.1.3 → uipath-2.1.5}/tests/cli/mocks/pyproject.toml +1 -1
  16. {uipath-2.1.3 → uipath-2.1.5}/tests/cli/test_pack.py +23 -1
  17. uipath-2.1.5/tests/cli/test_push.py +512 -0
  18. uipath-2.1.5/uv.lock +2247 -0
  19. uipath-2.1.3/src/uipath/_cli/_auth/auth_config.json +0 -6
  20. uipath-2.1.3/src/uipath/_cli/_auth/index.html +0 -167
  21. uipath-2.1.3/src/uipath/_cli/cli_pack.py +0 -619
  22. uipath-2.1.3/uv.lock +0 -2246
  23. {uipath-2.1.3 → uipath-2.1.5}/.cursorrules +0 -0
  24. {uipath-2.1.3 → uipath-2.1.5}/.editorconfig +0 -0
  25. {uipath-2.1.3 → uipath-2.1.5}/.gitattributes +0 -0
  26. {uipath-2.1.3 → uipath-2.1.5}/.github/workflows/cd.yml +0 -0
  27. {uipath-2.1.3 → uipath-2.1.5}/.github/workflows/ci.yml +0 -0
  28. {uipath-2.1.3 → uipath-2.1.5}/.github/workflows/commitlint.yml +0 -0
  29. {uipath-2.1.3 → uipath-2.1.5}/.github/workflows/lint.yml +0 -0
  30. {uipath-2.1.3 → uipath-2.1.5}/.github/workflows/publish-dev.yml +0 -0
  31. {uipath-2.1.3 → uipath-2.1.5}/.github/workflows/publish-docs.yml +0 -0
  32. {uipath-2.1.3 → uipath-2.1.5}/.github/workflows/slack.yml +0 -0
  33. {uipath-2.1.3 → uipath-2.1.5}/.github/workflows/test.yml +0 -0
  34. {uipath-2.1.3 → uipath-2.1.5}/.gitignore +0 -0
  35. {uipath-2.1.3 → uipath-2.1.5}/.pre-commit-config.yaml +0 -0
  36. {uipath-2.1.3 → uipath-2.1.5}/.python-version +0 -0
  37. {uipath-2.1.3 → uipath-2.1.5}/.vscode/extensions.json +0 -0
  38. {uipath-2.1.3 → uipath-2.1.5}/.vscode/launch.json +0 -0
  39. {uipath-2.1.3 → uipath-2.1.5}/.vscode/settings.json +0 -0
  40. {uipath-2.1.3 → uipath-2.1.5}/CONTRIBUTING.md +0 -0
  41. {uipath-2.1.3 → uipath-2.1.5}/LICENSE +0 -0
  42. {uipath-2.1.3 → uipath-2.1.5}/README.md +0 -0
  43. {uipath-2.1.3 → uipath-2.1.5}/docs/CONTRIBUTING.md +0 -0
  44. {uipath-2.1.3 → uipath-2.1.5}/docs/FAQ.md +0 -0
  45. {uipath-2.1.3 → uipath-2.1.5}/docs/assets/env-preparation-failed-dark.png +0 -0
  46. {uipath-2.1.3 → uipath-2.1.5}/docs/assets/env-preparation-failed-light.png +0 -0
  47. {uipath-2.1.3 → uipath-2.1.5}/docs/assets/favicon.png +0 -0
  48. {uipath-2.1.3 → uipath-2.1.5}/docs/assets/logo-dark.svg +0 -0
  49. {uipath-2.1.3 → uipath-2.1.5}/docs/assets/logo-light.svg +0 -0
  50. {uipath-2.1.3 → uipath-2.1.5}/docs/cli/index.md +0 -0
  51. {uipath-2.1.3 → uipath-2.1.5}/docs/core/actions.md +0 -0
  52. {uipath-2.1.3 → uipath-2.1.5}/docs/core/assets/cloud_env_var_dark.gif +0 -0
  53. {uipath-2.1.3 → uipath-2.1.5}/docs/core/assets/cloud_env_var_light.gif +0 -0
  54. {uipath-2.1.3 → uipath-2.1.5}/docs/core/assets/cloud_env_var_secret_dark.png +0 -0
  55. {uipath-2.1.3 → uipath-2.1.5}/docs/core/assets/cloud_env_var_secret_light.png +0 -0
  56. {uipath-2.1.3 → uipath-2.1.5}/docs/core/assets/copy_path_dark.png +0 -0
  57. {uipath-2.1.3 → uipath-2.1.5}/docs/core/assets/copy_path_light.png +0 -0
  58. {uipath-2.1.3 → uipath-2.1.5}/docs/core/assets.md +0 -0
  59. {uipath-2.1.3 → uipath-2.1.5}/docs/core/attachments.md +0 -0
  60. {uipath-2.1.3 → uipath-2.1.5}/docs/core/buckets.md +0 -0
  61. {uipath-2.1.3 → uipath-2.1.5}/docs/core/connections.md +0 -0
  62. {uipath-2.1.3 → uipath-2.1.5}/docs/core/context_grounding.md +0 -0
  63. {uipath-2.1.3 → uipath-2.1.5}/docs/core/environment_variables.md +0 -0
  64. {uipath-2.1.3 → uipath-2.1.5}/docs/core/jobs.md +0 -0
  65. {uipath-2.1.3 → uipath-2.1.5}/docs/core/llm_gateway.md +0 -0
  66. {uipath-2.1.3 → uipath-2.1.5}/docs/core/processes.md +0 -0
  67. {uipath-2.1.3 → uipath-2.1.5}/docs/core/queues.md +0 -0
  68. {uipath-2.1.3 → uipath-2.1.5}/docs/core/traced.md +0 -0
  69. {uipath-2.1.3 → uipath-2.1.5}/docs/hooks.py +0 -0
  70. {uipath-2.1.3 → uipath-2.1.5}/docs/index.md +0 -0
  71. {uipath-2.1.3 → uipath-2.1.5}/docs/javascripts/extra.js +0 -0
  72. {uipath-2.1.3 → uipath-2.1.5}/docs/overrides/main.html +0 -0
  73. {uipath-2.1.3 → uipath-2.1.5}/docs/overrides/partials/actions.html +0 -0
  74. {uipath-2.1.3 → uipath-2.1.5}/docs/overrides/partials/logo.html +0 -0
  75. {uipath-2.1.3 → uipath-2.1.5}/docs/release_policy.md +0 -0
  76. {uipath-2.1.3 → uipath-2.1.5}/docs/sample_images/google-ADK-agent/agent-output.png +0 -0
  77. {uipath-2.1.3 → uipath-2.1.5}/docs/stylesheets/extra.css +0 -0
  78. {uipath-2.1.3 → uipath-2.1.5}/justfile +0 -0
  79. {uipath-2.1.3 → uipath-2.1.5}/mkdocs.yml +0 -0
  80. {uipath-2.1.3 → uipath-2.1.5}/py.typed +0 -0
  81. {uipath-2.1.3 → uipath-2.1.5}/samples/google-ADK-agent/.env.example +0 -0
  82. {uipath-2.1.3 → uipath-2.1.5}/samples/google-ADK-agent/README.md +0 -0
  83. {uipath-2.1.3 → uipath-2.1.5}/samples/google-ADK-agent/input.json +0 -0
  84. {uipath-2.1.3 → uipath-2.1.5}/samples/google-ADK-agent/multi_tool_agent/__init__.py +0 -0
  85. {uipath-2.1.3 → uipath-2.1.5}/samples/google-ADK-agent/multi_tool_agent/agent.py +0 -0
  86. {uipath-2.1.3 → uipath-2.1.5}/samples/google-ADK-agent/pyproject.toml +0 -0
  87. {uipath-2.1.3 → uipath-2.1.5}/samples/google-ADK-agent/uv.lock +0 -0
  88. {uipath-2.1.3 → uipath-2.1.5}/scripts/debug_test.py +0 -0
  89. {uipath-2.1.3 → uipath-2.1.5}/scripts/lint_httpx_client.py +0 -0
  90. {uipath-2.1.3 → uipath-2.1.5}/src/uipath/__init__.py +0 -0
  91. {uipath-2.1.3 → uipath-2.1.5}/src/uipath/_cli/README.md +0 -0
  92. {uipath-2.1.3 → uipath-2.1.5}/src/uipath/_cli/_auth/_client_credentials.py +0 -0
  93. {uipath-2.1.3 → uipath-2.1.5}/src/uipath/_cli/_auth/_models.py +0 -0
  94. {uipath-2.1.3 → uipath-2.1.5}/src/uipath/_cli/_auth/_oidc_utils.py +0 -0
  95. {uipath-2.1.3 → uipath-2.1.5}/src/uipath/_cli/_auth/_portal_service.py +0 -0
  96. {uipath-2.1.3 → uipath-2.1.5}/src/uipath/_cli/_auth/_utils.py +0 -0
  97. {uipath-2.1.3 → uipath-2.1.5}/src/uipath/_cli/_auth/localhost.crt +0 -0
  98. {uipath-2.1.3 → uipath-2.1.5}/src/uipath/_cli/_auth/localhost.key +0 -0
  99. {uipath-2.1.3 → uipath-2.1.5}/src/uipath/_cli/_runtime/_contracts.py +0 -0
  100. {uipath-2.1.3 → uipath-2.1.5}/src/uipath/_cli/_runtime/_escalation.py +0 -0
  101. {uipath-2.1.3 → uipath-2.1.5}/src/uipath/_cli/_runtime/_hitl.py +0 -0
  102. {uipath-2.1.3 → uipath-2.1.5}/src/uipath/_cli/_runtime/_logging.py +0 -0
  103. {uipath-2.1.3 → uipath-2.1.5}/src/uipath/_cli/_runtime/_runtime.py +0 -0
  104. {uipath-2.1.3 → uipath-2.1.5}/src/uipath/_cli/_templates/.psmdcp.template +0 -0
  105. {uipath-2.1.3 → uipath-2.1.5}/src/uipath/_cli/_templates/.rels.template +0 -0
  106. {uipath-2.1.3 → uipath-2.1.5}/src/uipath/_cli/_templates/[Content_Types].xml.template +0 -0
  107. {uipath-2.1.3 → uipath-2.1.5}/src/uipath/_cli/_templates/main.py.template +0 -0
  108. {uipath-2.1.3 → uipath-2.1.5}/src/uipath/_cli/_templates/package.nuspec.template +0 -0
  109. {uipath-2.1.3 → uipath-2.1.5}/src/uipath/_cli/_utils/_common.py +0 -0
  110. {uipath-2.1.3 → uipath-2.1.5}/src/uipath/_cli/_utils/_console.py +0 -0
  111. {uipath-2.1.3 → uipath-2.1.5}/src/uipath/_cli/_utils/_debug.py +0 -0
  112. {uipath-2.1.3 → uipath-2.1.5}/src/uipath/_cli/_utils/_folders.py +0 -0
  113. {uipath-2.1.3 → uipath-2.1.5}/src/uipath/_cli/_utils/_input_args.py +0 -0
  114. {uipath-2.1.3 → uipath-2.1.5}/src/uipath/_cli/_utils/_parse_ast.py +0 -0
  115. {uipath-2.1.3 → uipath-2.1.5}/src/uipath/_cli/_utils/_processes.py +0 -0
  116. {uipath-2.1.3 → uipath-2.1.5}/src/uipath/_cli/_utils/_tracing.py +0 -0
  117. {uipath-2.1.3 → uipath-2.1.5}/src/uipath/_cli/cli_deploy.py +0 -0
  118. {uipath-2.1.3 → uipath-2.1.5}/src/uipath/_cli/cli_init.py +0 -0
  119. {uipath-2.1.3 → uipath-2.1.5}/src/uipath/_cli/cli_invoke.py +0 -0
  120. {uipath-2.1.3 → uipath-2.1.5}/src/uipath/_cli/cli_new.py +0 -0
  121. {uipath-2.1.3 → uipath-2.1.5}/src/uipath/_cli/cli_publish.py +0 -0
  122. {uipath-2.1.3 → uipath-2.1.5}/src/uipath/_cli/cli_run.py +0 -0
  123. {uipath-2.1.3 → uipath-2.1.5}/src/uipath/_cli/middlewares.py +0 -0
  124. {uipath-2.1.3 → uipath-2.1.5}/src/uipath/_cli/spinner.py +0 -0
  125. {uipath-2.1.3 → uipath-2.1.5}/src/uipath/_config.py +0 -0
  126. {uipath-2.1.3 → uipath-2.1.5}/src/uipath/_execution_context.py +0 -0
  127. {uipath-2.1.3 → uipath-2.1.5}/src/uipath/_folder_context.py +0 -0
  128. {uipath-2.1.3 → uipath-2.1.5}/src/uipath/_services/__init__.py +0 -0
  129. {uipath-2.1.3 → uipath-2.1.5}/src/uipath/_services/_base_service.py +0 -0
  130. {uipath-2.1.3 → uipath-2.1.5}/src/uipath/_services/actions_service.py +0 -0
  131. {uipath-2.1.3 → uipath-2.1.5}/src/uipath/_services/api_client.py +0 -0
  132. {uipath-2.1.3 → uipath-2.1.5}/src/uipath/_services/assets_service.py +0 -0
  133. {uipath-2.1.3 → uipath-2.1.5}/src/uipath/_services/attachments_service.py +0 -0
  134. {uipath-2.1.3 → uipath-2.1.5}/src/uipath/_services/buckets_service.py +0 -0
  135. {uipath-2.1.3 → uipath-2.1.5}/src/uipath/_services/connections_service.py +0 -0
  136. {uipath-2.1.3 → uipath-2.1.5}/src/uipath/_services/context_grounding_service.py +0 -0
  137. {uipath-2.1.3 → uipath-2.1.5}/src/uipath/_services/folder_service.py +0 -0
  138. {uipath-2.1.3 → uipath-2.1.5}/src/uipath/_services/jobs_service.py +0 -0
  139. {uipath-2.1.3 → uipath-2.1.5}/src/uipath/_services/llm_gateway_service.py +0 -0
  140. {uipath-2.1.3 → uipath-2.1.5}/src/uipath/_services/processes_service.py +0 -0
  141. {uipath-2.1.3 → uipath-2.1.5}/src/uipath/_services/queues_service.py +0 -0
  142. {uipath-2.1.3 → uipath-2.1.5}/src/uipath/_uipath.py +0 -0
  143. {uipath-2.1.3 → uipath-2.1.5}/src/uipath/_utils/__init__.py +0 -0
  144. {uipath-2.1.3 → uipath-2.1.5}/src/uipath/_utils/_endpoint.py +0 -0
  145. {uipath-2.1.3 → uipath-2.1.5}/src/uipath/_utils/_infer_bindings.py +0 -0
  146. {uipath-2.1.3 → uipath-2.1.5}/src/uipath/_utils/_logs.py +0 -0
  147. {uipath-2.1.3 → uipath-2.1.5}/src/uipath/_utils/_read_overwrites.py +0 -0
  148. {uipath-2.1.3 → uipath-2.1.5}/src/uipath/_utils/_request_override.py +0 -0
  149. {uipath-2.1.3 → uipath-2.1.5}/src/uipath/_utils/_request_spec.py +0 -0
  150. {uipath-2.1.3 → uipath-2.1.5}/src/uipath/_utils/_ssl_context.py +0 -0
  151. {uipath-2.1.3 → uipath-2.1.5}/src/uipath/_utils/_url.py +0 -0
  152. {uipath-2.1.3 → uipath-2.1.5}/src/uipath/_utils/_user_agent.py +0 -0
  153. {uipath-2.1.3 → uipath-2.1.5}/src/uipath/_utils/constants.py +0 -0
  154. {uipath-2.1.3 → uipath-2.1.5}/src/uipath/models/__init__.py +0 -0
  155. {uipath-2.1.3 → uipath-2.1.5}/src/uipath/models/action_schema.py +0 -0
  156. {uipath-2.1.3 → uipath-2.1.5}/src/uipath/models/actions.py +0 -0
  157. {uipath-2.1.3 → uipath-2.1.5}/src/uipath/models/assets.py +0 -0
  158. {uipath-2.1.3 → uipath-2.1.5}/src/uipath/models/attachment.py +0 -0
  159. {uipath-2.1.3 → uipath-2.1.5}/src/uipath/models/buckets.py +0 -0
  160. {uipath-2.1.3 → uipath-2.1.5}/src/uipath/models/connections.py +0 -0
  161. {uipath-2.1.3 → uipath-2.1.5}/src/uipath/models/context_grounding.py +0 -0
  162. {uipath-2.1.3 → uipath-2.1.5}/src/uipath/models/context_grounding_index.py +0 -0
  163. {uipath-2.1.3 → uipath-2.1.5}/src/uipath/models/errors.py +0 -0
  164. {uipath-2.1.3 → uipath-2.1.5}/src/uipath/models/exceptions.py +0 -0
  165. {uipath-2.1.3 → uipath-2.1.5}/src/uipath/models/interrupt_models.py +0 -0
  166. {uipath-2.1.3 → uipath-2.1.5}/src/uipath/models/job.py +0 -0
  167. {uipath-2.1.3 → uipath-2.1.5}/src/uipath/models/llm_gateway.py +0 -0
  168. {uipath-2.1.3 → uipath-2.1.5}/src/uipath/models/processes.py +0 -0
  169. {uipath-2.1.3 → uipath-2.1.5}/src/uipath/models/queues.py +0 -0
  170. {uipath-2.1.3 → uipath-2.1.5}/src/uipath/py.typed +0 -0
  171. {uipath-2.1.3 → uipath-2.1.5}/src/uipath/telemetry/__init__.py +0 -0
  172. {uipath-2.1.3 → uipath-2.1.5}/src/uipath/telemetry/_constants.py +0 -0
  173. {uipath-2.1.3 → uipath-2.1.5}/src/uipath/telemetry/_track.py +0 -0
  174. {uipath-2.1.3 → uipath-2.1.5}/src/uipath/tracing/__init__.py +0 -0
  175. {uipath-2.1.3 → uipath-2.1.5}/src/uipath/tracing/_otel_exporters.py +0 -0
  176. {uipath-2.1.3 → uipath-2.1.5}/src/uipath/tracing/_traced.py +0 -0
  177. {uipath-2.1.3 → uipath-2.1.5}/src/uipath/tracing/_utils.py +0 -0
  178. {uipath-2.1.3 → uipath-2.1.5}/src/uipath/utils/__init__.py +0 -0
  179. {uipath-2.1.3 → uipath-2.1.5}/src/uipath/utils/_endpoints_manager.py +0 -0
  180. {uipath-2.1.3 → uipath-2.1.5}/tests/__init__.py +0 -0
  181. {uipath-2.1.3 → uipath-2.1.5}/tests/cli/conftest.py +0 -0
  182. {uipath-2.1.3 → uipath-2.1.5}/tests/cli/mocks/bindings_script.py +0 -0
  183. {uipath-2.1.3 → uipath-2.1.5}/tests/cli/mocks/simple_script.py +0 -0
  184. {uipath-2.1.3 → uipath-2.1.5}/tests/cli/mocks/uipath-mock.json +0 -0
  185. {uipath-2.1.3 → uipath-2.1.5}/tests/cli/mocks/uipath-simple-script-mock.json +0 -0
  186. {uipath-2.1.3 → uipath-2.1.5}/tests/cli/test_hitl.py +0 -0
  187. {uipath-2.1.3 → uipath-2.1.5}/tests/cli/test_init.py +0 -0
  188. {uipath-2.1.3 → uipath-2.1.5}/tests/cli/test_invoke.py +0 -0
  189. {uipath-2.1.3 → uipath-2.1.5}/tests/cli/test_new.py +0 -0
  190. {uipath-2.1.3 → uipath-2.1.5}/tests/cli/test_publish.py +0 -0
  191. {uipath-2.1.3 → uipath-2.1.5}/tests/cli/test_run.py +0 -0
  192. {uipath-2.1.3 → uipath-2.1.5}/tests/cli/test_utils.py +0 -0
  193. {uipath-2.1.3 → uipath-2.1.5}/tests/cli/utils/project_details.py +0 -0
  194. {uipath-2.1.3 → uipath-2.1.5}/tests/cli/utils/uipath_json.py +0 -0
  195. {uipath-2.1.3 → uipath-2.1.5}/tests/conftest.py +0 -0
  196. {uipath-2.1.3 → uipath-2.1.5}/tests/sdk/services/conftest.py +0 -0
  197. {uipath-2.1.3 → uipath-2.1.5}/tests/sdk/services/test_actions_service.py +0 -0
  198. {uipath-2.1.3 → uipath-2.1.5}/tests/sdk/services/test_api_client.py +0 -0
  199. {uipath-2.1.3 → uipath-2.1.5}/tests/sdk/services/test_assets_service.py +0 -0
  200. {uipath-2.1.3 → uipath-2.1.5}/tests/sdk/services/test_attachments_service.py +0 -0
  201. {uipath-2.1.3 → uipath-2.1.5}/tests/sdk/services/test_base_service.py +0 -0
  202. {uipath-2.1.3 → uipath-2.1.5}/tests/sdk/services/test_buckets_service.py +0 -0
  203. {uipath-2.1.3 → uipath-2.1.5}/tests/sdk/services/test_connections_service.py +0 -0
  204. {uipath-2.1.3 → uipath-2.1.5}/tests/sdk/services/test_context_grounding_service.py +0 -0
  205. {uipath-2.1.3 → uipath-2.1.5}/tests/sdk/services/test_folder_service.py +0 -0
  206. {uipath-2.1.3 → uipath-2.1.5}/tests/sdk/services/test_jobs_service.py +0 -0
  207. {uipath-2.1.3 → uipath-2.1.5}/tests/sdk/services/test_llm_integration.py +0 -0
  208. {uipath-2.1.3 → uipath-2.1.5}/tests/sdk/services/test_llm_service.py +0 -0
  209. {uipath-2.1.3 → uipath-2.1.5}/tests/sdk/services/test_processes_service.py +0 -0
  210. {uipath-2.1.3 → uipath-2.1.5}/tests/sdk/services/test_queues_service.py +0 -0
  211. {uipath-2.1.3 → uipath-2.1.5}/tests/sdk/services/test_uipath_llm_integration.py +0 -0
  212. {uipath-2.1.3 → uipath-2.1.5}/tests/sdk/test_bindings_inference.py +0 -0
  213. {uipath-2.1.3 → uipath-2.1.5}/tests/sdk/test_config.py +0 -0
  214. {uipath-2.1.3 → uipath-2.1.5}/tests/sdk/test_overwrites.py +0 -0
  215. {uipath-2.1.3 → uipath-2.1.5}/tests/tracing/test_otel_exporters.py +0 -0
  216. {uipath-2.1.3 → uipath-2.1.5}/tests/tracing/test_span_utils.py +0 -0
  217. {uipath-2.1.3 → uipath-2.1.5}/tests/tracing/test_traced.py +0 -0
  218. {uipath-2.1.3 → uipath-2.1.5}/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
3
+ Version: 2.1.5
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
@@ -176,6 +176,29 @@ This command creates a `uipath.json` file containing the project metadata.
176
176
  [2025-04-11 10:13:58,857][INFO] {'message': 'test'}
177
177
  ```
178
178
 
179
+ /// warning
180
+ Depending on the shell you are using, it may be necessary to escape the input json:
181
+
182
+ /// tab | Bash/ZSH/PowerShell
183
+ ```console
184
+ uipath run main.py '{"message": "test"}'
185
+ ```
186
+ ///
187
+
188
+ /// tab | Windows CMD
189
+ ```console
190
+ uipath run main.py "{""message"": ""test""}"
191
+ ```
192
+ ///
193
+
194
+ /// tab | Windows PowerShell
195
+ ```console
196
+ uipath run main.py '{\"message\":\"test\"}'
197
+ ```
198
+ ///
199
+
200
+ ///
201
+
179
202
  ### Packaging and Publishing
180
203
 
181
204
  Before packaging your project, add your details to the `pyproject.toml` file. Add the following line below the `description` field:
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "uipath"
3
- version = "2.1.3"
3
+ version = "2.1.5"
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"
@@ -10,6 +10,7 @@ from .cli_invoke import invoke as invoke # type: ignore
10
10
  from .cli_new import new as new # type: ignore
11
11
  from .cli_pack import pack as pack # type: ignore
12
12
  from .cli_publish import publish as publish # type: ignore
13
+ from .cli_push import push as push # type: ignore
13
14
  from .cli_run import run as run # type: ignore
14
15
 
15
16
 
@@ -63,3 +64,4 @@ cli.add_command(run)
63
64
  cli.add_command(deploy)
64
65
  cli.add_command(auth)
65
66
  cli.add_command(invoke)
67
+ cli.add_command(push)
@@ -1,10 +1,12 @@
1
+ import asyncio
1
2
  import http.server
2
3
  import json
3
4
  import os
4
5
  import socketserver
6
+ import threading
5
7
  import time
8
+ from typing import Optional
6
9
 
7
- import click
8
10
  from dotenv import load_dotenv
9
11
 
10
12
  from ._oidc_utils import get_auth_config
@@ -117,9 +119,11 @@ class HTTPServer:
117
119
  """
118
120
  self.current_path = os.path.dirname(os.path.abspath(__file__))
119
121
  self.port = port
120
- self.httpd = None
122
+ self.httpd: Optional[socketserver.TCPServer] = None
121
123
  self.token_data = None
122
124
  self.should_shutdown = False
125
+ self.token_received_event: Optional[asyncio.Event] = None
126
+ self.loop = None
123
127
 
124
128
  def token_received_callback(self, token_data):
125
129
  """Callback for when a token is received.
@@ -128,7 +132,8 @@ class HTTPServer:
128
132
  token_data (dict): The received token data.
129
133
  """
130
134
  self.token_data = token_data
131
- self.should_shutdown = True
135
+ if self.token_received_event and self.loop:
136
+ self.loop.call_soon_threadsafe(self.token_received_event.set)
132
137
 
133
138
  def create_server(self, state, code_verifier, domain):
134
139
  """Create and configure the HTTP server.
@@ -149,7 +154,16 @@ class HTTPServer:
149
154
  self.httpd = socketserver.TCPServer(("", self.port), handler)
150
155
  return self.httpd
151
156
 
152
- def start(self, state, code_verifier, domain):
157
+ def _run_server(self):
158
+ """Run server loop in thread."""
159
+ try:
160
+ while not self.should_shutdown and self.httpd:
161
+ self.httpd.handle_request()
162
+ except Exception:
163
+ # Server might be closed, that's fine
164
+ pass
165
+
166
+ async def start(self, state, code_verifier, domain):
153
167
  """Start the server.
154
168
 
155
169
  Args:
@@ -163,12 +177,16 @@ class HTTPServer:
163
177
  if not self.httpd:
164
178
  self.create_server(state, code_verifier, domain)
165
179
 
180
+ self.token_received_event = asyncio.Event()
181
+ self.loop = asyncio.get_event_loop()
182
+
183
+ # Run server in daemon thread
184
+ server_thread = threading.Thread(target=self._run_server, daemon=True)
185
+ server_thread.start()
186
+
166
187
  try:
167
- if self.httpd:
168
- while not self.should_shutdown:
169
- self.httpd.handle_request()
170
- except KeyboardInterrupt:
171
- click.echo("Process interrupted by user")
188
+ # Wait indefinitely for token received event or interrupt
189
+ await self.token_received_event.wait()
172
190
  finally:
173
191
  self.stop()
174
192
 
@@ -176,6 +194,7 @@ class HTTPServer:
176
194
 
177
195
  def stop(self):
178
196
  """Stop the server gracefully and cleanup resources."""
197
+ self.should_shutdown = True
179
198
  if self.httpd:
180
199
  self.httpd.server_close()
181
200
  self.httpd = None
@@ -0,0 +1,6 @@
1
+ {
2
+ "client_id": "36dea5b8-e8bb-423d-8e7b-c808df8f1c00",
3
+ "redirect_uri": "http://localhost:__PY_REPLACE_PORT__/oidc/login",
4
+ "scope": "offline_access OrchestratorApiUserAccess StudioWebBackend IdentityServerApi ConnectionService DataService DocumentUnderstanding EnterpriseContextService Directory JamJamApi LLMGateway LLMOps OMS RCS.FolderAuthorization TM.Projects TM.TestCases TM.Requirements TM.TestSets",
5
+ "port": 8104
6
+ }