home *** CD-ROM | disk | FTP | other *** search
/ Chip 2011 November / CHIP_2011_11.iso / Programy / Narzedzia / Calibre / calibre-0.8.18.msi / file_262 / repr.pyo (.txt) < prev    next >
Encoding:
Python Compiled Bytecode  |  2011-09-09  |  4.8 KB  |  152 lines

  1. # Source Generated with Decompyle++
  2. # File: in.pyo (Python 2.7)
  3.  
  4. __all__ = [
  5.     'Repr',
  6.     'repr']
  7. import __builtin__
  8. from itertools import islice
  9.  
  10. class Repr:
  11.     
  12.     def __init__(self):
  13.         self.maxlevel = 6
  14.         self.maxtuple = 6
  15.         self.maxlist = 6
  16.         self.maxarray = 5
  17.         self.maxdict = 4
  18.         self.maxset = 6
  19.         self.maxfrozenset = 6
  20.         self.maxdeque = 6
  21.         self.maxstring = 30
  22.         self.maxlong = 40
  23.         self.maxother = 20
  24.  
  25.     
  26.     def repr(self, x):
  27.         return self.repr1(x, self.maxlevel)
  28.  
  29.     
  30.     def repr1(self, x, level):
  31.         typename = type(x).__name__
  32.         if ' ' in typename:
  33.             parts = typename.split()
  34.             typename = '_'.join(parts)
  35.         if hasattr(self, 'repr_' + typename):
  36.             return getattr(self, 'repr_' + typename)(x, level)
  37.         s = None.repr(x)
  38.         if len(s) > self.maxother:
  39.             i = max(0, (self.maxother - 3) // 2)
  40.             j = max(0, self.maxother - 3 - i)
  41.             s = s[:i] + '...' + s[len(s) - j:]
  42.         return s
  43.  
  44.     
  45.     def _repr_iterable(self, x, level, left, right, maxiter, trail = ''):
  46.         n = len(x)
  47.         if level <= 0 and n:
  48.             s = '...'
  49.         else:
  50.             newlevel = level - 1
  51.             repr1 = self.repr1
  52.             pieces = [ repr1(elem, newlevel) for elem in islice(x, maxiter) ]
  53.             if n > maxiter:
  54.                 pieces.append('...')
  55.             s = ', '.join(pieces)
  56.             if n == 1 and trail:
  57.                 right = trail + right
  58.         return '%s%s%s' % (left, s, right)
  59.  
  60.     
  61.     def repr_tuple(self, x, level):
  62.         return self._repr_iterable(x, level, '(', ')', self.maxtuple, ',')
  63.  
  64.     
  65.     def repr_list(self, x, level):
  66.         return self._repr_iterable(x, level, '[', ']', self.maxlist)
  67.  
  68.     
  69.     def repr_array(self, x, level):
  70.         header = "array('%s', [" % x.typecode
  71.         return self._repr_iterable(x, level, header, '])', self.maxarray)
  72.  
  73.     
  74.     def repr_set(self, x, level):
  75.         x = _possibly_sorted(x)
  76.         return self._repr_iterable(x, level, 'set([', '])', self.maxset)
  77.  
  78.     
  79.     def repr_frozenset(self, x, level):
  80.         x = _possibly_sorted(x)
  81.         return self._repr_iterable(x, level, 'frozenset([', '])', self.maxfrozenset)
  82.  
  83.     
  84.     def repr_deque(self, x, level):
  85.         return self._repr_iterable(x, level, 'deque([', '])', self.maxdeque)
  86.  
  87.     
  88.     def repr_dict(self, x, level):
  89.         n = len(x)
  90.         if n == 0:
  91.             return '{}'
  92.         if None <= 0:
  93.             return '{...}'
  94.         newlevel = None - 1
  95.         repr1 = self.repr1
  96.         pieces = []
  97.         for key in islice(_possibly_sorted(x), self.maxdict):
  98.             keyrepr = repr1(key, newlevel)
  99.             valrepr = repr1(x[key], newlevel)
  100.             pieces.append('%s: %s' % (keyrepr, valrepr))
  101.         
  102.         if n > self.maxdict:
  103.             pieces.append('...')
  104.         s = ', '.join(pieces)
  105.         return '{%s}' % (s,)
  106.  
  107.     
  108.     def repr_str(self, x, level):
  109.         s = __builtin__.repr(x[:self.maxstring])
  110.         if len(s) > self.maxstring:
  111.             i = max(0, (self.maxstring - 3) // 2)
  112.             j = max(0, self.maxstring - 3 - i)
  113.             s = __builtin__.repr(x[:i] + x[len(x) - j:])
  114.             s = s[:i] + '...' + s[len(s) - j:]
  115.         return s
  116.  
  117.     
  118.     def repr_long(self, x, level):
  119.         s = __builtin__.repr(x)
  120.         if len(s) > self.maxlong:
  121.             i = max(0, (self.maxlong - 3) // 2)
  122.             j = max(0, self.maxlong - 3 - i)
  123.             s = s[:i] + '...' + s[len(s) - j:]
  124.         return s
  125.  
  126.     
  127.     def repr_instance(self, x, level):
  128.         
  129.         try:
  130.             s = __builtin__.repr(x)
  131.         except Exception:
  132.             return '<%s instance at %x>' % (x.__class__.__name__, id(x))
  133.  
  134.         if len(s) > self.maxstring:
  135.             i = max(0, (self.maxstring - 3) // 2)
  136.             j = max(0, self.maxstring - 3 - i)
  137.             s = s[:i] + '...' + s[len(s) - j:]
  138.         return s
  139.  
  140.  
  141.  
  142. def _possibly_sorted(x):
  143.     
  144.     try:
  145.         return sorted(x)
  146.     except Exception:
  147.         return list(x)
  148.  
  149.  
  150. aRepr = Repr()
  151. repr = aRepr.repr
  152.