uipath 2.1.49__tar.gz → 2.1.50__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {uipath-2.1.49 → uipath-2.1.50}/PKG-INFO +1 -1
- {uipath-2.1.49 → uipath-2.1.50}/pyproject.toml +1 -1
- {uipath-2.1.49 → uipath-2.1.50}/src/uipath/_services/__init__.py +2 -0
- uipath-2.1.50/src/uipath/_services/entities_service.py +383 -0
- {uipath-2.1.49 → uipath-2.1.50}/src/uipath/_uipath.py +5 -0
- uipath-2.1.50/src/uipath/models/entities.py +286 -0
- uipath-2.1.50/tests/sdk/services/test_entities_service.py +263 -0
- {uipath-2.1.49 → uipath-2.1.50}/uv.lock +1 -1
- {uipath-2.1.49 → uipath-2.1.50}/.cursorrules +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/.editorconfig +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/.gitattributes +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/.github/workflows/cd.yml +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/.github/workflows/ci.yml +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/.github/workflows/commitlint.yml +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/.github/workflows/lint.yml +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/.github/workflows/publish-dev.yml +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/.github/workflows/publish-docs.yml +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/.github/workflows/slack.yml +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/.github/workflows/test.yml +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/.gitignore +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/.pre-commit-config.yaml +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/.python-version +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/.vscode/extensions.json +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/.vscode/launch.json +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/.vscode/settings.json +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/CONTRIBUTING.md +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/LICENSE +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/README.md +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/docs/CONTRIBUTING.md +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/docs/FAQ.md +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/docs/assets/env-preparation-failed-dark.png +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/docs/assets/env-preparation-failed-light.png +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/docs/assets/favicon.png +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/docs/assets/logo-dark.svg +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/docs/assets/logo-light.svg +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/docs/cli/index.md +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/docs/core/actions.md +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/docs/core/assets/cloud_env_var_dark.gif +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/docs/core/assets/cloud_env_var_light.gif +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/docs/core/assets/cloud_env_var_secret_dark.png +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/docs/core/assets/cloud_env_var_secret_light.png +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/docs/core/assets/copy_path_dark.png +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/docs/core/assets/copy_path_light.png +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/docs/core/assets.md +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/docs/core/attachments.md +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/docs/core/buckets.md +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/docs/core/connections.md +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/docs/core/context_grounding.md +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/docs/core/environment_variables.md +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/docs/core/getting_started.md +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/docs/core/jobs.md +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/docs/core/llm_gateway.md +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/docs/core/processes.md +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/docs/core/queues.md +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/docs/core/traced.md +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/docs/hooks.py +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/docs/index.md +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/docs/javascripts/extra.js +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/docs/overrides/main.html +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/docs/overrides/partials/actions.html +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/docs/overrides/partials/logo.html +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/docs/release_policy.md +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/docs/sample_images/google-ADK-agent/agent-output.png +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/docs/stylesheets/extra.css +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/justfile +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/mkdocs.yml +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/py.typed +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/samples/calculator/README.md +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/samples/calculator/main.py +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/samples/calculator/pyproject.toml +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/samples/event-trigger/.python-version +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/samples/event-trigger/README.md +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/samples/event-trigger/main.py +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/samples/event-trigger/pyproject.toml +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/samples/google-ADK-agent/.env.example +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/samples/google-ADK-agent/README.md +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/samples/google-ADK-agent/input.json +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/samples/google-ADK-agent/multi_tool_agent/__init__.py +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/samples/google-ADK-agent/multi_tool_agent/agent.py +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/samples/google-ADK-agent/pyproject.toml +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/samples/google-ADK-agent/uv.lock +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/scripts/debug_test.py +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/scripts/lint_httpx_client.py +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/src/uipath/__init__.py +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/src/uipath/_cli/README.md +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/src/uipath/_cli/__init__.py +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/src/uipath/_cli/_auth/_auth_server.py +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/src/uipath/_cli/_auth/_auth_service.py +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/src/uipath/_cli/_auth/_client_credentials.py +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/src/uipath/_cli/_auth/_models.py +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/src/uipath/_cli/_auth/_oidc_utils.py +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/src/uipath/_cli/_auth/_portal_service.py +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/src/uipath/_cli/_auth/_url_utils.py +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/src/uipath/_cli/_auth/_utils.py +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/src/uipath/_cli/_auth/auth_config.json +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/src/uipath/_cli/_auth/index.html +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/src/uipath/_cli/_auth/localhost.crt +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/src/uipath/_cli/_auth/localhost.key +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/src/uipath/_cli/_dev/_terminal/__init__.py +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/src/uipath/_cli/_dev/_terminal/_components/_chat.py +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/src/uipath/_cli/_dev/_terminal/_components/_details.py +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/src/uipath/_cli/_dev/_terminal/_components/_history.py +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/src/uipath/_cli/_dev/_terminal/_components/_json_input.py +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/src/uipath/_cli/_dev/_terminal/_components/_new.py +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/src/uipath/_cli/_dev/_terminal/_models/_execution.py +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/src/uipath/_cli/_dev/_terminal/_models/_messages.py +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/src/uipath/_cli/_dev/_terminal/_styles/terminal.tcss +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/src/uipath/_cli/_dev/_terminal/_utils/_chat.py +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/src/uipath/_cli/_dev/_terminal/_utils/_exporter.py +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/src/uipath/_cli/_dev/_terminal/_utils/_logger.py +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/src/uipath/_cli/_evals/_evaluators/__init__.py +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/src/uipath/_cli/_evals/_evaluators/_deterministic_evaluator_base.py +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/src/uipath/_cli/_evals/_evaluators/_evaluator_base.py +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/src/uipath/_cli/_evals/_evaluators/_evaluator_factory.py +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/src/uipath/_cli/_evals/_evaluators/_exact_match_evaluator.py +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/src/uipath/_cli/_evals/_evaluators/_json_similarity_evaluator.py +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/src/uipath/_cli/_evals/_evaluators/_llm_as_judge_evaluator.py +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/src/uipath/_cli/_evals/_evaluators/_trajectory_evaluator.py +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/src/uipath/_cli/_evals/_models/__init__.py +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/src/uipath/_cli/_evals/_models/_agent_execution_output.py +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/src/uipath/_cli/_evals/_models/_evaluation_set.py +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/src/uipath/_cli/_evals/_models/_evaluators.py +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/src/uipath/_cli/_evals/_runtime.py +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/src/uipath/_cli/_evals/progress_reporter.py +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/src/uipath/_cli/_push/sw_file_handler.py +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/src/uipath/_cli/_runtime/_contracts.py +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/src/uipath/_cli/_runtime/_escalation.py +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/src/uipath/_cli/_runtime/_hitl.py +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/src/uipath/_cli/_runtime/_logging.py +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/src/uipath/_cli/_runtime/_runtime.py +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/src/uipath/_cli/_runtime/_script_executor.py +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/src/uipath/_cli/_templates/.psmdcp.template +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/src/uipath/_cli/_templates/.rels.template +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/src/uipath/_cli/_templates/[Content_Types].xml.template +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/src/uipath/_cli/_templates/main.py.template +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/src/uipath/_cli/_templates/package.nuspec.template +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/src/uipath/_cli/_utils/_common.py +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/src/uipath/_cli/_utils/_console.py +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/src/uipath/_cli/_utils/_constants.py +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/src/uipath/_cli/_utils/_debug.py +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/src/uipath/_cli/_utils/_eval_set.py +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/src/uipath/_cli/_utils/_folders.py +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/src/uipath/_cli/_utils/_input_args.py +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/src/uipath/_cli/_utils/_parse_ast.py +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/src/uipath/_cli/_utils/_processes.py +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/src/uipath/_cli/_utils/_project_files.py +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/src/uipath/_cli/_utils/_studio_project.py +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/src/uipath/_cli/_utils/_tracing.py +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/src/uipath/_cli/_utils/_uv_helpers.py +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/src/uipath/_cli/cli_auth.py +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/src/uipath/_cli/cli_deploy.py +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/src/uipath/_cli/cli_dev.py +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/src/uipath/_cli/cli_eval.py +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/src/uipath/_cli/cli_init.py +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/src/uipath/_cli/cli_invoke.py +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/src/uipath/_cli/cli_new.py +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/src/uipath/_cli/cli_pack.py +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/src/uipath/_cli/cli_publish.py +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/src/uipath/_cli/cli_pull.py +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/src/uipath/_cli/cli_push.py +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/src/uipath/_cli/cli_run.py +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/src/uipath/_cli/middlewares.py +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/src/uipath/_cli/spinner.py +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/src/uipath/_config.py +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/src/uipath/_execution_context.py +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/src/uipath/_folder_context.py +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/src/uipath/_services/_base_service.py +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/src/uipath/_services/actions_service.py +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/src/uipath/_services/api_client.py +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/src/uipath/_services/assets_service.py +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/src/uipath/_services/attachments_service.py +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/src/uipath/_services/buckets_service.py +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/src/uipath/_services/connections_service.py +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/src/uipath/_services/context_grounding_service.py +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/src/uipath/_services/folder_service.py +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/src/uipath/_services/jobs_service.py +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/src/uipath/_services/llm_gateway_service.py +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/src/uipath/_services/processes_service.py +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/src/uipath/_services/queues_service.py +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/src/uipath/_utils/__init__.py +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/src/uipath/_utils/_endpoint.py +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/src/uipath/_utils/_infer_bindings.py +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/src/uipath/_utils/_logs.py +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/src/uipath/_utils/_read_overwrites.py +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/src/uipath/_utils/_request_override.py +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/src/uipath/_utils/_request_spec.py +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/src/uipath/_utils/_ssl_context.py +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/src/uipath/_utils/_url.py +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/src/uipath/_utils/_user_agent.py +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/src/uipath/_utils/constants.py +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/src/uipath/agent/conversation/__init__.py +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/src/uipath/agent/conversation/async_stream.py +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/src/uipath/agent/conversation/citation.py +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/src/uipath/agent/conversation/content.py +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/src/uipath/agent/conversation/conversation.py +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/src/uipath/agent/conversation/event.py +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/src/uipath/agent/conversation/exchange.py +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/src/uipath/agent/conversation/message.py +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/src/uipath/agent/conversation/meta.py +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/src/uipath/agent/conversation/tool.py +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/src/uipath/eval/_helpers/__init__.py +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/src/uipath/eval/_helpers/helpers.py +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/src/uipath/models/__init__.py +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/src/uipath/models/action_schema.py +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/src/uipath/models/actions.py +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/src/uipath/models/assets.py +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/src/uipath/models/attachment.py +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/src/uipath/models/buckets.py +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/src/uipath/models/connections.py +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/src/uipath/models/context_grounding.py +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/src/uipath/models/context_grounding_index.py +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/src/uipath/models/errors.py +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/src/uipath/models/exceptions.py +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/src/uipath/models/interrupt_models.py +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/src/uipath/models/job.py +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/src/uipath/models/llm_gateway.py +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/src/uipath/models/processes.py +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/src/uipath/models/queues.py +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/src/uipath/py.typed +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/src/uipath/telemetry/__init__.py +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/src/uipath/telemetry/_constants.py +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/src/uipath/telemetry/_track.py +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/src/uipath/tracing/__init__.py +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/src/uipath/tracing/_otel_exporters.py +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/src/uipath/tracing/_traced.py +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/src/uipath/tracing/_utils.py +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/src/uipath/utils/__init__.py +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/src/uipath/utils/_endpoints_manager.py +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/tests/__init__.py +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/tests/cli/conftest.py +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/tests/cli/evaluators/test_json_similarity_evaluator.py +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/tests/cli/mocks/bindings_script.py +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/tests/cli/mocks/pyproject.toml +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/tests/cli/mocks/simple_script.py +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/tests/cli/mocks/uipath-mock.json +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/tests/cli/mocks/uipath-simple-script-mock.json +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/tests/cli/test_auth.py +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/tests/cli/test_hitl.py +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/tests/cli/test_init.py +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/tests/cli/test_input_args.py +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/tests/cli/test_invoke.py +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/tests/cli/test_new.py +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/tests/cli/test_pack.py +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/tests/cli/test_portal_service_ensure_valid_token.py +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/tests/cli/test_portal_service_refresh_token.py +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/tests/cli/test_publish.py +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/tests/cli/test_pull.py +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/tests/cli/test_push.py +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/tests/cli/test_run.py +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/tests/cli/test_utils.py +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/tests/cli/utils/common.py +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/tests/cli/utils/project_details.py +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/tests/cli/utils/uipath_json.py +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/tests/conftest.py +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/tests/sdk/services/conftest.py +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/tests/sdk/services/test_actions_service.py +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/tests/sdk/services/test_api_client.py +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/tests/sdk/services/test_assets_service.py +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/tests/sdk/services/test_attachments_service.py +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/tests/sdk/services/test_base_service.py +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/tests/sdk/services/test_buckets_service.py +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/tests/sdk/services/test_connections_service.py +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/tests/sdk/services/test_context_grounding_service.py +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/tests/sdk/services/test_folder_service.py +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/tests/sdk/services/test_jobs_service.py +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/tests/sdk/services/test_llm_integration.py +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/tests/sdk/services/test_llm_schema_cleanup.py +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/tests/sdk/services/test_llm_service.py +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/tests/sdk/services/test_processes_service.py +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/tests/sdk/services/test_queues_service.py +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/tests/sdk/services/test_uipath_llm_integration.py +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/tests/sdk/test_bindings_inference.py +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/tests/sdk/test_config.py +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/tests/sdk/test_overwrites.py +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/tests/tracing/test_otel_exporters.py +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/tests/tracing/test_span_utils.py +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/tests/tracing/test_traced.py +0 -0
- {uipath-2.1.49 → uipath-2.1.50}/tests/tracing/test_tracing_manager.py +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: uipath
|
3
|
-
Version: 2.1.
|
3
|
+
Version: 2.1.50
|
4
4
|
Summary: Python SDK and CLI for UiPath Platform, enabling programmatic interaction with automation services, process management, and deployment tools.
|
5
5
|
Project-URL: Homepage, https://uipath.com
|
6
6
|
Project-URL: Repository, https://github.com/UiPath/uipath-python
|
@@ -1,6 +1,6 @@
|
|
1
1
|
[project]
|
2
2
|
name = "uipath"
|
3
|
-
version = "2.1.
|
3
|
+
version = "2.1.50"
|
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"
|
@@ -5,6 +5,7 @@ from .attachments_service import AttachmentsService
|
|
5
5
|
from .buckets_service import BucketsService
|
6
6
|
from .connections_service import ConnectionsService
|
7
7
|
from .context_grounding_service import ContextGroundingService
|
8
|
+
from .entities_service import EntitiesService
|
8
9
|
from .folder_service import FolderService
|
9
10
|
from .jobs_service import JobsService
|
10
11
|
from .llm_gateway_service import UiPathLlmChatService, UiPathOpenAIService
|
@@ -25,4 +26,5 @@ __all__ = [
|
|
25
26
|
"UiPathOpenAIService",
|
26
27
|
"UiPathLlmChatService",
|
27
28
|
"FolderService",
|
29
|
+
"EntitiesService",
|
28
30
|
]
|
@@ -0,0 +1,383 @@
|
|
1
|
+
from typing import Any, List, Optional, Type
|
2
|
+
|
3
|
+
from httpx import Response
|
4
|
+
|
5
|
+
from .._config import Config
|
6
|
+
from .._execution_context import ExecutionContext
|
7
|
+
from .._utils import Endpoint, RequestSpec
|
8
|
+
from ..models.entities import (
|
9
|
+
Entity,
|
10
|
+
EntityRecord,
|
11
|
+
EntityRecordsBatchResponse,
|
12
|
+
)
|
13
|
+
from ..tracing import traced
|
14
|
+
from ._base_service import BaseService
|
15
|
+
|
16
|
+
|
17
|
+
class EntitiesService(BaseService):
|
18
|
+
"""Service for managing UiPath Data Service entities.
|
19
|
+
|
20
|
+
Entities are database tables in UiPath Data Service that can store
|
21
|
+
structured data for automation processes.
|
22
|
+
"""
|
23
|
+
|
24
|
+
def __init__(self, config: Config, execution_context: ExecutionContext) -> None:
|
25
|
+
super().__init__(config=config, execution_context=execution_context)
|
26
|
+
|
27
|
+
@traced(name="entity_retrieve", run_type="uipath")
|
28
|
+
def retrieve(self, entity_key: str) -> Entity:
|
29
|
+
"""Retrieve an entity by its key.
|
30
|
+
|
31
|
+
Args:
|
32
|
+
entity_key (str): The unique key/identifier of the entity.
|
33
|
+
|
34
|
+
Returns:
|
35
|
+
Entity: The entity with all its metadata and field definitions.
|
36
|
+
"""
|
37
|
+
spec = self._retrieve_spec(entity_key)
|
38
|
+
response = self.request(spec.method, spec.endpoint)
|
39
|
+
|
40
|
+
return Entity.model_validate(response.json())
|
41
|
+
|
42
|
+
@traced(name="entity_retrieve", run_type="uipath")
|
43
|
+
async def retrieve_async(self, entity_key: str) -> Entity:
|
44
|
+
"""Asynchronously retrieve an entity by its key.
|
45
|
+
|
46
|
+
Args:
|
47
|
+
entity_key (str): The unique key/identifier of the entity.
|
48
|
+
|
49
|
+
Returns:
|
50
|
+
Entity: The entity with all its metadata and field definitions.
|
51
|
+
"""
|
52
|
+
spec = self._retrieve_spec(entity_key)
|
53
|
+
|
54
|
+
response = await self.request_async(spec.method, spec.endpoint)
|
55
|
+
|
56
|
+
return Entity.model_validate(response.json())
|
57
|
+
|
58
|
+
@traced(name="list_entities", run_type="uipath")
|
59
|
+
def list_entities(self) -> List[Entity]:
|
60
|
+
"""List all entities in the Data Service.
|
61
|
+
|
62
|
+
Returns:
|
63
|
+
List[Entity]: A list of all entities with their metadata and field definitions.
|
64
|
+
"""
|
65
|
+
spec = self._list_entities_spec()
|
66
|
+
response = self.request(spec.method, spec.endpoint)
|
67
|
+
|
68
|
+
entities_data = response.json()
|
69
|
+
return [Entity.model_validate(entity) for entity in entities_data]
|
70
|
+
|
71
|
+
@traced(name="list_entities", run_type="uipath")
|
72
|
+
async def list_entities_async(self) -> List[Entity]:
|
73
|
+
"""Asynchronously list all entities in the Data Service.
|
74
|
+
|
75
|
+
Returns:
|
76
|
+
List[Entity]: A list of all entities with their metadata and field definitions.
|
77
|
+
"""
|
78
|
+
spec = self._list_entities_spec()
|
79
|
+
response = await self.request_async(spec.method, spec.endpoint)
|
80
|
+
|
81
|
+
entities_data = response.json()
|
82
|
+
return [Entity.model_validate(entity) for entity in entities_data]
|
83
|
+
|
84
|
+
@traced(name="entity_list_records", run_type="uipath")
|
85
|
+
def list_records(
|
86
|
+
self,
|
87
|
+
entity_key: str,
|
88
|
+
schema: Optional[Type[Any]] = None, # Optional schema
|
89
|
+
start: Optional[int] = None,
|
90
|
+
limit: Optional[int] = None,
|
91
|
+
) -> List[EntityRecord]:
|
92
|
+
"""List records from an entity with optional pagination and schema validation.
|
93
|
+
|
94
|
+
Args:
|
95
|
+
entity_key (str): The unique key/identifier of the entity.
|
96
|
+
schema (Optional[Type[Any]]): Optional schema class for additional validation of records.
|
97
|
+
start (Optional[int]): Starting index for pagination.
|
98
|
+
limit (Optional[int]): Maximum number of records to return.
|
99
|
+
|
100
|
+
Returns:
|
101
|
+
List[EntityRecord]: A list of entity records.
|
102
|
+
"""
|
103
|
+
# Example method to generate the API request specification (mocked here)
|
104
|
+
spec = self._list_records_spec(entity_key, start, limit)
|
105
|
+
|
106
|
+
# Make the HTTP request (assumes self.request exists)
|
107
|
+
response = self.request(spec.method, spec.endpoint, params=spec.params)
|
108
|
+
|
109
|
+
# Parse the response JSON and extract the "value" field
|
110
|
+
records_data = response.json().get("value", [])
|
111
|
+
|
112
|
+
# Validate and wrap records
|
113
|
+
return [
|
114
|
+
EntityRecord.from_data(data=record, model=schema) for record in records_data
|
115
|
+
]
|
116
|
+
|
117
|
+
@traced(name="entity_list_records", run_type="uipath")
|
118
|
+
async def list_records_async(
|
119
|
+
self,
|
120
|
+
entity_key: str,
|
121
|
+
schema: Optional[Type[Any]] = None, # Optional schema
|
122
|
+
start: Optional[int] = None,
|
123
|
+
limit: Optional[int] = None,
|
124
|
+
) -> List[EntityRecord]:
|
125
|
+
"""Asynchronously list records from an entity with optional pagination and schema validation.
|
126
|
+
|
127
|
+
Args:
|
128
|
+
entity_key (str): The unique key/identifier of the entity.
|
129
|
+
schema (Optional[Type[Any]]): Optional schema class for additional validation of records.
|
130
|
+
start (Optional[int]): Starting index for pagination.
|
131
|
+
limit (Optional[int]): Maximum number of records to return.
|
132
|
+
|
133
|
+
Returns:
|
134
|
+
List[EntityRecord]: A list of entity records.
|
135
|
+
"""
|
136
|
+
spec = self._list_records_spec(entity_key, start, limit)
|
137
|
+
|
138
|
+
# Make the HTTP request (assumes self.request exists)
|
139
|
+
response = await self.request_async(
|
140
|
+
spec.method, spec.endpoint, params=spec.params
|
141
|
+
)
|
142
|
+
|
143
|
+
# Parse the response JSON and extract the "value" field
|
144
|
+
records_data = response.json().get("value", [])
|
145
|
+
|
146
|
+
# Validate and wrap records
|
147
|
+
return [
|
148
|
+
EntityRecord.from_data(data=record, model=schema) for record in records_data
|
149
|
+
]
|
150
|
+
|
151
|
+
@traced(name="entity_record_insert_batch", run_type="uipath")
|
152
|
+
def insert_records(
|
153
|
+
self,
|
154
|
+
entity_key: str,
|
155
|
+
records: List[Any],
|
156
|
+
schema: Optional[Type[Any]] = None,
|
157
|
+
) -> EntityRecordsBatchResponse:
|
158
|
+
"""Insert multiple records into an entity in a single batch operation.
|
159
|
+
|
160
|
+
Args:
|
161
|
+
entity_key (str): The unique key/identifier of the entity.
|
162
|
+
records (List[Any]): List of records to insert.
|
163
|
+
schema (Optional[Type[Any]]): Optional schema class for validation of records.
|
164
|
+
|
165
|
+
Returns:
|
166
|
+
EntityRecordsBatchResponse: Response containing successful and failed record operations.
|
167
|
+
"""
|
168
|
+
spec = self._insert_batch_spec(entity_key, records)
|
169
|
+
response = self.request(spec.method, spec.endpoint, json=spec.json)
|
170
|
+
|
171
|
+
return self.validate_entity_batch(response, schema)
|
172
|
+
|
173
|
+
@traced(name="entity_record_insert_batch", run_type="uipath")
|
174
|
+
async def insert_records_async(
|
175
|
+
self,
|
176
|
+
entity_key: str,
|
177
|
+
records: List[Any],
|
178
|
+
schema: Optional[Type[Any]] = None,
|
179
|
+
) -> EntityRecordsBatchResponse:
|
180
|
+
"""Asynchronously insert multiple records into an entity in a single batch operation.
|
181
|
+
|
182
|
+
Args:
|
183
|
+
entity_key (str): The unique key/identifier of the entity.
|
184
|
+
records (List[Any]): List of records to insert.
|
185
|
+
schema (Optional[Type[Any]]): Optional schema class for validation of records.
|
186
|
+
|
187
|
+
Returns:
|
188
|
+
EntityRecordsBatchResponse: Response containing successful and failed record operations.
|
189
|
+
"""
|
190
|
+
spec = self._insert_batch_spec(entity_key, records)
|
191
|
+
response = await self.request_async(spec.method, spec.endpoint, json=spec.json)
|
192
|
+
|
193
|
+
return self.validate_entity_batch(response, schema)
|
194
|
+
|
195
|
+
@traced(name="entity_record_update_batch", run_type="uipath")
|
196
|
+
def update_records(
|
197
|
+
self,
|
198
|
+
entity_key: str,
|
199
|
+
records: List[Any],
|
200
|
+
schema: Optional[Type[Any]] = None,
|
201
|
+
) -> EntityRecordsBatchResponse:
|
202
|
+
"""Update multiple records in an entity in a single batch operation.
|
203
|
+
|
204
|
+
Args:
|
205
|
+
entity_key (str): The unique key/identifier of the entity.
|
206
|
+
records (List[Any]): List of records to update.
|
207
|
+
schema (Optional[Type[Any]]): Optional schema class for validation of records.
|
208
|
+
|
209
|
+
Returns:
|
210
|
+
EntityRecordsBatchResponse: Response containing successful and failed record operations.
|
211
|
+
"""
|
212
|
+
valid_records = [
|
213
|
+
EntityRecord.from_data(data=record.model_dump(by_alias=True), model=schema)
|
214
|
+
for record in records
|
215
|
+
]
|
216
|
+
|
217
|
+
spec = self._update_batch_spec(entity_key, valid_records)
|
218
|
+
response = self.request(spec.method, spec.endpoint, json=spec.json)
|
219
|
+
|
220
|
+
return self.validate_entity_batch(response, schema)
|
221
|
+
|
222
|
+
@traced(name="entity_record_update_batch", run_type="uipath")
|
223
|
+
async def update_records_async(
|
224
|
+
self,
|
225
|
+
entity_key: str,
|
226
|
+
records: List[Any],
|
227
|
+
schema: Optional[Type[Any]] = None,
|
228
|
+
) -> EntityRecordsBatchResponse:
|
229
|
+
"""Asynchronously update multiple records in an entity in a single batch operation.
|
230
|
+
|
231
|
+
Args:
|
232
|
+
entity_key (str): The unique key/identifier of the entity.
|
233
|
+
records (List[Any]): List of records to update.
|
234
|
+
schema (Optional[Type[Any]]): Optional schema class for validation of records.
|
235
|
+
|
236
|
+
Returns:
|
237
|
+
EntityRecordsBatchResponse: Response containing successful and failed record operations.
|
238
|
+
"""
|
239
|
+
valid_records = [
|
240
|
+
EntityRecord.from_data(data=record.model_dump(by_alias=True), model=schema)
|
241
|
+
for record in records
|
242
|
+
]
|
243
|
+
|
244
|
+
spec = self._update_batch_spec(entity_key, valid_records)
|
245
|
+
response = await self.request_async(spec.method, spec.endpoint, json=spec.json)
|
246
|
+
|
247
|
+
return self.validate_entity_batch(response, schema)
|
248
|
+
|
249
|
+
@traced(name="entity_record_delete_batch", run_type="uipath")
|
250
|
+
def delete_records(
|
251
|
+
self,
|
252
|
+
entity_key: str,
|
253
|
+
record_ids: List[str],
|
254
|
+
) -> EntityRecordsBatchResponse:
|
255
|
+
"""Delete multiple records from an entity in a single batch operation.
|
256
|
+
|
257
|
+
Args:
|
258
|
+
entity_key (str): The unique key/identifier of the entity.
|
259
|
+
record_ids (List[str]): List of record IDs to delete.
|
260
|
+
|
261
|
+
Returns:
|
262
|
+
EntityRecordsBatchResponse: Response containing successful and failed record operations.
|
263
|
+
"""
|
264
|
+
spec = self._delete_batch_spec(entity_key, record_ids)
|
265
|
+
response = self.request(spec.method, spec.endpoint, json=spec.json)
|
266
|
+
|
267
|
+
delete_records_response = EntityRecordsBatchResponse.model_validate(
|
268
|
+
response.json()
|
269
|
+
)
|
270
|
+
|
271
|
+
return delete_records_response
|
272
|
+
|
273
|
+
@traced(name="entity_record_delete_batch", run_type="uipath")
|
274
|
+
async def delete_records_async(
|
275
|
+
self,
|
276
|
+
entity_key: str,
|
277
|
+
record_ids: List[str],
|
278
|
+
) -> EntityRecordsBatchResponse:
|
279
|
+
"""Asynchronously delete multiple records from an entity in a single batch operation.
|
280
|
+
|
281
|
+
Args:
|
282
|
+
entity_key (str): The unique key/identifier of the entity.
|
283
|
+
record_ids (List[str]): List of record IDs to delete.
|
284
|
+
|
285
|
+
Returns:
|
286
|
+
EntityRecordsBatchResponse: Response containing successful and failed record operations.
|
287
|
+
"""
|
288
|
+
spec = self._delete_batch_spec(entity_key, record_ids)
|
289
|
+
response = await self.request_async(spec.method, spec.endpoint, json=spec.json)
|
290
|
+
|
291
|
+
delete_records_response = EntityRecordsBatchResponse.model_validate(
|
292
|
+
response.json()
|
293
|
+
)
|
294
|
+
|
295
|
+
return delete_records_response
|
296
|
+
|
297
|
+
def validate_entity_batch(
|
298
|
+
self,
|
299
|
+
batch_response: Response,
|
300
|
+
schema: Optional[Type[Any]] = None,
|
301
|
+
) -> EntityRecordsBatchResponse:
|
302
|
+
# Validate the response format
|
303
|
+
insert_records_response = EntityRecordsBatchResponse.model_validate(
|
304
|
+
batch_response.json()
|
305
|
+
)
|
306
|
+
|
307
|
+
# Validate individual records
|
308
|
+
validated_successful_records = [
|
309
|
+
EntityRecord.from_data(
|
310
|
+
data=successful_record.model_dump(by_alias=True), model=schema
|
311
|
+
)
|
312
|
+
for successful_record in insert_records_response.success_records
|
313
|
+
]
|
314
|
+
|
315
|
+
validated_failed_records = [
|
316
|
+
EntityRecord.from_data(
|
317
|
+
data=failed_record.model_dump(by_alias=True), model=schema
|
318
|
+
)
|
319
|
+
for failed_record in insert_records_response.failure_records
|
320
|
+
]
|
321
|
+
|
322
|
+
return EntityRecordsBatchResponse(
|
323
|
+
success_records=validated_successful_records,
|
324
|
+
failure_records=validated_failed_records,
|
325
|
+
)
|
326
|
+
|
327
|
+
def _retrieve_spec(
|
328
|
+
self,
|
329
|
+
entity_key: str,
|
330
|
+
) -> RequestSpec:
|
331
|
+
return RequestSpec(
|
332
|
+
method="GET",
|
333
|
+
endpoint=Endpoint(f"datafabric_/api/Entity/{entity_key}"),
|
334
|
+
)
|
335
|
+
|
336
|
+
def _list_entities_spec(self) -> RequestSpec:
|
337
|
+
return RequestSpec(
|
338
|
+
method="GET",
|
339
|
+
endpoint=Endpoint("datafabric_/api/Entity"),
|
340
|
+
)
|
341
|
+
|
342
|
+
def _list_records_spec(
|
343
|
+
self,
|
344
|
+
entity_key: str,
|
345
|
+
start: Optional[int] = None,
|
346
|
+
limit: Optional[int] = None,
|
347
|
+
) -> RequestSpec:
|
348
|
+
return RequestSpec(
|
349
|
+
method="GET",
|
350
|
+
endpoint=Endpoint(
|
351
|
+
f"datafabric_/api/EntityService/entity/{entity_key}/read"
|
352
|
+
),
|
353
|
+
params=({"start": start, "limit": limit}),
|
354
|
+
)
|
355
|
+
|
356
|
+
def _insert_batch_spec(self, entity_key: str, records: List[Any]) -> RequestSpec:
|
357
|
+
return RequestSpec(
|
358
|
+
method="POST",
|
359
|
+
endpoint=Endpoint(
|
360
|
+
f"datafabric_/api/EntityService/entity/{entity_key}/insert-batch"
|
361
|
+
),
|
362
|
+
json=[record.__dict__ for record in records],
|
363
|
+
)
|
364
|
+
|
365
|
+
def _update_batch_spec(
|
366
|
+
self, entity_key: str, records: List[EntityRecord]
|
367
|
+
) -> RequestSpec:
|
368
|
+
return RequestSpec(
|
369
|
+
method="POST",
|
370
|
+
endpoint=Endpoint(
|
371
|
+
f"datafabric_/api/EntityService/entity/{entity_key}/update-batch"
|
372
|
+
),
|
373
|
+
json=[record.model_dump(by_alias=True) for record in records],
|
374
|
+
)
|
375
|
+
|
376
|
+
def _delete_batch_spec(self, entity_key: str, record_ids: List[str]) -> RequestSpec:
|
377
|
+
return RequestSpec(
|
378
|
+
method="POST",
|
379
|
+
endpoint=Endpoint(
|
380
|
+
f"datafabric_/api/EntityService/entity/{entity_key}/delete-batch"
|
381
|
+
),
|
382
|
+
json=record_ids,
|
383
|
+
)
|
@@ -13,6 +13,7 @@ from ._services import (
|
|
13
13
|
BucketsService,
|
14
14
|
ConnectionsService,
|
15
15
|
ContextGroundingService,
|
16
|
+
EntitiesService,
|
16
17
|
FolderService,
|
17
18
|
JobsService,
|
18
19
|
ProcessesService,
|
@@ -134,3 +135,7 @@ class UiPath:
|
|
134
135
|
@property
|
135
136
|
def llm(self) -> UiPathLlmChatService:
|
136
137
|
return UiPathLlmChatService(self._config, self._execution_context)
|
138
|
+
|
139
|
+
@property
|
140
|
+
def entities(self) -> EntitiesService:
|
141
|
+
return EntitiesService(self._config, self._execution_context)
|