-----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-----