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_list
is a huge list of indices -
trivial problem of iterating: for track in f.evens.tracks
does 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