uipath 2.0.65__tar.gz → 2.0.66__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.

Files changed (196) hide show
  1. uipath-2.0.66/.vscode/launch.json +14 -0
  2. {uipath-2.0.65 → uipath-2.0.66}/PKG-INFO +1 -1
  3. {uipath-2.0.65 → uipath-2.0.66}/docs/cli/index.md +22 -1
  4. {uipath-2.0.65 → uipath-2.0.66}/pyproject.toml +1 -1
  5. uipath-2.0.66/src/uipath/_cli/_utils/_debug.py +52 -0
  6. {uipath-2.0.65 → uipath-2.0.66}/src/uipath/_cli/cli_run.py +32 -3
  7. {uipath-2.0.65 → uipath-2.0.66}/uv.lock +1 -1
  8. {uipath-2.0.65 → uipath-2.0.66}/.cursorrules +0 -0
  9. {uipath-2.0.65 → uipath-2.0.66}/.editorconfig +0 -0
  10. {uipath-2.0.65 → uipath-2.0.66}/.gitattributes +0 -0
  11. {uipath-2.0.65 → uipath-2.0.66}/.github/workflows/cd.yml +0 -0
  12. {uipath-2.0.65 → uipath-2.0.66}/.github/workflows/ci.yml +0 -0
  13. {uipath-2.0.65 → uipath-2.0.66}/.github/workflows/commitlint.yml +0 -0
  14. {uipath-2.0.65 → uipath-2.0.66}/.github/workflows/lint.yml +0 -0
  15. {uipath-2.0.65 → uipath-2.0.66}/.github/workflows/publish-dev.yml +0 -0
  16. {uipath-2.0.65 → uipath-2.0.66}/.github/workflows/publish-docs.yml +0 -0
  17. {uipath-2.0.65 → uipath-2.0.66}/.github/workflows/slack.yml +0 -0
  18. {uipath-2.0.65 → uipath-2.0.66}/.github/workflows/test.yml +0 -0
  19. {uipath-2.0.65 → uipath-2.0.66}/.gitignore +0 -0
  20. {uipath-2.0.65 → uipath-2.0.66}/.pre-commit-config.yaml +0 -0
  21. {uipath-2.0.65 → uipath-2.0.66}/.python-version +0 -0
  22. {uipath-2.0.65 → uipath-2.0.66}/.vscode/extensions.json +0 -0
  23. {uipath-2.0.65 → uipath-2.0.66}/.vscode/settings.json +0 -0
  24. {uipath-2.0.65 → uipath-2.0.66}/CONTRIBUTING.md +0 -0
  25. {uipath-2.0.65 → uipath-2.0.66}/LICENSE +0 -0
  26. {uipath-2.0.65 → uipath-2.0.66}/README.md +0 -0
  27. {uipath-2.0.65 → uipath-2.0.66}/docs/CONTRIBUTING.md +0 -0
  28. {uipath-2.0.65 → uipath-2.0.66}/docs/FAQ.md +0 -0
  29. {uipath-2.0.65 → uipath-2.0.66}/docs/assets/env-preparation-failed-dark.png +0 -0
  30. {uipath-2.0.65 → uipath-2.0.66}/docs/assets/env-preparation-failed-light.png +0 -0
  31. {uipath-2.0.65 → uipath-2.0.66}/docs/assets/favicon.png +0 -0
  32. {uipath-2.0.65 → uipath-2.0.66}/docs/assets/logo-dark.svg +0 -0
  33. {uipath-2.0.65 → uipath-2.0.66}/docs/assets/logo-light.svg +0 -0
  34. {uipath-2.0.65 → uipath-2.0.66}/docs/core/actions.md +0 -0
  35. {uipath-2.0.65 → uipath-2.0.66}/docs/core/assets/cloud_env_var_dark.gif +0 -0
  36. {uipath-2.0.65 → uipath-2.0.66}/docs/core/assets/cloud_env_var_light.gif +0 -0
  37. {uipath-2.0.65 → uipath-2.0.66}/docs/core/assets/cloud_env_var_secret_dark.png +0 -0
  38. {uipath-2.0.65 → uipath-2.0.66}/docs/core/assets/cloud_env_var_secret_light.png +0 -0
  39. {uipath-2.0.65 → uipath-2.0.66}/docs/core/assets/copy_path_dark.png +0 -0
  40. {uipath-2.0.65 → uipath-2.0.66}/docs/core/assets/copy_path_light.png +0 -0
  41. {uipath-2.0.65 → uipath-2.0.66}/docs/core/assets.md +0 -0
  42. {uipath-2.0.65 → uipath-2.0.66}/docs/core/attachments.md +0 -0
  43. {uipath-2.0.65 → uipath-2.0.66}/docs/core/buckets.md +0 -0
  44. {uipath-2.0.65 → uipath-2.0.66}/docs/core/connections.md +0 -0
  45. {uipath-2.0.65 → uipath-2.0.66}/docs/core/context_grounding.md +0 -0
  46. {uipath-2.0.65 → uipath-2.0.66}/docs/core/environment_variables.md +0 -0
  47. {uipath-2.0.65 → uipath-2.0.66}/docs/core/getting_started.md +0 -0
  48. {uipath-2.0.65 → uipath-2.0.66}/docs/core/jobs.md +0 -0
  49. {uipath-2.0.65 → uipath-2.0.66}/docs/core/processes.md +0 -0
  50. {uipath-2.0.65 → uipath-2.0.66}/docs/core/queues.md +0 -0
  51. {uipath-2.0.65 → uipath-2.0.66}/docs/core/traced.md +0 -0
  52. {uipath-2.0.65 → uipath-2.0.66}/docs/hooks.py +0 -0
  53. {uipath-2.0.65 → uipath-2.0.66}/docs/javascripts/extra.js +0 -0
  54. {uipath-2.0.65 → uipath-2.0.66}/docs/langchain/chat_models.md +0 -0
  55. {uipath-2.0.65 → uipath-2.0.66}/docs/langchain/context_grounding.md +0 -0
  56. {uipath-2.0.65 → uipath-2.0.66}/docs/langchain/human_in_the_loop.md +0 -0
  57. {uipath-2.0.65 → uipath-2.0.66}/docs/overrides/main.html +0 -0
  58. {uipath-2.0.65 → uipath-2.0.66}/docs/overrides/partials/actions.html +0 -0
  59. {uipath-2.0.65 → uipath-2.0.66}/docs/overrides/partials/logo.html +0 -0
  60. {uipath-2.0.65 → uipath-2.0.66}/docs/release_policy.md +0 -0
  61. {uipath-2.0.65 → uipath-2.0.66}/docs/stylesheets/extra.css +0 -0
  62. {uipath-2.0.65 → uipath-2.0.66}/justfile +0 -0
  63. {uipath-2.0.65 → uipath-2.0.66}/mkdocs.yml +0 -0
  64. {uipath-2.0.65 → uipath-2.0.66}/py.typed +0 -0
  65. {uipath-2.0.65 → uipath-2.0.66}/src/uipath/__init__.py +0 -0
  66. {uipath-2.0.65 → uipath-2.0.66}/src/uipath/_cli/README.md +0 -0
  67. {uipath-2.0.65 → uipath-2.0.66}/src/uipath/_cli/__init__.py +0 -0
  68. {uipath-2.0.65 → uipath-2.0.66}/src/uipath/_cli/_auth/_auth_server.py +0 -0
  69. {uipath-2.0.65 → uipath-2.0.66}/src/uipath/_cli/_auth/_models.py +0 -0
  70. {uipath-2.0.65 → uipath-2.0.66}/src/uipath/_cli/_auth/_oidc_utils.py +0 -0
  71. {uipath-2.0.65 → uipath-2.0.66}/src/uipath/_cli/_auth/_portal_service.py +0 -0
  72. {uipath-2.0.65 → uipath-2.0.66}/src/uipath/_cli/_auth/_utils.py +0 -0
  73. {uipath-2.0.65 → uipath-2.0.66}/src/uipath/_cli/_auth/auth_config.json +0 -0
  74. {uipath-2.0.65 → uipath-2.0.66}/src/uipath/_cli/_auth/index.html +0 -0
  75. {uipath-2.0.65 → uipath-2.0.66}/src/uipath/_cli/_auth/localhost.crt +0 -0
  76. {uipath-2.0.65 → uipath-2.0.66}/src/uipath/_cli/_auth/localhost.key +0 -0
  77. {uipath-2.0.65 → uipath-2.0.66}/src/uipath/_cli/_runtime/_contracts.py +0 -0
  78. {uipath-2.0.65 → uipath-2.0.66}/src/uipath/_cli/_runtime/_escalation.py +0 -0
  79. {uipath-2.0.65 → uipath-2.0.66}/src/uipath/_cli/_runtime/_hitl.py +0 -0
  80. {uipath-2.0.65 → uipath-2.0.66}/src/uipath/_cli/_runtime/_logging.py +0 -0
  81. {uipath-2.0.65 → uipath-2.0.66}/src/uipath/_cli/_runtime/_runtime.py +0 -0
  82. {uipath-2.0.65 → uipath-2.0.66}/src/uipath/_cli/_templates/.psmdcp.template +0 -0
  83. {uipath-2.0.65 → uipath-2.0.66}/src/uipath/_cli/_templates/.rels.template +0 -0
  84. {uipath-2.0.65 → uipath-2.0.66}/src/uipath/_cli/_templates/[Content_Types].xml.template +0 -0
  85. {uipath-2.0.65 → uipath-2.0.66}/src/uipath/_cli/_templates/main.py.template +0 -0
  86. {uipath-2.0.65 → uipath-2.0.66}/src/uipath/_cli/_templates/package.nuspec.template +0 -0
  87. {uipath-2.0.65 → uipath-2.0.66}/src/uipath/_cli/_utils/_common.py +0 -0
  88. {uipath-2.0.65 → uipath-2.0.66}/src/uipath/_cli/_utils/_console.py +0 -0
  89. {uipath-2.0.65 → uipath-2.0.66}/src/uipath/_cli/_utils/_constants.py +0 -0
  90. {uipath-2.0.65 → uipath-2.0.66}/src/uipath/_cli/_utils/_folders.py +0 -0
  91. {uipath-2.0.65 → uipath-2.0.66}/src/uipath/_cli/_utils/_input_args.py +0 -0
  92. {uipath-2.0.65 → uipath-2.0.66}/src/uipath/_cli/_utils/_parse_ast.py +0 -0
  93. {uipath-2.0.65 → uipath-2.0.66}/src/uipath/_cli/_utils/_processes.py +0 -0
  94. {uipath-2.0.65 → uipath-2.0.66}/src/uipath/_cli/_utils/_tracing.py +0 -0
  95. {uipath-2.0.65 → uipath-2.0.66}/src/uipath/_cli/cli_auth.py +0 -0
  96. {uipath-2.0.65 → uipath-2.0.66}/src/uipath/_cli/cli_deploy.py +0 -0
  97. {uipath-2.0.65 → uipath-2.0.66}/src/uipath/_cli/cli_init.py +0 -0
  98. {uipath-2.0.65 → uipath-2.0.66}/src/uipath/_cli/cli_invoke.py +0 -0
  99. {uipath-2.0.65 → uipath-2.0.66}/src/uipath/_cli/cli_new.py +0 -0
  100. {uipath-2.0.65 → uipath-2.0.66}/src/uipath/_cli/cli_pack.py +0 -0
  101. {uipath-2.0.65 → uipath-2.0.66}/src/uipath/_cli/cli_publish.py +0 -0
  102. {uipath-2.0.65 → uipath-2.0.66}/src/uipath/_cli/middlewares.py +0 -0
  103. {uipath-2.0.65 → uipath-2.0.66}/src/uipath/_cli/spinner.py +0 -0
  104. {uipath-2.0.65 → uipath-2.0.66}/src/uipath/_config.py +0 -0
  105. {uipath-2.0.65 → uipath-2.0.66}/src/uipath/_execution_context.py +0 -0
  106. {uipath-2.0.65 → uipath-2.0.66}/src/uipath/_folder_context.py +0 -0
  107. {uipath-2.0.65 → uipath-2.0.66}/src/uipath/_services/__init__.py +0 -0
  108. {uipath-2.0.65 → uipath-2.0.66}/src/uipath/_services/_base_service.py +0 -0
  109. {uipath-2.0.65 → uipath-2.0.66}/src/uipath/_services/actions_service.py +0 -0
  110. {uipath-2.0.65 → uipath-2.0.66}/src/uipath/_services/api_client.py +0 -0
  111. {uipath-2.0.65 → uipath-2.0.66}/src/uipath/_services/assets_service.py +0 -0
  112. {uipath-2.0.65 → uipath-2.0.66}/src/uipath/_services/attachments_service.py +0 -0
  113. {uipath-2.0.65 → uipath-2.0.66}/src/uipath/_services/buckets_service.py +0 -0
  114. {uipath-2.0.65 → uipath-2.0.66}/src/uipath/_services/connections_service.py +0 -0
  115. {uipath-2.0.65 → uipath-2.0.66}/src/uipath/_services/context_grounding_service.py +0 -0
  116. {uipath-2.0.65 → uipath-2.0.66}/src/uipath/_services/folder_service.py +0 -0
  117. {uipath-2.0.65 → uipath-2.0.66}/src/uipath/_services/jobs_service.py +0 -0
  118. {uipath-2.0.65 → uipath-2.0.66}/src/uipath/_services/llm_gateway_service.py +0 -0
  119. {uipath-2.0.65 → uipath-2.0.66}/src/uipath/_services/processes_service.py +0 -0
  120. {uipath-2.0.65 → uipath-2.0.66}/src/uipath/_services/queues_service.py +0 -0
  121. {uipath-2.0.65 → uipath-2.0.66}/src/uipath/_uipath.py +0 -0
  122. {uipath-2.0.65 → uipath-2.0.66}/src/uipath/_utils/__init__.py +0 -0
  123. {uipath-2.0.65 → uipath-2.0.66}/src/uipath/_utils/_endpoint.py +0 -0
  124. {uipath-2.0.65 → uipath-2.0.66}/src/uipath/_utils/_infer_bindings.py +0 -0
  125. {uipath-2.0.65 → uipath-2.0.66}/src/uipath/_utils/_logs.py +0 -0
  126. {uipath-2.0.65 → uipath-2.0.66}/src/uipath/_utils/_read_overwrites.py +0 -0
  127. {uipath-2.0.65 → uipath-2.0.66}/src/uipath/_utils/_request_override.py +0 -0
  128. {uipath-2.0.65 → uipath-2.0.66}/src/uipath/_utils/_request_spec.py +0 -0
  129. {uipath-2.0.65 → uipath-2.0.66}/src/uipath/_utils/_url.py +0 -0
  130. {uipath-2.0.65 → uipath-2.0.66}/src/uipath/_utils/_user_agent.py +0 -0
  131. {uipath-2.0.65 → uipath-2.0.66}/src/uipath/_utils/constants.py +0 -0
  132. {uipath-2.0.65 → uipath-2.0.66}/src/uipath/models/__init__.py +0 -0
  133. {uipath-2.0.65 → uipath-2.0.66}/src/uipath/models/action_schema.py +0 -0
  134. {uipath-2.0.65 → uipath-2.0.66}/src/uipath/models/actions.py +0 -0
  135. {uipath-2.0.65 → uipath-2.0.66}/src/uipath/models/assets.py +0 -0
  136. {uipath-2.0.65 → uipath-2.0.66}/src/uipath/models/attachment.py +0 -0
  137. {uipath-2.0.65 → uipath-2.0.66}/src/uipath/models/buckets.py +0 -0
  138. {uipath-2.0.65 → uipath-2.0.66}/src/uipath/models/connections.py +0 -0
  139. {uipath-2.0.65 → uipath-2.0.66}/src/uipath/models/context_grounding.py +0 -0
  140. {uipath-2.0.65 → uipath-2.0.66}/src/uipath/models/context_grounding_index.py +0 -0
  141. {uipath-2.0.65 → uipath-2.0.66}/src/uipath/models/errors.py +0 -0
  142. {uipath-2.0.65 → uipath-2.0.66}/src/uipath/models/exceptions.py +0 -0
  143. {uipath-2.0.65 → uipath-2.0.66}/src/uipath/models/interrupt_models.py +0 -0
  144. {uipath-2.0.65 → uipath-2.0.66}/src/uipath/models/job.py +0 -0
  145. {uipath-2.0.65 → uipath-2.0.66}/src/uipath/models/llm_gateway.py +0 -0
  146. {uipath-2.0.65 → uipath-2.0.66}/src/uipath/models/processes.py +0 -0
  147. {uipath-2.0.65 → uipath-2.0.66}/src/uipath/models/queues.py +0 -0
  148. {uipath-2.0.65 → uipath-2.0.66}/src/uipath/py.typed +0 -0
  149. {uipath-2.0.65 → uipath-2.0.66}/src/uipath/telemetry/__init__.py +0 -0
  150. {uipath-2.0.65 → uipath-2.0.66}/src/uipath/telemetry/_constants.py +0 -0
  151. {uipath-2.0.65 → uipath-2.0.66}/src/uipath/telemetry/_track.py +0 -0
  152. {uipath-2.0.65 → uipath-2.0.66}/src/uipath/tracing/__init__.py +0 -0
  153. {uipath-2.0.65 → uipath-2.0.66}/src/uipath/tracing/_otel_exporters.py +0 -0
  154. {uipath-2.0.65 → uipath-2.0.66}/src/uipath/tracing/_traced.py +0 -0
  155. {uipath-2.0.65 → uipath-2.0.66}/src/uipath/tracing/_utils.py +0 -0
  156. {uipath-2.0.65 → uipath-2.0.66}/tests/__init__.py +0 -0
  157. {uipath-2.0.65 → uipath-2.0.66}/tests/cli/conftest.py +0 -0
  158. {uipath-2.0.65 → uipath-2.0.66}/tests/cli/mocks/bindings_script.py +0 -0
  159. {uipath-2.0.65 → uipath-2.0.66}/tests/cli/mocks/pyproject.toml +0 -0
  160. {uipath-2.0.65 → uipath-2.0.66}/tests/cli/mocks/simple_script.py +0 -0
  161. {uipath-2.0.65 → uipath-2.0.66}/tests/cli/mocks/uipath-mock.json +0 -0
  162. {uipath-2.0.65 → uipath-2.0.66}/tests/cli/mocks/uipath-simple-script-mock.json +0 -0
  163. {uipath-2.0.65 → uipath-2.0.66}/tests/cli/test_hitl.py +0 -0
  164. {uipath-2.0.65 → uipath-2.0.66}/tests/cli/test_init.py +0 -0
  165. {uipath-2.0.65 → uipath-2.0.66}/tests/cli/test_invoke.py +0 -0
  166. {uipath-2.0.65 → uipath-2.0.66}/tests/cli/test_new.py +0 -0
  167. {uipath-2.0.65 → uipath-2.0.66}/tests/cli/test_pack.py +0 -0
  168. {uipath-2.0.65 → uipath-2.0.66}/tests/cli/test_publish.py +0 -0
  169. {uipath-2.0.65 → uipath-2.0.66}/tests/cli/test_run.py +0 -0
  170. {uipath-2.0.65 → uipath-2.0.66}/tests/cli/test_utils.py +0 -0
  171. {uipath-2.0.65 → uipath-2.0.66}/tests/cli/utils/project_details.py +0 -0
  172. {uipath-2.0.65 → uipath-2.0.66}/tests/cli/utils/uipath_json.py +0 -0
  173. {uipath-2.0.65 → uipath-2.0.66}/tests/conftest.py +0 -0
  174. {uipath-2.0.65 → uipath-2.0.66}/tests/sdk/services/conftest.py +0 -0
  175. {uipath-2.0.65 → uipath-2.0.66}/tests/sdk/services/test_actions_service.py +0 -0
  176. {uipath-2.0.65 → uipath-2.0.66}/tests/sdk/services/test_api_client.py +0 -0
  177. {uipath-2.0.65 → uipath-2.0.66}/tests/sdk/services/test_assets_service.py +0 -0
  178. {uipath-2.0.65 → uipath-2.0.66}/tests/sdk/services/test_attachments_service.py +0 -0
  179. {uipath-2.0.65 → uipath-2.0.66}/tests/sdk/services/test_base_service.py +0 -0
  180. {uipath-2.0.65 → uipath-2.0.66}/tests/sdk/services/test_buckets_service.py +0 -0
  181. {uipath-2.0.65 → uipath-2.0.66}/tests/sdk/services/test_connections_service.py +0 -0
  182. {uipath-2.0.65 → uipath-2.0.66}/tests/sdk/services/test_context_grounding_service.py +0 -0
  183. {uipath-2.0.65 → uipath-2.0.66}/tests/sdk/services/test_folder_service.py +0 -0
  184. {uipath-2.0.65 → uipath-2.0.66}/tests/sdk/services/test_jobs_service.py +0 -0
  185. {uipath-2.0.65 → uipath-2.0.66}/tests/sdk/services/test_llm_integration.py +0 -0
  186. {uipath-2.0.65 → uipath-2.0.66}/tests/sdk/services/test_llm_service.py +0 -0
  187. {uipath-2.0.65 → uipath-2.0.66}/tests/sdk/services/test_processes_service.py +0 -0
  188. {uipath-2.0.65 → uipath-2.0.66}/tests/sdk/services/test_queues_service.py +0 -0
  189. {uipath-2.0.65 → uipath-2.0.66}/tests/sdk/services/test_uipath_llm_integration.py +0 -0
  190. {uipath-2.0.65 → uipath-2.0.66}/tests/sdk/test_bindings_inference.py +0 -0
  191. {uipath-2.0.65 → uipath-2.0.66}/tests/sdk/test_config.py +0 -0
  192. {uipath-2.0.65 → uipath-2.0.66}/tests/sdk/test_overwrites.py +0 -0
  193. {uipath-2.0.65 → uipath-2.0.66}/tests/tracing/test_otel_exporters.py +0 -0
  194. {uipath-2.0.65 → uipath-2.0.66}/tests/tracing/test_span_utils.py +0 -0
  195. {uipath-2.0.65 → uipath-2.0.66}/tests/tracing/test_traced.py +0 -0
  196. {uipath-2.0.65 → uipath-2.0.66}/tests/tracing/test_tracing_manager.py +0 -0
