File tree Expand file tree Collapse file tree 2 files changed +41
-0
lines changed
Expand file tree Collapse file tree 2 files changed +41
-0
lines changed Original file line number Diff line number Diff line change @@ -165,3 +165,16 @@ def serialize(cls, obj: "ApiExportToolkitProxy") -> dict:
165165 "__class__" : cls .__name__ ,
166166 "_session_uid" : obj ._session_uid if obj ._session_uid is not None else None ,
167167 }
168+
169+
170+ class ApiProjectProxy (ApiElementProxy ):
171+ def __init__ (self , pyro_api : Pyro5 .api .Proxy , session_uid : str | None = None ) -> None :
172+ super ().__init__ (pyro_api , 'project' , session_uid )
173+
174+ def CloseProject (self , check_save_state : bool = True ) -> None :
175+ if check_save_state and self .HasUnsavedChanges ():
176+ raise RuntimeError (
177+ "Project has unsaved changes. Save the project before closing or use check_save_state=False."
178+ )
179+
180+ self ._pyro_api .SendToApiElement (self ._pool_id , "CloseProject" , check_save_state = check_save_state )
Original file line number Diff line number Diff line change 3434 ApiExportToolkitProxy ,
3535 ApiGridFunctionProxy ,
3636 ApiListProxy ,
37+ ApiProjectProxy ,
3738)
3839
3940
@@ -46,6 +47,9 @@ def register_proxies() -> None:
4647 Pyro5 .api .register_dict_to_class (
4748 "ApiExportToolkitProxy" , deserialize_api_exporttoolkit
4849 )
50+ Pyro5 .api .register_dict_to_class (
51+ "ApiProjectProxy" , deserialize_api_project
52+ )
4953 Pyro5 .api .register_dict_to_class ("RockyApiError" , deserialize_api_error )
5054 Pyro5 .api .register_dict_to_class ("ndarray" , deserialize_numpy )
5155
@@ -170,6 +174,30 @@ def deserialize_api_exporttoolkit(
170174 return ApiExportToolkitProxy (proxy , session_uid )
171175
172176
177+ def deserialize_api_project (
178+ classname : str , serialized : dict
179+ ) -> ApiProjectProxy :
180+ """Deserialize the proxy objects for the API project.
181+
182+ Parameters
183+ ----------
184+ classname : str
185+ Name of the class to deserialize. This parameter is required by the
186+ superclass but is not used.
187+ serialized : dict
188+ Dictionary of serialized objects.
189+
190+ Returns
191+ -------
192+ ApiProjectProxy
193+ Deserialized object.
194+ """
195+ session_uid = serialized .get ("_session_uid" )
196+ proxy = _GetProxyInstance (session_uid )
197+
198+ return ApiProjectProxy (proxy , session_uid )
199+
200+
173201def deserialize_api_error (classname : str , serialized : dict ) -> Exception :
174202 """Deserialize an API error.
175203
You can’t perform that action at this time.
0 commit comments