also show datasets without unit
currently, this is only the orientation dataset Also enable renames. Since this alters the history, the user need to enable this
This commit is contained in:
parent
421b8f4268
commit
7a193639fb
|
@ -90,7 +90,7 @@ class Result:
|
||||||
|
|
||||||
self.fname = os.path.abspath(fname)
|
self.fname = os.path.abspath(fname)
|
||||||
|
|
||||||
self._allow_overwrite = False
|
self._allow_modification = False
|
||||||
|
|
||||||
|
|
||||||
def __repr__(self):
|
def __repr__(self):
|
||||||
|
@ -167,14 +167,14 @@ class Result:
|
||||||
self.selection[what] = diff_sorted
|
self.selection[what] = diff_sorted
|
||||||
|
|
||||||
|
|
||||||
def enable_overwrite(self):
|
def allow_modification(self):
|
||||||
print(util.bcolors().WARNING,util.bcolors().BOLD,
|
print(util.bcolors().WARNING+util.bcolors().BOLD+
|
||||||
'Warning: Enabled overwrite of existing datasets!',
|
'Warning: Modification of existing datasets allowed!'+
|
||||||
util.bcolors().ENDC)
|
util.bcolors().ENDC)
|
||||||
self._allow_overwrite = True
|
self._allow_modification = True
|
||||||
|
|
||||||
def disable_overwrite(self):
|
def forbid_modification(self):
|
||||||
self._allow_overwrite = False
|
self._allow_modification = False
|
||||||
|
|
||||||
|
|
||||||
def incs_in_range(self,start,end):
|
def incs_in_range(self,start,end):
|
||||||
|
@ -263,6 +263,23 @@ class Result:
|
||||||
"""
|
"""
|
||||||
self._manage_selection('del',what,datasets)
|
self._manage_selection('del',what,datasets)
|
||||||
|
|
||||||
|
|
||||||
|
def rename(self,name_old,name_new):
|
||||||
|
"""
|
||||||
|
Rename datasets.
|
||||||
|
|
||||||
|
"""
|
||||||
|
if self._allow_modification:
|
||||||
|
with h5py.File(self.fname,'a') as f:
|
||||||
|
for path_old in self.get_dataset_location(name_old):
|
||||||
|
path_new = os.path.join(os.path.dirname(path_old),name_new)
|
||||||
|
f[path_new] = f[path_old]
|
||||||
|
f[path_new].attrs['Renamed'] = 'Original name: {}'.encode()
|
||||||
|
del f[path_old]
|
||||||
|
else:
|
||||||
|
print('Rename operation not permitted')
|
||||||
|
|
||||||
|
|
||||||
# def datamerger(regular expression to filter groups into one copy)
|
# def datamerger(regular expression to filter groups into one copy)
|
||||||
|
|
||||||
|
|
||||||
|
@ -397,8 +414,11 @@ class Result:
|
||||||
for d in f[group].keys():
|
for d in f[group].keys():
|
||||||
try:
|
try:
|
||||||
dataset = f['/'.join([group,d])]
|
dataset = f['/'.join([group,d])]
|
||||||
message += ' {} / ({}): {}\n'.\
|
description = dataset.attrs['Description'].decode()
|
||||||
format(d,dataset.attrs['Unit'].decode(),dataset.attrs['Description'].decode())
|
if 'Unit' in dataset.attrs:
|
||||||
|
message += ' {} / ({}): {}\n'.format(d,dataset.attrs['Unit'].decode(),description)
|
||||||
|
else:
|
||||||
|
message += ' {}: {}\n'.format(d,description)
|
||||||
except KeyError:
|
except KeyError:
|
||||||
pass
|
pass
|
||||||
return message
|
return message
|
||||||
|
@ -1048,7 +1068,7 @@ class Result:
|
||||||
lock.acquire()
|
lock.acquire()
|
||||||
with h5py.File(self.fname, 'a') as f:
|
with h5py.File(self.fname, 'a') as f:
|
||||||
try:
|
try:
|
||||||
if self._allow_overwrite and result[0]+'/'+result[1]['label'] in f:
|
if self._allow_modification and result[0]+'/'+result[1]['label'] in f:
|
||||||
dataset = f[result[0]+'/'+result[1]['label']]
|
dataset = f[result[0]+'/'+result[1]['label']]
|
||||||
dataset[...] = result[1]['data']
|
dataset[...] = result[1]['data']
|
||||||
dataset.attrs['Overwritten'] = 'Yes'.encode()
|
dataset.attrs['Overwritten'] = 'Yes'.encode()
|
||||||
|
|
Loading…
Reference in New Issue