[Zodb-checkins] CVS: Zope3/src/ZODB - Connection.py:1.143

Tim Peters tim.one at comcast.net
Tue Apr 6 16:21:57 EDT 2004

Update of /cvs-repository/Zope3/src/ZODB
In directory cvs.zope.org:/tmp/cvs-serv30747/src/ZODB

Modified Files:
Log Message:
As part of int/long unification, Python 2.4 will start printing
negative ints *as* negative ints when fed into %x formats.  Python 2.3
still renders them as positive ints, but spews

FutureWarning: %u/%o/%x/%X of negative int will return a signed string
               in Python 2.4 and up

to warn about the impending change.  Jim reported two instances of that
warning when running the tests on a box where addresses happen to "be
negative".  So make the addresses look positive instead (2.3 and 2.4
treat those the same, so 2.3 doesn't warn about those).

Problem:  it occurs to me now that I'm assuming addresses fit in 32
bits here.

=== Zope3/src/ZODB/Connection.py 1.142 => 1.143 ===
--- Zope3/src/ZODB/Connection.py:1.142	Fri Apr  2 12:47:57 2004
+++ Zope3/src/ZODB/Connection.py	Tue Apr  6 16:21:55 2004
@@ -223,7 +223,9 @@
             ver = ' (in version %s)' % `self._version`
             ver = ''
-        return '<Connection at %08x%s>' % (id(self), ver)
+        # Force the address to look positive.  A negative address will
+        # show up as signed in Python 2.4, and in 2.3 raises FutureWarning.
+        return '<Connection at %08x%s>' % (id(self) & 0xffffffffL, ver)
     def get(self, oid):
         """Return the persistent object with oid 'oid'.

More information about the Zodb-checkins mailing list