Ë
    äØjj :  ã                   óÈ   — d Z ddlZddlZddlZddlmZmZmZ ddlm	Z	 ddl
mZ ddlmZmZmZ ddlmZ dd	lmZ dd
lmZ ddlmZ ddlmZ ddlmZ ddlmZ  G d„ d«      Zy)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)ÚListÚOptionalÚUnioné   )ÚCharSetGroupProber)ÚCharSetProber)Ú
InputStateÚLanguageFilterÚProbingState)ÚEscCharSetProber)ÚLatin1Prober)ÚMacRomanProber)ÚMBCSGroupProber)Ú
ResultDict)ÚSBCSGroupProber)ÚUTF1632Proberc            	       óN  — e Zd ZdZdZ ej                  d«      Z ej                  d«      Z ej                  d«      Z	dddd	d
ddddœZ
ddddddddœZej                  dfdededdfd„Zedefd„«       Zedefd„«       Zedee   fd„«       Zd!d„Zdeeef   ddfd„Zdefd „Zy)"Ú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)ú
iso-8859-1z
iso-8859-2z
iso-8859-5z
iso-8859-6z
iso-8859-7z
iso-8859-8ú
iso-8859-9ziso-8859-13zISO-8859-11ÚGB18030ÚCP949úUTF-16)Úasciir   ztis-620r   Úgb2312zeuc-krzutf-16leFÚlang_filterÚshould_rename_legacyÚreturnNc                 ó  — d | _         d | _        g | _        d dd dœ| _        d| _        d| _        t        j                  | _        d| _	        || _
        t        j                  t        «      | _        d| _        || _        | j#                  «        y )Nç        ©ÚencodingÚ
confidenceÚlanguageFó    )Ú_esc_charset_proberÚ_utf1632_proberÚ_charset_probersÚresultÚdoneÚ	_got_datar	   Ú
PURE_ASCIIÚ_input_stateÚ
_last_charr   ÚloggingÚ	getLoggerÚ__name__ÚloggerÚ_has_win_bytesr   Úreset)Úselfr   r   s      úg/opt/eval-harness/bench_task/venv/lib/python3.12/site-packages/pip/_vendor/chardet/universaldetector.pyÚ__init__zUniversalDetector.__init__d   sˆ   € ð
 @DˆÔ Ø8<ˆÔØ57ˆÔàØØñ#
ˆŒð
 ˆŒ	ØˆŒÜ&×1Ñ1ˆÔØˆŒØ&ˆÔÜ×'Ñ'¬Ó1ˆŒØ#ˆÔØ$8ˆÔ!Ø�
‰
�r%   c                 ó   — | j                   S ©N)r-   ©r5   s    r6   Úinput_statezUniversalDetector.input_state{   s   € à× Ñ Ð r%   c                 ó   — | j                   S r9   )r3   r:   s    r6   Úhas_win_byteszUniversalDetector.has_win_bytes   s   € à×"Ñ"Ð"r%   c                 ó   — | j                   S r9   )r(   r:   s    r6   Úcharset_probersz!UniversalDetector.charset_probersƒ   s   € à×$Ñ$Ð$r%   c                 óV  — ddddœ| _         d| _        d| _        d| _        t        j
                  | _        d| _        | j                  r| j                  j                  «        | j                  r| j                  j                  «        | j                  D ]  }|j                  «        Œ y)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.
        Nr    r!   Fr%   )r)   r*   r+   r3   r	   r,   r-   r.   r&   r4   r'   r(   )r5   Úprobers     r6   r4   zUniversalDetector.reset‡   s‘   € ð $(°sÈÑMˆŒØˆŒ	ØˆŒØ#ˆÔÜ&×1Ñ1ˆÔØˆŒØ×#Ò#Ø×$Ñ$×*Ñ*Ô,Ø×ÒØ× Ñ ×&Ñ&Ô(Ø×+Ñ+ò 	ˆFØ�L‰L�Nñ	r%   Úbyte_strc                 óV	  — | j                   ry|syt        |t        «      st        |«      }| j                  sø|j	                  t
        j                  «      rddddœ| _        n¯|j	                  t
        j                  t
        j                  f«      rddddœ| _        nt|j	                  d«      rddddœ| _        nW|j	                  d	«      rd
