-
-
Notifications
You must be signed in to change notification settings - Fork 30.4k
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
Deprecate pickle support for itertools #101588
Comments
Hi @rhettinger, would you like a hand on this? |
@JosephSBoyle I am already working on a patch for this issue. Please find a different issue to work on. |
Thanks for working on this. When the PR is ready for review, please assign to me :-) |
@JosephSBoyle Do you pick up this task? |
I still plan to create a pull request for this issue (within the next two weeks, hopefully). |
Hi @rhettinger, I'd be happy to work on this. @ZackerySpytz, perhaps we could work together somehow? Up to you - I appreciate that you were working on this before I volunteered to help. |
I was about to use the pickling feature on my end, and I wouldn't have noticed this had I not checked in the doc, noticed it wasn't there and propose it to be in the issue above. |
@JosephSBoyle You no longer need to wait. There is no particular reason for @ZackerySpytz to reserve this one. There are plenty of other open bugs. |
Sure, @rhettinger. Where would you recommend starting on this? |
Thomas, can this deprecation still go into 3.12? It deprecates an undocumented feature. |
It may be undocumented but pickle use is so viral, it's very likely depended on without people even knowing :) Let's get the deprecation into beta 2 if we can (it's scheduled for next week), but given that it's not actually problematic and just something we don't want to support, I would suggest holding back on removing it until we have a clearer picture of what it would break. |
…ythonGH-104965) (cherry picked from commit 402ee5a) Co-authored-by: Raymond Hettinger <rhettinger@users.noreply.github.com>
I missed when this was deprecated, but I support this. It was inefficient, it leaked internal state, and it often not worked as expected for complex iterators like Should not this also be deprecated for builtins |
Pickle support was long ago added to some itertools. It was done mostly to support an atypical use case for a single company. It was implemented in a very inefficient manner, essentially replaying iteration from the beginning to the mid-stream state where it was frozen. The implementation was of low quality and had many bugs. Also, it was not a documented or advertised feature. Newer itertools don't support pickling and no one has noticed or cared. The popular third-party package
more-itertools
is implemented with generators which do not have pickle support — again, none of their users seems to have noticed or cared.IMO, this is just cruft that has made maintenance more difficult and we should get rid of it. As an undocumented feature, we could just remove it directly. But to be on the safe side, we can go through a deprecation cycle.
Linked PRs
The text was updated successfully, but these errors were encountered: