diff options
| author | J08nY | 2020-03-09 17:58:41 +0100 |
|---|---|---|
| committer | J08nY | 2020-03-09 17:58:41 +0100 |
| commit | f33ff9e95c3404be398e4c32f80cbf7adf03b981 (patch) | |
| tree | cf173b6c00dbf3b40ea2f37932882541eaa0a480 /pyecsca/sca/trace_set/hdf5.py | |
| parent | 1615fcb61bbcab6e1f2ac5b9282aaf0a7a5978d8 (diff) | |
| download | pyecsca-f33ff9e95c3404be398e4c32f80cbf7adf03b981.tar.gz pyecsca-f33ff9e95c3404be398e4c32f80cbf7adf03b981.tar.zst pyecsca-f33ff9e95c3404be398e4c32f80cbf7adf03b981.zip | |
Diffstat (limited to 'pyecsca/sca/trace_set/hdf5.py')
| -rw-r--r-- | pyecsca/sca/trace_set/hdf5.py | 19 |
1 files changed, 10 insertions, 9 deletions
diff --git a/pyecsca/sca/trace_set/hdf5.py b/pyecsca/sca/trace_set/hdf5.py index 6f676ff..b610735 100644 --- a/pyecsca/sca/trace_set/hdf5.py +++ b/pyecsca/sca/trace_set/hdf5.py @@ -8,6 +8,7 @@ from typing import Union, Optional, Dict, Any, List import h5py import numpy as np from public import public +from copy import deepcopy from .base import TraceSet from .. import Trace @@ -16,27 +17,27 @@ from .. import Trace @public class HDF5Meta(MutableMapping): _dataset: h5py.AttributeManager - _cache: Dict[str, Any] def __init__(self, attrs: h5py.AttributeManager): self._attrs = attrs - self._cache = {} super().__init__() def __getitem__(self, item): if item not in self._attrs: raise KeyError - if item not in self._cache: - self._cache[item] = pickle.loads(self._attrs[item]) - return self._cache[item] + return pickle.loads(self._attrs[item]) def __setitem__(self, key, value): self._attrs[key] = np.void(pickle.dumps(value)) def __delitem__(self, key): del self._attrs[key] - if key in self._cache: - del self._cache[key] + + def __copy__(self): + return deepcopy(self) + + def __deepcopy__(self, memodict={}): + return dict(self) def __iter__(self): yield from self._attrs @@ -69,7 +70,7 @@ class HDF5TraceSet(TraceSet): else: raise ValueError kwargs = dict(hdf5.attrs) - kwargs["_ordering"] = list(kwargs["_ordering"]) + kwargs["_ordering"] = list(kwargs["_ordering"]) if "_ordering" in kwargs else list(hdf5.keys()) traces = [] for k in kwargs["_ordering"]: meta = dict(HDF5Meta(hdf5[k].attrs)) @@ -87,7 +88,7 @@ class HDF5TraceSet(TraceSet): else: raise ValueError kwargs = dict(hdf5.attrs) - kwargs["_ordering"] = list(kwargs["_ordering"]) + kwargs["_ordering"] = list(kwargs["_ordering"]) if "_ordering" in kwargs else list(hdf5.keys()) traces = [] for k in kwargs["_ordering"]: meta = HDF5Meta(hdf5[k].attrs) |
