Tim Peters wrote:
You found ZODB.utils, which was a sensible place to look.  I don't really
understand how you found ZODB.utils but didn't manage to find p64, because
p64 is the first function in the file.

Because its name means nothing to me...

I guess p64 needs documenting,

I think its docstring is reasonably clear:

    def p64(v):
        """Pack an integer or long into a 8-byte string"""

Yes, but for that to be meaningful, you have to know that:

- 0xSomething is an integer or long (it read "hex number" in my head"

- oids are 8-byte strings

Neither of things that sit in my brain :-(

In addition to that, it would be helpful to have a tutorial overview
"somewhere" explaining that FileStorage oids are 8-byte strings.  I don't
know where to put that so that people would find it, though.  For example,
where would you have found it?

howtoturnnumbersintooids.txt :-S

I dunno, readme.txt? reference.txt?

and maybe a better name?

Many ZODB users already know this, and there are references to p64 on user
web pages.  For example,


shows how to do what you started out to do:

from Zope.Startup.run import configure;configure('zope-8000/zope.conf')
from Zope import app; root = app()
from ZODB.utils import p64
o = root._p_jar[p64(0x277FEL)]

OOBucket([('566', -1920968609), ...])

Indeed, Google failed me *sigh*

I don't want to break pages like that, so the current name has to remain.


It would be possible to add an alias.  I'm -0 on that (would violate TOOWTDI
in exchange for ... well, not sure it would really help anyone anyway).


It might help some people (would have helped me ;-) ) and would it hurt anyone?



Simplistix - Content Management, Zope & Python Consulting
           - http://www.simplistix.co.uk
For more information about ZODB, see the ZODB Wiki:

ZODB-Dev mailing list  -  ZODB-Dev@zope.org

Reply via email to