-
Notifications
You must be signed in to change notification settings - Fork 104
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
Pickling #86
Pickling #86
Conversation
… results afterwards.
This is mainly to show the approach. I think the verbose error message might be overkill but it just shows the flexibility of this pattern.
This is a followup to this pull request: #67 I couldn't figure out how to submit a pull request from my fork of @chrish42 's fork -- seems like I didn't have permission. Anyway, this outlines an approach to pickling, unpickling, and testing. A few questions for @njsmith and @chrish42 :
I think that covers most of the concerns. Does this approach work for you? Any other ideas for how to do this? |
Hm, don't know why the build failed -- looks unrelated to the pull request, though. |
@njsmith , does this look like the right approach to you, or at least close enough to keep moving? Don't want to be pushy but I'd like to either make some progress or talk more about the best way to do this. |
Hi @louispotok. Thanks for taking a stab at this. This is a case where a lot of the discussion was between njs and me in person, so the bug report and pull request don't contain all the design talk that happened. The challenging part for this is less saving a pickle and loading it back in a new version, and more the test infrastructure around it all, that makes sure that we don't accidentally break compatibility, and that if we do, we catch it before the release. And this needs to be very easy to use by the person doing the releases, and by people running tests. So a prototype for this part, that exhibits the qualities described previously, would probably be a better conversation starter for pull request. Once that part is agreed upon and implemented, writing the I'll dig in the coming days and find my notes for my discussions with njs about this, and post more about it all here. But I wanted to at least give a first reply to you here. (I assume njs is busy or otherwise away.) |
Ah! Okay, got it, thanks for the explanation. I'll wait for you to find the In the meanwhile, is there a library you know of that has solved this
|
Hi @louispotok -- thanks for looking at this, and sorry for being slow to respond! The build failures look real, though some of those logs are a bit overwhelming -- I'm not sure what's going on with that. Probably some tweaks to .travis.yml are needed... But the two issues that I noticed skimming though are (1) I'll also hope that @chrish42 manages to find his notes, because I don't remember all those discussions off the top of my head either :-). But definitely we will want some tests that have saved versions of the pickles from older versions to check that they still load, and it would be very nice if these tests were written in a way that allowed us to hit a button and dump a new batch of test pickles into the test directory, so that we don't have to manually add new test cases every time we adjust the pickle format -- does that make sense? |
Closing this, since #104 is implementing the same functionality and I don't intend to pick this back up. |
Took a stab at implementing pickling for EvalFactor. This is mainly to show the approach.
I think the verbose error message might be overkill
but it just shows the flexibility of this pattern.