From: Frank W. <fwi...@gm...> - 2006-06-29 23:26:37
|
On 6/29/06, Matt Small <ms...@ac...> wrote: > More stuff needed for pickle.. Jython seems to be missing the __flags__ > entry in our types. In Python: > > >>> a=1 > >>> a.__class__.__flags__ > 5627 > > And in Jython: > > >>> a=1 > >>> a.__class__.__flags__ > Traceback (innermost last): > File "<console>", line 1, in ? > AttributeError: type object 'int' has no attribute '__flags__' > > > Has anyone done any work on this? I don't think anyone has worked on this. Some poking around in CPython leads me to believe it is very implementation-specific stuff. But then again, since it gets exposed by __class__, I guess we need it. In the case of pickle, it is looking for a flag called HEAPTYPE -- which so far looks like for purposes of Jython means if __flags__ has a HEAPTYPE flag, the class is not a built in type (so for example, tuple.__flags__ & 512 == 0 while your "a" above would have a nonzero result). I think we could probably make __flags__ a read-only property on PyType by adding a getset in type.expose, and then make sure it gets the right value for the PyType instances. Do you want to have a go of it? Otherwise I can put it on my todo list. Samuele -- does my take on sound about right? I've looked at __flags__ in PyPy and it looks like not much more is being done than the above. Thanks, -Frank |