summaryrefslogtreecommitdiff
path: root/lib/sqlalchemy/testing/plugin
diff options
context:
space:
mode:
authorMike Bayer <mike_mp@zzzcomputing.com>2019-04-09 17:38:53 -0400
committerMike Bayer <mike_mp@zzzcomputing.com>2019-04-09 21:13:56 -0400
commit21099479daf98dca84cb97e928951ea0c486b479 (patch)
tree67e6fcd1da61577cc339eab8d0bb1133483b07cf /lib/sqlalchemy/testing/plugin
parent1ec2f7cfd6c1fa8acf9a41330df597af99dcadc7 (diff)
downloadsqlalchemy-21099479daf98dca84cb97e928951ea0c486b479.tar.gz
Add __reduce_ex__ to MutableList; add compat for older pickles
Fixed bug where using ``copy.copy()`` or ``copy.deepcopy()`` on :class:`.MutableList` would cause the items within the list to be duplicated, due to an inconsistency in how Python pickle and copy both make use of ``__getstate__()`` and ``__setstate__()`` regarding lists. In order to resolve, a ``__reduce_ex__`` method had to be added to :class:`.MutableList`. In order to maintain backwards compatibility with existing pickles based on ``__getstate__()``, the ``__setstate__()`` method remains as well; the test suite asserts that pickles made against the old version of the class can still be deserialized by the pickle module. Also modified sqlalchemy.testing.util.picklers to return picklers all the way through pickle.HIGHEST_PROTOCOL. Fixes: #4603 Change-Id: I7f78b9cfb89d59a706248536c553dc5e1d987b88
Diffstat (limited to 'lib/sqlalchemy/testing/plugin')
0 files changed, 0 insertions, 0 deletions