Hi David,
Thank you, I think feeding jsonpickle with these complex structures is
good test case of jsonpickle's robustness. I don't need to be
unpickable. I just need to present user the data structure into some
decent level (for FirePython).
gave r41 a try and got next error:
/Users/woid/code/hed/herodes/firepython/jsonpickle/__init__.py in
_flatten_dict_obj(self=<firepython.jsonpickle.Pickler object at
0x7346ad0>, obj={<type 'datetime.datetime'>: 7, <class
'google.appengine.api.datastore_types.Category'>: 1, <class
'google.appengine.api.datastore_types.Link'>: 2, <class
'google.appengine.api.datastore_types.Email'>: 8, <class
'google.appengine.api.datastore_types.GeoPt'>: 9, <class
'
google.appengine.api.datastore_types.IM'>: 10, <class
'google.appengine.api.datastore_types.PhoneNumber'>: 11, <class
'google.appengine.api.datastore_types.PostalAddress'>: 12, <class
'google.appengine.api.datastore_types.Rating'>: 13, <class
'google.appengine.api.datastore_types.Text'>: 15, ...}, data={u"<class
'google.appengine.api.datastore_types.Blob'>": 14, u"<class
'google.appengine.api.datastore_types.Category'>": 1, u"<class
'google.appengine.api.datastore_types.Email'>": 8, u"<class
'google.appengine.api.datastore_types.Link'>": 2, u"<class
'google.appengine.api.datastore_types.PhoneNumber'>": 11, u"<class
'google.appengine.api.datastore_types.PostalAddress'>": 12, u"<class
'google.appengine.api.datastore_types.Rating'>": 13, u"<class
'google.appengine.api.datastore_types.Text'>": 15})
611 continue
612 if type(k) not in types.StringTypes:
613 k = unicode(k)
614 self._namestack.append(k)
615 data[k] = self.flatten(v)
k = <class '
google.appengine.api.datastore_types.IM'>, builtin unicode
= <type 'unicode'>
<type 'exceptions.TypeError'>: unbound method __unicode__() must be
called with IM instance as first argument (got nothing instead)
args = ('unbound method __unicode__() must be called with IM
instance as first argument (got nothing instead)',)
message = 'unbound method __unicode__() must be called with IM
instance as first argument (got nothing instead)'