-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 David Binger wrote: > In the durus.serialize module, > in ObjectReader._get_unpickler.persistent_load(). Oh, I see the fine details about the python pickle machinery explained at http://docs.python.org/lib/node70.html (python->doc->lib->pickle->Pickling and unpickling external objects). Thas was a difficult step to understand, since I was following the calling tree by mind and I never saw explicit calls to the functions that really *DO* the magic. Now I see the light and really understand how Durus works. Now I understand, for example, how Durus can give the very same object (same id()) for an object gotten from two different object-graph paths. Something like this: root --> A | ^ | | +--->B--+ The trick is to do a cache check inside the "persistent_load", to give away the same "A" object, when using both access paths. Thanks for your time and attention. I had an epiphany :-p PS: I now undestand also where (and when) a just created persistent object gets its "oid" :-). - -- Jesus Cea Avion _/_/ _/_/_/ _/_/_/ jcea@argo.es http://www.argo.es/~jcea/ _/_/ _/_/ _/_/ _/_/ _/_/ jabber / xmpp:jcea@jabber.org _/_/ _/_/ _/_/_/_/_/ _/_/ _/_/ _/_/ _/_/ _/_/ "Things are not so easy" _/_/ _/_/ _/_/ _/_/ _/_/ _/_/ "My name is Dump, Core Dump" _/_/_/ _/_/_/ _/_/ _/_/ "El amor es poner tu felicidad en la felicidad de otro" - Leibniz -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.2.2 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iQCVAwUBREz3NZlgi5GaxT1NAQJIggP/WkEQys16TyTN20s0VJJy/ZjmyZ1JyqZy jUVCi4g+0LaH3e1F/JyZcJkOpp4/NyIipxlM79jw8xwivwyHO+aT8kxCvdGUat9y EsSE1YtsWCY1srrxUyMthI6K2DSSK+ZevZZtJ6jusU3ZXALgSmSlQI0KLPw6SSg9 lEmTFpO3XRw= =UcYE -----END PGP SIGNATURE-----