New submission from Marcin Raczyński <niej...@gmail.com>:

If we use pickle.HIGHEST_PROTOCOL we can pickle lxml.etree.Element object but 
unpickling give us misleading error description:

>>> from lxml import etree
>>> import pickle
>>> import sys
sys.version
'2.7.15rc1 (default, Apr 15 2018, 21:51:34) \n[GCC 7.3.0]'
>>> etree.__version__
u'4.2.5'
>>> pickled = pickle.dumps(etree.Element('x'), protocol=pickle.HIGHEST_PROTOCOL)
>>> pickle.loads(pickled)
Traceback (most recent call last):
  File "<input>", line 1, in <module>
    pickle.loads(pickled)
  File "src/lxml/etree.pyx", line 1131, in lxml.etree._Element.__repr__
  File "src/lxml/etree.pyx", line 981, in lxml.etree._Element.tag.__get__
  File "src/lxml/apihelpers.pxi", line 19, in lxml.etree._assertValidNode
AssertionError: invalid Element proxy at 140260172089392


See also: https://bugs.launchpad.net/lxml/+bug/736708

----------
components: Library (Lib)
messages: 327054
nosy: marc1nr
priority: normal
severity: normal
status: open
title: Unexpected error while unpickling lxml.etree.Element object
type: behavior
versions: Python 2.7

_______________________________________
Python tracker <rep...@bugs.python.org>
<https://bugs.python.org/issue34894>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to