Larry Hastings added the comment:
My understanding is, this is fixed, and cherry-picked into 3.4. If that's in
error please reopen.
--
resolution: - fixed
status: open - closed
___
Python tracker rep...@bugs.python.org
Benjamin Peterson added the comment:
Fixed. Should be in 3.4.0.
I'll deal with #16251 in 3.5.
--
assignee: docs@python - larry
nosy: +benjamin.peterson, larry
priority: normal - release blocker
superseder: pickle special methods are looked up on the instance rather than
the type -
Benjamin Peterson added the comment:
(See http://hg.python.org/cpython/rev/b328f8ccbccf)
--
___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue20261
___
Barry A. Warsaw added the comment:
I'll go ahead and dupe this to 16251, but will note the __getnewargs__()
regression in 3.4.
--
superseder: - pickle special methods are looked up on the instance rather
than the type
___
Python tracker
New submission from Barry A. Warsaw:
I've been debugging a crash in nose 1.3.0, the root cause of which turned out
to be an instance containing an attribute which itself was an instance of the
following class (boiled down):
class Picky:
def __getstate__(self):
return {}
def
Barry A. Warsaw added the comment:
Hmm, actually, this is a regression in Python 3.4. Let's amend the test class
to include a __getnewargs__():
class Picky(object):
Options container that returns None for all options.
def __getstate__(self):
return {}
def
Changes by Arfrever Frehtes Taifersar Arahesis arfrever@gmail.com:
--
nosy: +Arfrever
___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue20261
___
Changes by Serhiy Storchaka storch...@gmail.com:
--
nosy: +alexandre.vassalotti, pitrou
___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue20261
___
Eric Snow added the comment:
This is a duplicate of #16251, no? Pickle looks up dunder ;) methods on
instances rather than on classes, so __getattr__() gets triggered unexpectedly.
I had to work around this in some code of mine by special-casing in
__getattr__() names that start with '_'.