[Python-checkins] CVS: python/dist/src/Lib pprint.py,1.19,1.20

Fred L. Drake fdrake@users.sourceforge.net
Mon, 01 Apr 2002 21:08:38 -0800


Update of /cvsroot/python/python/dist/src/Lib
In directory usw-pr-cvs1:/tmp/cvs-serv16772/Lib

Modified Files:
	pprint.py 
Log Message:
Add an experimental mechanism to support extending the pprint formatting.
Partly responds to SF bug #505152.


Index: pprint.py
===================================================================
RCS file: /cvsroot/python/python/dist/src/Lib/pprint.py,v
retrieving revision 1.19
retrieving revision 1.20
diff -C2 -d -r1.19 -r1.20
*** pprint.py	28 Nov 2001 05:49:39 -0000	1.19
--- pprint.py	2 Apr 2002 05:08:35 -0000	1.20
***************
*** 116,128 ****
  
      def isrecursive(self, object):
!         self.__recursive = 0
!         self.__repr(object, {}, 0)
!         return self.__recursive
  
      def isreadable(self, object):
!         self.__recursive = 0
!         self.__readable = 1
!         self.__repr(object, {}, 0)
!         return self.__readable and not self.__recursive
  
      def __format(self, object, stream, indent, allowance, context, level):
--- 116,124 ----
  
      def isrecursive(self, object):
!         return self.format(object, {}, 0)[2]
  
      def isreadable(self, object):
!         s, readable, recursive = self.format(object, {}, 0)
!         return readable and not recursive
  
      def __format(self, object, stream, indent, allowance, context, level):
***************
*** 197,202 ****
  
      def __repr(self, object, context, level):
!         repr, readable, recursive = _safe_repr(object, context,
!                                                self.__depth, level)
          if not readable:
              self.__readable = 0
--- 193,198 ----
  
      def __repr(self, object, context, level):
!         repr, readable, recursive = self.format(object, context.copy(),
!                                                 self.__depth, level)
          if not readable:
              self.__readable = 0
***************
*** 204,207 ****
--- 200,211 ----
              self.__recursive = 1
          return repr
+ 
+     def format(self, object, context, maxlevels, level):
+         """Format object for a specific context, returning a string
+         and flags indicating whether the representation is 'readable'
+         and whether the object represents a recursive construct.
+         """
+         return _safe_repr(object, context, maxlevels, level)
+ 
  
  # Return triple (repr_string, isreadable, isrecursive).