I have made a slight modification to my intid util by inheriting from
IntId and overriding _generateId().
I do this to be sure that all new created objects will have an
incrementing number where
the first object created gets id 1, the next gets id 2 and so on.
This way I get for "free" sorting by
# We need a non-volatile nextid
nextid = None
# In the unlikely event that the nextid already
# exists, we run this in a while loop to fix it.
if len(self) == 0:
self.nextid = 1
elif self.nextid is None:
self.nextid = self.refs.maxKey() + 1
uid = self.nextid
self.nextid += 1
if uid not in self.refs:
# Normally we would never get here..
self.nextid = None
What do you think about this? Is it "safe" to do this, or have i
forgotten any unforseen oddities
that might occur in the future :O
Zope3-users mailing list