return minimal unique dictionaries per default
This commit is contained in:
parent
989992004d
commit
60119c1300
|
@ -1342,18 +1342,18 @@ class Result:
|
||||||
f[os.path.join(inc,'homogenization',ho,me,da)][()]
|
f[os.path.join(inc,'homogenization',ho,me,da)][()]
|
||||||
|
|
||||||
if strip: r = util.dict_strip(r)
|
if strip: r = util.dict_strip(r)
|
||||||
|
if compress: r = util.dict_compress(r)
|
||||||
return r
|
return r
|
||||||
|
|
||||||
|
|
||||||
def place(self,labels,fill_int=0,fill_float=0,constituents=None):
|
def place(self,labels,compress=True,strip=True,constituents=None,fill_int=0,fill_float=0.0):
|
||||||
r = {}
|
r = {}
|
||||||
|
|
||||||
labels_ = [labels] if isinstance(labels,str) else labels
|
labels_ = [labels] if isinstance(labels,str) else labels
|
||||||
if constituents is None:
|
if constituents is None:
|
||||||
constituents_ = range(self.N_constituents)
|
constituents_ = range(self.N_constituents)
|
||||||
else:
|
else:
|
||||||
constituents_ = labels if isinstance(labels,list) else [labels] # allow abribtrary iterable
|
constituents_ = labels if isinstance(labels,list) else [labels] # fix
|
||||||
|
|
||||||
|
|
||||||
grp = 'mapping' if self.version_minor < 12 else 'cell_to'
|
grp = 'mapping' if self.version_minor < 12 else 'cell_to'
|
||||||
|
@ -1388,4 +1388,6 @@ class Result:
|
||||||
dt = np.dtype(data.dtype,metadata={'description':description,
|
dt = np.dtype(data.dtype,metadata={'description':description,
|
||||||
'unit':unit})
|
'unit':unit})
|
||||||
r[inc]['phase'][me][da] = ma.empty((N_cells,)+data.shape[1:],dtype=dt)
|
r[inc]['phase'][me][da] = ma.empty((N_cells,)+data.shape[1:],dtype=dt)
|
||||||
|
if strip: r = util.dict_strip(r)
|
||||||
|
if compress: r = util.dict_compress(r)
|
||||||
return r
|
return r
|
||||||
|
|
|
@ -411,10 +411,24 @@ def dict_strip(a_dict):
|
||||||
|
|
||||||
|
|
||||||
def dict_compress(a_dict):
|
def dict_compress(a_dict):
|
||||||
|
# https://stackoverflow.com/questions/48151953
|
||||||
|
if isinstance(a_dict,dict) and len(a_dict) == 1:
|
||||||
|
key = list(a_dict.keys())[0]
|
||||||
|
entry = a_dict[key]
|
||||||
|
if isinstance(entry,dict):
|
||||||
|
new_dict = dict_compress(entry.copy())
|
||||||
|
else:
|
||||||
|
new_dict = entry
|
||||||
|
else:
|
||||||
|
new_dict = {}
|
||||||
|
for k, v in a_dict.items():
|
||||||
|
if isinstance(v, dict):
|
||||||
|
v = dict_compress(v)
|
||||||
|
if not isinstance(v,dict) or v != {}:
|
||||||
|
new_dict[k] = v
|
||||||
|
return new_dict
|
||||||
|
|
||||||
|
|
||||||
return None
|
|
||||||
|
|
||||||
|
|
||||||
####################################################################################################
|
####################################################################################################
|
||||||
# Classes
|
# Classes
|
||||||
|
|
Loading…
Reference in New Issue