zmc
2023-08-08 e792e9a60d958b93aef96050644f369feb25d61b
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
U
H=®dÅ0ã@s€dZddlZddlZddlZddlmZddlmZmZm    Z    ddl
m Z ddl m Z ddlmZdd    lmZGd
d „d eƒZdS) a
Module containing the UniversalDetector detector class, which is the primary
class a user of ``chardet`` should use.
 
:author: Mark Pilgrim (initial port to Python)
:author: Shy Shalom (original C code)
:author: Dan Blanchard (major refactoring for 3.0)
:author: Ian Cordasco
éNé)ÚCharSetGroupProber)Ú
InputStateÚLanguageFilterÚ ProbingState)ÚEscCharSetProber)Ú Latin1Prober)ÚMBCSGroupProber)ÚSBCSGroupProberc    @sneZdZdZdZe d¡Ze d¡Ze d¡Z    dddd    d
d d d dœZ
e j fdd„Z dd„Zdd„Zdd„ZdS)ÚUniversalDetectoraq
    The ``UniversalDetector`` class underlies the ``chardet.detect`` function
    and coordinates all of the different charset probers.
 
    To get a ``dict`` containing an encoding and its confidence, you can simply
    run:
 
    .. code::
 
            u = UniversalDetector()
            u.feed(some_bytes)
            u.close()
            detected = u.result
 
    gš™™™™™É?s[€-ÿ]s(|~{)s[€-Ÿ]z Windows-1252z Windows-1250z Windows-1251z Windows-1256z Windows-1253z Windows-1255z Windows-1254z Windows-1257)z
iso-8859-1z
iso-8859-2z
iso-8859-5z
iso-8859-6z
iso-8859-7z
iso-8859-8z
iso-8859-9z iso-8859-13cCsNd|_g|_d|_d|_d|_d|_d|_||_t     t
¡|_ d|_ |  ¡dS)N)Ú_esc_charset_proberÚ_charset_probersÚresultÚdoneÚ    _got_dataÚ _input_stateÚ
_last_charÚ lang_filterÚloggingÚ    getLoggerÚ__name__ÚloggerÚ_has_win_bytesÚreset)Úselfr©rú\D:\z\workplace\VsCode\pyvenv\venv\Lib\site-packages\pip/_vendor/chardet/universaldetector.pyÚ__init__Qs zUniversalDetector.__init__cCsVddddœ|_d|_d|_d|_tj|_d|_|jr>|j     ¡|j
D] }|     ¡qDdS)zæ
        Reset the UniversalDetector and all of its probers back to their
        initial states.  This is called by ``__init__``, so you only need to
        call this directly in between analyses of different documents.
        Nç©ÚencodingÚ
confidenceÚlanguageFó) rrrrrÚ
PURE_ASCIIrrr rr )rÚproberrrrr^s
 
zUniversalDetector.resetcCs>|jr
dSt|ƒsdSt|tƒs(t|ƒ}|jsÞ| tj¡rJddddœ|_nv| tj    tj
f¡rlddddœ|_nT| d¡r†ddddœ|_n:| d    ¡r d
dddœ|_n | tj tj f¡rÀd dddœ|_d |_|jd dk    rÞd |_dS|j tjkr.|j |¡rtj|_ n*|j tjkr.|j |j|¡r.tj|_ |dd…|_|j tjkr–|js^t|jƒ|_|j |¡tjkr:|jj|j ¡|jjdœ|_d |_n¤|j tjkr:|jsät |jƒg|_|jt!j"@rÖ|j #t$ƒ¡|j #t%ƒ¡|jD]:}| |¡tjkrê|j| ¡|jdœ|_d |_q&qê|j& |¡r:d |_'dS)aý
        Takes a chunk of a document and feeds it through all of the relevant
        charset probers.
 
        After calling ``feed``, you can check the value of the ``done``
        attribute to see if you need to continue feeding the
        ``UniversalDetector`` more data, or if it has made a prediction
        (in the ``result`` attribute).
 
        .. note::
           You should always call ``close`` when you're done feeding in your
           document if ``done`` is not already ``True``.
        Nz    UTF-8-SIGçð?ÚrzUTF-32sþÿzX-ISO-10646-UCS-4-3412sÿþzX-ISO-10646-UCS-4-2143zUTF-16Tr éÿÿÿÿ)(rÚlenÚ
isinstanceÚ    bytearrayrÚ
startswithÚcodecsÚBOM_UTF8rÚ BOM_UTF32_LEÚ BOM_UTF32_BEÚBOM_LEÚBOM_BErrr$ÚHIGH_BYTE_DETECTORÚsearchÚ    HIGH_BYTEÚ ESC_DETECTORrÚ    ESC_ASCIIr rrÚfeedrÚFOUND_ITÚ charset_nameÚget_confidencer"r r    rÚNON_CJKÚappendr
rÚWIN_BYTE_DETECTORr)rÚbyte_strr%rrrr8osŽ
 þ
ÿþ
 
þ
 
þ
þ
ÿ û
þ
zUniversalDetector.feedc        Cst|jr |jSd|_|js&|j d¡n²|jtjkrBddddœ|_n–|jtjkrØd}d}d}|j    D]"}|sjq`| 
¡}||kr`|}|}q`|rØ||j krØ|j }|j   ¡}| 
¡}| d    ¡rÈ|jrÈ|j ||¡}|||jdœ|_|j ¡tjkrn|jd
dkrn|j d ¡|j    D]`}|sq t|tƒrP|jD] }|j d |j |j| 
¡¡q,n|j d |j |j| 
¡¡q |jS) zæ
        Stop analyzing the current document and come up with a final
        prediction.
 
        :returns:  The ``result`` attribute, a ``dict`` with the keys
                   `encoding`, `confidence`, and `language`.
        Tzno data received!Úasciir&r'rNrziso-8859r z no probers hit minimum thresholdz%s %s confidence = %s)rrrrÚdebugrrr$r5r r;ÚMINIMUM_THRESHOLDr:Úlowerr,rÚ ISO_WIN_MAPÚgetr"ÚgetEffectiveLevelrÚDEBUGr*rÚprobers)    rÚprober_confidenceÚmax_prober_confidenceÚ
max_proberr%r:Úlower_charset_namer!Ú group_proberrrrÚcloseÜsj     þ
 
 
 
ÿþ 
 
ý
ýzUniversalDetector.closeN)rÚ
__module__Ú __qualname__Ú__doc__rBÚreÚcompiler3r6r>rDrÚALLrrr8rNrrrrr 3s$
 
 
ù     mr )rQr-rrRÚcharsetgroupproberrÚenumsrrrÚ    escproberrÚ latin1proberrÚmbcsgroupproberr    Úsbcsgroupproberr
Úobjectr rrrrÚ<module>s