-
Notifications
You must be signed in to change notification settings - Fork 63
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
Support pickling of some objects #97
Conversation
bf5d3d2
to
c73cadb
Compare
Hi @GodTamIt Thank you for this! A few general comments: The maintainers here have very little bandwidth, so larger PRs can take a lot of time to get reviewed. Don't get discouraged if it takes a while, this is normal. Generally speaking, smaller PRs travel exponentially faster than large PRs, in many repos not only this one. The PR includes extra unnecessary changes like renaming I feel like the motivation for supporting pickle feels not yet strong enough to support a change of this size, and the taking on of new dependencies (in my opinion). A use-case would help to understand the motivation better. Is it to be able to move Fruit between processes/machines? Or a distributed system or similar? If we had our documentation already in place I'd ask you to add docs about the pickle feature which would help to explain more, but the docs aren't quite ready yet (#94). This PR adds new dependencies. This will add to the time for review because I will go look at each of the dependencies to look for reasons to reject them. I have a high bar for taking on new dependencies. They are easy to add and very hard to remove. For instance, flexbuffers is a heavy C++ dependency we take on, just to support pickle. I would like us to try harder to make bincode work, or pythonize as suggested in #96? Or perhaps serde_pickle, etc. I see you added the time crate, but seeing as we already have chrono, did you look at chrono::serde? |
Ack. I appreciate the feedback here, and I've removed these changes. In the future, I will try to limit the change to only the necessary changes.
The primary motivation here is to be able to send these types (
Ah, I didn't see the
|
f3c665b
to
8f94c37
Compare
8f94c37
to
2587e57
Compare
2587e57
to
d03c8fb
Compare
d4b821a
to
21cb627
Compare
Thanks for the reviews! This can land whenever |
Fixes #96, supporting serialization via
pythonize
.The (personal) use-case here is to be able to send types across process boundaries (i.e. large batches of
Document
s across to a process pool for some kind of processing).