From cd547709b4be0f243059a6ec9a6dfa4d4f00d5a1 Mon Sep 17 00:00:00 2001 From: Gheorghita Hurmuz Date: Mon, 10 Feb 2025 17:57:12 +0200 Subject: [PATCH 1/4] refactor: rename base url env var --- src/uipath_sdk/_uipath_sdk.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/uipath_sdk/_uipath_sdk.py b/src/uipath_sdk/_uipath_sdk.py index 799ead04a..55e0e39cf 100644 --- a/src/uipath_sdk/_uipath_sdk.py +++ b/src/uipath_sdk/_uipath_sdk.py @@ -20,7 +20,7 @@ def __init__( secret: str | None = None, debug: bool = False, ) -> None: - base_url_value = base_url or env.get("UIPATH_BASE_URL") + base_url_value = base_url or env.get("UIPATH_URL") secret_value = ( secret or env.get("UNATTENDED_USER_ACCESS_TOKEN") From fdf1c155be2986b1168308046f53e2fc895d3a72 Mon Sep 17 00:00:00 2001 From: Gheorghita Hurmuz Date: Mon, 10 Feb 2025 18:07:23 +0200 Subject: [PATCH 2/4] feat: add folder context --- src/uipath_sdk/_config.py | 2 -- src/uipath_sdk/_folder_context.py | 27 +++++++++++++++++++ src/uipath_sdk/_services/assets_service.py | 8 +++--- src/uipath_sdk/_services/processes_service.py | 8 +++--- src/uipath_sdk/_uipath_sdk.py | 5 +--- src/uv.lock | 2 +- 6 files changed, 35 insertions(+), 17 deletions(-) create mode 100644 src/uipath_sdk/_folder_context.py diff --git a/src/uipath_sdk/_config.py b/src/uipath_sdk/_config.py index f21b84a6a..70f734a74 100644 --- a/src/uipath_sdk/_config.py +++ b/src/uipath_sdk/_config.py @@ -7,8 +7,6 @@ class Config(BaseModel): base_url: str secret: str - folder_id: str | None - debug: bool = False @field_validator("base_url", mode="before") @classmethod diff --git a/src/uipath_sdk/_folder_context.py b/src/uipath_sdk/_folder_context.py new file mode 100644 index 000000000..cfd0c837a --- /dev/null +++ b/src/uipath_sdk/_folder_context.py @@ -0,0 +1,27 @@ +from os import environ as env + +from dotenv import load_dotenv + +load_dotenv() + + +class FolderContext: + def __init__(self) -> None: + try: + self._folder_key: str | None = env["UIPATH_FOLDER_KEY"] + except KeyError: + self._folder_key = None + + try: + self._folder_path: str | None = env["UIPATH_FOLDER_PATH"] + except KeyError: + self._folder_path = None + + @property + def folder_headers(self) -> dict[str, str]: + if self._folder_key is not None: + return {"x-uipath-folderkey": self._folder_key} + elif self._folder_path is not None: + return {"X-uipath-folderpath": self._folder_path} + else: + raise ValueError("Folder key or path is not set (UIPATH_FOLDER_KEY or UIPATH_FOLDER_PATH)") diff --git a/src/uipath_sdk/_services/assets_service.py b/src/uipath_sdk/_services/assets_service.py index 05203f558..d960f1665 100644 --- a/src/uipath_sdk/_services/assets_service.py +++ b/src/uipath_sdk/_services/assets_service.py @@ -2,11 +2,12 @@ from httpx import Response +from .._folder_context import FolderContext from .._models import UserAsset from ._base_service import BaseService -class AssetsService(BaseService): +class AssetsService(BaseService, FolderContext): def retrieve( self, assetName: str, @@ -49,7 +50,4 @@ def update( @property def custom_headers(self) -> dict[str, str]: - if self._config.folder_id is None: - raise ValueError("Folder ID is required for Assets Service") - - return {"x-uipath-organizationunitid": self._config.folder_id} + return self.folder_headers diff --git a/src/uipath_sdk/_services/processes_service.py b/src/uipath_sdk/_services/processes_service.py index b07e7b810..e491b3b0b 100644 --- a/src/uipath_sdk/_services/processes_service.py +++ b/src/uipath_sdk/_services/processes_service.py @@ -1,9 +1,10 @@ from httpx import Response +from .._folder_context import FolderContext from ._base_service import BaseService -class ProcessesService(BaseService): +class ProcessesService(BaseService, FolderContext): def invoke(self, release_key: str) -> Response: endpoint = ( "/orchestrator_/odata/Jobs/UiPath.Server.Configuration.OData.StartJobs" @@ -18,7 +19,4 @@ def invoke(self, release_key: str) -> Response: @property def custom_headers(self) -> dict[str, str]: - if self._config.folder_id is None: - raise ValueError("Folder ID is required for Processes Service") - - return {"x-uipath-organizationunitid": self._config.folder_id} + return self.folder_headers diff --git a/src/uipath_sdk/_uipath_sdk.py b/src/uipath_sdk/_uipath_sdk.py index 55e0e39cf..74c0e8e02 100644 --- a/src/uipath_sdk/_uipath_sdk.py +++ b/src/uipath_sdk/_uipath_sdk.py @@ -26,16 +26,13 @@ def __init__( or env.get("UNATTENDED_USER_ACCESS_TOKEN") or env.get("UIPATH_ACCESS_TOKEN") ) - folder_id_value = env.get("UIPATH_FOLDER_ID") self._config = Config( base_url=base_url_value, # type: ignore secret=secret_value, # type: ignore - folder_id=folder_id_value, - debug=debug, ) - setup_logging(self._config.debug) + setup_logging(debug) log = getLogger("uipath") log.debug("CONFIG:") diff --git a/src/uv.lock b/src/uv.lock index bf5d2eb98..b4f02f6a3 100644 --- a/src/uv.lock +++ b/src/uv.lock @@ -561,7 +561,7 @@ wheels = [ [[package]] name = "uipath-sdk" -version = "0.0.10" +version = "0.0.11" source = { editable = "." } dependencies = [ { name = "click" }, From 18542a6556043a936804c3c52633ae7fcab30b14 Mon Sep 17 00:00:00 2001 From: Gheorghita Hurmuz Date: Mon, 10 Feb 2025 18:09:46 +0200 Subject: [PATCH 3/4] fix: format --- src/uipath_sdk/_folder_context.py | 4 +++- src/uipath_sdk/_services/assets_service.py | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/uipath_sdk/_folder_context.py b/src/uipath_sdk/_folder_context.py index cfd0c837a..73208412b 100644 --- a/src/uipath_sdk/_folder_context.py +++ b/src/uipath_sdk/_folder_context.py @@ -24,4 +24,6 @@ def folder_headers(self) -> dict[str, str]: elif self._folder_path is not None: return {"X-uipath-folderpath": self._folder_path} else: - raise ValueError("Folder key or path is not set (UIPATH_FOLDER_KEY or UIPATH_FOLDER_PATH)") + raise ValueError( + "Folder key or path is not set (UIPATH_FOLDER_KEY or UIPATH_FOLDER_PATH)" + ) diff --git a/src/uipath_sdk/_services/assets_service.py b/src/uipath_sdk/_services/assets_service.py index d960f1665..f301596e0 100644 --- a/src/uipath_sdk/_services/assets_service.py +++ b/src/uipath_sdk/_services/assets_service.py @@ -50,4 +50,4 @@ def update( @property def custom_headers(self) -> dict[str, str]: - return self.folder_headers + return self.folder_headers From 3964683ead8bf89d7c453848276da0b47590167d Mon Sep 17 00:00:00 2001 From: Gheorghita Hurmuz Date: Mon, 10 Feb 2025 18:10:06 +0200 Subject: [PATCH 4/4] chore: bump --- src/pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/pyproject.toml b/src/pyproject.toml index c82c4339f..3ab9da91c 100644 --- a/src/pyproject.toml +++ b/src/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "uipath_sdk" -version = "0.0.11" +version = "0.0.12" description = "UiPath SDK" readme = { file = "README.md", content-type = "text/markdown" } requires-python = ">=3.10"