summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSerhiy Storchaka <storchaka@gmail.com>2014-07-22 09:14:52 (GMT)
committerSerhiy Storchaka <storchaka@gmail.com>2014-07-22 09:14:52 (GMT)
commit0c937b3ed6d2eeca84fa4aca1a9aef685db65abc (patch)
treef5691e459361ce03018098bbad26f9472e8340e5
parentfbc877b7940beaa23fea020b8a137a660eff419e (diff)
downloadcpython-0c937b3ed6d2eeca84fa4aca1a9aef685db65abc.zip
cpython-0c937b3ed6d2eeca84fa4aca1a9aef685db65abc.tar.gz
cpython-0c937b3ed6d2eeca84fa4aca1a9aef685db65abc.tar.bz2
Issue #22031: Reprs now always use hexadecimal format with the "0x" prefix
when contain an id in form " at 0x...".
-rw-r--r--Lib/ctypes/__init__.py2
-rw-r--r--Lib/reprlib.py2
-rw-r--r--Lib/test/test_reprlib.py2
-rw-r--r--Lib/test/test_weakref.py8
-rw-r--r--Lib/test/test_xmlrpc.py2
-rw-r--r--Lib/weakref.py4
-rw-r--r--Lib/xmlrpc/client.py4
-rw-r--r--Misc/NEWS3
8 files changed, 19 insertions, 8 deletions
diff --git a/Lib/ctypes/__init__.py b/Lib/ctypes/__init__.py
index e34c646..785bd18 100644
--- a/Lib/ctypes/__init__.py
+++ b/Lib/ctypes/__init__.py
@@ -353,7 +353,7 @@ class CDLL(object):
self._handle = handle
def __repr__(self):
- return "<%s '%s', handle %x at %x>" % \
+ return "<%s '%s', handle %x at %#x>" % \
(self.__class__.__name__, self._name,
(self._handle & (_sys.maxsize*2 + 1)),
id(self) & (_sys.maxsize*2 + 1))
diff --git a/Lib/reprlib.py b/Lib/reprlib.py
index f803360..b7fda23 100644
--- a/Lib/reprlib.py
+++ b/Lib/reprlib.py
@@ -136,7 +136,7 @@ class Repr:
# Bugs in x.__repr__() can cause arbitrary
# exceptions -- then make up something
except Exception:
- return '<%s instance at %x>' % (x.__class__.__name__, id(x))
+ return '<%s instance at %#x>' % (x.__class__.__name__, id(x))
if len(s) > self.maxother:
i = max(0, (self.maxother-3)//2)
j = max(0, self.maxother-3-i)
diff --git a/Lib/test/test_reprlib.py b/Lib/test/test_reprlib.py
index ae67f06..d65494a 100644
--- a/Lib/test/test_reprlib.py
+++ b/Lib/test/test_reprlib.py
@@ -123,7 +123,7 @@ class ReprTests(unittest.TestCase):
eq(r(i2), expected)
i3 = ClassWithFailingRepr()
- eq(r(i3), ("<ClassWithFailingRepr instance at %x>"%id(i3)))
+ eq(r(i3), ("<ClassWithFailingRepr instance at %#x>"%id(i3)))
s = r(ClassWithFailingRepr)
self.assertTrue(s.startswith("<class "))
diff --git a/Lib/test/test_weakref.py b/Lib/test/test_weakref.py
index cccb515..adb923f 100644
--- a/Lib/test/test_weakref.py
+++ b/Lib/test/test_weakref.py
@@ -1536,6 +1536,14 @@ class MappingTestCase(TestBase):
self.assertEqual(len(d), 0)
self.assertEqual(count, 2)
+ def test_make_weak_valued_dict_repr(self):
+ dict = weakref.WeakValueDictionary()
+ self.assertRegex(repr(dict), '<WeakValueDictionary at 0x.*>')
+
+ def test_make_weak_keyed_dict_repr(self):
+ dict = weakref.WeakKeyDictionary()
+ self.assertRegex(repr(dict), '<WeakKeyDictionary at 0x.*>')
+
from test import mapping_tests
class WeakValueDictionaryTestCase(mapping_tests.BasicTestMappingProtocol):
diff --git a/Lib/test/test_xmlrpc.py b/Lib/test/test_xmlrpc.py
index 120c54f..c184da3 100644
--- a/Lib/test/test_xmlrpc.py
+++ b/Lib/test/test_xmlrpc.py
@@ -287,7 +287,7 @@ class DateTimeTestCase(unittest.TestCase):
def test_repr(self):
d = datetime.datetime(2007,1,2,3,4,5)
t = xmlrpclib.DateTime(d)
- val ="<DateTime '20070102T03:04:05' at %x>" % id(t)
+ val ="<DateTime '20070102T03:04:05' at %#x>" % id(t)
self.assertEqual(repr(t), val)
def test_decode(self):
diff --git a/Lib/weakref.py b/Lib/weakref.py
index f6a40ca..f780e7a 100644
--- a/Lib/weakref.py
+++ b/Lib/weakref.py
@@ -144,7 +144,7 @@ class WeakValueDictionary(collections.MutableMapping):
return o is not None
def __repr__(self):
- return "<WeakValueDictionary at %s>" % id(self)
+ return "<WeakValueDictionary at %#x>" % id(self)
def __setitem__(self, key, value):
if self._pending_removals:
@@ -348,7 +348,7 @@ class WeakKeyDictionary(collections.MutableMapping):
return len(self.data) - len(self._pending_removals)
def __repr__(self):
- return "<WeakKeyDictionary at %s>" % id(self)
+ return "<WeakKeyDictionary at %#x>" % id(self)
def __setitem__(self, key, value):
self.data[ref(key, self._remove)] = value
diff --git a/Lib/xmlrpc/client.py b/Lib/xmlrpc/client.py
index 567554d..d46f32c 100644
--- a/Lib/xmlrpc/client.py
+++ b/Lib/xmlrpc/client.py
@@ -354,7 +354,7 @@ class DateTime:
return self.value
def __repr__(self):
- return "<DateTime %r at %x>" % (self.value, id(self))
+ return "<DateTime %r at %#x>" % (self.value, id(self))
def decode(self, data):
self.value = str(data).strip()
@@ -846,7 +846,7 @@ class MultiCall:
self.__call_list = []
def __repr__(self):
- return "<MultiCall at %x>" % id(self)
+ return "<MultiCall at %#x>" % id(self)
__str__ = __repr__
diff --git a/Misc/NEWS b/Misc/NEWS
index e542d50..6c64bcf 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -108,6 +108,9 @@ Core and Builtins
Library
-------
+- Issue #22031: Reprs now always use hexadecimal format with the "0x" prefix
+ when contain an id in form " at 0x...".
+
- Issue #22018: signal.set_wakeup_fd() now raises an OSError instead of a
ValueError on ``fstat()`` failure.