Skip to content

Commit

Permalink
Make deserialize a class method
Browse files Browse the repository at this point in the history
Signed-off-by: Brianna Major <[email protected]>
  • Loading branch information
bnmajor committed Jan 3, 2024
1 parent ce9090f commit b2b92d6
Show file tree
Hide file tree
Showing 2 changed files with 21 additions and 21 deletions.
10 changes: 5 additions & 5 deletions hexrdgui/masking/mask_compatability.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,11 @@


def load_masks_v1_to_v2(h5py_group):
items = {}
if '_version' in h5py_group.keys() and h5py_group['_version'] == 2:
items = h5py_group.items()
elif '_version' not in h5py_group.keys():
if h5py_group.get("_version") == 2:
return h5py_group.items()
else:
# This is a file using the old format
items = {}
visible = list(h5py_read_string(h5py_group['_visible']))
for key, data in h5py_group.items():
if key == '_visible':
Expand All @@ -33,4 +33,4 @@ def load_masks_v1_to_v2(h5py_group):
for i, mask in enumerate(masks.values()):
# Load the numpy array from the hdf5 file
items[name].setdefault(key, {})[i] = mask[()]
return [(k, v) for k, v in items.items()]
return [(k, v) for k, v in items.items()]
32 changes: 16 additions & 16 deletions hexrdgui/masking/mask_manager.py
Original file line number Diff line number Diff line change
Expand Up @@ -49,9 +49,9 @@ def update_masked_arrays(self):
def serialize(self):
pass

@abstractmethod
def deserialize(self, data):
pass
@classmethod
def deserialize(cls, data):
return cls(data['name'], data['mtype'], data['visible'])


class RegionMask(Mask):
Expand Down Expand Up @@ -82,16 +82,16 @@ def serialize(self):
data.setdefault(det, {})[str(i)] = values
return data

def deserialize(self, data):
self.name = data['name']
self.type = data['mtype']
self.visible = data['visible']
@classmethod
def deserialize(cls, data):
new_cls = cls(data['name'], data['mtype'], data['visible'])
raw_data = []
for det in HexrdConfig().detector_names:
if det not in data.keys():
continue
raw_data.extend([(det, v) for v in data[det].values()])
self.set_data(raw_data)
new_cls.set_data(raw_data)
return new_cls


class ThresholdMask(Mask):
Expand Down Expand Up @@ -133,11 +133,11 @@ def serialize(self):
'visible': self.visible,
}

def deserialize(self, data):
self.name = data['name']
self.type = data['mtype']
self.visible = data['visible']
self.set_data([data['min_val'], data['max_val']])
@classmethod
def deserialize(cls, data):
new_cls = cls(data['name'], data['mtype'], data['visible'])
new_cls.set_data([data['min_val'], data['max_val']])
return new_cls


class MaskManager(QObject, metaclass=QSingleton):
Expand Down Expand Up @@ -286,11 +286,11 @@ def load_masks(self, h5py_group):
if key == '_version':
continue
elif data['mtype'] == MaskType.threshold:
new_mask = ThresholdMask(None, None)
new_mask = ThresholdMask.deserialize(data)
else:
new_mask = RegionMask(None, None)
new_mask = RegionMask.deserialize(data)
self.masks[key] = new_mask
new_mask.deserialize(data)
new_mask.update_masked_arrays()

if not HexrdConfig().loading_state:
# We're importing masks directly,
Expand Down

0 comments on commit b2b92d6

Please sign in to comment.