Ë
    ýÄ®iª.  ã                  óÚ   — d dl mZ d dlZd dlZd dlZd dlmZ d dlmZm	Z	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d
„Z G d„ d«      Zddd„Zedk(  r e«        yy)é    )ÚannotationsN)Údumps)ÚabspathÚbasenameÚdirnameÚjoinÚrealpath)Úpython_version)Úunidata_version)Úfrom_fp)ÚCliDetectionResult)Ú__version__c                ó¤   — |dk(  rdnd}	 t        | |z   «      j                  «       j                  «       }|s|dk(  S |dv ry|dv ryt        d«       ŒG)	zBAsk a yes/no question via input() and return the answer as a bool.Úyesz [Y/n] z [y/N] T)Úyr   )ÚnÚnoFzPlease respond with 'y' or 'n'.)ÚinputÚstripÚlowerÚprint)ÚquestionÚdefaultÚpromptÚchoices       úR/var/www/html/venv/lib/python3.12/site-packages/charset_normalizer/cli/__main__.pyÚquery_yes_nor      sf   € à! UÒ*‰Y°	€Fà
Ü�x &Ñ(Ó)×/Ñ/Ó1×7Ñ7Ó9ˆÙØ˜eÑ#Ð#Ø�\Ñ!ØØ�[Ñ ØÜÐ/Ô0ð ó    c                  ó@   — e Zd ZdZ	 	 	 	 d	 	 	 	 	 	 	 dd„Zdd„Zd	d„Zy)
ÚFileTypeaè  Factory for creating file object types

    Instances of FileType are typically passed as type= arguments to the
    ArgumentParser add_argument() method.

    Keyword Arguments:
        - mode -- A string indicating how the file is to be opened. Accepts the
            same values as the builtin open() function.
        - bufsize -- The file's desired buffer size. Accepts the same values as
            the builtin open() function.
        - encoding -- The file's encoding. Accepts the same values as the
            builtin open() function.
        - errors -- A string indicating how encoding and decoding errors are to
            be handled. Accepts the same value as the builtin open() function.

    Backported from CPython 3.12
    Nc                ó<   — || _         || _        || _        || _        y ©N)Ú_modeÚ_bufsizeÚ	_encodingÚ_errors)ÚselfÚmodeÚbufsizeÚencodingÚerrorss        r   Ú__init__zFileType.__init__3   s    € ð ˆŒ
ØˆŒØ!ˆŒØˆ�r   c                ó2  ‡ — |dk(  r¬d‰ j                   v r8d‰ j                   v rt        j                  j                  S t        j                  S t	        ˆ fd„dD «       «      r8d‰ j                   v rt        j
                  j                  S t        j
                  S d‰ j                   › �}t        |«      ‚	 t        |‰ j                   ‰ j                  ‰ j                  ‰ j                  «      S # t        $ r"}d|› d|› �}t        j                  |«      ‚d }~ww xY w)	NÚ-ÚrÚbc              3  ó:   •K  — | ]  }|‰j                   v –— Œ y ­wr"   )r#   )Ú.0Úcr'   s     €r   Ú	<genexpr>z$FileType.__call__.<locals>.<genexpr>D   s   øè ø€ Ð4©e¨�Q˜$Ÿ*™*”_©eùs   ƒÚwaxzargument "-" with mode zcan't open 'z': )r#   ÚsysÚstdinÚbufferÚanyÚstdoutÚ
