summaryrefslogtreecommitdiffstats
path: root/Lib/pickle.py
Commit message (Collapse)AuthorAgeFilesLines
* bpo-11572: Make minor improvements to copy module (GH-8208)Berker Peksag2018-07-091-5/+1
| | | | | | | * When doing getattr lookups with a default of "None", it now uses an "is" comparison against None which is more correct * Removed outdated code Patch by Brandon Rhodes.
* bpo-23403: Bump pickle.DEFAULT_PROTOCOL to 4 (#6355)Łukasz Langa2018-04-041-5/+5
| | | This makes performance better and produces shorter pickles. This change is backwards compatible up to the oldest currently supported version of Python (3.4).
* bpo-32503: Avoid creating too small frames in pickles. (#5127)Serhiy Storchaka2018-01-201-5/+7
|
* bpo-31993: Do not allocate large temporary buffers in pickle dump. (#4353)Olivier Grisel2018-01-061-10/+40
| | | | | | | | | | | | | | | | | The picklers do no longer allocate temporary memory when dumping large bytes and str objects into a file object. Instead the data is directly streamed into the underlying file object. Previously the C implementation would buffer all content and issue a single call to file.write() at the end of the dump. With protocol 4 this behavior has changed to issue one call to file.write() per frame. The Python pickler with protocol 4 now dumps each frame content as a memoryview to an IOBytes instance that is never reused and the memoryview is no longer released after the call to write. This makes it possible for the file object to delay access to the memoryview of previous frames without forcing any additional memory copy as was already possible with the C pickler.
* bpo-32037: Use the INT opcode for 32-bit integers in protocol 0 pickles. (#4407)Serhiy Storchaka2017-11-161-1/+4
|
* bpo-29762: More use "raise from None". (#569)Serhiy Storchaka2017-04-051-3/+3
| | | This hides unwanted implementation details from tracebacks.
* Issue #29368: The extend() method is now called instead of the append()Serhiy Storchaka2017-02-021-5/+12
| | | | | method when unpickle collections.deque and other list-like objects. This can speed up unpickling to 2 times.
* Issue #17711: Fixed unpickling by the persistent ID with protocol 0.Serhiy Storchaka2016-07-171-2/+10
|\ | | | | | | Original patch by Alexandre Vassalotti.
| * Issue #17711: Fixed unpickling by the persistent ID with protocol 0.Serhiy Storchaka2016-07-171-2/+10
| | | | | | | | Original patch by Alexandre Vassalotti.
* | Issue #27076: Merge spelling from 3.5Martin Panter2016-05-261-1/+1
|\ \ | |/
| * Issue #27076: Doc, comment and tests spelling fixesMartin Panter2016-05-261-1/+1
| | | | | | | | Most fixes to Doc/ and Lib/ directories by Ville Skyttä.
* | Issue #25761: Improved detecting errors in broken pickle data.Serhiy Storchaka2015-12-061-52/+36
| |
* | Removed debugging output of exception raised by __reduce__ method.Serhiy Storchaka2015-11-301-7/+1
|\ \ | |/
| * Removed debugging output of exception raised by __reduce__ method.Serhiy Storchaka2015-11-301-7/+1
| |\
| | * Removed debugging output of exception raised by __reduce__ method.Serhiy Storchaka2015-11-301-7/+1
| | |
* | | Issue #25523: Merge a-to-an corrections from 3.5Martin Panter2015-11-021-2/+2
|\ \ \ | |/ /
| * | Issue #25523: Merge "a" to "an" fixes from 3.4 into 3.5Martin Panter2015-11-021-2/+2
| |\ \ | | |/
| | * Issue #25523: Correct "a" article to "an" articleMartin Panter2015-11-021-2/+2
| | | | | | | | | | | | | | | | | | This changes the main documentation, doc strings, source code comments, and a couple error messages in the test suite. In some cases the word was removed or edited some other way to fix the grammar.
* | | Issue #24164: Objects that need calling ``__new__`` with keyword arguments,Serhiy Storchaka2015-10-101-5/+12
|/ / | | | | | | can now be pickled using pickle protocols older than protocol version 4.
* | Issue #25262. Added support for BINBYTES8 opcode in Python implementation ofSerhiy Storchaka2015-09-291-0/+8
|\ \ | |/ | | | | | | unpickler. Highest 32 bits of 64-bit size for BINUNICODE8 and BINBYTES8 opcodes no longer silently ignored on 32-bit platforms in C implementation.
| * Issue #25262. Added support for BINBYTES8 opcode in Python implementation ofSerhiy Storchaka2015-09-291-0/+8
| | | | | | | | | | unpickler. Highest 32 bits of 64-bit size for BINUNICODE8 and BINBYTES8 opcodes no longer silently ignored on 32-bit platforms in C implementation.
* | Issue #23611: Serializing more "lookupable" objects (such as unbound methodsSerhiy Storchaka2015-03-311-15/+18
|/ | | | or nested classes) now are supported with pickle protocols < 4.
* Issue #18473: Fixed 2to3 and 3to2 compatible pickle mappings.Serhiy Storchaka2015-03-311-2/+2
| | | | | | | | Fixed ambigious reverse mappings. Added many new mappings. Import mapping is no longer applied to modules already mapped with full name mapping. Added tests for compatible pickling and unpickling and for consistency of _compat_pickle mappings.
* Issue #23094: Fixed readline with frames in Python implementation of pickle.Serhiy Storchaka2015-01-261-1/+1
|
* Issue #21905: Avoid RuntimeError in pickle.whichmodule() when sys.modules is ↵Antoine Pitrou2014-10-041-1/+3
| | | | | | mutated while iterating. Patch by Olivier Grisel.
* Issue #20976: pyflakes: Remove unused importsVictor Stinner2014-03-201-1/+1
|
* Issue #6784: Strings from Python 2 can now be unpickled as bytes objects.Alexandre Vassalotti2013-12-071-29/+42
| | | | | | | Initial patch by Merlijn van Deen. I've added a few unrelated docstring fixes in the patch while I was at it, which makes the documentation for pickle a bit more consistent.
* Issue #6477: Merge with 3.3.Alexandre Vassalotti2013-12-011-1/+10
|\
| * Issue #6477: Added support for pickling the types of built-in singletons.Alexandre Vassalotti2013-12-011-1/+10
| |
* | Make Ellipsis and NotImplemented picklable through the reduce protocol.Alexandre Vassalotti2013-11-241-8/+0
| |
* | Make built-in methods picklable through the reduce protocol.Alexandre Vassalotti2013-11-241-8/+1
| |
* | Make framing optional in pickle protocol 4.Alexandre Vassalotti2013-11-241-71/+59
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This will allow us to control in the future whether to use framing or not. For example, we may want to turn it off for tiny pickle where it doesn't help. The change also improves performance slightly: ### fastpickle ### Min: 0.608517 -> 0.557358: 1.09x faster Avg: 0.798892 -> 0.694738: 1.15x faster Significant (t=3.45) Stddev: 0.17145 -> 0.12704: 1.3496x smaller Timeline: http://goo.gl/3xQE1J ### pickle_dict ### Min: 0.669920 -> 0.615271: 1.09x faster Avg: 0.733633 -> 0.645058: 1.14x faster Significant (t=5.05) Stddev: 0.12041 -> 0.02961: 4.0662x smaller Timeline: http://goo.gl/LpLSXI ### pickle_list ### Min: 0.397583 -> 0.368112: 1.08x faster Avg: 0.412784 -> 0.397223: 1.04x faster Significant (t=2.78) Stddev: 0.01518 -> 0.03653: 2.4068x larger Timeline: http://goo.gl/v39E59 ### unpickle_list ### Min: 0.692935 -> 0.594870: 1.16x faster Avg: 0.730012 -> 0.628395: 1.16x faster Significant (t=17.76) Stddev: 0.02720 -> 0.02995: 1.1012x larger Timeline: http://goo.gl/2P9AEt The following not significant results are hidden, use -v to show them: fastunpickle.
* | Issue #17810: Implement PEP 3154, pickle protocol 4.Antoine Pitrou2013-11-231-154/+428
| | | | | | | | Most of the work is by Alexandre.
* | Issue #18783: Removed existing mentions of Python long type in docstrings,Serhiy Storchaka2013-08-271-2/+2
|\ \ | |/ | | | | error messages and comments.
| * Issue #18783: Removed existing mentions of Python long type in docstrings,Serhiy Storchaka2013-08-271-2/+2
| | | | | | | | error messages and comments.
* | Issue #18200: Back out usage of ModuleNotFoundError (8d28d44f3a9a)Brett Cannon2013-07-041-2/+2
| |
* | Issue #18200: Update the stdlib (except tests) to useBrett Cannon2013-06-141-2/+2
| | | | | | | | ModuleNotFoundError.
* | Merge 3.3Alexandre Vassalotti2013-04-201-2/+8
|\ \ | |/
| * Isuse #17720: Fix APPENDS handling in the Python implementation of UnpicklerAlexandre Vassalotti2013-04-201-2/+8
| | | | | | | | to correctly process the opcode when it is used on non-list objects.
* | Make C and Python implementations of pickle load STRING opcodes the same way.Alexandre Vassalotti2013-04-161-6/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | The C version tried to remove trailing whitespace between the last quote and the newline character. I am not sure why it had this because pickle never generated such pickles---for this to happen repr(some_string) would need to return trailing whitespace. It was maybe there to make it easier for people to write pickles in text editors. Anyhow, the Python version doesn't do this so there is no point keeping this around anymore. Also, I've changed the exception raised when a bad pickle is encountered. Again this unlikely to make much difference to anyone though it does make testing slightly nicer for us.
* | Issue #17710: Fix pickle raising a SystemError on bogus input.Antoine Pitrou2013-04-151-1/+1
|\ \ | |/
| * Issue #17710: Fix pickle raising a SystemError on bogus input.Antoine Pitrou2013-04-151-1/+1
| |
* | Closes #16551. Cleanup pickle.py.Serhiy Storchaka2013-04-141-138/+85
| |
* | Style cleanups for pickle.py and _pickle.Alexandre Vassalotti2013-04-141-5/+7
|/
* Issue #12848: The pure Python pickle implementation now treats object ↵Antoine Pitrou2012-11-241-13/+26
|\ | | | | | | | | | | lengths as unsigned 32-bit integers, like the C implementation does. Patch by Serhiy Storchaka.
| * Issue #12848: The pure Python pickle implementation now treats object ↵Antoine Pitrou2012-11-241-13/+26
| | | | | | | | | | | | lengths as unsigned 32-bit integers, like the C implementation does. Patch by Serhiy Storchaka.
* | Fixes #13842: cannot pickle Ellipsis or NotImplemented.Łukasz Langa2012-03-121-0/+8
| | | | | | | | Thanks for James Sanders for the bug report and the patch.
* | Issue #14166: Pickler objects now have an optional `dispatch_table` ↵Antoine Pitrou2012-03-041-2/+2
| | | | | | | | | | | | attribute which allows to set custom per-pickler reduction functions. Patch by sbt.
* | Merge 3.2Alexandre Vassalotti2011-12-131-1/+5
|\ \ | |/
| * Issue #13505: Make pickling of bytes object compatible with Python 2.Alexandre Vassalotti2011-12-131-1/+5
| | | | | | | | Initial patch by sbt.