
    JiR!                    ^   S SK Jr  S SKrS SKrS SKrS SKJr  S SKJr  S SK	J
r
  S SKJr  S SKJr  S SKJrJr  S SKr\(       a
  S S	KJrJrJr    S               SS
 jjrSS jrSS jrSS jrSS jrSS jr " S S\R<                  5      rSS jr SSS jjr!\"S:X  a  \!" 5         gg)    )annotationsN)	b64decode)encodebytes)Sequence)Path)default_timer)TYPE_CHECKINGAny)DecodeEncodeEncodeBytesc           
        U S-  n U(       d  Uc  Sn[        5       n U" U5      n	US-  n[        5       U-
  U :  a  OM!  Un
[        5       nU
S:  a  U" U5      n	U
S-  n
U
S:  a  M  [        5       U-
  n[        SR                  UR                  S-   UR                  -   S-   U[        U5      -  S-  U-  [        U5      [        U	5      5      5        Sn[        5       n U" XS9n	US-  n[        5       U-
  U :  a  OM  Un
[        5       nU
S:  a  U" XS9n	U
S-  n
U
S:  a  M  [        5       U-
  n[        SR                  UR                  S-   UR                  -   S-   U[        U5      -  S-  U-  [        U5      [        U	5      5      5        Sn[        5       n U" XUS	9nUS-  n[        5       U-
  U :  a  OM   Un
[        5       nU
S:  a  U" XUS	9nU
S-  n
U
S:  a  M  [        5       U-
  n[        SR                  UR                  S-   UR                  -   S-   U[        U5      -  S-  U-  [        U	5      [        U5      5      5        X:X  d   eg )
Ng       @r      z1{:<32s} {:9.3f} MB/s ({:,d} bytes -> {:,d} bytes).:g      0A)altchars)r   validate)timerprintformat
__module____name__len)durationdataencdecencbytesr   r   numbertimeencodedcontentiterdecodedcontents               S/var/www/html/dynamic-report/venv/lib/python3.13/site-packages/pybase64/__main__.py	bench_oner%      s    #~H(w%d^NaKFw~(	 
 wQh%d^NAID Qh w~?FF##c)H,=,==C3t9$9TAD	N#		
 F7D
T5!7T>H$	 
 D7D
(T5	 ( 7T>D	;BBNNS 3<</#5s4y _5=I		
 F7D
^R!7T>H$	 
 D7D
(^R	 ( 7T>D	;BBNNS 3<</#5s4y _5=I		
 !!!    c                    U S:X  a(  [         R                  R                  R                  5       $ [	        U 5      R                  5       $ N-)sysstdinbufferreadr   
read_bytes)files    r$   readallr0   c   s5    s{yy$$&&:  ""r&   c                    U S:X  a*  [         R                  R                  R                  U5        g [	        U 5      R                  U5        g r(   )r*   stdoutr,   writer   write_bytes)r/   r   s     r$   writeallr5   i   s3    s{

%T
t$r&   c                |   [        [        S-   [        R                  " 5       -   5        [	        U5      nS H  nS Hz  n[        SU<S SU<S 35        [        U U[        R                  [        R                  [        R                  UU5        [        U U[        R                  [        [        UU5        M|     M     g )N )N   -_)FTzbench: altchars=sz, validate=)r   __package__pybase64get_versionr0   r%   	b64encoder   r   base64b64decodeValidateb64encodebytes)r   inputr   r   r   s        r$   	benchmarkrB   p   s    	+
h224
455>D!%H$XNN+h^^LM""""$$   ! & "r&   c                \    [        U 5      n[        R                  " X15      n[        X#5        g N)r0   r;   r=   r5   )rA   r   outputr   s       r$   encoderF      s#    5>Dd-DVr&   c                ^    [        U 5      n[        R                  " XAU5      n[        X45        g rD   )r0   r;   r   r5   )rA   r   r   rE   r   s        r$   decoderH      s%    5>Ddh7DVr&   c                  d   ^  \ rS rSr  S       SU 4S jjjr S         SS jjrSrU =r$ )	LicenseAction   c                P   > [         TU ]  UU[        R                  SUS9  X0l        g )Nr   )option_stringsdestdefaultnargshelp)super__init__argparseSUPPRESSlicense)selfrM   rN   rV   rQ   	__class__s        r$   rS   LicenseAction.__init__   s3     	)%% 	 	
 r&   c                N    [        U R                  5        UR                  5         g rD   )r   rV   exit)rW   parser	namespacevaluesoption_strings        r$   __call__LicenseAction.__call__   s     	dllr&   )rV   )Nz!show license information and exit)rM   zSequence[str]rN   strrV   
str | NonerQ   rc   rD   )
r\   zargparse.ArgumentParserr]   zargparse.Namespacer^   zstr | Sequence[Any] | Noner_   rc   returnNone)r   r   __qualname____firstlineno__rS   r`   __static_attributes____classcell__)rX   s   @r$   rJ   rJ      sz    
 #>%  	
  * %)' & +	
 " 
 r&   rJ   c                    U S:X  a  U $ [        U 5      nU(       a  [        UR                  SS95      $ [        UR                  R                  SS9UR                  -  5      $ )Nr)   T)strict)r   rb   resolveparentname)valueis_inputpaths      r$   
check_filerr      sV    |;D4<<t<,--t{{""$"/$));<<r&   c           
     @   [         R                  " [        [        S-   S9nUR                  SSS[        S-   [        R
                  " 5       -   S9  UR                  S[        [        R                  " 5       S	9  UR                  S
S9nUR                  SSS9nUR                  SSSS[        SSS9  UR                  SSS 5        UR                  SSSS9  UR                  [        S9  UR                  SSS9nUR                  SSS 5        UR                  SSS 5        UR                  SSS S9  UR                  5       nUR                  S!S"S#S$S%S&S'9  UR                  S(S)S%S*S+9  UR                  S,S-S.SS/S0S19  UR                  [        S9  UR                  S2SS9nUR                  SSS3 5        UR                  SSS4 5        UR                  SSS5S9  UR                  5       nUR                  S!S"S#S$S%S6S'9  UR                  S(S)S%S7S+9  UR                  S,S-S.SS/S8S19  UR                  S9S:S;S<S=9  UR                  [         S9  U c  ["        R$                  S>S  n ['        U 5      S?:X  a  S@/n [)        UR+                  U SA95      nUR-                  SB5      nU" SC0 UD6  g )DNz command-line tool.)progdescriptionz-Vz	--versionversionr7   )actionrv   z	--license)rw   rV   z	tool help)rQ   rB   z-h for usagez-dz
--durationDr   g      ?z4expected duration for a single encode or decode test)metavarrN   typerO   rQ   rz   z
input filec                    [        U S5      $ NTrr   r9   s    r$   <lambda>main.<locals>.<lambda>   s    jD>Qr&   rA   z!input file used for the benchmark)rz   rQ   )funcrF   c                    [        U S5      $ r|   r}   r~   s    r$   r   r          :a;Nr&   zoutput filec                    [        U S5      $ NFr}   r~   s    r$   r   r          Jq%<Pr&   zinput file to be encodedz-uz--urlstore_constr8   r   zuse URL encoding)rw   constrN   rQ   z-az
--altcharsz'use alternative characters for encoding)rN   rQ   z-oz--outputrE   r)   z'encoded output file (default to stdout))rN   rz   rO   rQ   rH   c                    [        U S5      $ r|   r}   r~   s    r$   r   r      r   r&   c                    [        U S5      $ r   r}   r~   s    r$   r   r      r   r&   zinput file to be decodedzuse URL decodingz'use alternative characters for decodingz'decoded output file (default to stdout)z--no-validationr   store_falsez$disable validation of the input data)rN   rw   rQ   r   r   z-h)argsr    )rT   ArgumentParserr:   add_argumentr;   r<   rJ   get_license_textadd_subparsers
add_parserfloatregisterset_defaultsrB   add_mutually_exclusive_grouprF   rH   r*   argvr   vars
parse_argspop)	r   r\   
subparsersbenchmark_parserencode_parsergroupdecode_parserr   r   s	            r$   mainr      s9   $$k4I&IF c!H$8$8$::	   M8C\C\C^_&&K&8J!,,[~,N!!C "  fl4QR!!l)L "  !!y!1))()HM6<1NO6=2PQw\@Z[668E	   
6	   6   F+))()HM6<1NO6=2PQw\@Z[668E	   
6	   6   3	   F+|xx|
4yA~v!!t!,-D88FDL4Lr&   __main__r   )r   r   r   bytesr   r   r   r   r   r   r   bytes | Noner   boolrd   re   )r/   rb   rd   r   )r/   rb   r   r   rd   re   )r   r   rA   rb   rd   re   )rA   rb   r   r   rE   rb   rd   re   )
rA   rb   r   r   r   r   rE   rb   rd   re   )ro   rb   rp   r   rd   rb   rD   )r   zSequence[str] | Nonerd   re   )#
__future__r   rT   r>   r*   r   r?   r   r@   collections.abcr   pathlibr   timeitr   r   typingr	   r
   r;   pybase64._typingr   r   r   r%   r0   r5   rB   rF   rH   ActionrJ   rr   r   r   r   r&   r$   <module>r      s    "   
 1 0 $  ) % << "M"M"
M" 
M" 
	M"
 M" M" M" 
M"`#%4HOO 8=eP zF r&   