ValueErrorÚopenr$   r%   r&   ÚOSErrorÚargparseÚArgumentTypeError)r'   ÚstringÚmsgÚeÚmessages   `    r   Ú__call__zFileType.__call__?   sá   ø€ à�SŠ=Ø�d—j‘jÑ Ø+.°$·*±*Ñ+<”s—y‘y×'Ñ'ÐKÄ#Ç)Á)ÐKÜÓ4©eÓ4Ô4Ø,/°4·:±:Ñ,=”s—z‘z×(Ñ(ÐMÄ3Ç:Á:ÐMà/°·
±
¨|Ð<�Ü  “oÐ%ð	6Ü˜ §
¡
¨D¯M©M¸4¿>¹>È4Ï<É<ÓXÐXøÜò 	6Ø$ V H¨C°¨sÐ3ˆGÜ×,Ñ,¨WÓ5Ð5ûð	6ús   Â46C+ Ã+	DÃ4DÄDc           
     óN  — | j                   | j                  f}d| j                  fd| j                  fg}dj	                  |D �cg c]  }|dk7  sŒ	t        |«      ‘Œ c}|D ��cg c]  \  }}|€Œ	|› d|›�‘Œ c}}z   «      }t        | «      j                  › d|› d�S c c}w c c}}w )Nr*   r+   ú, éÿÿÿÿÚ=Ú(Ú))r#   r$   r%   r&   r   ÚreprÚtypeÚ__name__)r'   ÚargsÚkwargsÚargÚkwÚargs_strs         r   Ú__repr__zFileType.__repr__Q   s¬   € Ø�z‰z˜4Ÿ=™=Ð(ˆØ˜tŸ~™~Ð.°¸4¿<¹<Ð0HÐIˆØ—9‘9Ù"&Ó4¡$˜3¨#°«)ŒT�#�Y $Ñ4Ù.4ÔH©f¡7 2 s¸¹�"��Q�s�gŠ¨fÒHñIó
ˆô �t“*×%Ñ%Ð& a¨ z°Ð3Ð3ùò 5ùÛHs   Á
BÁBÁ#
B!Á.	B!)r/   rG   NN)r(   Ústrr)   Úintr*   ú
str | Noner+   rV   )r@   rT   Úreturnz	typing.IO)rW   rT   )rM   Ú
__module__Ú__qualname__Ú__doc__r,   rD   rS   © r   r   r    r        sJ   „ ñð( ØØ#Ø!ð
àð
ð ð
ð ð	
ð
 ó
ó6ô$4r   r    c                ó  — t        j                  d¬«      }|j                  dt        d«      dd¬«       |j                  dd	d
ddd¬«       |j                  ddd
ddd¬«       |j                  ddd
ddd¬«       |j                  ddd
ddd¬«       |j                  ddd
ddd¬«       |j                  dd d
dd!d"¬«       |j                  d#d$d
dd%d&¬«       |j                  d'd(d)d*t        d+d,¬-«       |j                  d.d/d0j                  t        t        «       t        t        j                  j                  «       j                  d1«      rd2nd3«      d4¬5«       |j                  | «      }|j                  d6u rW|j                  du rI|j                   r!|j                   D ]  }|j#                  «        Œ t%        d7t&        j(                  ¬8«       y9|j*                  d6u rW|j                  du rI|j                   r!|j                   D ]  }|j#                  «        Œ t%        d:t&        j(                  ¬8«       y9|j,                  d;k  s|j,                  d<kD  rI|j                   r!|j                   D ]  }|j#                  «        Œ t%        d=t&        j(                  ¬8«       y9g }|j                   D �]"  }t/        ||j,                  |j0                  |j2                  du ¬>«      }|j5                  «       }|€t%        d@j                  |j6                  |j,                  d<k  rdAndB«      t&        j(                  ¬8«       |j9                  t;        t=        |j6                  «      d?g g dCg dd<d;d?d6«      «       �n?|j9                  t;        t=        |j6                  «      |j>                  |j@                  |jB                  D �cg c]  }||j>                  k7  r|‘Œ c}|jD                  |jF                  |jH                  |jJ                  |jL                  d?d6«      «       tO        |«      d9kD  r½|jP                  r±|D ]¬  }||k7  sŒ	|j9                  t;        t=        |j6                  «      |j>                  |j@                  |jB                  D �cg c]  }||j>                  k7  r|‘Œ c}|jD                  |jF                  |jH                  |jJ                  |jL                  d?d«      «       Œ® |j                  d6u �rÁ|j>                  jS                  dD«      d6u rTt%        dEj                  |j6                  «      t&        j(                  ¬8«       |jT                  du r|j#                  «        �Œ³tW        tY        |j6                  «      «      }	t[        tY        |j6                  «      «      }
|
j]                  dF«      }|j                  du r;|j_                  dG|j>                  «       |jT                  du rf|j#                  «        nU|j*                  du rGta        dHj                  |j6                  «      dI«      du r |jT                  du r|j#                  «        �Œž	 tc        |	dFjc                  |«      «      |dJ   _2        tg        |dJ   jd                  dK«      5 }|ji                  |jk                  «       «       d?d?d?«       |jT                  du s�Œ|j#                  «        �Œ% |jp                  du rMt%        ts        tO        |«      d9kD  r|D �cg c]  }|jt                  ‘Œ c}n|dJ   jt                  d6dM¬N«      «       yJ|j                   D ]Z  }t%        dOjc                  |D �cg c]4  }|jv                  t=        |j6                  «      k(  r|j>                  xs dP‘Œ6 c}«      «       Œ\ yJc c}w c c}w # 1 sw Y   ŒûxY w# tl        $ rM}t%        to        |«      t&        j(                  ¬8«       |jT                  du r|j#                  «        Y d?}~ yLd?}~ww xY wc c}w c c}w )Qzˆ
    CLI assistant using ARGV and ArgumentParser
    :param argv:
    :return: 0 if everything is fine, anything else equal trouble
    zvThe Real First Universal Charset Detector. Discover originating encoding used on text file. Normalize text to unicode.)ÚdescriptionÚfilesÚrbÚ+zFile(s) to be analysed)rL   ÚnargsÚhelpz-vz	--verboseÚ
