۝Rc@sOddlmZmZmZddlmZmZmZddlm Z m Z m Z ddl m Z mZmZddlmZmZmZddlmZdZdZd Zd Zd dd YZd efdYZdefdYZdefdYZdefdYZdefdYZdefdYZ dS(i(tEUCTWCharToFreqOrdertEUCTW_TABLE_SIZEt EUCTW_TYPICAL_DISTRIBUTION_RATIO(tEUCKRCharToFreqOrdertEUCKR_TABLE_SIZEt EUCKR_TYPICAL_DISTRIBUTION_RATIO(tGB2312CharToFreqOrdertGB2312_TABLE_SIZEt!GB2312_TYPICAL_DISTRIBUTION_RATIO(tBig5CharToFreqOrdertBIG5_TABLE_SIZEtBIG5_TYPICAL_DISTRIBUTION_RATIO(tJISCharToFreqOrdertJIS_TABLE_SIZEtJIS_TYPICAL_DISTRIBUTION_RATIO(twrap_ordigGz?g{Gz?itCharDistributionAnalysiscBs>eZdZdZdZdZdZdZRS(cCs)d|_d|_d|_|jdS(N(tNonet_mCharToFreqOrdert _mTableSizet_mTypicalDistributionRatiotreset(tself((s</usr/lib/python2.7/site-packages/chardet/chardistribution.pyt__init__/s   cCst|_d|_d|_dS(sreset analyser, clear any stateiN(tFalset_mDonet _mTotalCharst _mFreqChars(R((s</usr/lib/python2.7/site-packages/chardet/chardistribution.pyR;s  cCs}|dkr|j|}nd}|dkry|jd7_||jkryd|j|krv|jd7_qvqyndS(s"feed a character with known lengthiiiiiN(t get_orderRRRR(RtaBuftaCharLentorder((s</usr/lib/python2.7/site-packages/chardet/chardistribution.pytfeedDs  cCsi|jdks|jtkr"tS|j|jkre|j|j|j|j}|tkre|SntS(s(return confidence based on existing datai(RRtMINIMUM_DATA_THRESHOLDtSURE_NORtSURE_YES(Rtr((s</usr/lib/python2.7/site-packages/chardet/chardistribution.pytget_confidenceRs  cCs |jtkS(N(RtENOUGH_DATA_THRESHOLD(R((s</usr/lib/python2.7/site-packages/chardet/chardistribution.pytgot_enough_databscCsdS(Ni((RR((s</usr/lib/python2.7/site-packages/chardet/chardistribution.pyRgs(t__name__t __module__RRR R%R'R(((s</usr/lib/python2.7/site-packages/chardet/chardistribution.pyR.s    tEUCTWDistributionAnalysiscBseZdZdZRS(cCs,tj|t|_t|_t|_dS(N(RRRRRRRR(R((s</usr/lib/python2.7/site-packages/chardet/chardistribution.pyRps   cCsBt|d}|dkr:d|dt|ddSdSdS(Niii^iii(R(RRt first_char((s</usr/lib/python2.7/site-packages/chardet/chardistribution.pyRvs (R(R)RR(((s</usr/lib/python2.7/site-packages/chardet/chardistribution.pyR*os tEUCKRDistributionAnalysiscBseZdZdZRS(cCs,tj|t|_t|_t|_dS(N(RRRRRRRR(R((s</usr/lib/python2.7/site-packages/chardet/chardistribution.pyRs   cCsBt|d}|dkr:d|dt|ddSdSdS(Niii^iii(R(RRR+((s</usr/lib/python2.7/site-packages/chardet/chardistribution.pyRs (R(R)RR(((s</usr/lib/python2.7/site-packages/chardet/chardistribution.pyR,s tGB2312DistributionAnalysiscBseZdZdZRS(cCs,tj|t|_t|_t|_dS(N(RRRRRRRR(R((s</usr/lib/python2.7/site-packages/chardet/chardistribution.pyRs   cCsUt|dt|d}}|dkrM|dkrMd|d|dSdSdS(Niiiii^i(R(RRR+t second_char((s</usr/lib/python2.7/site-packages/chardet/chardistribution.pyRs!(R(R)RR(((s</usr/lib/python2.7/site-packages/chardet/chardistribution.pyR-s tBig5DistributionAnalysiscBseZdZdZRS(cCs,tj|t|_t|_t|_dS(N(RRR RR RR R(R((s</usr/lib/python2.7/site-packages/chardet/chardistribution.pyRs   cCspt|dt|d}}|dkrh|dkrQd|d|ddSd|d|dSndSdS( Niiiiii?i@i(R(RRR+R.((s</usr/lib/python2.7/site-packages/chardet/chardistribution.pyRs !  (R(R)RR(((s</usr/lib/python2.7/site-packages/chardet/chardistribution.pyR/s tSJISDistributionAnalysiscBseZdZdZRS(cCs,tj|t|_t|_t|_dS(N(RRR RR RRR(R((s</usr/lib/python2.7/site-packages/chardet/chardistribution.pyRs   cCst|dt|d}}|dkrJ|dkrJd|d}n1|dkrw|dkrwd|dd}nd S||d }|d krd }n|S( Niiiiiiiiii@i(R(RRR+R.R((s</usr/lib/python2.7/site-packages/chardet/chardistribution.pyRs!  (R(R)RR(((s</usr/lib/python2.7/site-packages/chardet/chardistribution.pyR0s tEUCJPDistributionAnalysiscBseZdZdZRS(cCs,tj|t|_t|_t|_dS(N(RRR RR RRR(R((s</usr/lib/python2.7/site-packages/chardet/chardistribution.pyRs   cCsBt|d}|dkr:d|dt|ddSdSdS(Niii^iii(R(RRtchar((s</usr/lib/python2.7/site-packages/chardet/chardistribution.pyRs (R(R)RR(((s</usr/lib/python2.7/site-packages/chardet/chardistribution.pyR1s N((!t euctwfreqRRRt euckrfreqRRRt gb2312freqRRRtbig5freqR R R tjisfreqR R RtcompatRR&R#R"R!RR*R,R-R/R0R1(((s</usr/lib/python2.7/site-packages/chardet/chardistribution.pyts A