- PrettyPrinter.isreadable(), .isrecursive():
authorFred Drake <fdrake@acm.org>
Tue, 31 Dec 2002 07:14:18 +0000 (07:14 +0000)
committerFred Drake <fdrake@acm.org>
Tue, 31 Dec 2002 07:14:18 +0000 (07:14 +0000)
    Pass the right number of args to .format().  (Caught by
    pychecker.)
- Protect the global namespace more carefully.
- Don't use the types module now that we don't need to.

Lib/pprint.py

index d7d0405b2282dd815c091ec4f2b11ee6dff82faf..16d8eae57ff59d89b859f54c072e24a8c522bb50 100644 (file)
@@ -34,20 +34,15 @@ saferepr()
 
 """
 
-from types import DictType, ListType, TupleType, StringType
-import sys
+import sys as _sys
 
-try:
-    from cStringIO import StringIO
-except ImportError:
-    from StringIO import StringIO
+from cStringIO import StringIO as _StringIO
 
 __all__ = ["pprint","pformat","isreadable","isrecursive","saferepr",
            "PrettyPrinter"]
 
 # cache these for faster access:
 _commajoin = ", ".join
-_sys_modules = sys.modules
 _id = id
 _len = len
 _type = type
@@ -104,21 +99,21 @@ class PrettyPrinter:
         if stream is not None:
             self._stream = stream
         else:
-            self._stream = sys.stdout
+            self._stream = _sys.stdout
 
     def pprint(self, object):
         self._stream.write(self.pformat(object) + "\n")
 
     def pformat(self, object):
-        sio = StringIO()
+        sio = _StringIO()
         self._format(object, sio, 0, 0, {}, 0)
         return sio.getvalue()
 
     def isrecursive(self, object):
-        return self.format(object, {}, 0)[2]
+        return self.format(object, {}, 0, 0)[2]
 
     def isreadable(self, object):
-        s, readable, recursive = self.format(object, {}, 0)
+        s, readable, recursive = self.format(object, {}, 0, 0)
         return readable and not recursive
 
     def _format(self, object, stream, indent, allowance, context, level):
@@ -135,7 +130,7 @@ class PrettyPrinter:
         write = stream.write
 
         if sepLines:
-            if typ is DictType:
+            if typ is dict:
                 write('{')
                 if self._indent_per_level > 1:
                     write((self._indent_per_level - 1) * ' ')
@@ -162,8 +157,8 @@ class PrettyPrinter:
                 write('}')
                 return
 
-            if typ is ListType or typ is TupleType:
-                if typ is ListType:
+            if typ is list or typ is tuple:
+                if typ is list:
                     write('[')
                     endchar = ']'
                 else:
@@ -184,7 +179,7 @@ class PrettyPrinter:
                                           allowance + 1, context, level)
                     indent = indent - self._indent_per_level
                     del context[objid]
-                if typ is TupleType and length == 1:
+                if typ is tuple and length == 1:
                     write(',')
                 write(endchar)
                 return
@@ -212,8 +207,8 @@ class PrettyPrinter:
 
 def _safe_repr(object, context, maxlevels, level):
     typ = _type(object)
-    if typ is StringType:
-        if 'locale' not in _sys_modules:
+    if typ is str:
+        if 'locale' not in _sys.modules:
             return `object`, True, False
         if "'" in object and '"' not in object:
             closure = '"'
@@ -222,7 +217,7 @@ def _safe_repr(object, context, maxlevels, level):
             closure = "'"
             quotes = {"'": "\\'"}
         qget = quotes.get
-        sio = StringIO()
+        sio = _StringIO()
         write = sio.write
         for char in object:
             if char.isalpha():
@@ -231,7 +226,7 @@ def _safe_repr(object, context, maxlevels, level):
                 write(qget(char, `char`[1:-1]))
         return ("%s%s%s" % (closure, sio.getvalue(), closure)), True, False
 
-    if typ is DictType:
+    if typ is dict:
         if not object:
             return "{}", True, False
         objid = _id(object)
@@ -256,8 +251,8 @@ def _safe_repr(object, context, maxlevels, level):
         del context[objid]
         return "{%s}" % _commajoin(components), readable, recursive
 
-    if typ is ListType or typ is TupleType:
-        if typ is ListType:
+    if typ is list or typ is tuple:
+        if typ is list:
             if not object:
                 return "[]", True, False
             format = "[%s]"