You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
t <extension class pickle1.world at 1400c9c08>
t
<boost::python::meta_class<boost::python::detail::exten
sion_instance> object at 0x3ffffe41ae0>
Traceback (most recent call last):
File "zi", line 9, in ?
pstr = pickle.dumps(wd)
File "pickle.py", line 974, in dumps
Pickler(file, bin).dump(object)
File "pickle.py", line 115, in dumpself.save(object)
File "pickle.py", line 216, in saveself.save_reduce(callable, arg_tup, state)
File "pickle.py", line 241, in save_reduce
save(callable)
File "pickle.py", line 167, in saveifissubclass(t, TypeType):
TypeError: issubclass() arg 1 must be a class
The following patch restores backward-compatibility:
Remark: I also noticed that 2.2 cPickle still works
for us
(double-checked) even though the CVS logs indicate
that it was
also modified between 2.2c1 and 2.2.
Hm, I'm surprised that t (which was returned by
type(object)) is not considered a type. Can you explain the
Boost metaclass hierarchy a bit so that I can understand how
this can work? It was found in the ob_type slot of the
object (because that's what type() returns) so it should
look a lot like a type! Then why isn't it one?
IOW I think that the correct solution would be a change to
Boost. But I'm open to persuasion.
rwgk commented on Jan 11, 2002
rwgkmannequin
MannequinAuthor
More actions
Logged In: YES
user_id=71407
IOW I think that the correct solution would be a change to
Boost. But I'm open to persuasion.
In principle I agree with you, but here are a few arguments
to
justify the easy fix:
The old Boost.Python metaclass system is a dead branch.
We would prefer to concentrate our time on the ongoing
rewrite of Boost.Python which will be fully based on
the new Python 2.2 type system.
A significant number of people are using released versions
of Boost(.Python). If the easy fix is integrated in
Python 2.2.1,
they could continue to use what they have.
Other people might be affected by your change. The
suggested solution
will restore backward-compatibility with more people's
existing code.
This is more a question: can you envision that the
suggested
fix has negative side-effects?
Ah, I didn't realize this was the old Boost. I should have
(the new one only runs on Python 2.2).
I'll think about it.
rwgk commented on Mar 25, 2002
rwgkmannequin
MannequinAuthor
More actions
Logged In: YES
user_id=71407
python 2.2.1c1 still exhibits the problem described
in the original posting. Is this expected? Is there
still hope that the suggested fix/work-around is
considered for 2.2.1?
Thanks,
Ralf
There's nothing I can do to get this into 2.2.1c2, but
Michael might be willing to put it in 2.2.1final. Otherwise
it should go into 2.2.2, if we ever release one.
(Sorry -- I forgot about this, and you were just a tad too
late to make the 2.2.1c2 release.)
Activity
rwgk commentedon Jan 10, 2002
Boost.Python
(http://www.boost.org/libs/python/doc/index.html) is a
popular package for integrating Python and C++.
Boost.Python pickle support is broken when using
Python 2.2 final, but
works with Python 2.2c1.
I noticed this difference:
diff /usr/local_cci/Python-
2.2/lib/python2.2/pickle.py /usr/local_cci/Python-
2.2c1/lib/python2.2/pickle.py
26c26
< __version__ = "$Revision: 1.56 $" # Code
version
---
I inserted one line in pickle.py:
% diff /usr/local_cci/Python-
2.2/lib/python2.2/pickle.py .
165a166
Result:
The following patch restores backward-compatibility:
% diff /usr/local_cci/Python-
2.2/lib/python2.2/pickle.py .
166,168c166,173
< if issubclass(t, TypeType):
< self.save_global(object)
< return
---
Remark: I also noticed that 2.2 cPickle still works
for us
(double-checked) even though the CVS logs indicate
that it was
also modified between 2.2c1 and 2.2.
Thanks,
Ralf
gvanrossum commentedon Jan 11, 2002
Logged In: YES
user_id=6380
Hm, I'm surprised that t (which was returned by
type(object)) is not considered a type. Can you explain the
Boost metaclass hierarchy a bit so that I can understand how
this can work? It was found in the ob_type slot of the
object (because that's what type() returns) so it should
look a lot like a type! Then why isn't it one?
IOW I think that the correct solution would be a change to
Boost. But I'm open to persuasion.
rwgk commentedon Jan 11, 2002
Logged In: YES
user_id=71407
In principle I agree with you, but here are a few arguments
to
justify the easy fix:
The old Boost.Python metaclass system is a dead branch.
We would prefer to concentrate our time on the ongoing
rewrite of Boost.Python which will be fully based on
the new Python 2.2 type system.
A significant number of people are using released versions
of Boost(.Python). If the easy fix is integrated in
Python 2.2.1,
they could continue to use what they have.
Other people might be affected by your change. The
suggested solution
will restore backward-compatibility with more people's
existing code.
This is more a question: can you envision that the
suggested
fix has negative side-effects?
Thanks,
Ralf
gvanrossum commentedon Jan 11, 2002
Logged In: YES
user_id=6380
Ah, I didn't realize this was the old Boost. I should have
(the new one only runs on Python 2.2).
I'll think about it.
rwgk commentedon Mar 25, 2002
Logged In: YES
user_id=71407
python 2.2.1c1 still exhibits the problem described
in the original posting. Is this expected? Is there
still hope that the suggested fix/work-around is
considered for 2.2.1?
Thanks,
Ralf
tim-one commentedon Mar 25, 2002
Logged In: YES
user_id=31435
Boosted priority and assigned to Guido. Guido, if you want
to do something here for 2.2.1, now's the time.
gvanrossum commentedon Mar 26, 2002
Logged In: YES
user_id=6380
I checked in a fix on the trunk.
There's nothing I can do to get this into 2.2.1c2, but
Michael might be willing to put it in 2.2.1final. Otherwise
it should go into 2.2.2, if we ever release one.
(Sorry -- I forgot about this, and you were just a tad too
late to make the 2.2.1c2 release.)
mwhudson commentedon Mar 26, 2002
Logged In: YES
user_id=6656
It's in 221c2