home *** CD-ROM | disk | FTP | other *** search
/ One Click 11 / OneClick11.iso / Bancos de Dados / Conversao / Mysql2Excel / Setup.exe / Mysql2Excel.exe / repr.pyc (.txt) < prev    next >
Encoding:
Python Compiled Bytecode  |  2003-06-23  |  4.7 KB  |  150 lines

  1. # Source Generated with Decompyle++
  2. # File: in.pyc (Python 2.2)
  3.  
  4. '''Redo the `...` (representation) but with limits on most sizes.'''
  5. __all__ = [
  6.     'Repr',
  7.     'repr']
  8.  
  9. class Repr:
  10.     
  11.     def __init__(self):
  12.         self.maxlevel = 6
  13.         self.maxtuple = 6
  14.         self.maxlist = 6
  15.         self.maxdict = 4
  16.         self.maxstring = 30
  17.         self.maxlong = 40
  18.         self.maxother = 20
  19.  
  20.     
  21.     def repr(self, x):
  22.         return self.repr1(x, self.maxlevel)
  23.  
  24.     
  25.     def repr1(self, x, level):
  26.         typename = type(x).__name__
  27.         if ' ' in typename:
  28.             parts = typename.split()
  29.             typename = '_'.join(parts)
  30.         
  31.         if hasattr(self, 'repr_' + typename):
  32.             return getattr(self, 'repr_' + typename)(x, level)
  33.         else:
  34.             s = `x`
  35.             if len(s) > self.maxother:
  36.                 i = max(0, (self.maxother - 3) // 2)
  37.                 j = max(0, self.maxother - 3 - i)
  38.                 s = s[:i] + '...' + s[len(s) - j:]
  39.             
  40.             return s
  41.  
  42.     
  43.     def repr_tuple(self, x, level):
  44.         n = len(x)
  45.         if n == 0:
  46.             return '()'
  47.         
  48.         if level <= 0:
  49.             return '(...)'
  50.         
  51.         s = ''
  52.         for i in range(min(n, self.maxtuple)):
  53.             if s:
  54.                 s = s + ', '
  55.             
  56.             s = s + self.repr1(x[i], level - 1)
  57.         
  58.         if n > self.maxtuple:
  59.             s = s + ', ...'
  60.         elif n == 1:
  61.             s = s + ','
  62.         
  63.         return '(' + s + ')'
  64.  
  65.     
  66.     def repr_list(self, x, level):
  67.         n = len(x)
  68.         if n == 0:
  69.             return '[]'
  70.         
  71.         if level <= 0:
  72.             return '[...]'
  73.         
  74.         s = ''
  75.         for i in range(min(n, self.maxlist)):
  76.             if s:
  77.                 s = s + ', '
  78.             
  79.             s = s + self.repr1(x[i], level - 1)
  80.         
  81.         if n > self.maxlist:
  82.             s = s + ', ...'
  83.         
  84.         return '[' + s + ']'
  85.  
  86.     
  87.     def repr_dict(self, x, level):
  88.         n = len(x)
  89.         if n == 0:
  90.             return '{}'
  91.         
  92.         if level <= 0:
  93.             return '{...}'
  94.         
  95.         s = ''
  96.         keys = x.keys()
  97.         keys.sort()
  98.         for i in range(min(n, self.maxdict)):
  99.             if s:
  100.                 s = s + ', '
  101.             
  102.             key = keys[i]
  103.             s = s + self.repr1(key, level - 1)
  104.             s = s + ': ' + self.repr1(x[key], level - 1)
  105.         
  106.         if n > self.maxdict:
  107.             s = s + ', ...'
  108.         
  109.         return '{' + s + '}'
  110.  
  111.     
  112.     def repr_str(self, x, level):
  113.         s = `x[:self.maxstring]`
  114.         if len(s) > self.maxstring:
  115.             i = max(0, (self.maxstring - 3) // 2)
  116.             j = max(0, self.maxstring - 3 - i)
  117.             s = `x[:i] + x[len(x) - j:]`
  118.             s = s[:i] + '...' + s[len(s) - j:]
  119.         
  120.         return s
  121.  
  122.     
  123.     def repr_long(self, x, level):
  124.         s = `x`
  125.         if len(s) > self.maxlong:
  126.             i = max(0, (self.maxlong - 3) // 2)
  127.             j = max(0, self.maxlong - 3 - i)
  128.             s = s[:i] + '...' + s[len(s) - j:]
  129.         
  130.         return s
  131.  
  132.     
  133.     def repr_instance(self, x, level):
  134.         
  135.         try:
  136.             s = `x`
  137.         except:
  138.             return '<' + x.__class__.__name__ + ' instance at ' + hex(id(x))[2:] + '>'
  139.  
  140.         if len(s) > self.maxstring:
  141.             i = max(0, (self.maxstring - 3) // 2)
  142.             j = max(0, self.maxstring - 3 - i)
  143.             s = s[:i] + '...' + s[len(s) - j:]
  144.         
  145.         return s
  146.  
  147.  
  148. aRepr = Repr()
  149. repr = aRepr.repr
  150.