Author: Łukasz Langa <luk...@langa.pl> Branch: py3.6 Changeset: r95844:ac6ace011b43 Date: 2019-02-05 16:50 +0100 http://bitbucket.org/pypy/pypy/changeset/ac6ace011b43/
Log: (cfbolz,ambv) Make _csv.Dialect unpicklable like on CPython diff --git a/pypy/module/_csv/interp_csv.py b/pypy/module/_csv/interp_csv.py --- a/pypy/module/_csv/interp_csv.py +++ b/pypy/module/_csv/interp_csv.py @@ -21,6 +21,10 @@ "strict", ] + def reduce_ex_w(self, space, w_protocol): + raise OperationError(space.w_TypeError, + space.newtext("can't pickle _csv.Dialect objects")) + def _fetch(space, w_dialect, name): return space.findattr(w_dialect, space.newtext(name)) @@ -167,6 +171,7 @@ W_Dialect.typedef = TypeDef( '_csv.Dialect', __new__ = interp2app(W_Dialect___new__), + __reduce_ex__ = interp2app(W_Dialect.reduce_ex_w), delimiter = interp_attrproperty('delimiter', W_Dialect, wrapfn='newunicode'), diff --git a/pypy/module/_csv/test/test_dialect.py b/pypy/module/_csv/test/test_dialect.py --- a/pypy/module/_csv/test/test_dialect.py +++ b/pypy/module/_csv/test/test_dialect.py @@ -126,3 +126,9 @@ _csv.unregister_dialect('neverseen') lst = _csv.list_dialects() assert 'neverseen' not in lst + + def test_pickle_dialect(self): + import _csv + import copy + _csv.register_dialect('foo') + raises(TypeError, copy.copy, _csv.get_dialect('foo')) _______________________________________________ pypy-commit mailing list pypy-commit@python.org https://mail.python.org/mailman/listinfo/pypy-commit