home *** CD-ROM | disk | FTP | other *** search
/ Maximum CD 2011 January / maximum-cd-2011-01.iso / DiscContents / calibre-0.7.26.msi / file_1920 (.txt) < prev    next >
Encoding:
Python Compiled Bytecode  |  2010-10-31  |  1.9 KB  |  58 lines

  1. # Source Generated with Decompyle++
  2. # File: in.pyc (Python 2.6)
  3.  
  4. __docformat__ = 'restructuredtext en'
  5. import sys
  6.  
  7. class DisplayTrap(object):
  8.     
  9.     def __init__(self, formatters = None, callbacks = None):
  10.         if formatters is None:
  11.             formatters = []
  12.         
  13.         self.formatters = formatters
  14.         if callbacks is None:
  15.             callbacks = []
  16.         
  17.         self.callbacks = callbacks
  18.         self.obj = None
  19.         self.old_hook = None
  20.  
  21.     
  22.     def hook(self, obj):
  23.         for callback in self.callbacks:
  24.             callback(obj)
  25.         
  26.         self.obj = obj
  27.  
  28.     
  29.     def set(self):
  30.         if sys.displayhook is not self.hook:
  31.             self.old_hook = sys.displayhook
  32.             sys.displayhook = self.hook
  33.         
  34.  
  35.     
  36.     def unset(self):
  37.         sys.displayhook = self.old_hook
  38.  
  39.     
  40.     def clear(self):
  41.         self.obj = None
  42.  
  43.     
  44.     def add_to_message(self, message):
  45.         if self.obj is None:
  46.             return None
  47.         display = { }
  48.         for formatter in self.formatters:
  49.             representation = formatter(self.obj)
  50.             if representation is not None:
  51.                 display[formatter.identifier] = representation
  52.                 continue
  53.             self.obj is None
  54.         
  55.         message['display'] = display
  56.  
  57.  
  58.