
    `                         S SK J r   S SKJr  S SKJr  S SKJr  S SKrS SKJ	r	J
r
  S SKJr  S SKJr  S	\S
\S\4S jrS\\   4S jr\S:X  a  \" \" \SS 5      5        gg)    )glob)isdir)argv)ListN)	from_path__version__)	iana_name)sepcontentcp_acp_bc                     U R                  U5      nU R                  U5      n[        U5      n[        S [        X45       5       5      nSXe-  -
  $ )Nc              3   .   #    U  H  u  pX:g  v   M     g 7f)N ).0chr_achr_bs      >platform/gsutil/third_party/charset_normalizer/bin/coverage.py	<genexpr>#calc_equivalence.<locals>.<genexpr>   s      +<<5+<s   g      ?)decodelensumzip)r   r   r   str_astr_bcharacter_countdiff_character_counts          r   calc_equivalencer      sU    NN4 ENN4 E%jO +.u+< 
 %788    	argumentsc                    [         R                  " SS9nUR                  SSSSSSS	9  UR                  S
SSS[        SSS9  UR	                  U 5      n[        S5      (       d  [        S5        [        S5        [        S[         35        SnSn[        [        S5      5       GHs  nUR                  [        5      S   nUS-  n[        UUR                  S9nUS:X  a0  [        U5      S:X  a!  [        SR!                  U5      5        US-  nMk  [        U5      S:X  a  [        SR!                  U5      5        M  UR#                  5       nXhR$                  ;   d  ['        U5      UR$                  ;   a!  [        SR!                  U5      5        US-  nM  [)        UR*                  XhR,                  5      n	U	S:  a:  US-  n[        SR!                  XXR,                  [/        U	S-  S5      5      5        GMO  [        S R!                  XXR,                  5      5        GMv     [/        X4-  S!5      S-  n
[        S"R!                  XU5      5        XR0                  :  a  S$ S$ )#NzIEmbedded detection success coverage script checker for Charset-Normalizer)descriptionz-pz--with-preemptive
store_trueF
preemptivez:Enable the preemptive scan behaviour during coverage check)actiondefaultdesthelpz-cz
--coveragestoreZ   coveragez1Define the minimum acceptable coverage to succeed)r&   r'   typer(   r)   z./char-datasetzaThis script require https://github.com/Ousret/char-dataset to be cloned on package root directory   z> using charset-normalizer r   z./char-dataset/**/*.*)preemptive_behaviourNoneu   ✅✅ '{}'u   ⚡⚡ '{}' (nothing)g\(\?u.   ️✅ ️'{}' (got '{}' but equivalence {} %)g      Y@   u   ⚡ '{}' (got '{}')   z)Total EST coverage = {} % ({} / {} files))argparseArgumentParseradd_argumentint
parse_argsr   printexitr   sortedr   splitr
   r   r%   r   formatbestcould_be_from_charsetr	   r   rawencodingroundr,   )r!   parserargssuccess_counttotal_counttbt_pathexpected_encodingresultsresultcalc_eqsuccess_ratios              r   cli_coveragerM      sA   $$_F 1,PU\hY  [
l7BSWaP  R Y'D!""qrQ	'}
56MK4 789$NN3/3q!%

 &3w<1+<-&&x01QMw<1)00:; < <<	J[@\`f`|`|@|-&&x01QM"6::/@//Rd?QMBII(TcTcejkruyky{|e}~#**8__EFC :F -5q9D@M	
5
<
<][f
gh.15A5r    __main__r.   )r   os.pathr   sysr   typingr   r4   charset_normalizerr   r   charset_normalizer.utilsr	   osr
   bytesstrr   rM   __name__r:   r   r    r   <module>rX      sp         5 . 
9e 
93 
9c 
9<6DI <6~ zH	
 r    