+
     hj0  c                  s    ^ RI Ht ^ RIHt ^ RIHt ^ RIHt ^ RIH	t	 ^ RI
HtHtHtHt ^RIHtHt ^RIHtHtHt  ! R	 R
4      t ! R R4      t]]]3,          t]],          t ! R R4      tR# )    )annotations)aliases)sha256)dumps)sub)AnyIteratorListTuple)RE_POSSIBLE_ENCODING_INDICATIONTOO_BIG_SEQUENCE)	iana_nameis_multi_byte_encodingunicode_rangec                  s   ] tR t^tR3R R lltR R ltR R lt]R R	 l4       tR
 R lt	R R lt
R R lt]R R l4       t]R R l4       t]R R l4       t]R R l4       t]R R l4       t]R R l4       t]R R l4       t]R R l4       t]R  R! l4       t]R" R# l4       t]R$ R% l4       t]R& R' l4       t]R( R) l4       t]R* R+ l4       t]R, R- l4       tR4R. R/ llt]R0 R1 l4       tR2tR# )5CharsetMatchNc               s4    V ^8  d   QhRRRRRRRRR	R
RRRR/# )   payloadbytesguessed_encodingstrmean_mess_ratiofloathas_sig_or_bombool	languagesCoherenceMatchesdecoded_payload
str | Nonepreemptive_declaration format   ">/usr/lib/python3.14/site-packages/charset_normalizer/models.py__annotate__CharsetMatch.__annotate__   sY     J JJ J 	J
 J $J $J !+J    c                	s    Wn         W n        W0n        WPn        W@n        R V n        . V n        RV n        R V n        R V n	        W`n
        Wpn        R # )N        )_payload	_encoding_mean_mess_ratio
_languages_has_sig_or_bom_unicode_ranges_leaves_mean_coherence_ratio_output_payload_output_encoding_string_preemptive_declaration)selfr   r   r   r   r   r   r   s   &&&&&&&&r"   __init__ZCharsetMatch.__init__   sQ      '.'6,5%315+-,/"-1,0#23I$r%   c                    V ^8  d   QhRRRR/# r   otherZobjectreturnr   r   r   r!   r"   r#   r$   *   s     Y YF Yt Yr%   c                	s   \        V\        4      '       g1   \        V\        4      '       d   \        V4      V P                  8H  # R # V P                  VP                  8H  ;'       d    V P
                  VP
                  8H  # )F)
isinstancer   r   r   encodingfingerprintr3   r7      &&r"   __eq__ZCharsetMatch.__eq__*   s_    %..%%% '4==88}}.XX43C3CuGXGX3XXr%   c               r5   r6   r   r   r!   r"   r#   r$   1   s     ( (F (t (r%   c                s   \        V\        4      '       g   \        h\        V P                  VP                  ,
          4      p\        V P
                  VP
                  ,
          4      pVR8  d!   VR8  d   V P
                  VP
                  8  # VR8  dX   VR8:  dQ   \        V P                  4      \        8  d   V P                  VP                  8  # V P                  VP                  8  # V P                  VP                  8  # )zA
Implemented to make sorted available upon CharsetMatches items.
g{Gz?g{Gz?)
r9   r   
ValueErrorZabschaos	coherencelenr'   r   multi_byte_usage)r3   r7   Zchaos_differenceZcoherence_differences   &&  r"   __lt__ZCharsetMatch.__lt__1   s     %.."%djj5;;&>"?&)$..5??*J&K d"';d'B>>EOO33$)=)E 4==!%55zzEKK//((5+A+AAAzzEKK''r%   c                   V ^8  d   QhRR/# r   r8   r   r   r   r!   r"   r#   r$   H   s     6 6% 6r%   c                	sl    R \        \        V 4      4      \        V P                  4      ,          ,
          # )g      ?)rB   r   rawr3      &r"   rC   ZCharsetMatch.multi_byte_usageG   s"    c#d)ns488}455r%   c               rE   r   r8   r   r   r   r!   r"   r#   r$   K   s       r%   c                	s    V P                   f'   \        V P                  V P                  R4      V n         V P                   # )NZstrict)r1   r   r'   r(   rH   rI   r"   __str__ZCharsetMatch.__str__K   s.    <<t}}dnnhGDL||r%   c               rE   rJ   r   r   r!   r"   r#   r$   Q   s     M M# Mr%   c                	s<    R V P                    RV P                   R2# )z<CharsetMatch 'z' bytes(z)>)r:   r;   rH   rI   r"   __repr__ZCharsetMatch.__repr__Q   s"     x8H8H7ILLr%   c               r5   )r   r7   r   r8   Noner   r   r!   r"   r#   r$   T   s     	# 	#, 	#4 	#r%   c                	s    \        V\        4      '       d   W8X  d%   \        R P                  VP                  4      4      hRVn        V P                  P                  V4       R# )z;Unable to add instance <{}> as a submatch of a CharsetMatchN)r9   r   r?   r    	__class__r1   r-   appendr<   r=   r"   add_submatchZCharsetMatch.add_submatchT   sP    %..%-MTTOO  E"r%   c               rE   rJ   r   r   r!   r"   r#   r$   `   s      # r%   c                	    V P                   # N)r(   rH   rI   r"   r:   ZCharsetMatch.encoding_   s    ~~r%   c               rE   r   r8   	list[str]r   r   r!   r"   r#   r$   d   s     
 
) 
r%   c                s    . p\         P                  ! 4        FM  w  r#V P                  V8X  d   VP                  V4       K)  V P                  V8X  g   K<  VP                  V4       KO  	  V# )zr
Encoding name are known by many name, using this could help when searching for IBM855 when it's listed as CP855.
)r   Zitemsr:   rO   )r3   Zalso_known_asZuZp   &   r"   encoding_aliasesZCharsetMatch.encoding_aliasesc   sW    
 $&MMODA}}!$$Q'!#$$Q'	 $
 r%   c               rE   r   r8   r   r   r   r!   r"   r#   r$   q   s     $ $T $r%   c                	rQ   rR   r+   rH   rI   r"   bomZCharsetMatch.bomp       ###r%   c               rE   rW   r   r   r!   r"   r#   r$   u   s     $ $ $r%   c                	rQ   rR   rX   rH   rI   r"   byte_order_markZCharsetMatch.byte_order_markt   rZ   r%   c               rE   rS   r   r   r!   r"   r#   r$   y   s     / /9 /r%   c                sP    V P                    Uu. uF  q^ ,          NK  	  up# u upi )z
