-
Notifications
You must be signed in to change notification settings - Fork 248
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[WIP] Proxy object implementation and new lazy mode implementation. #461
[WIP] Proxy object implementation and new lazy mode implementation. #461
Conversation
Hello @samuelgarcia! Thanks for updating the PR.
Comment last updated on January 14, 2019 at 14:56 Hours UTC |
@apdavison @JuliaSprenger : the proof of concept for AnalogSignalProxy is almost done. Could you have a very short look ? The easier to anderstand the logic is to read tests : neo/test/iotest/basefromrawio/test_proxyobjects.py When all the proxy will be done I will be able to rewrite enterily the BaseFromRaw with a very simpler code and the new lazy mode system. I known that it is was not in the top priority but the sooner we have this the less we will need to go back to each IO when cleanning. |
@JuliaSprenger @apdavison: except my new friend pep8 proxy object themself are done. BaseFromRaw do not use them for the moment. My plan is :
This would mean that proxy object would be in 0.7 alongside with array_annotations. What do you think ? |
Technically I don't see any problem in introducing proxy objects and array_annotations at the same time. However, I think in the original plan we wanted to combine the major changes (object model + proxy object) in version 0.8, since then 0.7 would still be (more or less) compatible with 0.6. |
Yes it was the original plan we discuss. |
…-neo into lazy_load_with_proxy
* Some doc aoudn this. * Some basic tests around this.
@JuliaSprenger @apdavison : I have implemented the new lazy=True. I have put some example in doc. If someone have time for a global comments, you should start with BaseFromRaw class that have been simplified a lot. Note that **magnitude_mode='raw'/'rescale' will be done in a separate PR because it need and extention of rawio API and so modification in all RawIO classes. pep8 will be done!! |
@JuliaSprenger @mdenker @bjoern1001001 : BaseFromRaw.read_segment(time_slice=buggy_slice) use to be allowed at least in 0.6 for many IOs (and in 0.5.x for Blackrock). I am not very fan of this feature, I would prefer a clear error. If you still need to support buggy_slice, we can make a hack in BaseFromRaw.read_segment (aka transform the slice if buggy) but I prefer to avoid to do it directly in proxyobjects. In current PR, neo/test/iotest/test_blackrockio.py trig an error in cricle-ci because bugy_slice is supposed to work and it is not the case for now. |
@JuliaSprenger : in blackrock I have a new error in circle-ci that has nothing to do with this PR. This occur only for one units and for one version file (2.1).
the -8 could be not accurate I am wondering why this do not raise error before ?!!??? If you have time could you check ? |
And the most strange test fail is this one:
waveform shape is not the same as in matlab version. Could it be a time limit ? EDIT : this is fixed. |
Now explicit np.ndarray case.
…-neo into lazy_load_with_proxy
@samuelgarcia: Regarding the |
OK I will add this keyword. My favorite is For the default behavior, idealy it would be
What do you think ? |
|
Done. |
I am surprised the tests are not failing due to this:
Locally I need to fix this before I can import eg axonio from an installed version of neo. How is circleci doing this? |
Yep. This is strange, I must be lucky. About this, @apdavison mentioned that he would prefer avoid this subdirectory. Do I move back:
What do you think ? |
I am happy with both solutions, so we can follow @apdavison. |
The |
OK. @JuliaSprenger @apdavison @mdenker Then, as we already discuss in codejam, we would work independently on:
|
Any preference for "merge" vs "squash-and-merge"? |
Hi Andrew. |
ok folks, the future is now! |
Champagne. |
@JuliaSprenger : Proof of concept for discussion.
Very first comit.