dddœ| _        n:|j	                  t
        j                  t
        j                  f«      rddddœ| _        d| _        | j                  d   �d| _         y| j                  t        j                  k(  r‹| j                  j!                  |«      rt        j"                  | _        nZ| j                  t        j                  k(  r=| j$                  j!                  | j&                  |z   «      rt        j(                  | _        |dd | _        | j*                  st-        «       | _        | j*                  j.                  t0        j2                  k(  rk| j*                  j5                  |«      t0        j6                  k(  r?| j*                  j8                  | j*                  j;                  «       ddœ| _        d| _         y| j                  t        j(                  k(  r¦| j<                  st?        | j@                  «      | _        | j<                  j5                  |«      t0        j6                  k(  rS| j<                  j8                  | j<                  j;                  «       | j<                  jB                  dœ| _        d| _         yy| j                  t        j"                  k(  �r:| jD                  s¡tG        | j@                  «      g| _"        | j@                  tH        jJ                  z  r#| jD                  jM                  tO        «       «       | jD                  jM                  tQ        «       «       | jD                  jM                  tS        «       «       | jD                  D ]Z  }|j5                  |«      t0        j6                  k(  sŒ&|j8                  |j;                  «       |jB                  dœ| _        d| _          n | jT                  j!                  |«      rd| _+        yyy)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ç      ð?Ú r!   zUTF-32s   þÿ  zX-ISO-10646-UCS-4-3412s     ÿþzX-ISO-10646-UCS-4-2143r   Tr"   éÿÿÿÿ),r*   Ú
isinstanceÚ	bytearrayr+   Ú
startswithÚcodecsÚBOM_UTF8r)   ÚBOM_UTF32_LEÚBOM_UTF32_BEÚBOM_LEÚBOM_BEr-   r	   r,   ÚHIGH_BYTE_DETECTORÚsearchÚ	HIGH_BYTEÚESC_DETECTORr.   Ú	ESC_ASCIIr'   r   Ústater   Ú	DETECTINGÚfeedÚFOUND_ITÚcharset_nameÚget_confidencer&   r   r   r$   r(   r   r
   ÚNON_CJKÚappendr   r   r   ÚWIN_BYTE_DETECTORr3   )r5   rB   rA   s      r6   rW   zUniversalDetector.feedš   sÕ  € ð �9Š9ØáØä˜(¤IÔ.Ü  Ó*ˆHð �~Š~à×"Ñ"¤6§?¡?Ô3ð !,Ø"%Ø "ñ�•ð
 ×$Ñ$¤f×&9Ñ&9¼6×;NÑ;NÐ%OÔPð ,4À3ÐTVÑW�•Ø×$Ñ$Ð%8Ô9ð !9Ø"%Ø "ñ	�•ð ×$Ñ$Ð%8Ô9ð !9Ø"%Ø "ñ	�•ð ×$Ñ$¤f§m¡m´V·]±]Ð%CÔDð ,4À3ÐTVÑW�”à!ˆDŒNØ�{‰{˜:Ñ&Ð2Ø �”	Øð ×Ñ¤
× 5Ñ 5Ò5Ø×&Ñ&×-Ñ-¨hÔ7Ü$.×$8Ñ$8�Õ!à×!Ñ!¤Z×%:Ñ%:Ò:Ø×%Ñ%×,Ñ,¨T¯_©_¸xÑ-GÔHä$.×$8Ñ$8�Ô!à" 2 3˜-ˆŒð ×#Ò#Ü#0£?ˆDÔ à×Ñ×%Ñ%¬×)?Ñ)?Ò?Ø×#Ñ#×(Ñ(¨Ó2´l×6KÑ6KÒKà $× 4Ñ 4× AÑ AØ"&×"6Ñ"6×"EÑ"EÓ"GØ "ñ�”ð
 !�”	Øð ×Ñ¤
× 4Ñ 4Ò4Ø×+Ò+Ü+;¸D×<LÑ<LÓ+M�Ô(Ø×'Ñ'×,Ñ,¨XÓ6¼,×:OÑ:OÒOà $× 8Ñ 8× EÑ EØ"&×":Ñ":×"IÑ"IÓ"KØ $× 8Ñ 8× AÑ Añ�”ð
 !�•	ð Pð ×Ñ¤*×"6Ñ"6Ó6Ø×(Ò(Ü)8¸×9IÑ9IÓ)JÐ(K�Ô%à×#Ñ#¤n×&<Ñ&<Ò<Ø×)Ñ)×0Ñ0´Ó1BÔCØ×%Ñ%×,Ñ,¬\«^Ô<Ø×%Ñ%×,Ñ,¬^Ó-=Ô>Ø×/Ñ/ò �Ø—;‘;˜xÓ(¬L×,AÑ,AÓAà$*×$7Ñ$7Ø&,×&;Ñ&;Ó&=Ø$*§O¡Oñ#�D”Kð
 !%�D”IÙðð ×%Ñ%×,Ñ,¨XÔ6Ø&*�Õ#ð 7ð# 7r%   c           	      óH  — | j                   r| j                  S d| _         | j                  s| j                  j	                  d«       �nD| j
                  t        j                  k(  rddddœ| _        �n| j
                  t        j                  k(  rýd}d}d}| j                  D ]  }|sŒ|j                  «       }||kD  sŒ|}|}Œ! |rÇ|| j                  kD  r¸|j                  }|€J ‚|j                  «       }|j                  «       }|j                  d	«      r(| j                  r| j                   j#                  ||«      }| j$                  r.| j&                  j#                  |xs dj                  «       |«      }|||j(                  dœ| _        | j                  j+                  «       t,        j.                  k  rà| j                  d
   €Ñ| j                  j	                  d«       | j                  D ]§  }|sŒt1        |t2        «      rR|j4                  D ]B  }| j                  j	                  d|j                  |j(                  |j                  «       «       ŒD Œh| j                  j	                  d|j                  |j(                  |j                  «       «       Œ© | j                  S )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`.
        Tzno data received!r   rD   rE   r!   Nr    ziso-8859r"   z no probers hit minimum thresholdz%s %s confidence = %s)r*   r)   r+   r2   Údebugr-   r	   r,   rR   r(   rZ   ÚMINIMUM_THRESHOLDrY   ÚlowerrI   r3   ÚISO_WIN_MAPÚgetr   Ú
LEGACY_MAPr$   ÚgetEffectiveLevelr/   ÚDEBUGrG   r   Úprobers)	r5   Úprober_confidenceÚmax_prober_confidenceÚ
max_proberrA   rY   Úlower_charset_namer#   Úgroup_probers	            r6   ÚclosezUniversalDetector.close  sp  € ð �9Š9Ø—;‘;ÐØˆŒ	à�~Š~Ø�K‰K×ÑÐ1Ö2ð ×Ñ¤*×"7Ñ"7Ò7Ø'.¸cÈrÑRˆDŽKð ×Ñ¤*×"6Ñ"6Ò6Ø $ÐØ$'Ð!ØˆJØ×/Ñ/ò (�ÙØØ$*×$9Ñ$9Ó$;Ð!Ø$Ð'<Ó<Ø,=Ð)Ø!'‘Jð(ñ Ð4°t×7MÑ7MÒMØ)×6Ñ6�Ø#Ð/Ð/Ð/Ø%1×%7Ñ%7Ó%9Ð"Ø'×6Ñ6Ó8�
ð &×0Ñ0°Ô<Ø×*Ò*Ø'+×'7Ñ'7×';Ñ';Ø.°ó(˜ð ×,Ò,Ø#'§?¡?×#6Ñ#6Ø%Ò+¨×2Ñ2Ó4°ló$�Lð !-Ø",Ø *× 3Ñ 3ñ�”ð �;‰;×(Ñ(Ó*¬g¯m©mÒ;Ø�{‰{˜:Ñ&Ð.Ø—‘×!Ñ!Ð"DÔEØ$(×$9Ñ$9ò �LÙ'Ø Ü! ,Ô0BÔCØ&2×&:Ñ&:ò ˜FØ ŸK™K×-Ñ-Ø 7Ø &× 3Ñ 3Ø &§¡Ø &× 5Ñ 5Ó 7õ	ñð Ÿ™×)Ñ)Ø3Ø(×5Ñ5Ø(×1Ñ1Ø(×7Ñ7Ó9õ	ðð$ �{‰{Ðr%   )r   N)r1   Ú
__module__Ú__qualname__Ú__doc__r`   ÚreÚcompilerP   rS   r]   rb   rd   r
   ÚALLÚboolr7   ÚpropertyÚintr;   r=   r   r   r?   r4   r   ÚbytesrH   rW   r   rm   © r%   r6   r   r   8   s7  „ ñð  ÐØ#˜Ÿ™ NÓ3ÐØ�2—:‘:˜lÓ+€LØ"˜Ÿ
™
 >Ó2Ðà$Ø$Ø$Ø$Ø$Ø$Ø$Ø%ñ	€Kð  Ø$Ø Ø$ØØØñ€Jð '5×&8Ñ&8Ø%*ñà#ðð #ðð 
ó	ð. ð!˜Sò !ó ð!ð ð#˜tò #ó ð#ð ð%  mÑ!4ò %ó ð%óð&A+˜U 5¨)Ð#3Ñ4ð A+¸ó A+ðFM�zô Mr%   r   )rp   rJ   r/   rq   Útypingr   r   r   Úcharsetgroupproberr   Úcharsetproberr   Úenumsr	   r
   r   Ú	escproberr   Úlatin1proberr   Úmacromanproberr   Úmbcsgroupproberr   Ú
resultdictr   Úsbcsgroupproberr   Úutf1632proberr   r   rx   r%   r6   ú<module>r„      sH   ðñ8ó Û Û 	ß (Ñ (å 2Ý (ß ;Ñ ;Ý 'Ý &Ý *Ý ,Ý "Ý ,Ý (÷rò rr%   