diff --git a/invesalius/control.py b/invesalius/control.py index 72b0f9e..93a97eb 100644 --- a/invesalius/control.py +++ b/invesalius/control.py @@ -1071,7 +1071,8 @@ class Controller(): if not os.path.isfile(path): path = os.path.join(inv_paths.USER_RAYCASTING_PRESETS_DIRECTORY, preset_name+".plist") - preset = plistlib.readPlist(path) + with open(path, 'r+b') as f: + preset = plistlib.load(f, fmt=plistlib.FMT_XML) prj.Project().raycasting_preset = preset # Notify volume # TODO: Chamar grafico tb! @@ -1085,7 +1086,8 @@ class Controller(): preset['name'] = preset_name preset_dir = os.path.join(inv_paths.USER_RAYCASTING_PRESETS_DIRECTORY, preset_name + '.plist') - plistlib.writePlist(preset, preset_dir) + with open(preset_dir, 'w+b') as f: + plistlib.dump(preset, f) def ShowBooleanOpDialog(self): dlg = dialogs.MaskBooleanDialog(prj.Project().mask_dict) diff --git a/invesalius/data/mask.py b/invesalius/data/mask.py index ec4c1a8..b98c850 100644 --- a/invesalius/data/mask.py +++ b/invesalius/data/mask.py @@ -293,14 +293,16 @@ class Mask(): #plist_filepath = os.path.join(dir_temp, plist_filename) temp_plist = tempfile.mktemp() - plistlib.writePlist(mask, temp_plist) + with open(temp_plist, 'w+b') as f: + plistlib.dump(mask, f) filelist[temp_plist] = plist_filename return plist_filename def OpenPList(self, filename): - mask = plistlib.readPlist(filename) + with open(filename, 'r+b') as f: + mask = plistlib.load(f, fmt=plistlib.FMT_XML) self.index = mask['index'] self.name = mask['name'] diff --git a/invesalius/data/surface.py b/invesalius/data/surface.py index 9c454f5..3ff60f9 100644 --- a/invesalius/data/surface.py +++ b/invesalius/data/surface.py @@ -115,14 +115,16 @@ class Surface(): plist_filename = filename + u'.plist' #plist_filepath = os.path.join(dir_temp, filename + '.plist') temp_plist = tempfile.mktemp() - plistlib.writePlist(surface, temp_plist) + with open(temp_plist, 'w+b') as f: + plistlib.dump(surface, f) filelist[temp_plist] = plist_filename return plist_filename def OpenPList(self, filename): - sp = plistlib.readPlist(filename) + with open(filename, 'r+b') as f: + sp = plistlib.load(f, fmt=plistlib.FMT_XML) dirpath = os.path.abspath(os.path.split(filename)[0]) self.index = sp['index'] self.name = sp['name'] diff --git a/invesalius/data/volume.py b/invesalius/data/volume.py index 842b70a..829a741 100644 --- a/invesalius/data/volume.py +++ b/invesalius/data/volume.py @@ -354,9 +354,11 @@ class Volume(): color_transfer.RemoveAllPoints() color_preset = self.config['CLUT'] if color_preset != "No CLUT": - p = plistlib.readPlist( - os.path.join(inv_paths.RAYCASTING_PRESETS_DIRECTORY, - 'color_list', color_preset + '.plist')) + path = os.path.join(inv_paths.RAYCASTING_PRESETS_DIRECTORY, + 'color_list', color_preset + '.plist') + with open(path, 'r+b') as f: + p = plistlib.load(f, fmt=plistlib.FMT_XML) + r = p['Red'] g = p['Green'] b = p['Blue'] diff --git a/invesalius/presets.py b/invesalius/presets.py index 3087a2c..67f38c7 100644 --- a/invesalius/presets.py +++ b/invesalius/presets.py @@ -129,10 +129,11 @@ class Presets(): thresh_ct_new = {} for name in self.thresh_ct.keys(): thresh_ct_new[translate_to_en[name]] = self.thresh_ct[name] - + preset['thresh_mri'] = thresh_mri_new preset['thresh_ct'] = thresh_ct_new - plistlib.writePlist(preset, filename) + with open(filename, 'w+b') as f: + plistlib.dump(preset, f) return os.path.split(filename)[1] def OpenPlist(self, filename): @@ -154,7 +155,8 @@ class Presets(): "Custom":_("Custom")} - p = plistlib.readPlist(filename) + with open(filename, 'r+b') as f: + p = plistlib.load(f, fmt=plistlib.FMT_XML) thresh_mri = p['thresh_mri'].copy() thresh_ct = p['thresh_ct'].copy() @@ -181,7 +183,8 @@ def get_wwwl_presets(): def get_wwwl_preset_colours(pfile): - preset = plistlib.readPlist(pfile) + with open(pfile, 'r+b') as f: + preset = plistlib.load(f, fmt=plistlib.FMT_XML) ncolours = len(preset['Blue']) colours = [] for i in range(ncolours): diff --git a/invesalius/project.py b/invesalius/project.py index 111032a..aa30aef 100644 --- a/invesalius/project.py +++ b/invesalius/project.py @@ -188,7 +188,8 @@ class Project(metaclass=Singleton): def SetRaycastPreset(self, label): path = os.path.join(RAYCASTING_PRESETS_DIRECTORY, label + '.plist') - preset = plistlib.readPlist(path) + with open(path, 'r+b') as f: + preset = plistlib.load(f, fmt=plistlib.FMT_XML) Publisher.sendMessage('Set raycasting preset', preset) def GetMeasuresDict(self): @@ -252,9 +253,9 @@ class Project(metaclass=Singleton): # Saving the measurements measurements = self.GetMeasuresDict() measurements_filename = 'measurements.plist' - temp_mplist = tempfile.mktemp() - plistlib.writePlist(measurements, - temp_mplist) + temp_mplist = tempfile.mktemp() + with open(temp_mplist, 'w+b') as f: + plistlib.dump(measurements, f) filelist[temp_mplist] = measurements_filename project['measurements'] = measurements_filename @@ -263,7 +264,8 @@ class Project(metaclass=Singleton): # Saving the main plist temp_plist = tempfile.mktemp() - plistlib.writePlist(project, temp_plist) + with open(temp_plist, 'w+b') as f: + plistlib.dump(project, f) filelist[temp_plist] = 'main.plist' # Compressing and generating the .inv3 file @@ -298,7 +300,8 @@ class Project(metaclass=Singleton): import invesalius.data.surface as srf # Opening the main file from invesalius 3 project main_plist = os.path.join(dirpath ,'main.plist') - project = plistlib.readPlist(main_plist) + with open(main_plist, 'r+b') as f: + project = plistlib.load(f, fmt=plistlib.FMT_XML) format_version = project["format_version"] if format_version > const.INVESALIUS_ACTUAL_FORMAT_VERSION: @@ -350,7 +353,8 @@ class Project(metaclass=Singleton): self.measurement_dict = {} measures_file = os.path.join(dirpath, project.get("measurements", "measurements.plist")) if os.path.exists(measures_file): - measurements = plistlib.readPlist(measures_file) + with open(measures_file, 'r+b') as f: + measurements = plistlib.load(f, fmt=plistlib.FMT_XML) for index in measurements: if measurements[index]["type"] in (const.DENSITY_ELLIPSE, const.DENSITY_POLYGON): measure = ms.DensityMeasurement() @@ -390,7 +394,10 @@ class Project(metaclass=Singleton): "matrix": matrix, } - plistlib.writePlist(project, os.path.join(folder, 'main.plist')) + + path = os.path.join(folder, 'main.plist') + with open(path, 'w+b') as f: + plistlib.dump(project, f) def export_project(self, filename, save_masks=True): -- libgit2 0.21.2