R`i n d dl mZmZ ddlmZ ddlmZ ddlmZm Z m Z ddlmZm Z mZmZ G d de Zy ) )OptionalUnion ) CharSetProber)CodingStateMachine)LanguageFilterMachineStateProbingState)HZ_SM_MODELISO2022CN_SM_MODELISO2022JP_SM_MODELISO2022KR_SM_MODELc e Zd ZdZej fdeddf fd Zd fdZede e fd Zede e fd Zde fd Zd eeef defdZ xZS ) 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. lang_filterreturnNc t | | g | _ | j t j z rP| j j t t | j j t t | j t j z r(| j j t t | j t j z r(| j j t t d| _ d | _ d | _ t" j$ | _ | j) y )N)r r )super__init__ coding_smr r CHINESE_SIMPLIFIEDappendr r r JAPANESEr KOREANr active_sm_count_detected_charset_detected_languager DETECTING_statereset)selfr __class__s /builddir/build/BUILDROOT/alt-python312-pip-23.3.1-3.el8.x86_64/opt/alt/python312/lib/python3.12/site-packages/pip/_vendor/chardet/escprober.pyr zEscCharSetProber.__init__0 s [1n???NN!!"4["ABNN!!"45G"HIn555NN!!"45G"HIn333NN!!"45G"HI 0415",, c t | | j D ] }d|_ |j t | j | _ d | _ d | _ y )NT)r r r activelenr r r )r! r r" s r# r zEscCharSetProber.reset@ sO I#IOO ( #4>>2!%"&r$ c | j S Nr r! s r# charset_namezEscCharSetProber.charset_nameI s %%%r$ c | j S r) )r r+ s r# languagezEscCharSetProber.languageM s &&&r$ c " | j rdS dS )NgGz?g r* r+ s r# get_confidencezEscCharSetProber.get_confidenceQ s --t747r$ byte_strc |D ] }| j D ] }|j s|j | }|t j k( rQd|_ | xj dz c_ | j dk s`t j | _ | j c c S |t j k( st j | _ |j | _ |j | _ | j c c S | j S )NFr r )r r&