ó ۝°Rc@sOddlmZmZmZddlmZmZmZddlm Z m Z m Z ddl m Z mZmZddlmZmZmZddlmZdZdZd Zd Zd dd „ƒYZd efd„ƒYZdefd„ƒYZdefd„ƒYZdefd„ƒYZdefd„ƒYZdefd„ƒYZ 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_ordigŽGázŽď?g{ŽGáz„?itCharDistributionAnalysiscBs>eZd„Zd„Zd„Zd„Zd„Zd„ZRS(cCs)d|_d|_d|_|jƒdS(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 lengthii˙˙˙˙iiiN(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    tEUCTWDistributionAnalysiscBseZd„Zd„ZRS(cCs,tj|ƒt|_t|_t|_dS(N(RRRRRRRR(R((s</usr/lib/python2.7/site-packages/chardet/chardistribution.pyRps   cCsBt|dƒ}|dkr:d|dt|dƒdSdSdS(NiiÄi^iiĄi˙˙˙˙(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 tEUCKRDistributionAnalysiscBseZd„Zd„ZRS(cCs,tj|ƒt|_t|_t|_dS(N(RRRRRRRR(R((s</usr/lib/python2.7/site-packages/chardet/chardistribution.pyRƒs   cCsBt|dƒ}|dkr:d|dt|dƒdSdSdS(Nii°i^iiĄi˙˙˙˙(R(RRR+((s</usr/lib/python2.7/site-packages/chardet/chardistribution.pyR‰s (R(R)RR(((s</usr/lib/python2.7/site-packages/chardet/chardistribution.pyR,‚s tGB2312DistributionAnalysiscBseZd„Zd„ZRS(cCs,tj|ƒt|_t|_t|_dS(N(RRRRRRRR(R((s</usr/lib/python2.7/site-packages/chardet/chardistribution.pyR–s   cCsUt|dƒt|dƒ}}|dkrM|dkrMd|d|dSdSdS(Niii°iĄi^i˙˙˙˙(R(RRR+t second_char((s</usr/lib/python2.7/site-packages/chardet/chardistribution.pyRœs!(R(R)RR(((s</usr/lib/python2.7/site-packages/chardet/chardistribution.pyR-•s tBig5DistributionAnalysiscBseZd„Zd„ZRS(cCs,tj|ƒt|_t|_t|_dS(N(RRR RR RR R(R((s</usr/lib/python2.7/site-packages/chardet/chardistribution.pyRŠs   cCspt|dƒt|dƒ}}|dkrh|dkrQd|d|ddSd|d|dSndSdS( Niii¤iĄii?i@i˙˙˙˙(R(RRR+R.((s</usr/lib/python2.7/site-packages/chardet/chardistribution.pyRŻs !  (R(R)RR(((s</usr/lib/python2.7/site-packages/chardet/chardistribution.pyR/¨s tSJISDistributionAnalysiscBseZd„Zd„ZRS(cCs,tj|ƒt|_t|_t|_dS(N(RRR RR RRR(R((s</usr/lib/python2.7/site-packages/chardet/chardistribution.pyRżs   cCs˘t|dƒt|dƒ}}|dkrJ|dkrJd|d}n1|dkrw|dkrwd|dd}nd S||d }|d kržd }n|S( NiiiiŸiźiŕiďii˙˙˙˙i@i(R(RRR+R.R((s</usr/lib/python2.7/site-packages/chardet/chardistribution.pyRĹs!  (R(R)RR(((s</usr/lib/python2.7/site-packages/chardet/chardistribution.pyR0žs tEUCJPDistributionAnalysiscBseZd„Zd„ZRS(cCs,tj|ƒt|_t|_t|_dS(N(RRR RR RRR(R((s</usr/lib/python2.7/site-packages/chardet/chardistribution.pyRŘs   cCsBt|dƒ}|dkr:d|dt|dƒdSdSdS(Nii i^iĄii˙˙˙˙(R(RRtchar((s</usr/lib/python2.7/site-packages/chardet/chardistribution.pyRŢs (R(R)RR(((s</usr/lib/python2.7/site-packages/chardet/chardistribution.pyR1×s 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