Refactor offline
This refactoring includes some slicing and performance improvement attempts.
The slicing is still experimental and has some flaws:
-
fancy indexing over thousands of elements might be horrible slow, eg f.events.tracks[idx_list, 0]whereidx_listis a huge list of indices -
trivial problem of iterating: for track in f.evens.tracksdoes not stop after the last element -
meaningless indexing: f.events[5][23][420]is simplyf.events[420]since the index/slice is not chained but overwritten when propagated. We need custom checks whether it makes sense-
events are flat lists, so [x][y]does not make sense, it should throw an error -
f.events[5:23][4]should effectively be the same asf.events[9]due to chaining of slice/index
-
Edited by Tamas Gal