pydoc.stripid() is now case-insensitive for its regex to support platforms that

have pointer addresses in uppercase.

Closes bug #934282.  Thanks Robin Becker.
This commit is contained in:
Brett Cannon 2004-06-19 01:02:51 +00:00
parent 2b2fe94cde
commit c6c1f478d9
3 changed files with 10 additions and 7 deletions

View File

@ -113,16 +113,16 @@ def cram(text, maxlen):
return text[:pre] + '...' + text[len(text)-post:]
return text
_re_stripid = re.compile(r' at 0x[0-9a-f]{6,}(>+)$', re.IGNORECASE)
def stripid(text):
"""Remove the hexadecimal id from a Python object representation."""
# The behaviour of %p is implementation-dependent; we check two cases.
for pattern in [' at 0x[0-9a-f]{6,}(>+)$', ' at [0-9A-F]{8,}(>+)$']:
if re.search(pattern, repr(Exception)):
return re.sub(pattern, '\\1', text)
# The behaviour of %p is implementation-dependent in terms of case.
if _re_stripid.search(repr(Exception)):
return _re_stripid.sub(r'\1', text)
return text
def _is_some_method(object):
return inspect.ismethod(object) or inspect.ismethoddescriptor(object)
def _is_some_method(obj):
return inspect.ismethod(obj) or inspect.ismethoddescriptor(obj)
def allmethods(cl):
methods = {}

View File

@ -43,6 +43,7 @@ Samuel L. Bayer
Donald Beaudry
David Beazley
Neal Becker
Robin Becker
Bill Bedford
Reimer Behrends
Thomas Bellman

View File

@ -336,8 +336,10 @@ Extension modules
Library
-------
- Bug #934282: pydoc.stripid() is now case-insensitive. Thanks Robin Becker.
- Bug #823209: cmath.log() now takes an optional base argument so that its
API matches math.log().
API matches math.log().
- Bug #957381: distutils bdist_rpm no longer fails on recent RPM versions
that generate a *-debuginfo.rpm.