home *** CD-ROM | disk | FTP | other *** search
/ Freelog 116 / FreelogNo116-JuilletSeptembre2013.iso / GestionFichiers / metamorphose / metamorphose2_0.8.2_setup.exe / metamorphose2.exe / repr.pyo (.txt) < prev    next >
Python Compiled Bytecode  |  2011-01-12  |  5KB  |  154 lines

  1. # Source Generated with Decompyle++
  2. # File: in.pyo (Python 2.6)
  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.         
  36.         if hasattr(self, 'repr_' + typename):
  37.             return getattr(self, 'repr_' + typename)(x, level)
  38.         s = __builtin__.repr(x)
  39.         if len(s) > self.maxother:
  40.             i = max(0, (self.maxother - 3) // 2)
  41.             j = max(0, self.maxother - 3 - i)
  42.             s = s[:i] + '...' + s[len(s) - j:]
  43.         
  44.         return s
  45.  
  46.     
  47.     def _repr_iterable(self, x, level, left, right, maxiter, trail = ''):
  48.         n = len(x)
  49.         if level <= 0 and n:
  50.             s = '...'
  51.         else:
  52.             newlevel = level - 1
  53.             repr1 = self.repr1
  54.             pieces = [ repr1(elem, newlevel) for elem in islice(x, maxiter) ]
  55.             s = ', '.join(pieces)
  56.             if n == 1 and trail:
  57.                 right = trail + right
  58.             
  59.         return '%s%s%s' % (left, s, right)
  60.  
  61.     
  62.     def repr_tuple(self, x, level):
  63.         return self._repr_iterable(x, level, '(', ')', self.maxtuple, ',')
  64.  
  65.     
  66.     def repr_list(self, x, level):
  67.         return self._repr_iterable(x, level, '[', ']', self.maxlist)
  68.  
  69.     
  70.     def repr_array(self, x, level):
  71.         header = "array('%s', [" % x.typecode
  72.         return self._repr_iterable(x, level, header, '])', self.maxarray)
  73.  
  74.     
  75.     def repr_set(self, x, level):
  76.         x = _possibly_sorted(x)
  77.         return self._repr_iterable(x, level, 'set([', '])', self.maxset)
  78.  
  79.     
  80.     def repr_frozenset(self, x, level):
  81.         x = _possibly_sorted(x)
  82.         return self._repr_iterable(x, level, 'frozenset([', '])', self.maxfrozenset)
  83.  
  84.     
  85.     def repr_deque(self, x, level):
  86.         return self._repr_iterable(x, level, 'deque([', '])', self.maxdeque)
  87.  
  88.     
  89.     def repr_dict(self, x, level):
  90.         n = len(x)
  91.         if n == 0:
  92.             return '{}'
  93.         if level <= 0:
  94.             return '{...}'
  95.         newlevel = level - 1
  96.         repr1 = self.repr1
  97.         pieces = []
  98.         for key in islice(_possibly_sorted(x), self.maxdict):
  99.             keyrepr = repr1(key, newlevel)
  100.             valrepr = repr1(x[key], newlevel)
  101.             pieces.append('%s: %s' % (keyrepr, valrepr))
  102.         
  103.         s = ', '.join(pieces)
  104.         return '{%s}' % (s,)
  105.  
  106.     
  107.     def repr_str(self, x, level):
  108.         s = __builtin__.repr(x[:self.maxstring])
  109.         if len(s) > self.maxstring:
  110.             i = max(0, (self.maxstring - 3) // 2)
  111.             j = max(0, self.maxstring - 3 - i)
  112.             s = __builtin__.repr(x[:i] + x[len(x) - j:])
  113.             s = s[:i] + '...' + s[len(s) - j:]
  114.         
  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.         
  125.         return s
  126.  
  127.     
  128.     def repr_instance(self, x, level):
  129.         
  130.         try:
  131.             s = __builtin__.repr(x)
  132.         except Exception:
  133.             return '<%s instance at %x>' % (x.__class__.__name__, id(x))
  134.  
  135.         if len(s) > self.maxstring:
  136.             i = max(0, (self.maxstring - 3) // 2)
  137.             j = max(0, self.maxstring - 3 - i)
  138.             s = s[:i] + '...' + s[len(s) - j:]
  139.         
  140.         return s
  141.  
  142.  
  143.  
  144. def _possibly_sorted(x):
  145.     
  146.     try:
  147.         return sorted(x)
  148.     except Exception:
  149.         return list(x)
  150.  
  151.  
  152. aRepr = Repr()
  153. repr = aRepr.repr
  154.