Update NixRawIO to strictly follow RawIO data structure
This PR rewrites the IO to read only data that follow the RawIO restrictions. For loading old data autogenerate_* keywords were introduced to permit loading data, but ignoring inconsistent channel / unit names. Since there is no structural relation between blocks in nix, it is only possible to load a single block at time. The substructure of that block has to follow the rawio constraints.
This PR is requires test files added in https://gin.g-node.org/NeuralEnsemble/ephy_testing_data/pulls/100 .
@Kleinjohann Can you test this implementation with some of your nix files?
With https://gin.g-node.org/NeuralEnsemble/ephy_testing_data/pulls/100 merged, tests are passing now.
@Kleinjohann Can you test this implementation with some of your nix files?
Hi! Thanks for the work! I tested it with our files and it works. Initialising the IO and lazy-loading a block takes quite long, but everything seems to work.
Todos:
- [ ] Improve
parse_headerruntime
@JuliaSprenger do you want to implement your "todo" item, or shall we merge now and fix that later?