
                             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
  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)detect)	iana_name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-  -
  $ ! [         a     gf = f)Ng        c              3   .   #    U  H  u  pX:g  v   M     g 7f)N ).0chr_achr_bs      8platform/gsutil/third_party/charset_normalizer/bin/bc.py	<genexpr>#calc_equivalence.<locals>.<genexpr>   s      +<<5+<s   g      ?)decodeUnicodeDecodeErrorlensumzip)r	   r
   r   str_astr_bcharacter_countdiff_character_counts          r   calc_equivalencer      sp    t$t$ %jO +.u+<  %788  s   "A 
AA	argumentsc                 2   [         R                  " SS9nUR                  SSSS[        SSS	9  UR	                  U 5      n[        S
5      (       d  [        S5        [        S5        SnSn[        [        S5      5       GHF  nUS-  n[        US5       nUR                  5       nS S S 5        [        W5      nUS   n	[        U5      n
U
S   nX/R                  S 5      S:X  a  [        SR                  X[U	5      5        M  X:X  a!  US-  n[        SR                  U5      5        M  U	c  Ub  [!        U	S5      [!        US5      :X  a!  US-  n[        SR                  U5      5        M  [#        XyU5      nUS:  a1  US-  n[        SR                  X[U	[%        US-  S5      5      5        GM+  [        SR                  X[U	5      5        GMI     [%        X4-  S5      S-  n[        SR                  XU5      5        XR&                  :  a  S$ S$ ! , (       d  f       GNk= f)Nz5BC script checker for Charset-Normalizer with Chardet)descriptionz-cz
--coveragestoreU   coveragez1Define the minimum acceptable coverage to succeed)actiondefaulttypedesthelpz./char-datasetzaThis script require https://github.com/Ousret/char-dataset to be cloned on package root directory   r   z./char-dataset/**/*.*rbencodingu0   ⚡⚡ '{}' (BC-Break) New('{}') vs Legacy('{}')u   ✅✅ '{}' (BC)Fg\(\?u-   ️✅ ️'{}' (got '{}' but eq {} WITH {} %)g      Y@      z#Total EST BC = {} % ({} / {} files))argparseArgumentParseradd_argumentint
parse_argsr   printexitsortedr   openreadchardet_detect
tbt_detectcountformatr   r   roundr$   )r   parserargssuccess_counttotal_counttbt_pathfpr	   chardet_resultchardet_encodingcharset_normalizer_resultcharset_normalizer_encodingcalc_eqsuccess_ratios                 r   cli_bcrJ      sn   $$KF l7BSWaP  R Y'D!""qrQMK4 789q(D!RggiG " (0)*5$.w$7!&?
&K#:@@F!KDKKH  tD  E  F&:QM$++H56$)D)LR[\lnsRt  yB  C^  `e  yf  SfQM$++H56"7>YZd?QMAHH  qA  CH  IP  SW  IW  YZ  C[  \  ]@GGo  A  	BC :F -5q9D@M	
/
6
6}U`
ab.15A5I "!s   H
H	__main__r*   )r   os.pathr   sysr   typingr   r/   charset_normalizerr   r:   chardetr9   charset_normalizer.utilsr   bytesstrr   rJ   __name__r5   r       r   <module>rV      sp         3 , .9e 93 9c 986d3i 86v zH	
 rU   