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

  1. # Source Generated with Decompyle++
  2. # File: in.pyc (Python 2.6)
  3.  
  4. import constants
  5. import sys
  6. from charsetprober import CharSetProber
  7.  
  8. class CharSetGroupProber(CharSetProber):
  9.     
  10.     def __init__(self):
  11.         CharSetProber.__init__(self)
  12.         self._mActiveNum = 0
  13.         self._mProbers = []
  14.         self._mBestGuessProber = None
  15.  
  16.     
  17.     def reset(self):
  18.         CharSetProber.reset(self)
  19.         self._mActiveNum = 0
  20.         for prober in self._mProbers:
  21.             if prober:
  22.                 prober.reset()
  23.                 prober.active = constants.True
  24.                 self._mActiveNum += 1
  25.                 continue
  26.             self
  27.         
  28.         self._mBestGuessProber = None
  29.  
  30.     
  31.     def get_charset_name(self):
  32.         if not self._mBestGuessProber:
  33.             self.get_confidence()
  34.             if not self._mBestGuessProber:
  35.                 return None
  36.         
  37.         return self._mBestGuessProber.get_charset_name()
  38.  
  39.     
  40.     def feed(self, aBuf):
  41.         for prober in self._mProbers:
  42.             if not prober:
  43.                 continue
  44.             
  45.             if not prober.active:
  46.                 continue
  47.             
  48.             st = prober.feed(aBuf)
  49.             if not st:
  50.                 continue
  51.             
  52.             if st == constants.eFoundIt:
  53.                 self._mBestGuessProber = prober
  54.                 return self.get_state()
  55.             if st == constants.eNotMe:
  56.                 prober.active = constants.False
  57.                 self._mActiveNum -= 1
  58.                 if self._mActiveNum <= 0:
  59.                     self._mState = constants.eNotMe
  60.                     return self.get_state()
  61.                 continue
  62.             self._mActiveNum <= 0
  63.         
  64.         return self.get_state()
  65.  
  66.     
  67.     def get_confidence(self):
  68.         st = self.get_state()
  69.         if st == constants.eFoundIt:
  70.             return 0.99
  71.         if st == constants.eNotMe:
  72.             return 0.01
  73.         bestConf = 0
  74.         self._mBestGuessProber = None
  75.         for prober in self._mProbers:
  76.             cf = prober.get_confidence()
  77.             if constants._debug:
  78.                 sys.stderr.write('%s confidence = %s\n' % (prober.get_charset_name(), cf))
  79.             
  80.             if bestConf < cf:
  81.                 bestConf = cf
  82.                 self._mBestGuessProber = prober
  83.                 continue
  84.         
  85.         if not self._mBestGuessProber:
  86.             return 0
  87.         return bestConf
  88.  
  89.  
  90.