Api update
merge request so that you can comment the code ;)
Merge request reports
Activity
added awaiting feedback label
2 2 3 3 4 class AanetReader: 4 class AanetKeys: 5 "wrapper for aanet keys" 6 7 def __init__(self, file_path): 8 self._file_path = file_path 9 self._events_keys = None 10 self._hits_keys = None 11 self._tracks_keys = None 12 self._mc_hits_keys = None 13 self._mc_tracks_keys = None 14 self._valid_keys = None 15 16 def __repr__(self): The
__repr__
should be a single line string if possible. Usually it is something which can be used to instantiate the very same object by copy pasting it, otherwise it's enclosed in<
and>
. Cf. https://docs.python.org/3/library/functions.html#reprA more general description:
__repl__
is for developers,__str__
for usersOf course during the alpha phase we can do this for debugging (I do this sometimes too)
changed this line in version 16 of the diff
36 if key.decode('utf-8') not in fake_branches 37 ] + t_baskets 38 return self._events_keys 39 40 @property 41 def hits_keys(self): 42 if self._hits_keys is None: 43 tree = uproot.open(self._file_path)['E']['hits'] 44 self._hits_keys = [key.decode('utf8') for key in tree.keys()] 45 return self._hits_keys 46 47 @property 48 def tracks_keys(self): 49 if self._tracks_keys is None: 50 fake_branches = ['trks.usr_data', 51 'trks.usr_names'] # uproot can't read these changed this line in version 16 of the diff
78 @property 79 def valid_keys(self): 80 """constructs a list of all valid keys to be read from an Aanet event file. 81 Returns 82 ------- 83 list 84 list of all valid keys. 85 """ 86 if self._valid_keys is None: 87 self._valid_keys = (self.events_keys + self.hits_keys + 88 self.tracks_keys + self.mc_tracks_keys + 89 self.mc_hits_keys) 90 return self._valid_keys 91 92 93 class Reader(AanetKeys): I think we should drop
aanet
andjpp
from our namings and useMC
andDAQ
instead, what do you think? This would make it a bit easier to understand for people (and makes it even more obvious that we are not related to them). also Aart says that he does not really like that the files are called "aanet" files.changed this line in version 16 of the diff
46 129 not contain data. Therefore, the keys corresponding to these fake 47 130 branches are not read. 48 131 """ 49 if key not in self.keys() and not isinstance(key, int): 132 if key not in self.valid_keys and not isinstance(key, int): changed this line in version 16 of the diff
- Resolved by Zineb Aly
- Resolved by Zineb Aly
55 return len(self.lazy_data) 135 return self._lazy_data[key] 56 136 57 def __repr__(self): 58 return '\n'.join([ 59 "Number of events: {}".format(self.__len__()), 60 "Events keys are:\n\t" + '\n\t'.join(self.events_keys), 61 "Hits keys are:\n\t" + '\n\t'.join(self.hits_keys), 62 "Tracks keys are:\n\t" + '\n\t'.join(self.tracks_keys), 63 "Mc hits keys are:\n\t" + '\n\t'.join(self.mc_hits_keys), 64 "Mc tracks keys are:\n\t" + '\n\t'.join(self.mc_tracks_keys) 65 ]) 66 137 67 def keys(self): 68 """constructs a list of all valid keys to be read from an Aanet event file. 138 class AanetReader(AanetKeys): changed this line in version 16 of the diff
- Resolved by Zineb Aly
- Resolved by Zineb Aly
- Resolved by Zineb Aly
- Resolved by Zineb Aly
- Resolved by Zineb Aly
- Resolved by Zineb Aly
- Resolved by Zineb Aly
- Resolved by Zineb Aly
242 "{:15} {:^10} {:>10}".format(k, ':', str(v)) 243 for k, v in zip(self._keys, self._values) 244 ]) 245 246 def __repr__(self): 247 return str(self) 248 249 250 class AanetHits: 251 "wrapper for Aanet hits, manages the display of all hits in one event" 252 253 def __init__(self, keys, values): # values is a list of lists 254 self._keys = keys # list of keys 255 self._values = values 256 for k, v in zip(self._keys, self._values): 257 setattr(self, k.split('hits.')[1].replace('.', '_'), v) changed this line in version 16 of the diff
- Resolved by Zineb Aly
- Resolved by Zineb Aly