‹“Ren ã @ sx d d l m Z d d l m Z d d l m Z m Z m Z d d l m Z m
Z
m Z m Z Gd d „ d e ƒ Z
d S)é )Ú
CharSetProber)ÚCodingStateMachine)ÚLanguageFilterÚProbingStateÚMachineState)ÚHZ_SM_MODELÚISO2022CN_SM_MODELÚISO2022JP_SM_MODELÚISO2022KR_SM_MODELc sy e Z d Z d Z d ‡ f d d † Z ‡ f d d † Z e d d „ ƒ Z e d d
„ ƒ Z d d „ Z d
d „ Z
‡ S)ÚEscCharSetProberz¼
This CharSetProber uses a "code scheme" approach for detecting encodings,
whereby easily recognizable escape or shift sequences are relied on to
identify these encodings.
Nc sÜ t t | ƒ j d | ƒ g | _ | j t j @r^ | j j t t ƒ ƒ | j j t t
ƒ ƒ | j t j @r„ | j j t t ƒ ƒ | j t j
@rª | j j t t ƒ ƒ d | _ d | _ d | _ d | _ | j ƒ d S)NÚlang_filter)Úsuperr Ú__init__Ú coding_smr r ÚCHINESE_SIMPLIFIEDÚappendr r r ÚJAPANESEr ÚKOREANr
Úactive_sm_countÚ_detected_charsetÚ_detected_languageÚ_stateÚreset)Úselfr )Ú __class__© úŒ/builddir/build/BUILDROOT/alt-python35-pip-20.2.4-5.el8.x86_64/opt/alt/python35/lib/python3.5/site-packages/pip/_vendor/chardet/escprober.pyr * s zEscCharSetProber.__init__c sk t t | ƒ j ƒ x- | j D]" } | s, q d | _ | j ƒ q Wt | j ƒ | _ d | _ d | _ d S)NT) r
r r r ÚactiveÚlenr r r )r r )r r r r : s zEscCharSetProber.resetc C s | j S)N)r )r r r r Úcharset_nameE s zEscCharSetProber.charset_namec C s | j S)N)r )r r r r ÚlanguageI s zEscCharSetProber.languagec C s | j r
d Sd Sd S)Ng®Gáz®ï?g )r )r r r r Úget_confidenceM s zEscCharSetProber.get_confidencec C sØ xÎ | D]Æ } x½ | j D]² } | s | j r1 q | j | ƒ } | t j k rŒ d | _ | j d 8_ | j d k rÉ t j | _ | j Sq | t j
k r t j | _ | j ƒ | _
| j | _ | j Sq Wq W| j S)NFr é )r r Ú
next_stater ÚERRORr r ÚNOT_MEr ÚstateÚITS_MEÚFOUND_ITÚget_coding_state_machiner r r )r Úbyte_strÚcr Úcoding_stater r r ÚfeedS s"
zEscCharSetProber.feed)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r r Úpropertyr r r! r- r r )r r r # s r N)Ú
charsetproberr Úcodingstatemachiner Úenumsr r r Úescsmr r r r
r r r r r Ú