home *** CD-ROM | disk | FTP | other *** search
/ Maximum CD 2010 November / maximum-cd-2010-11.iso / DiscContents / calibre-0.7.13.msi / file_1469 (.txt) < prev    next >
Encoding:
Python Compiled Bytecode  |  2010-08-06  |  5.3 KB  |  173 lines

  1. # Source Generated with Decompyle++
  2. # File: in.pyc (Python 2.6)
  3.  
  4. import sys as _sys
  5.  
  6. def modules(modulePath):
  7.     
  8.     try:
  9.         mod = _sys.modules[modulePath]
  10.         if mod is None:
  11.             raise KeyError()
  12.         mod is None
  13.     except KeyError:
  14.         mod = __import__(modulePath, globals(), locals(), [
  15.             ''])
  16.  
  17.     return mod
  18.  
  19.  
  20. def attributes(full_attribute_name):
  21.     last_dot = full_attribute_name.rfind(u'.')
  22.     attr_name = full_attribute_name[last_dot + 1:]
  23.     mod_path = full_attribute_name[:last_dot]
  24.     mod = modules(mod_path)
  25.     
  26.     try:
  27.         attr = getattr(mod, attr_name)
  28.     except AttributeError:
  29.         raise AttributeError("'%s' object has no attribute '%s'" % (mod_path, attr_name))
  30.  
  31.     return attr
  32.  
  33.  
  34. class _Builder:
  35.     
  36.     def build(self, o):
  37.         m = getattr(self, 'build_' + o.__class__.__name__, None)
  38.         if m is None:
  39.             raise TypeError('unrepr does not recognize %s' % repr(o.__class__.__name__))
  40.         m is None
  41.         return m(o)
  42.  
  43.     
  44.     def build_Subscript(self, o):
  45.         (expr, flags, subs) = o.getChildren()
  46.         expr = self.build(expr)
  47.         subs = self.build(subs)
  48.         return expr[subs]
  49.  
  50.     
  51.     def build_CallFunc(self, o):
  52.         children = map(self.build, o.getChildren())
  53.         callee = children.pop(0)
  54.         if not children.pop():
  55.             pass
  56.         kwargs = { }
  57.         if not children.pop():
  58.             pass
  59.         starargs = ()
  60.         args = tuple(children) + tuple(starargs)
  61.         return callee(*args, **kwargs)
  62.  
  63.     
  64.     def build_List(self, o):
  65.         return map(self.build, o.getChildren())
  66.  
  67.     
  68.     def build_Const(self, o):
  69.         return o.value
  70.  
  71.     
  72.     def build_Dict(self, o):
  73.         d = { }
  74.         i = iter(map(self.build, o.getChildren()))
  75.         for el in i:
  76.             d[el] = i.next()
  77.         
  78.         return d
  79.  
  80.     
  81.     def build_Tuple(self, o):
  82.         return tuple(self.build_List(o))
  83.  
  84.     
  85.     def build_Name(self, o):
  86.         if o.name == 'None':
  87.             return None
  88.         if o.name == 'True':
  89.             return True
  90.         if o.name == 'False':
  91.             return False
  92.         
  93.         try:
  94.             return modules(o.name)
  95.         except ImportError:
  96.             o.name == 'False'
  97.             o.name == 'False'
  98.             o.name == 'True'
  99.         except:
  100.             o.name == 'None'
  101.  
  102.         
  103.         try:
  104.             import __builtin__
  105.             return getattr(__builtin__, o.name)
  106.         except AttributeError:
  107.             o.name == 'None'
  108.             o.name == 'None'
  109.         except:
  110.             o.name == 'None'
  111.  
  112.         raise TypeError('unrepr could not resolve the name %s' % repr(o.name))
  113.  
  114.     
  115.     def build_Add(self, o):
  116.         (left, right) = map(self.build, o.getChildren())
  117.         return left + right
  118.  
  119.     
  120.     def build_Getattr(self, o):
  121.         parent = self.build(o.expr)
  122.         return getattr(parent, o.attrname)
  123.  
  124.     
  125.     def build_NoneType(self, o):
  126.         pass
  127.  
  128.     
  129.     def build_UnarySub(self, o):
  130.         return -self.build(o.getChildren()[0])
  131.  
  132.     
  133.     def build_UnaryAdd(self, o):
  134.         return self.build(o.getChildren()[0])
  135.  
  136.  
  137.  
  138. def unrepr(s):
  139.     if not s:
  140.         return s
  141.     
  142.     try:
  143.         import compiler
  144.     except ImportError:
  145.         s
  146.         s
  147.         return eval(s)
  148.  
  149.     p = compiler.parse('__tempvalue__ = ' + s)
  150.     obj = p.getChildren()[1].getChildren()[0].getChildren()[1]
  151.     return _Builder().build(obj)
  152.  
  153.  
  154. def file_generator(input, chunkSize = 65536):
  155.     chunk = input.read(chunkSize)
  156.     while chunk:
  157.         yield chunk
  158.         chunk = input.read(chunkSize)
  159.     input.close()
  160.  
  161.  
  162. def file_generator_limited(fileobj, count, chunk_size = 65536):
  163.     remaining = count
  164.     while remaining > 0:
  165.         chunk = fileobj.read(min(chunk_size, remaining))
  166.         chunklen = len(chunk)
  167.         if chunklen == 0:
  168.             return None
  169.         remaining -= chunklen
  170.         yield chunk
  171.         chunklen == 0
  172.  
  173.