Return the complete list of possible languages found in decoded sequence.
Usually not really useful. Returned list may be empty even if 'language' property return something != 'Unknown'.
r*   )r3   Ze   & r"   r   ZCharsetMatch.languagesx   s$     #oo.o!o...s   #c               rE   rJ   r   r   r!   r"   r#   r$      s     % %# %r%   c                sR   V P                   '       g}   RV P                  9   d   R# ^ RIHpHp \        V P                  4      '       d   V! V P                  4      MV! V P                  4      p\        V4      ^ 8X  g   RV9   d   R# V^ ,          # V P                   ^ ,          ^ ,          # )zz
Most probable language found in decoded sequence. If none were detected or inferred, the property will return
"Unknown".
ZasciiZEnglish)encoding_languagesmb_encoding_languageszLatin BasedZUnknown)r*   could_be_from_charsetZcharset_normalizer.cdr^   r_   r   r:   rB   )r3   r^   r_   r   rU   r"   languageZCharsetMatch.language   s      $444  X *$--88 &dmm4'6  9~"my&@ Q<q!!$$r%   c               rE   rF   r   r   r!   r"   r#   r$      s     % %u %r%   c                	rQ   rR   )r)   rH   rI   r"   r@   ZCharsetMatch.chaos   s    $$$r%   c               rE   rF   r   r   r!   r"   r#   r$      s     % %5 %r%   c                	s^    V P                   '       g   R # V P                   ^ ,          ^,          # )r&   r\   rH   rI   r"   rA   ZCharsetMatch.coherence   s"    q!!$$r%   c               rE   rF   r   r   r!   r"   r#   r$      s     2 2u 2r%   c                	>    \        V P                  ^d,          ^R7      # id   )Zndigits)roundr@   rH   rI   r"   percent_chaosZCharsetMatch.percent_chaos   s    TZZ#%q11r%   c               rE   rF   r   r   r!   r"   r#   r$      s     6 65 6r%   c                	rb   rc   )rd   rA   rH   rI   r"   percent_coherenceZCharsetMatch.percent_coherence   s    T^^c)155r%   c               rE   )r   r8   r   r   r   r!   r"   r#   r$      s      U r%   c                rQ   )z
Original untouched bytes.
)r'   rH   rI   r"   rG   ZCharsetMatch.raw   s    
 }}r%   c               rE   )r   r8   zlist[CharsetMatch]r   r   r!   r"   r#   r$      s      , r%   c                	rQ   rR   )r-   rH   rI   r"   submatchZCharsetMatch.submatch   s    ||r%   c               rE   rW   r   r   r!   r"   r#   r$      s     % %d %r%   c                	2    \        V P                  4      ^ 8  # r    )rB   r-   rH   rI   r"   has_submatchZCharsetMatch.has_submatch   s    4<< 1$$r%   c               rE   rS   r   r   r!   r"   r#   r$      s     $ $9 $r%   c                	s   V P                   e   V P                   # \        V 4       Uu. uF  p\        V4      NK  	  pp\        \	        V Uu0 uF  q3'       g   K  VkK  	  up4      4      V n         V P                   # u upi u upi rR   )r,   r   r   sortedZlist)r3   ZcharZdetected_rangesZrrU   r"   	alphabetsZCharsetMatch.alphabets   sr    +'''MPQUY,WYT]4-@Y,W%d+L!!AA+L&MN### -X+Ls   A<	BBc               rE   rS   r   r   r!   r"   r#   r$      s     E Ey Er%   c                sz    V P                   .V P                   Uu. uF  qP                  NK  	  up,           # u upi )z
The complete list of encoding that output the exact SAME str result and therefore could be the originating
encoding.
This list does include the encoding available in property 'encoding'.
)r(   r-   r:   )r3   mr]   r"   r`   Z"CharsetMatch.could_be_from_charset   s.     t||"D|!::|"DDD"Ds   8c               r5   )r   r:   r   r8   r   r   r   r!   r"   r#   r$      s     $ $s $ $r%   c                s`  a  S P                   e   S P                   V8w  d   VS n         \        S 4      pS P                  eM   S P                  P                  4       R9  d.   \	        \
        V 3R lVR,          ^R7      pW2R,          ,           pVP                  VR4      S n        S P                  # )z
Method to get re-encoded bytes payload using given target encoding. Default to UTF-8.
Any errors will be simply ignored by the encoder NOT replaced.
c                s  < V P                   V P                  4       ^ ,          V P                  4       ^,           P                  V P                  4       ^ ,          \	        SP
                  4      P                  RR4      4      # )r    Z_Z-)ZstringZspanreplaceZgroupsr   r0   )rm   r3   s   &r"   Z<lambda>Z%CharsetMatch.output.<locals>.<lambda>   sW    ahhqvvx{QVVXa[AII
1!$"7"78@@cJr%   :N    N)Zcount:ro   NNrn   )zutf-8Zutf8utf_8)r0   r   r2   Zlowerr   r
   Zencoder/   )r3   r:   Zdecoded_stringZpatched_headers   f&  r"   outputZCharsetMatch.output   s    
   (D,A,AX,M$,D! YN,,80066812 "%3 #5)" "02G!G#1#8#89#MD ###r%   c               rE   rJ   r   r   r!   r"   r#   r$      s     1 1S 1r%   c                sP    \        V P                  4       4      P                  4       # )zg
Retrieve the unique SHA256 computed using the transformed (re-encoded) payload. Not the original one.
)r   rq   Z	hexdigestrH   rI   r"   r;   ZCharsetMatch.fingerprint   s    
 dkkm$..00r%   )r(   r+   r*   r-   r.   r)   r0   r/   r'   r2   r1   r,   )NN)rp   )__name__
__module____qualname____firstlineno__r4   r>   rD   propertyrC   rK   rL   rP   r:   rV   rY   r[   r   ra   r@   rA   re   rf   rG   rg   rj   rl   r`   rq   r;   __static_attributes__r   r%   r"   r   r      s~   J8Y(, 6 6M	#   
 
 $ $ $ $ / / % %6 % % % %
 2 2 6 6     % % $ $ E E$: 1 1r%   r   c                  s~    ] tR t^tRtRR R lltR R ltR R ltR	 R
 ltR R lt	R R lt
R R ltR R ltRtR# )CharsetMatchesz
Container with every CharsetMatch items ordered by default from most probable to the less one.
Act like a list(iterable) but does not implements all related methods.
Nc               rE   )r   resultszlist[CharsetMatch] | Noner   r   r!   r"   r#   CharsetMatches.__annotate__   s     O O 9 Or%   c                	sH    V'       d   \        V4      V n        R # . V n        R # rR   )rk   _results)r3   ry   r=   r"   r4   ZCharsetMatches.__init__   s    ?FF7OBr%   c               rE   )r   r8   zIterator[CharsetMatch]r   r   r!   r"   r#   rz      s     ! !0 !r%   c              #  	s:   "   V P                    R j  xL
  R #  L5irR   r{   rH   rI   r"   __iter__ZCharsetMatches.__iter__   s     ==  s   c               r5   )r   itemz	int | strr8   r   r   r   r!   r"   r#   rz     s      	 l r%   c                s    \        V\        4      '       d   V P                  V,          # \        V\        4      '       d4   \	        VR4      pV P                   F  pWP
                  9   g   K  Vu # 	  \        h)z
Retrieve a single item either by its position or encoding name (alias may be used here).
Raise KeyError upon invalid index or encoding not present in results.
F)r9   intr{   r   r   r`   ZKeyError)r3   r~   Zresult   && r"   __getitem__ZCharsetMatches.__getitem__  s_    
 dC  ==&&dC  T5)D--777!M ( r%   c               rE   )r   r8   r   r   r   r!   r"   r#   rz     s     " " "r%   c                	s,    \        V P                  4      # rR   rB   r{   rH   rI   r"   __len__ZCharsetMatches.__len__  s    4==!!r%   c               rE   rW   r   r   r!   r"   r#   rz     s     & &$ &r%   c                	rh   ri   r   rH   rI   r"   __bool__ZCharsetMatches.__bool__  s    4==!A%%r%   c               r5   )r   r~   r   r8   rM   r   r   r!   r"   r#   rz     s     . .< .D .r%   c                s   \        V\        4      '       g.   \        RP                  \	        VP
                  4      4      4      h\        VP                  4      \        8  d`   V P                   FO  pVP                  VP                  8X  g   K   VP                  VP                  8X  g   K=  VP                  V4        R# 	  V P                  P                  V4       \        V P                  4      V n	        R# )zf
Insert a single match. Will be inserted accordingly to preserve sort.
Can be inserted as a submatch.
z-Cannot append instance '{}' to CharsetMatchesN)r9   r   r?   r    r   rN   rB   rG   r   r{   r;   r@   rP   rO   rk   )r3   r~   Zmatchr   r"   rO   ZCharsetMatches.append  s    
 $--?FF'  txx=++$$(8(88U[[DJJ=V&&t, ' 	T"t}}-r%   c               rE   r   r8   zCharsetMatch | Noner   r   r!   r"   r#   rz   )  s        )  r%   c                sP    V P                   '       g   R# V P                   ^ ,          # )zA
Simply return the first match. Strict equivalent to matches[0].
Nr|   rH   rI   r"   bestZCharsetMatches.best)  s     }}}}}Qr%   c               rE   r   r   r   r!   r"   r#   rz   1  s      * r%   c                s"    V P                  4       # )z@
Redundant method, call the method best(). Kept for BC reasons.
)r   rH   rI   r"   firstZCharsetMatches.first1  s     yy{r%   r|   rR   )rr   rs   rt   ru   Z__doc__r4   r}   r   r   r   rO   r   r   rw   r   r%   r"   rx   rx      s5    
O!"&.(  r%   rx   c                  sD    ] tR tRtR R lt]R R l4       tR R ltRtR	# )
CliDetectionResulti<  c               sD    V ^8  d   QhRRRRRRRRRRR	RR
RRRRRRRRR/# )r   pathr   r:   r   rV   rT   alternative_encodingsra   rl   r   r   r@   r   rA   unicode_pathis_preferredr   r   r!   r"   r#   CliDetectionResult.__annotate__=  sx     / // / $	/
  )/ / / / / / !/ /r%   c                	s    Wn         Wn        W n        W0n        W@n        WPn        W`n        Wpn        Wn        Wn	        Wn
        R # rR   )r   r   r:   rV   r   ra   rl   r   r@   rA   r   )r3   r   r:   rV   r   ra   rl   r   r@   rA   r   r   s   &&&&&&&&&&&&r"   r4   ZCliDetectionResult.__init__=  s@     	(4$,+;0E"%$-$2!
 )".r%   c               rE   )r   r8   zdict[str, Any]r   r   r!   r"   r#   r   X  s     
 
. 
r%   c                	s   R V P                   RV P                  RV P                  RV P                  RV P                  RV P
                  RV P                  RV P                  RV P                  R	V P                  R
V P                  /# r   r:   rV   r   ra   rl   r   r@   rA   r   r   r   rH   rI   r"   __dict__ZCliDetectionResult.__dict__W  s{     DII 5 5#T%?%?d11TZZD--D--
 	
r%   c               rE   rJ   r   r   r!   r"   r#   r   g  s     A A Ar%   c                	s2    \        V P                  R ^R7      # )T)Zensure_asciiZindent)r   r   rH   rI   r"   to_jsonZCliDetectionResult.to_jsong  s    T]]a@@r%   )rl   r   r@   rA   r:   rV   r   r   ra   r   r   N)	rr   rs   rt   ru   r4   rv   r   r   rw   r   r%   r"   r   r   <  s'    /4 
 
A Ar%   r   N)Z
__future__r   Zencodings.aliasesr   Zhashlibr   Zjsonr   Zrer   Ztypingr   r   r   r	   Zconstantr
   r   Zutilsr   r   r   r   rx   r   r   ZCoherenceMatchr   r   r   r%   r"   <module>r      sd    " %    - - G C Ce1 e1P@ @F sEz"' ,A ,Ar%   