Neil Schemenauer
eca7ffc61c
Don't skip pickle check_frame_opcodes() (GH-15025)
...
This looks like the only place that proto 4 framing gets exercised
so leave it as part of the PGO task.
2019-07-30 12:08:17 -07:00
Neil Schemenauer
52a48e62c6
bpo-37707: Exclude expensive unit tests from PGO task (GH-15009)
...
Mark some individual tests to skip when --pgo is used. The tests
marked increase the PGO task time significantly and likely don't
help improve optimization of the final executable.
2019-07-30 11:08:18 -07:00
Markus Mohrhard
898318b53d
bpo-37502: handle default parameter for buffers argument of pickle.loads correctly (GH-14593)
2019-07-25 18:00:34 +02:00
Serhiy Storchaka
38ab7d4721
bpo-31829: Make protocol 0 pickles be loadable in text mode in Python 2. (GH-11859)
...
Escape ``\r``, ``\0`` and ``\x1a`` (end-of-file on Windows) in Unicode strings.
2019-05-31 11:29:39 +03:00
Antoine Pitrou
91f4380ced
bpo-36785: PEP 574 implementation (GH-7076)
2019-05-26 17:10:09 +02:00
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
penguindustin
9646630895
bpo-36766: Typos in docs and code comments (GH-13116)
2019-05-06 14:57:17 -04:00
Anthony Sottile
8377cd4fcd
Clean up code which checked presence of os.{stat,lstat,chmod} ( #11643 )
2019-02-25 23:32:27 +01:00
tjb900
4371c0a9c0
bpo-34572: change _pickle unpickling to use import rather than retrieving from sys.modules (GH-9047)
...
Fix C implementation of pickle.loads to use importlib's locking mechanisms, and thereby avoid using partially-loaded modules.
2019-02-18 15:30:51 +00:00
Serhiy Storchaka
c869529ea9
bpo-33209: End framing at the end of C implementation of pickle.Pickler.dump(). (GH-6363)
2018-04-03 14:11:27 -07:00
Serhiy Storchaka
1211c9a989
bpo-32503: Avoid creating too small frames in pickles. ( #5127 )
2018-01-20 16:42:44 +02:00
Serhiy Storchaka
5b76bdba07
bpo-31993: Do not use memoryview when pickle large strings. ( #5154 )
...
PyMemoryView_FromMemory() created a memoryview referring to
the internal data of the string. When the string is destroyed
the memoryview become referring to a freed memory.
2018-01-13 00:28:31 +02:00
Serhiy Storchaka
0a2da50e18
bpo-31993: Do not create frames for large bytes and str objects ( #5114 )
...
when serialize into memory buffer with C pickle implementations.
This optimization already is performed when serialize into memory
with Python pickle implementations or into a file with both
implementations.
2018-01-11 13:03:20 +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
6545256df9
bpo-32032: Test both implementations of module-level pickle API. ( #4401 )
2017-11-15 14:01:08 +02:00
Victor Stinner
8c663fd60e
Replace KB unit with KiB ( #4293 )
...
kB (*kilo* byte) unit means 1000 bytes, whereas KiB ("kibibyte")
means 1024 bytes. KB was misused: replace kB or KB with KiB when
appropriate.
Same change for MB and GB which become MiB and GiB.
Change the output of Tools/iobench/iobench.py.
Round also the size of the documentation from 5.5 MB to 5 MiB.
2017-11-08 14:44:44 -08: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
Serhiy Storchaka
96c058b4de
Fixed typo in pickle tests.
2016-03-04 09:40:03 +02:00
Serhiy Storchaka
be70002866
Fixed typo in pickle tests.
2016-03-04 09:39:47 +02:00
Serhiy Storchaka
58f8833e4c
Make catched exception more specific and correct a comment.
2015-12-30 21:00:29 +02:00
Serhiy Storchaka
beb652ccc1
Make catched exception more specific and correct a comment.
2015-12-30 21:00:08 +02:00
Serhiy Storchaka
59fb6342a4
Issue #25761 : Improved detecting errors in broken pickle data.
2015-12-06 22:01:35 +02:00
Serhiy Storchaka
92d5fbaf8f
Issue #25761 : Added more test cases for testing unpickling broken data.
...
Output raised exception at verbose level 2 (-vv).
2015-11-29 13:14:00 +02:00
Serhiy Storchaka
3c49710e9f
Issue #25761 : Added more test cases for testing unpickling broken data.
...
Output raised exception at verbose level 2 (-vv).
2015-11-29 13:13:24 +02:00
Serhiy Storchaka
7279befccb
Issue #25761 : Added more test cases for testing unpickling broken data.
...
Output raised exception at verbose level 2 (-vv).
2015-11-29 13:12:10 +02:00
Serhiy Storchaka
b1ce30281d
Issue #23914 : Fixed SystemError raised by unpickler on broken pickle data.
2015-11-23 15:20:21 +02:00
Serhiy Storchaka
4409c6cfae
Issue #23914 : Fixed SystemError raised by unpickler on broken pickle data.
2015-11-23 15:19:23 +02:00
Serhiy Storchaka
e9b3074cf9
Issue #23914 : Fixed SystemError raised by unpickler on broken pickle data.
2015-11-23 15:17:43 +02:00
Serhiy Storchaka
41a87637c0
Issue #892902 : Added new tests for pickling recursive collections.
2015-11-07 11:17:15 +02:00
Serhiy Storchaka
838b7cc0e7
Issue #892902 : Added new tests for pickling recursive collections.
2015-11-07 11:17:02 +02:00
Serhiy Storchaka
608c213530
Issue #892902 : Added new tests for pickling recursive collections.
2015-11-07 11:16:10 +02: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
cb764960c9
Added additional unpickling tests.
2015-09-29 15:50:45 +03:00
Serhiy Storchaka
b8b951f6ee
Added additional unpickling tests.
2015-09-29 15:49:58 +03:00
Serhiy Storchaka
104de66b76
Moved unpickling tests with prepickled data to separate class.
2015-09-29 15:34:53 +03:00
Serhiy Storchaka
c6b54b45ea
Moved unpickling tests with prepickled data to separate class.
2015-09-29 15:33:24 +03:00
Benjamin Peterson
b32b998bf7
merge 3.4
2015-07-02 16:58:31 -05:00
Benjamin Peterson
d3a2a95125
use correct __new__ method ( closes #24552 )
2015-07-02 16:58:22 -05:00
Benjamin Peterson
42e913aa3a
merge 3.4 ( #24552 )
2015-07-02 16:18:58 -05:00
Benjamin Peterson
80f78a3efc
fix use after free ( closes #24552 )
2015-07-02 16:18:38 -05: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
d5d818d40b
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:17:10 +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
d362c21264
Use pickled data compatible with Python 2 for testing protocols 0-2.
2015-02-15 14:10:24 +02:00
Serhiy Storchaka
fa310ee3a9
Use pickled data compatible with Python 2 for testing protocols 0-2.
2015-02-15 14:10:03 +02:00