@@ -0,0 +1,14 @@
1
+ {
2
+ "version": "0.2.0",
3
+ "configurations": [
4
+ {
5
+ "name": "Python Debugger: Attach",
6
+ "type": "debugpy",
7
+ "request": "attach",
8
+ "connect": {
9
+ "host": "localhost",
10
+ "port": 5678
11
+ }
12
+ }
13
+ ]
14
+ }
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: uipath
3
- Version: 2.0.65
3
+ Version: 2.0.66
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
@@ -46,6 +46,27 @@ The `uipath init` command executes your `main.py` file to analyze its structure
46
46
  :depth: 1
47
47
  :style: table
48
48
 
49
+ /// tip
50
+ For step-by-step debugging with breakpoints and variable inspection (supported from `2.0.66` onward):
51
+ ```console
52
+ # Install debugpy package
53
+ [uv] pip install debugpy
54
+ # Run agent with debugging enabled
55
+ uipath run [ENTRYPOINT] [INPUT] --debug
56
+ ```
57
+ For vscode: add the [debug configuration](https://github.com/UiPath/uipath-python/blob/main/.vscode/launch.json) in your .vscode/launch.json file.
58
+ Place breakpoints in your code where needed.
59
+ Use the shortcut `F5`, or navigate to Run -> Start Debugging -> Python Debugger: Attach
60
+
61
+ Upon starting the debugging process, one should see the following logs in terminal:
62
+ ```console
63
+ 🐛 Debug server started on port 5678
64
+ 📌 Waiting for debugger to attach...
65
+ - VS Code: Run -> Start Debugging -> Python Debugger: Attach
66
+ ✓ Debugger attached successfully!
67
+ ```
68
+ ///
69
+
49
70
  /// warning
50
71
  Depending on the shell you are using, it may be necessary to escape the input json:
51
72
 
@@ -162,4 +183,4 @@ Selected feed: Orchestrator Tenant Processes Feed
162
183
  ⠴ Starting job ...
163
184
  ✨ Job started successfully!
164
185
  🔗 Monitor your job here: [LINK]
165
- ```
186
+ ```
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "uipath"
3
- version = "2.0.65"
3
+ version = "2.0.66"
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"
@@ -0,0 +1,52 @@
1
+ """Debug utilities for UiPath CLI."""
2
+
3
+ import os
4
+
5
+ from ._console import ConsoleLogger
6
+
7
+ console = ConsoleLogger()
8
+
9
+
10
+ def setup_debugging(debug: bool, debug_port: int = 5678) -> bool:
11
+ """Setup debugging with debugpy if requested.
12
+
13
+ Args:
14
+ debug: Whether to enable debugging
15
+ debug_port: Port for the debug server (default: 5678)
16
+
17
+ Returns:
18
+ bool: True if debugging was setup successfully or not requested, False on error
19
+ """
20
+ if not debug:
21
+ return True
22
+
23
+ # Set environment variables to improve debugging
24
+ os.environ["PYDEVD_DISABLE_FILE_VALIDATION"] = "1"
25
+ os.environ["PYDEVD_USE_FRAME_EVAL"] = "NO"
26
+
27
+ # Try to import debugpy, log warning if not available
28
+ try:
29
+ import debugpy # type: ignore[import-not-found]
30
+ except ImportError:
31
+ console.warning(
32
+ "debugpy not found, please install it and retry: '[uv] pip install debugpy'"
33
+ )
34
+ return False
35
+
36
+ # Configure debugpy for better breakpoint handling
37
+ try:
38
+ # Clear any existing listeners
39
+ debugpy.configure(subProcess=False)
40
+
41
+ debugpy.listen(debug_port)
42
+ console.info(f"🐛 Debug server started on port {debug_port}")
43
+ console.info("📌 Waiting for debugger to attach...")
44
+ console.info(" - VS Code: Run -> Start Debugging -> Python: Remote Attach")
45
+
46
+ debugpy.wait_for_client()
47
+ console.success("Debugger attached successfully!")
48
+
49
+ return True
50
+ except Exception as e:
51
+ console.error(f"Failed to start debug server on port {debug_port}: {str(e)}")
52
+ return False
@@ -9,6 +9,8 @@ from uuid import uuid4
9
9
  import click
10
10
  from dotenv import load_dotenv
11
11
 
12
+ from uipath._cli._utils._debug import setup_debugging
13
+
12
14
  from .._utils.constants import (
13
15
  ENV_JOB_ID,
14
16
  )
@@ -27,7 +29,9 @@ load_dotenv(override=True)
27
29
 
28
30
 
29
31
  def python_run_middleware(
30
- entrypoint: Optional[str], input: Optional[str], resume: bool
32
+ entrypoint: Optional[str],
33
+ input: Optional[str],
34
+ resume: bool,
31
35
  ) -> MiddlewareResult:
32
36
  """Middleware to handle Python script execution.
33
37
 
@@ -35,6 +39,8 @@ def python_run_middleware(
35
39
  entrypoint: Path to the Python script to execute
36
40
  input: JSON string with input data
37
41
  resume: Flag indicating if this is a resume execution
42
+ debug: Enable debugging with debugpy
43
+ debug_port: Port for debug server (default: 5678)
38
44
 
39
45
  Returns:
40
46
  MiddlewareResult with execution status and messages
@@ -112,9 +118,25 @@ Usage: `uipath run <entrypoint_path> <input_arguments> [-f <input_json_file_path
112
118
  type=click.Path(exists=True),
113
119
  help="File path for the .json input",
114
120
  )
121
+ @click.option(
122
+ "--debug",
123
+ is_flag=True,
124
+ help="Enable debugging with debugpy. The process will wait for a debugger to attach.",
125
+ )
126
+ @click.option(
127
+ "--debug-port",
128
+ type=int,
129
+ default=5678,
130
+ help="Port for the debug server (default: 5678)",
131
+ )
115
132
  @track(when=lambda *_a, **_kw: env.get(ENV_JOB_ID) is None)
116
133
  def run(
117
- entrypoint: Optional[str], input: Optional[str], resume: bool, file: Optional[str]
134
+ entrypoint: Optional[str],
135
+ input: Optional[str],
136
+ resume: bool,
137
+ file: Optional[str],
138
+ debug: bool,
139
+ debug_port: int,
118
140
  ) -> None:
119
141
  """Execute the project."""
120
142
  if file:
@@ -123,12 +145,19 @@ def run(
123
145
  console.error("Input file extension must be '.json'.")
124
146
  with open(file) as f:
125
147
  input = f.read()
148
+ # Setup debugging if requested
149
+
150
+ if not setup_debugging(debug, debug_port):
151
+ console.error(f"Failed to start debug server on port {debug_port}")
152
+
126
153
  # Process through middleware chain
127
154
  result = Middlewares.next("run", entrypoint, input, resume)
128
155
 
129
156
  if result.should_continue:
130
157
  result = python_run_middleware(
131
- entrypoint=entrypoint, input=input, resume=resume
158
+ entrypoint=entrypoint,
159
+ input=input,
160
+ resume=resume,
132
161
  )
133
162
 
134
163
  # Handle result from middleware
@@ -3111,7 +3111,7 @@ wheels = [
3111
3111
 
3112
3112
  [[package]]
3113
3113
  name = "uipath"
3114
- version = "2.0.65"
3114
+ version = "2.0.66"
3115
3115
  source = { editable = "." }
3116
3116
  dependencies = [
3117
3117
  { name = "azure-monitor-opentelemetry" },
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