store_trueFÚverbosezjDisplay complementary information about file if any. Stdout will contain logs about the detection process.)Úactionr   Údestrb   z-az--with-alternativeÚalternativeszIOutput complementary possibilities if any. Top-level JSON WILL be a list.z-nz--normalizeÚ	normalizezLPermit to normalize input file. If not set, program does not write anything.z-mz	--minimalÚminimalzBOnly output the charset detected to STDOUT. Disabling JSON output.z-rz	--replaceÚreplacezGReplace file when trying to normalize it instead of creating a new one.z-fz--forceÚforcezHReplace file without asking if you are sure, use this flag with caution.z-iz--no-preemptiveÚno_preemptivez>Disable looking at a charset declaration to hint the detector.z-tz--thresholdÚstoregš™™™™™É?Ú	thresholdzUDefine a custom maximum amount of noise allowed in decoded content. 0. <= noise <= 1.)re   r   rL   rf   rb   z	--versionÚversionz;Charset-Normalizer {} - Python {} - Unicode {} - SpeedUp {}z.pyÚOFFÚONz"Show version information and exit.)re   ro   rb   Tz.Use --replace in addition of --normalize only.)Úfileé   z*Use --force in addition of --replace only.g        g      ð?z---threshold VALUE should be between 0. AND 1.)rn   ÚexplainÚpreemptive_behaviourNz4Unable to identify originating encoding for "{}". {}z-Maybe try increasing maximum amount of chaos.Ú ÚUnknownÚutfzJ"{}" file does not need to be normalized, as it already came from unicode.Ú.rG   z0Are you sure to normalize "{}" by replacing it ?r   r   Úwbé   é   )Úensure_asciiÚindentrF   Ú	undefined)<r>   ÚArgumentParserÚadd_argumentr    ÚfloatÚformatr   r
   r   Ú	md_moduleÚ__file__r   ÚendswithÚ
