| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
|
Is this covered by ‘classes accessible from the top level of a module’? For example, NotImplemented isn’t contained in this list. Perhaps the ‘special’ thing about Ellipsis is the relation to ...? A |
Sorry, something went wrong.
|
Oh, I'd rather add NotImplemented too, thanks for the reminder! Just checked, and it's picklable as well. Neither Ellipsis nor NotImplemented are covered by "classes accessible from..." at least because they are not classes... These five builtin singletons (with None, True, and False) are special due to their nature. In fact ... and NotImplemented are covered by "instances of such classes whose the result of calling __getstate__() is picklable", but this finding requires treating them in slightly unusual way (Ellipsis is not "instance of type types.EllipsisType" from the developer point of view, but a builtin truthy literal singleton, and the same logic applies to NotImplemented - instance of types.NotImplementedType). |
Sorry, something went wrong.
Just added a review suggestion on that point. Good points about classes vs singleton instances of the types! A |
Sorry, something went wrong.
There was a problem hiding this comment.
If we're documenting this behaviour, ideally we should make sure it's tested as well.
Sorry, something went wrong.
|
Sorry for having abandoned this PR for a while. All these cases (both NotImplemented and Ellipsis) are already covered by tests introduced in BPO6477 9 years ago together with None pickling test. cpython/Lib/test/pickletester.py Lines 1976 to 1983 in d08d49d |
Sorry, something went wrong.
|
@hauntsaninja I've merged HEAD as the branch was out-of-date, so the checks would never succeed (& hence auto-merge would never happen) A |
Sorry, something went wrong.
|
Thanks @sterliakov for the PR, and @hauntsaninja for merging it 🌮🎉.. I'm working now to backport this PR to: 3.11, 3.12. |
Sorry, something went wrong.
|
GH-108661 is a backport of this pull request to the 3.12 branch. |
Sorry, something went wrong.
(cherry picked from commit 14ec0bb) Co-authored-by: sterliakov <50529348+sterliakov@users.noreply.github.com>
|
GH-108662 is a backport of this pull request to the 3.11 branch. |
Sorry, something went wrong.
(cherry picked from commit 14ec0bb) Co-authored-by: sterliakov <50529348+sterliakov@users.noreply.github.com>
* main: pythongh-108520: Fix bad fork detection in nested multiprocessing use case (python#108568) pythongh-108590: Revert pythongh-108657 (commit 400a1ce) (python#108686) pythongh-108494: Argument Clinic: Document how to generate code that uses the limited C API (python#108584) Document Python build requirements (python#108646) pythongh-101100: Fix Sphinx warnings in the Logging Cookbook (python#108678) Fix typo in multiprocessing docs (python#108666) pythongh-108669: unittest: Fix documentation for TestResult.collectedDurations (python#108670) pythongh-108590: Fix sqlite3.iterdump for invalid Unicode in TEXT columns (python#108657) Revert "pythongh-103224: Use the realpath of the Python executable in `test_venv` (pythonGH-103243)" (pythonGH-108667) pythongh-106320: Remove private _Py_ForgetReference() (python#108664) Mention Ellipsis pickling in the docs (python#103660) Revert "Use non alternate name for Kyiv (pythonGH-108533)" (pythonGH-108649) pythongh-108278: Deprecate passing the first param of sqlite3.Connection callback APIs by keyword (python#108632) pythongh-108455: peg_generator: install two stubs packages before running mypy (python#108637) pythongh-107801: Improve the accuracy of io.IOBase.seek docs (python#108268)
| Back | FazBrowse Home | New Git URL |
I literally came to docs to check if Ellipsis can be pickled and unpickled, but had to try it in REPL instead. This micro PR updates the documentation page to mention that Ellipsis is picklable. (no issue code, since this is a minor doc-only change)
Needs backport to all maintained versions, because this behaviour did not change (at least it's picklable in versions 3.7 to 3.12, I haven't checked earlier versions).