|
2 | 2 |
|
3 | 3 |
|
4 | 4 | class obj_from_dict: |
5 | | - def __init__(self, dictto): |
6 | | - for kk in dictto.keys(): |
7 | | - exec 'self.'+kk +'= dictto[kk]' |
8 | | - |
9 | | - |
| 5 | + def __init__(self, dictto): |
| 6 | + for kk in dictto.keys(): |
| 7 | + setattr(self, kk, dictto[kk]) |
| 8 | + |
| 9 | + |
10 | 10 | def obj_to_dict(obj): |
11 | | - dict_out={} |
12 | | - members = dir(obj) |
13 | | - for member in members: |
14 | | - exec "dict_out['%s'] = obj.%s"%(member,member) |
15 | | - return dict_out |
16 | | - |
| 11 | + dict_out={} |
| 12 | + members = dir(obj) |
| 13 | + for member in members: |
| 14 | + dict_out[member] = getattr(obj, member) |
| 15 | + return dict_out |
| 16 | + |
| 17 | + |
17 | 18 | def myloadmat(filename, squeeze = True): |
18 | | - import scipy.io as sio |
19 | | - dict_var=sio.loadmat(filename) |
20 | | - if squeeze: |
21 | | - for kk in dict_var.keys(): |
22 | | - try: |
23 | | - dict_var[kk]=np.squeeze(dict_var[kk]) |
24 | | - except: |
25 | | - pass |
26 | | - return dict_var |
27 | | - |
28 | | - |
29 | | - |
| 19 | + import scipy.io as sio |
| 20 | + dict_var=sio.loadmat(filename) |
| 21 | + if squeeze: |
| 22 | + for kk in dict_var.keys(): |
| 23 | + try: |
| 24 | + dict_var[kk]=np.squeeze(dict_var[kk]) |
| 25 | + except: |
| 26 | + pass |
| 27 | + return dict_var |
| 28 | + |
| 29 | + |
30 | 30 | def myloadmat_to_obj(filename, squeeze = True): |
31 | | - return obj_from_dict(myloadmat(filename, squeeze=squeeze)) |
32 | | - |
33 | | - |
34 | | - |
| 31 | + return obj_from_dict(myloadmat(filename, squeeze=squeeze)) |
| 32 | + |
| 33 | + |
35 | 34 | def dict_of_arrays_and_scalar_from_h5(filename): |
36 | | - import h5py |
37 | | - with h5py.File(filename) as fid: |
38 | | - f_dict = {} |
39 | | - for kk in fid.keys(): |
40 | | - f_dict[kk] = np.array(fid[kk]).copy() |
41 | | - if f_dict[kk].shape == (): |
42 | | - f_dict[kk] = f_dict[kk].tolist() |
43 | | - return f_dict |
44 | | - |
| 35 | + import h5py |
| 36 | + with h5py.File(filename, 'r') as fid: |
| 37 | + f_dict = {} |
| 38 | + for kk in fid.keys(): |
| 39 | + f_dict[kk] = np.array(fid[kk]).copy() |
| 40 | + if f_dict[kk].shape == (): |
| 41 | + f_dict[kk] = f_dict[kk].tolist() |
| 42 | + return f_dict |
| 43 | + |
45 | 44 | def object_with_arrays_and_scalar_from_h5(filename): |
46 | | - return obj_from_dict(dict_of_arrays_and_scalar_from_h5(filename)) |
47 | | - |
48 | | -def bunchh5_to_dict(filename): |
49 | | - import h5py |
50 | | - with h5py.File(filename, 'r') as bunch_ev: |
51 | | - bunch = bunch_ev['Bunch'] |
52 | | - bunch_dict = {} |
53 | | - for kk in bunch.keys(): |
54 | | - bunch_dict[kk] = np.array(bunch[kk]).copy() |
55 | | - |
56 | | - return bunch_dict |
57 | | - |
58 | | -def bunchh5_to_obj(filename): |
59 | | - return obj_from_dict(bunchh5_to_dict(filename)) |
60 | | - |
61 | | -def bunchh5list_to_dict(filename_list): |
62 | | - bunch_dict = bunchh5_to_dict(filename_list[0]) |
63 | | - for i_file in xrange(1,len(filename_list)): |
64 | | - bunch_dict_curr = bunchh5_to_dict(filename_list[i_file]) |
65 | | - for kk in bunch_dict.keys(): |
66 | | - bunch_dict[kk] = np.array(list(bunch_dict[kk])+list(bunch_dict_curr[kk])) |
67 | | - |
68 | | - return bunch_dict |
69 | | - |
70 | | -def bunchh5list_to_obj(filename_list): |
71 | | - return obj_from_dict(bunchh5list_to_dict(filename_list)) |
| 45 | + return obj_from_dict(dict_of_arrays_and_scalar_from_h5(filename)) |
| 46 | + |
| 47 | + |
| 48 | +def monitorh5_to_dict(filename, key= 'Bunch'): |
| 49 | + import h5py |
| 50 | + with h5py.File(filename, 'r') as monitor_ev: |
| 51 | + monitor = monitor_ev[key] |
| 52 | + monitor_dict = {} |
| 53 | + for kk in monitor.keys(): |
| 54 | + monitor_dict[kk] = np.array(monitor[kk]).copy() |
| 55 | + |
| 56 | + return monitor_dict |
| 57 | + |
| 58 | + |
| 59 | +def monitorh5_to_obj(filename, key= 'Bunch'): |
| 60 | + return obj_from_dict(monitorh5_to_dict(filename, key)) |
| 61 | + |
| 62 | +def monitorh5list_to_dict(filename_list, key='Bunch', permissive=False): |
| 63 | + monitor_dict = monitorh5_to_dict(filename_list[0], key=key) |
| 64 | + for i_file in xrange(1,len(filename_list)): |
| 65 | + print('Loading '+filename_list[i_file]) |
| 66 | + try: |
| 67 | + monitor_dict_curr = monitorh5_to_dict(filename_list[i_file]) |
| 68 | + for kk in monitor_dict.keys(): |
| 69 | + monitor_dict[kk] = np.array(list(monitor_dict[kk])+list(monitor_dict_curr[kk])) |
| 70 | + except IOError as err: |
| 71 | + print('Got:') |
| 72 | + print(err) |
| 73 | + if not permissive: |
| 74 | + raise err |
| 75 | + |
| 76 | + return monitor_dict |
| 77 | + |
| 78 | +def monitorh5list_to_obj(filename_list, key= 'Bunch', permissive=False): |
| 79 | + return obj_from_dict(monitorh5list_to_dict(filename_list, key, permissive)) |
| 80 | + |
| 81 | + |
| 82 | +def dict_to_h5(dict_save, filename): |
| 83 | + import h5py |
| 84 | + with h5py.File(filename, 'w') as fid: |
| 85 | + for kk in dict_save.keys(): |
| 86 | + fid[kk] = dict_save[kk] |
| 87 | + |
| 88 | + |
| 89 | + |
| 90 | + |
| 91 | + |
| 92 | + |
0 commit comments