]> granicus.if.org Git - python/commitdiff
(HTML|Text)Repr.repr1: Guard against objects whos types have no __name__
authorSkip Montanaro <skip@pobox.com>
Fri, 27 Jun 2003 15:45:41 +0000 (15:45 +0000)
committerSkip Montanaro <skip@pobox.com>
Fri, 27 Jun 2003 15:45:41 +0000 (15:45 +0000)
attribute. Patch and bug report from Geoff Talvola. Closes patch #672855.

Lib/pydoc.py

index abafc0e6b4703f6fa0a4de3be680e633eaaed34a..410d921209ef2a1fa5d74eb2ce042110db88f109 100755 (executable)
@@ -312,11 +312,11 @@ class HTMLRepr(Repr):
         return Repr.repr(self, object)
 
     def repr1(self, x, level):
-        methodname = 'repr_' + join(split(type(x).__name__), '_')
-        if hasattr(self, methodname):
-            return getattr(self, methodname)(x, level)
-        else:
-            return self.escape(cram(stripid(repr(x)), self.maxother))
+        if hasattr(type(x), '__name__'):
+            methodname = 'repr_' + join(split(type(x).__name__), '_')
+            if hasattr(self, methodname):
+                return getattr(self, methodname)(x, level)
+        return self.escape(cram(stripid(repr(x)), self.maxother))
 
     def repr_string(self, x, level):
         test = cram(x, self.maxstring)
@@ -874,11 +874,11 @@ class TextRepr(Repr):
         self.maxstring = self.maxother = 100
 
     def repr1(self, x, level):
-        methodname = 'repr_' + join(split(type(x).__name__), '_')
-        if hasattr(self, methodname):
-            return getattr(self, methodname)(x, level)
-        else:
-            return cram(stripid(repr(x)), self.maxother)
+        if hasattr(type(x), '__name__'):
+            methodname = 'repr_' + join(split(type(x).__name__), '_')
+            if hasattr(self, methodname):
+                return getattr(self, methodname)(x, level)
+        return cram(stripid(repr(x)), self.maxother)
 
     def repr_string(self, x, level):
         test = cram(x, self.maxstring)