1+ from functools import cached_property
12from typing import Optional
23
34from pydantic import ValidationError
@@ -51,10 +52,6 @@ def __init__(
5152 raise BaseUrlMissingError () from e
5253 elif error ["loc" ][0 ] == "secret" :
5354 raise SecretMissingError () from e
54- self ._folders_service : Optional [FolderService ] = None
55- self ._buckets_service : Optional [BucketsService ] = None
56- self ._attachments_service : Optional [AttachmentsService ] = None
57- self ._connections_service : Optional [ConnectionsService ] = None
5855 setup_logging (should_debug = debug )
5956 self ._execution_context = ExecutionContext ()
6057
@@ -66,13 +63,9 @@ def api_client(self) -> ApiClient:
6663 def assets (self ) -> AssetsService :
6764 return AssetsService (self ._config , self ._execution_context )
6865
69- @property
66+ @cached_property
7067 def attachments (self ) -> AttachmentsService :
71- if not self ._attachments_service :
72- self ._attachments_service = AttachmentsService (
73- self ._config , self ._execution_context
74- )
75- return self ._attachments_service
68+ return AttachmentsService (self ._config , self ._execution_context )
7669
7770 @property
7871 def processes (self ) -> ProcessesService :
@@ -82,39 +75,21 @@ def processes(self) -> ProcessesService:
8275 def actions (self ) -> ActionsService :
8376 return ActionsService (self ._config , self ._execution_context )
8477
85- @property
78+ @cached_property
8679 def buckets (self ) -> BucketsService :
87- if not self ._buckets_service :
88- self ._buckets_service = BucketsService (
89- self ._config , self ._execution_context
90- )
9180 return BucketsService (self ._config , self ._execution_context )
9281
93- @property
82+ @cached_property
9483 def connections (self ) -> ConnectionsService :
95- if not self ._connections_service :
96- if not self ._folders_service :
97- self ._folders_service = FolderService (
98- self ._config , self ._execution_context
99- )
100- self ._connections_service = ConnectionsService (
101- self ._config , self ._execution_context , self ._folders_service
102- )
103- return self ._connections_service
84+ return ConnectionsService (self ._config , self ._execution_context , self .folders )
10485
10586 @property
10687 def context_grounding (self ) -> ContextGroundingService :
107- if not self ._folders_service :
108- self ._folders_service = FolderService (self ._config , self ._execution_context )
109- if not self ._buckets_service :
110- self ._buckets_service = BucketsService (
111- self ._config , self ._execution_context
112- )
11388 return ContextGroundingService (
11489 self ._config ,
11590 self ._execution_context ,
116- self ._folders_service ,
117- self ._buckets_service ,
91+ self .folders ,
92+ self .buckets ,
11893 )
11994
12095 @property
@@ -129,11 +104,9 @@ def queues(self) -> QueuesService:
129104 def jobs (self ) -> JobsService :
130105 return JobsService (self ._config , self ._execution_context )
131106
132- @property
107+ @cached_property
133108 def folders (self ) -> FolderService :
134- if not self ._folders_service :
135- self ._folders_service = FolderService (self ._config , self ._execution_context )
136- return self ._folders_service
109+ return FolderService (self ._config , self ._execution_context )
137110
138111 @property
139112 def llm_openai (self ) -> UiPathOpenAIService :
0 commit comments