parse_argsrj   rh   r^   Úcloser   r6   Ústderrrk   rn   r   rd   rl   ÚbestÚnameÚappendr   r   r*   Úencoding_aliasesÚcould_be_from_charsetÚlanguageÚ	alphabetsÚbomÚpercent_chaosÚpercent_coherenceÚlenrg   Ú
startswithÚclosedr   r	   r   ÚsplitÚinsertr   r   Úunicode_pathr<   ÚwriteÚoutputr=   rT   ri   r   Ú__dict__Úpath)ÚargvÚparserrN   Úmy_fileÚx_ÚmatchesÚ
best_guessÚcpÚelÚdir_pathÚ	file_nameÚo_ÚfprB   s                 r   Ú
cli_detectrª   [   sr  € ô ×$Ñ$ð%ô€Fð ×ÑØ”h˜t“n¨CÐ6Nð ô ð ×ÑØØØØØð@ð ô ð ×ÑØØØØØØXð ô ð ×ÑØØØØØØ[ð ô ð ×ÑØØØØØØQð ô ð ×ÑØØØØØØVð ô ð ×ÑØØØØØØWð ô ð ×ÑØØØØØØMð ô ð ×ÑØØØØÜØØdð ô ð ×ÑØØØM×TÑTÜÜÓÜÜ×'Ñ'×-Ñ-Ó/×8Ñ8¸Ô?‰EÀTó	
ð 2ð ô 
ð ×Ñ˜TÓ"€Dà‡|�|�tÑ §¡°%Ñ 7Ø�:Š:ØŸ:œ:�Ø—‘•ð &äÐ>ÄSÇZÁZÕPØà‡z�z�TÑ˜dŸl™l¨eÑ3Ø�:Š:ØŸ:œ:�Ø—‘•ð &äÐ:ÄÇÁÕLØà‡~�~˜Ò˜tŸ~™~°Ò3Ø�:Š:ØŸ:œ:�Ø—‘•ð &äÐ=ÄCÇJÁJÕOØà	€Bà—:•:ˆÜØØ—n‘nØ—L‘LØ!%×!3Ñ!3°uÐ!<ô	
ˆð —\‘\“^ˆ
àÐÜØF×MÑMØ—L‘Lð  Ÿ>™>¨CÒ/ñ Hàóô —Z‘Zõ
ð �I‰IÜ"Ü˜GŸL™LÓ)ØØØØØØØØØØóöð  �I‰IÜ"Ü˜GŸL™LÓ)Ø×'Ñ'Ø×/Ñ/ð #-×"BÒ"Bóá"B˜BØ ×!4Ñ!4Ò4ò Ø"Bñð
 ×'Ñ'Ø×(Ñ(Ø—N‘NØ×,Ñ,Ø×0Ñ0ØØóôô( �7‹|˜aÒ D×$5Ò$5Û!�BØ˜ZÓ'ØŸ	™	Ü.Ü '¨¯©Ó 5Ø "§¡Ø "× 3Ñ 3ð /1×.FÒ.Fó!"á.F¨Ø')¨R¯[©[Ò'8ò %'Ø.Fñ!"ð
 !#§¡Ø "§¡Ø "§¡Ø "× 0Ñ 0Ø "× 4Ñ 4Ø $Ø %óõð "ð, �~‰~ Ò%Ø×&Ñ&×1Ñ1°%Ó8¸DÑ@ÜØd×kÑkØ#ŸL™Lóô !ŸZ™Zõ	ð —~‘~¨Ñ.ØŸ™œÙä"¤8¨G¯L©LÓ#9Ó:�Ü$¤X¨g¯l©lÓ%;Ó<�	à )§¡°Ó 4�à—<‘< 5Ñ(Ø—I‘I˜b *×"5Ñ"5Ô6Ø—~‘~¨Ñ.ØŸ™�à—J‘J %Ñ'Ü$ØJ×QÑQØ#ŸL™Lóð ó	ð ñð —~‘~¨Ñ.ØŸ™œÙð	Ü)-¨h¸¿¹À»Ó)E�B�q‘EÔ&ä˜b ™e×0Ñ0°$Ô7¸2ØŸ™ ×!2Ñ!2Ó!4Ô5÷ 8ð �>‰>˜UÓ"Ø�M‰MŽOðA ðD ‡|�|�uÑÜÜÜ.1°"«g¸ªk¡rÓ*¡r �—“ rÒ*¸rÀ!¹u¿~¹~Ø!Øôô	
ð& ð —z”zˆGÜØ—	‘	ñ #%óá"$˜BØŸ7™7¤g¨g¯l©lÓ&;Ò;ð Ÿ™Ò2 {Ñ2Ø"$ñóõð "ð ùòWùò.!"÷j 8Ð7ûäò Üœ#˜a›&¤s§z¡zÕ2Ø—~‘~¨Ñ.ØŸ™œÝûð	üò +ùòsI   Î4^Ñ=^Ù<^)Ú ^Ú#^)Û8`Ý9`Þ^&	Þ"^)Þ)	_?Þ2A_:ß:_?Ú__main__)r   )r   rT   r   rT   rW   Úboolr"   )rž   zlist[str] | NonerW   rU   )Ú
__future__r   r>   r6   ÚtypingÚjsonr   Úos.pathr   r   r   r   r	   Úplatformr
   Úunicodedatar   Úcharset_normalizer.mdÚmdr„   Úcharset_normalizerr   Úcharset_normalizer.modelsr   Úcharset_normalizer.versionr   r   r    rª   rM   r[   r   r   Ú<module>r¸      sW   ðÝ "ã Û 
Û Ý ß >Õ >Ý #Ý 'å )Ý &Ý 8Ý 2ô1÷84ñ 84ôvLð^ ˆzÒÙ…Lð r   