[Python-checkins] python/dist/src/Lib repr.py,1.16,1.17 (original) (raw)
rhettinger at users.sourceforge.net rhettinger at users.sourceforge.net
Fri May 21 06:00:18 EDT 2004
- Previous message: [Python-checkins] python/dist/src/Lib/test test_genexps.py,1.1,1.2
- Next message: [Python-checkins] python/dist/src/Lib/test test_repr.py,1.17,1.18
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Update of /cvsroot/python/python/dist/src/Lib In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv11427
Modified Files: repr.py Log Message:
- Updated repr.py to handle set() and frozenset().
- Factored out common code to a single private function.
- Use str.join() instead of + concatenation
- Loop over elements directly instead of using indexing
- Use % operator for formatting
Index: repr.py
RCS file: /cvsroot/python/python/dist/src/Lib/repr.py,v retrieving revision 1.16 retrieving revision 1.17 diff -C2 -d -r1.16 -r1.17 *** repr.py 12 Feb 2004 17:35:07 -0000 1.16 --- repr.py 21 May 2004 10:00:14 -0000 1.17
*** 4,9 **** --- 4,11 ----
import builtin
from itertools import islice
class Repr:
def __init__(self): self.maxlevel = 6
*** 12,20 **** --- 14,26 ---- self.maxarray = 5 self.maxdict = 4
self.maxset = 6
self.maxfrozenset = 6 self.maxstring = 30 self.maxlong = 40 self.maxother = 20
def repr(self, x): return self.repr1(x, self.maxlevel)
def repr1(self, x, level): typename = type(x).__name__
*** 31,71 **** s = s[:i] + '...' + s[len(s)-j:] return s ! def repr_tuple(self, x, level): n = len(x) ! if n == 0: return '()' ! if level <= 0: return '(...)' ! s = '' ! for i in range(min(n, self.maxtuple)): ! if s: s = s + ', ' ! s = s + self.repr1(x[i], level-1) ! if n > self.maxtuple: s = s + ', ...' ! elif n == 1: s = s + ',' ! return '(' + s + ')' def repr_list(self, x, level): ! n = len(x) ! if n == 0: return '[]' ! if level <= 0: return '[...]' ! s = '' ! for i in range(min(n, self.maxlist)): ! if s: s = s + ', ' ! s = s + self.repr1(x[i], level-1) ! if n > self.maxlist: s = s + ', ...' ! return '[' + s + ']'
def repr_array(self, x, level):
n = len(x) header = "array('%s', [" % x.typecode
! if n == 0: ! return header + "])" ! if level <= 0: ! return header + "...])" ! s = '' ! for i in range(min(n, self.maxarray)): ! if s: ! s += ', ' ! s += self.repr1(x[i], level-1) ! if n > self.maxarray: ! s += ', ...' ! return header + s + "])"
def repr_dict(self, x, level):
--- 37,70 ---- s = s[:i] + '...' + s[len(s)-j:] return s ! ! def _repr_iterable(self, x, level, left, right, maxiter, final=''): n = len(x) ! if level <= 0 and n: ! s = '...' ! else: ! newlevel = level - 1 ! repr1 = self.repr1 ! pieces = [repr1(elem, newlevel) for elem in islice(x, maxiter)] ! if n > maxiter: pieces.append('...') ! s = ', '.join(pieces) ! if n == 1 and final: s += final ! return '%s%s%s' % (left, s, right) ! ! def repr_tuple(self, x, level): ! return self._repr_iterable(x, level, '(', ')', self.maxlist, ',') ! def repr_list(self, x, level): ! return self._repr_iterable(x, level, '[', ']', self.maxlist)
def repr_array(self, x, level):
header = "array('%s', [" % x.typecode
! return self._repr_iterable(x, level, header, '])', self.maxarray) ! ! def repr_set(self, x, level): ! return self._repr_iterable(x, level, 'set([', '])', self.maxset) ! ! def repr_frozenset(self, x, level): ! return self._repr_iterable(x, level, 'frozenset([', '])', ! self.maxfrozenset)
def repr_dict(self, x, level):
*** 73,86 **** if n == 0: return '{}' if level <= 0: return '{...}' ! s = '' ! keys = x.keys() ! keys.sort() ! for i in range(min(n, self.maxdict)): ! if s: s = s + ', ' ! key = keys[i] ! s = s + self.repr1(key, level-1) ! s = s + ': ' + self.repr1(x[key], level-1) ! if n > self.maxdict: s = s + ', ...' ! return '{' + s + '}' def repr_str(self, x, level): s = builtin.repr(x[:self.maxstring]) --- 72,86 ---- if n == 0: return '{}' if level <= 0: return '{...}' ! newlevel = level - 1 ! repr1 = self.repr1 ! pieces = [] ! for key in islice(sorted(x), self.maxdict): ! keyrepr = repr1(key, newlevel) ! valrepr = repr1(x[key], newlevel) ! pieces.append('%s: %s' % (keyrepr, valrepr)) ! if n > self.maxdict: pieces.append('...') ! s = ', '.join(pieces) ! return '{%s}' % (s,) ! def repr_str(self, x, level): s = builtin.repr(x[:self.maxstring])
*** 91,94 **** --- 91,95 ---- s = s[:i] + '...' + s[len(s)-j:] return s
+ def repr_long(self, x, level): s = builtin.repr(x) # XXX Hope this isn't too slow...
*** 98,101 **** --- 99,103 ---- s = s[:i] + '...' + s[len(s)-j:] return s
+ def repr_instance(self, x, level): try:
- Previous message: [Python-checkins] python/dist/src/Lib/test test_genexps.py,1.1,1.2
- Next message: [Python-checkins] python/dist/src/Lib/test test_repr.py,1.17,1.18
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]