@@ -223,6 +223,23 @@ def to_fill(self):
223223 """
224224 return _LocalDataTree (self )
225225
226+ def _serialize (self , path , operator ):
227+ from ansys .dpf import core
228+ operator .inputs .data_tree .connect (self )
229+ if path :
230+ if self ._server .local_server :
231+ operator .inputs .path .connect (path )
232+ operator .run ()
233+ return path
234+ else :
235+ directory = core .core .make_tmp_dir_server (self ._server )
236+ server_path = core .path_utilities .join (directory , "tmp.txt" , server = self ._server )
237+ operator .inputs .path .connect (server_path )
238+ operator .run ()
239+ return core .download_file (server_path , path , server = self ._server )
240+ else :
241+ return operator .get_output (0 , core .types .string )
242+
226243 def write_to_txt (self , path = None ):
227244 """
228245 Writes the data tree either as a file or as returned string in a text format.
@@ -246,21 +263,12 @@ def write_to_txt(self, path=None):
246263 >>> import os
247264 >>> data_tree.write_to_txt(os.path.join(tempfile.mkdtemp(), "data_tree.txt"))
248265 <BLANKLINE>
249- Downloading ...
266+ ...
250267
251268 """
252269 from ansys .dpf .core .operators .serialization import data_tree_to_txt
253- from ansys .dpf import core
254270 op = data_tree_to_txt (server = self ._server )
255- op .inputs .data_tree .connect (self )
256- if path :
257- directory = core .core .make_tmp_dir_server (self ._server )
258- server_path = core .path_utilities .join (directory , "tmp.txt" , server = self ._server )
259- op .inputs .path .connect (server_path )
260- op .run ()
261- return core .download_file (server_path , path )
262- else :
263- return op .get_output (0 , core .types .string )
271+ return self ._serialize (path , op )
264272
265273 def write_to_json (self , path = None ):
266274 """
@@ -285,21 +293,26 @@ def write_to_json(self, path=None):
285293 >>> import os
286294 >>> data_tree.write_to_json(os.path.join(tempfile.mkdtemp(), "data_tree.json"))
287295 <BLANKLINE>
288- Downloading ...
296+ ...
289297
290298 """
291299 from ansys .dpf .core .operators .serialization import data_tree_to_json
292- from ansys .dpf import core
293300 op = data_tree_to_json (server = self ._server )
294- op .inputs .data_tree .connect (self )
301+ return self ._serialize (path , op )
302+
303+ @staticmethod
304+ def _deserialize (path , txt , server , operator ):
305+ from ansys .dpf import core
295306 if path :
296- directory = core .core .make_tmp_dir_server (self ._server )
297- server_path = core .path_utilities .join (directory , "tmp.txt" , server = self ._server )
298- op .inputs .path .connect (server_path )
299- op .run ()
300- return core .download_file (server_path , path )
301- else :
302- return op .get_output (0 , core .types .string )
307+ server = server_module .get_or_create_server (server )
308+ if server .local_server :
309+ operator .inputs .string_or_path .connect (core .DataSources (path , server = server ))
310+ else :
311+ server_path = core .upload_file_in_tmp_folder (path , server = server )
312+ operator .inputs .string_or_path .connect (core .DataSources (server_path , server = server ))
313+ elif txt :
314+ operator .inputs .string_or_path .connect (str (txt ))
315+ return operator .outputs .data_tree ()
303316
304317 @staticmethod
305318 def read_from_json (path = None , txt = None , server = None ):
@@ -332,14 +345,8 @@ def read_from_json(path=None, txt=None, server=None):
332345
333346 """
334347 from ansys .dpf .core .operators .serialization import json_to_data_tree
335- from ansys .dpf import core
336348 op = json_to_data_tree (server = server )
337- if path :
338- server_path = core .upload_file_in_tmp_folder (path , server = server )
339- op .inputs .string_or_path .connect (core .DataSources (server_path , server = server ))
340- elif txt :
341- op .inputs .string_or_path .connect (str (txt ))
342- return op .outputs .data_tree ()
349+ return DataTree ._deserialize (path , txt , server , op )
343350
344351 @staticmethod
345352 def read_from_txt (path = None , txt = None , server = None ):
@@ -372,14 +379,8 @@ def read_from_txt(path=None, txt=None, server=None):
372379
373380 """
374381 from ansys .dpf .core .operators .serialization import txt_to_data_tree
375- from ansys .dpf import core
376382 op = txt_to_data_tree (server = server )
377- if path :
378- server_path = core .upload_file_in_tmp_folder (path , server = server )
379- op .inputs .string_or_path .connect (core .DataSources (server_path , server = server ))
380- elif txt :
381- op .inputs .string_or_path .connect (str (txt ))
382- return op .outputs .data_tree ()
383+ return DataTree ._deserialize (path , txt , server , op )
383384
384385 def has (self , entry ):
385386 """
0 commit comments