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

  1. # Source Generated with Decompyle++
  2. # File: in.pyc (Python 2.6)
  3.  
  4. from charsetprober import CharSetProber
  5. import constants
  6. import operator
  7. FREQ_CAT_NUM = 4
  8. UDF = 0
  9. OTH = 1
  10. ASC = 2
  11. ASS = 3
  12. ACV = 4
  13. ACO = 5
  14. ASV = 6
  15. ASO = 7
  16. CLASS_NUM = 8
  17. Latin1_CharToClass = (OTH, OTH, OTH, OTH, OTH, OTH, OTH, OTH, OTH, OTH, OTH, OTH, OTH, OTH, OTH, OTH, OTH, OTH, OTH, OTH, OTH, OTH, OTH, OTH, OTH, OTH, OTH, OTH, OTH, OTH, OTH, OTH, OTH, OTH, OTH, OTH, OTH, OTH, OTH, OTH, OTH, OTH, OTH, OTH, OTH, OTH, OTH, OTH, OTH, OTH, OTH, OTH, OTH, OTH, OTH, OTH, OTH, OTH, OTH, OTH, OTH, OTH, OTH, OTH, OTH, ASC, ASC, ASC, ASC, ASC, ASC, ASC, ASC, ASC, ASC, ASC, ASC, ASC, ASC, ASC, ASC, ASC, ASC, ASC, ASC, ASC, ASC, ASC, ASC, ASC, ASC, OTH, OTH, OTH, OTH, OTH, OTH, ASS, ASS, ASS, ASS, ASS, ASS, ASS, ASS, ASS, ASS, ASS, ASS, ASS, ASS, ASS, ASS, ASS, ASS, ASS, ASS, ASS, ASS, ASS, ASS, ASS, ASS, OTH, OTH, OTH, OTH, OTH, OTH, UDF, OTH, ASO, OTH, OTH, OTH, OTH, OTH, OTH, ACO, OTH, ACO, UDF, ACO, UDF, UDF, OTH, OTH, OTH, OTH, OTH, OTH, OTH, OTH, OTH, ASO, OTH, ASO, UDF, ASO, ACO, OTH, OTH, OTH, OTH, OTH, OTH, OTH, OTH, OTH, OTH, OTH, OTH, OTH, OTH, OTH, OTH, OTH, OTH, OTH, OTH, OTH, OTH, OTH, OTH, OTH, OTH, OTH, OTH, OTH, OTH, OTH, OTH, ACV, ACV, ACV, ACV, ACV, ACV, ACO, ACO, ACV, ACV, ACV, ACV, ACV, ACV, ACV, ACV, ACO, ACO, ACV, ACV, ACV, ACV, ACV, OTH, ACV, ACV, ACV, ACV, ACV, ACO, ACO, ACO, ASV, ASV, ASV, ASV, ASV, ASV, ASO, ASO, ASV, ASV, ASV, ASV, ASV, ASV, ASV, ASV, ASO, ASO, ASV, ASV, ASV, ASV, ASV, OTH, ASV, ASV, ASV, ASV, ASV, ASO, ASO, ASO)
  18. Latin1ClassModel = (0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 3, 3, 3, 3, 0, 3, 3, 3, 3, 3, 3, 3, 0, 3, 3, 3, 1, 1, 3, 3, 0, 3, 3, 3, 1, 2, 1, 2, 0, 3, 3, 3, 3, 3, 3, 3, 0, 3, 1, 3, 1, 1, 1, 3, 0, 3, 1, 3, 1, 1, 3, 3)
  19.  
  20. class Latin1Prober(CharSetProber):
  21.     
  22.     def __init__(self):
  23.         CharSetProber.__init__(self)
  24.         self.reset()
  25.  
  26.     
  27.     def reset(self):
  28.         self._mLastCharClass = OTH
  29.         self._mFreqCounter = [
  30.             0] * FREQ_CAT_NUM
  31.         CharSetProber.reset(self)
  32.  
  33.     
  34.     def get_charset_name(self):
  35.         return 'windows-1252'
  36.  
  37.     
  38.     def feed(self, aBuf):
  39.         aBuf = self.filter_with_english_letters(aBuf)
  40.         for c in aBuf:
  41.             charClass = Latin1_CharToClass[ord(c)]
  42.             freq = Latin1ClassModel[self._mLastCharClass * CLASS_NUM + charClass]
  43.             if freq == 0:
  44.                 self._mState = constants.eNotMe
  45.                 break
  46.             
  47.             self._mFreqCounter[freq] += 1
  48.             self._mLastCharClass = charClass
  49.         
  50.         return self.get_state()
  51.  
  52.     
  53.     def get_confidence(self):
  54.         if self.get_state() == constants.eNotMe:
  55.             return 0.01
  56.         total = reduce(operator.add, self._mFreqCounter)
  57.         if total < 0.01:
  58.             confidence = 0
  59.         else:
  60.             confidence = self._mFreqCounter[3] / total - self._mFreqCounter[1] * 20 / total
  61.         if confidence < 0:
  62.             confidence = 0
  63.         
  64.         confidence = confidence * 0.5
  65.         return confidence
  66.  
  67.  
  68.