Pierre Glaser 
								
							 
						 
						
							
							
							
							
								
							
							
								289f1f80ee 
								
							 
						 
						
							
							
								
								bpo-35900: Enable custom reduction callback registration in _pickle (GH-12499)  
							
							... 
							
							
							
							Enable custom reduction callback registration for functions and classes in
_pickle.c, using the new Pickler's attribute ``reducer_override``. 
							
						 
						
							2019-05-08 23:08:25 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Pierre Glaser 
								
							 
						 
						
							
							
							
							
								
							
							
								65d98d0f53 
								
							 
						 
						
							
							
								
								bpo-35900: Add a state_setter arg to save_reduce (GH-12588)  
							
							... 
							
							
							
							Allow reduction methods to return a 6-item tuple where the 6th item specifies a
custom state-setting method that's called instead of the regular
``__setstate__`` method. 
							
						 
						
							2019-05-08 21:40:25 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Berker Peksag 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								2708578736 
								
							 
						 
						
							
							
								
								bpo-11572: Make minor improvements to copy module (GH-8208)  
							
							... 
							
							
							
							* 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. 
							
						 
						
							2018-07-09 23:14:54 +03:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Łukasz Langa 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								c51d8c9ba6 
								
							 
						 
						
							
							
								
								bpo-23403: Bump pickle.DEFAULT_PROTOCOL to 4 ( #6355 )  
							
							... 
							
							
							
							This makes performance better and produces shorter pickles. This change is backwards compatible up to the oldest currently supported version of Python (3.4). 
							
						 
						
							2018-04-03 23:06:53 -07:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Serhiy Storchaka 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								1211c9a989 
								
							 
						 
						
							
							
								
								bpo-32503: Avoid creating too small frames in pickles. ( #5127 )  
							
							
							
						 
						
							2018-01-20 16:42:44 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Olivier Grisel 
								
							 
						 
						
							
							
							
							
								
							
							
								3cd7c6e6eb 
								
							 
						 
						
							
							
								
								bpo-31993: Do not allocate large temporary buffers in pickle dump. ( #4353 )  
							
							... 
							
							
							
							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. 
							
						 
						
							2018-01-06 17:18:54 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Serhiy Storchaka 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								3daaafb700 
								
							 
						 
						
							
							
								
								bpo-32037: Use the INT opcode for 32-bit integers in protocol 0 pickles. ( #4407 )  
							
							
							
						 
						
							2017-11-16 09:44:43 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Serhiy Storchaka 
								
							 
						 
						
							
							
							
							
								
							
							
								5affd23e6f 
								
							 
						 
						
							
							
								
								bpo-29762: More use "raise from None". ( #569 )  
							
							... 
							
							
							
							This hides unwanted implementation details from tracebacks. 
							
						 
						
							2017-04-05 09:37:24 +03:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Serhiy Storchaka 
								
							 
						 
						
							
							
							
							
								
							
							
								bee09aecc2 
								
							 
						 
						
							
							
								
								Issue  #29368 : The extend() method is now called instead of the append()  
							
							... 
							
							
							
							method when unpickle collections.deque and other list-like objects.
This can speed up unpickling to 2 times. 
							
						 
						
							2017-02-02 11:12:47 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Serhiy Storchaka 
								
							 
						 
						
							
							
							
							
								
							
							
								3410c01d83 
								
							 
						 
						
							
							
								
								Issue  #17711 : Fixed unpickling by the persistent ID with protocol 0.  
							
							... 
							
							
							
							Original patch by Alexandre Vassalotti. 
							
						 
						
							2016-07-17 11:35:35 +03:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Serhiy Storchaka 
								
							 
						 
						
							
							
							
							
								
							
							
								dec25afab1 
								
							 
						 
						
							
							
								
								Issue  #17711 : Fixed unpickling by the persistent ID with protocol 0.  
							
							... 
							
							
							
							Original patch by Alexandre Vassalotti. 
							
						 
						
							2016-07-17 11:24:17 +03:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Martin Panter 
								
							 
						 
						
							
							
							
							
								
							
							
								3e04d5b306 
								
							 
						 
						
							
							
								
								Issue  #27076 : Merge spelling from 3.5  
							
							
							
						 
						
							2016-05-26 06:03:19 +00:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Martin Panter 
								
							 
						 
						
							
							
							
							
								
							
							
								46f50726a0 
								
							 
						 
						
							
							
								
								Issue  #27076 : Doc, comment and tests spelling fixes  
							
							... 
							
							
							
							Most fixes to Doc/ and Lib/ directories by Ville Skyttä. 
							
						 
						
							2016-05-26 05:35:26 +00:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Serhiy Storchaka 
								
							 
						 
						
							
							
							
							
								
							
							
								59fb6342a4 
								
							 
						 
						
							
							
								
								Issue  #25761 : Improved detecting errors in broken pickle data.  
							
							
							
						 
						
							2015-12-06 22:01:35 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Serhiy Storchaka 
								
							 
						 
						
							
							
							
							
								
							
							
								723e296b3b 
								
							 
						 
						
							
							
								
								Removed debugging output of exception raised by __reduce__ method.  
							
							
							
						 
						
							2015-12-01 00:40:50 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Serhiy Storchaka 
								
							 
						 
						
							
							
							
							
								
							
							
								1f23e238e8 
								
							 
						 
						
							
							
								
								Removed debugging output of exception raised by __reduce__ method.  
							
							
							
						 
						
							2015-12-01 00:39:45 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Serhiy Storchaka 
								
							 
						 
						
							
							
							
							
								
							
							
								a8d83f5fc9 
								
							 
						 
						
							
							
								
								Removed debugging output of exception raised by __reduce__ method.  
							
							
							
						 
						
							2015-12-01 00:39:25 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Martin Panter 
								
							 
						 
						
							
							
							
							
								
							
							
								e56a919100 
								
							 
						 
						
							
							
								
								Issue  #25523 : Merge a-to-an corrections from 3.5  
							
							
							
						 
						
							2015-11-02 04:27:17 +00:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Martin Panter 
								
							 
						 
						
							
							
							
							
								
							
							
								2eb819f7a8 
								
							 
						 
						
							
							
								
								Issue  #25523 : Merge "a" to "an" fixes from 3.4 into 3.5  
							
							
							
						 
						
							2015-11-02 04:04:57 +00:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Martin Panter 
								
							 
						 
						
							
							
							
							
								
							
							
								7462b64911 
								
							 
						 
						
							
							
								
								Issue  #25523 : Correct "a" article to "an" article  
							
							... 
							
							
							
							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. 
							
						 
						
							2015-11-02 03:37:02 +00:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Serhiy Storchaka 
								
							 
						 
						
							
							
							
							
								
							
							
								0d554d7ef1 
								
							 
						 
						
							
							
								
								Issue  #24164 : Objects that need calling `__new__` with keyword arguments,  
							
							... 
							
							
							
							can now be pickled using pickle protocols older than protocol version 4. 
							
						 
						
							2015-10-10 22:42:18 +03:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Serhiy Storchaka 
								
							 
						 
						
							
							
							
							
								
							
							
								525faaeffc 
								
							 
						 
						
							
							
								
								Issue  #25262 . Added support for BINBYTES8 opcode in Python implementation of  
							
							... 
							
							
							
							unpickler.  Highest 32 bits of 64-bit size for BINUNICODE8 and BINBYTES8
opcodes no longer silently ignored on 32-bit platforms in C implementation. 
							
						 
						
							2015-09-29 22:12:29 +03:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Serhiy Storchaka 
								
							 
						 
						
							
							
							
							
								
							
							
								e060619d4b 
								
							 
						 
						
							
							
								
								Issue  #25262 . Added support for BINBYTES8 opcode in Python implementation of  
							
							... 
							
							
							
							unpickler.  Highest 32 bits of 64-bit size for BINUNICODE8 and BINBYTES8
opcodes no longer silently ignored on 32-bit platforms in C implementation. 
							
						 
						
							2015-09-29 22:10:07 +03:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Serhiy Storchaka 
								
							 
						 
						
							
							
							
							
								
							
							
								58e4134a1c 
								
							 
						 
						
							
							
								
								Issue  #23611 : Serializing more "lookupable" objects (such as unbound methods  
							
							... 
							
							
							
							or nested classes) now are supported with pickle protocols < 4. 
							
						 
						
							2015-03-31 14:07:24 +03:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Serhiy Storchaka 
								
							 
						 
						
							
							
							
							
								
							
							
								bfe1824d08 
								
							 
						 
						
							
							
								
								Issue  #18473 : Fixed 2to3 and 3to2 compatible pickle mappings.  
							
							... 
							
							
							
							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. 
							
						 
						
							2015-03-31 13:12:37 +03:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Serhiy Storchaka 
								
							 
						 
						
							
							
							
							
								
							
							
								21d7533c4c 
								
							 
						 
						
							
							
								
								Issue  #23094 : Fixed readline with frames in Python implementation of pickle.  
							
							
							
						 
						
							2015-01-26 10:37:01 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Antoine Pitrou 
								
							 
						 
						
							
							
							
							
								
							
							
								e1618491ad 
								
							 
						 
						
							
							
								
								Issue  #21905 : Avoid RuntimeError in pickle.whichmodule() when sys.modules is mutated while iterating.  
							
							... 
							
							
							
							Patch by Olivier Grisel. 
							
						 
						
							2014-10-04 22:15:27 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Victor Stinner 
								
							 
						 
						
							
							
							
							
								
							
							
								7fa767e517 
								
							 
						 
						
							
							
								
								Issue  #20976 : pyflakes: Remove unused imports  
							
							
							
						 
						
							2014-03-20 09:16:38 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Alexandre Vassalotti 
								
							 
						 
						
							
							
							
							
								
							
							
								d05c9ff845 
								
							 
						 
						
							
							
								
								Issue  #6784 : Strings from Python 2 can now be unpickled as bytes objects.  
							
							... 
							
							
							
							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. 
							
						 
						
							2013-12-07 01:09:27 -08:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Alexandre Vassalotti 
								
							 
						 
						
							
							
							
							
								
							
							
								3c23e7a5dc 
								
							 
						 
						
							
							
								
								Issue  #6477 : Merge with 3.3.  
							
							
							
						 
						
							2013-11-30 16:21:20 -08:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Alexandre Vassalotti 
								
							 
						 
						
							
							
							
							
								
							
							
								19b6fa6ebb 
								
							 
						 
						
							
							
								
								Issue  #6477 : Added support for pickling the types of built-in singletons.  
							
							
							
						 
						
							2013-11-30 16:06:39 -08:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Alexandre Vassalotti 
								
							 
						 
						
							
							
							
							
								
							
							
								c49477b184 
								
							 
						 
						
							
							
								
								Make Ellipsis and NotImplemented picklable through the reduce protocol.  
							
							
							
						 
						
							2013-11-24 02:53:45 -08:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Alexandre Vassalotti 
								
							 
						 
						
							
							
							
							
								
							
							
								4c05d3bc56 
								
							 
						 
						
							
							
								
								Make built-in methods picklable through the reduce protocol.  
							
							
							
						 
						
							2013-11-24 02:41:05 -08:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Alexandre Vassalotti 
								
							 
						 
						
							
							
							
							
								
							
							
								b6a2f2a0d1 
								
							 
						 
						
							
							
								
								Make framing optional in pickle protocol 4.  
							
							... 
							
							
							
							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. 
							
						 
						
							2013-11-23 20:30:03 -08:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Antoine Pitrou 
								
							 
						 
						
							
							
							
							
								
							
							
								c9dc4a2a8a 
								
							 
						 
						
							
							
								
								Issue  #17810 : Implement PEP 3154, pickle protocol 4.  
							
							... 
							
							
							
							Most of the work is by Alexandre. 
							
						 
						
							2013-11-23 18:59:12 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Serhiy Storchaka 
								
							 
						 
						
							
							
							
							
								
							
							
								46e1ce214b 
								
							 
						 
						
							
							
								
								Issue  #18783 : Removed existing mentions of Python long type in docstrings,  
							
							... 
							
							
							
							error messages and comments. 
							
						 
						
							2013-08-27 20:17:03 +03:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Serhiy Storchaka 
								
							 
						 
						
							
							
							
							
								
							
							
								9594942716 
								
							 
						 
						
							
							
								
								Issue  #18783 : Removed existing mentions of Python long type in docstrings,  
							
							... 
							
							
							
							error messages and comments. 
							
						 
						
							2013-08-27 19:40:23 +03:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Brett Cannon 
								
							 
						 
						
							
							
							
							
								
							
							
								cd171c8e92 
								
							 
						 
						
							
							
								
								Issue  #18200 : Back out usage of ModuleNotFoundError (8d28d44f3a9a)  
							
							
							
						 
						
							2013-07-04 17:43:24 -04:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Brett Cannon 
								
							 
						 
						
							
							
							
							
								
							
							
								0a140668fa 
								
							 
						 
						
							
							
								
								Issue  #18200 : Update the stdlib (except tests) to use  
							
							... 
							
							
							
							ModuleNotFoundError. 
							
						 
						
							2013-06-13 20:57:26 -04:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Alexandre Vassalotti 
								
							 
						 
						
							
							
							
							
								
							
							
								f3bc946628 
								
							 
						 
						
							
							
								
								Merge 3.3  
							
							
							
						 
						
							2013-04-20 13:25:55 -07:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Alexandre Vassalotti 
								
							 
						 
						
							
							
							
							
								
							
							
								1f7492c28a 
								
							 
						 
						
							
							
								
								Isuse  #17720 : Fix APPENDS handling in the Python implementation of Unpickler  
							
							... 
							
							
							
							to correctly process the opcode when it is used on non-list objects. 
							
						 
						
							2013-04-20 13:19:46 -07:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Alexandre Vassalotti 
								
							 
						 
						
							
							
							
							
								
							
							
								7c5e094cbf 
								
							 
						 
						
							
							
								
								Make C and Python implementations of pickle load STRING opcodes the same way.  
							
							... 
							
							
							
							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. 
							
						 
						
							2013-04-15 23:14:55 -07:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Antoine Pitrou 
								
							 
						 
						
							
							
							
							
								
							
							
								af94051a93 
								
							 
						 
						
							
							
								
								Issue  #17710 : Fix pickle raising a SystemError on bogus input.  
							
							
							
						 
						
							2013-04-15 21:55:14 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Antoine Pitrou 
								
							 
						 
						
							
							
							
							
								
							
							
								3034efdd29 
								
							 
						 
						
							
							
								
								Issue  #17710 : Fix pickle raising a SystemError on bogus input.  
							
							
							
						 
						
							2013-04-15 21:51:09 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Serhiy Storchaka 
								
							 
						 
						
							
							
							
							
								
							
							
								a3e32c92cf 
								
							 
						 
						
							
							
								
								Closes   #16551 . Cleanup pickle.py.  
							
							
							
						 
						
							2013-04-14 13:37:02 +03:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Alexandre Vassalotti 
								
							 
						 
						
							
							
							
							
								
							
							
								cc7571727f 
								
							 
						 
						
							
							
								
								Style cleanups for pickle.py and _pickle.  
							
							
							
						 
						
							2013-04-14 02:25:10 -07:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Antoine Pitrou 
								
							 
						 
						
							
							
							
							
								
							
							
								9982c53c2f 
								
							 
						 
						
							
							
								
								Issue  #12848 : The pure Python pickle implementation now treats object lengths as unsigned 32-bit integers, like the C implementation does.  
							
							... 
							
							
							
							Patch by Serhiy Storchaka. 
							
						 
						
							2012-11-24 20:41:34 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Antoine Pitrou 
								
							 
						 
						
							
							
							
							
								
							
							
								bf6ecf92fa 
								
							 
						 
						
							
							
								
								Issue  #12848 : The pure Python pickle implementation now treats object lengths as unsigned 32-bit integers, like the C implementation does.  
							
							... 
							
							
							
							Patch by Serhiy Storchaka. 
							
						 
						
							2012-11-24 20:40:21 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Łukasz Langa 
								
							 
						 
						
							
							
							
							
								
							
							
								f3078fbee2 
								
							 
						 
						
							
							
								
								Fixes   #13842 : cannot pickle Ellipsis or NotImplemented.  
							
							... 
							
							
							
							Thanks for James Sanders for the bug report and the patch. 
							
						 
						
							2012-03-12 19:46:12 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Antoine Pitrou 
								
							 
						 
						
							
							
							
							
								
							
							
								8d3c290de4 
								
							 
						 
						
							
							
								
								Issue  #14166 : Pickler objects now have an optional dispatch_table attribute which allows to set custom per-pickler reduction functions.  
							
							... 
							
							
							
							Patch by sbt. 
							
						 
						
							2012-03-04 18:31:48 +01:00