
    tf                         d dl Z d dlZd dlZd dlmZ d dlmZ d dlmZ	 d dl
Z
ddZd Zd Zd Zd	 Zd
 Z G d de j"                        ZddZedk(  r e        yy)    N)	b64decode)encodebytes)default_timerc           
         | dz  } |s|d}t               }	  ||      }	|dz  }t               |z
  | kD  rn|}
t               }|
dkD  r ||      }	|
dz  }
|
dkD  rt               |z
  }t        dj                  |j                  dz   |j                  z   dz   |t        |      z  dz  |z  t        |      t        |	                   d}t               }	  |||      }	|dz  }t               |z
  | kD  rn!|}
t               }|
dkD  r |||      }	|
dz  }
|
dkD  rt               |z
  }t        dj                  |j                  dz   |j                  z   dz   |t        |      z  dz  |z  t        |      t        |	                   d}t               }	  ||	||	      }|dz  }t               |z
  | kD  rn"|}
t               }|
dkD  r ||	||	      }|
dz  }
|
dkD  rt               |z
  }t        d
j                  |j                  dz   |j                  z   dz   |t        |      z  dz  |z  t        |      t        |	                   ||k(  sJ y )Ng       @r      z1{:<32s} {:9.3f} MB/s ({:,d} bytes -> {:,d} bytes).:g      0A)altchars)r
   validatez5{0:<32s} {1:9.3f} MB/s ({3:,d} bytes -> {2:,d} bytes))timerprintformat
__module____name__len)durationdataencdecencbytesr
   r   numbertimeencodedcontentiterdecodedcontents               [/var/www/html/software/conda/envs/higlass/lib/python3.12/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
TH5!7T>H$	 
 D7D
(TH5	 ( 7T>D	;BBNNS 3<</#5s4y _5=I		
 F7D
^hR!7T>H$	 
 D7D
(^hR	 ( 7T>D	?FFNNS 3<</#5s4y _5=I		
 T!!!    c                    | t         j                  k(  r6t        | d      r| j                  j	                         S | j	                         S 	 | j	                         }| j                          |S # | j                          w xY wNbuffer)sysstdinhasattrr!   readclosefiler   s     r   readallr)   S   sd    syy 4";;##%%99;	99;DJJL JJLs   A- -A?c                    | t         j                  k(  r:t        | d      r| j                  j	                  |       y | j	                  |       y 	 | j	                  |       | j                          y # | j                          w xY wr    )r"   stdoutr$   r!   writer&   r'   s     r   writeallr-   d   s\    szz 4"KKd#JJt	JJtJJLDJJLs   A1 1Bc                    t        t        dz   t        j                         z          t	        | j
                        }dD ]  }dD ]  }t        dj                  t        |      t        |                   t        | j                  |t        j                  t        j                  t        j                  ||       t        | j                  |t        j                  t        t        ||         y )N )N   -_)FTz#bench: altchars={:s}, validate={:s})r   __package__pybase64get_versionr)   inputr   reprr   r   	b64encoder   r   base64b64decodeValidateb64encodebytes)argsr   r
   r   s       r   	benchmarkr;   t   s    	+
h224
454::D! % 	H5<<NDN
 """"$$   !	r   c                     t        | j                        }t        j                  || j                        }t        | j                  |       y N)r)   r4   r2   r6   r
   r-   outputr:   r   s     r   encoder@      s4    4::DdDMM2DT[[$r   c                     t        | j                        }t        j                  || j                  | j
                        }t        | j                  |       y r=   )r)   r4   r2   r   r
   r   r-   r>   r?   s     r   decoderB      s:    4::DdDMM4==ADT[[$r   c                   X     e Zd Zdej                  ej                  df fd	ZddZ xZS )LicenseActionNz!show license information and exitc                 <    t         |   |||d|       || _        y )Nr   )option_stringsdestdefaultnargshelp)super__init__license)selfrF   rM   rG   rH   rJ   	__class__s         r   rL   zLicenseAction.__init__   s/     	) 	 	
 r   c                 N    t        | j                         |j                          y r=   )r   rM   exit)rN   parser	namespacevaluesoption_strings        r   __call__zLicenseAction.__call__   s    dllr   r=   )r   r   __qualname__argparseSUPPRESSrL   rV   __classcell__)rO   s   @r   rD   rD      s'     !!0"r   rD   c           	         t        j                  t        t        dz         }|j                  dddt        dz   t	        j
                         z          |j                  dt        t	        j                         	       |j                  d
      }|j                  dd      }|j                  ddddt        dd       |j                  dt        j                  d      d       |j                  t               |j                  dd      }|j                  dt        j                  d      d       |j                         }|j                  ddddd d!"       |j                  d#d$d d%&       |j                  d'd(d)t        j                  d*      t        j                   d+,       |j                  t"               |j                  d-d      }|j                  dt        j                  d      d.       |j                         }|j                  ddddd d/"       |j                  d#d$d d0&       |j                  d'd(d)t        j                  d*      t        j                   d1,       |j                  d2d3d4d56       |j                  t$               | t        j&                  d7d  } t)        |       d8k(  rd9g} |j+                  | :      } | j-                  |        y );Nz command-line tool.)progdescriptionz-Vz	--versionversionr/   )actionr^   z	--license)r_   rM   z	tool help)rJ   r;   z-h for usagez-dz
--durationDr   g      ?z4expected duration for a single encode or decode test)metavarrG   typerH   rJ   r4   rbz!input file used for the benchmark)rb   rJ   )funcr@   zinput file to be encodedz-uz--urlstore_constr0   r
   zuse URL encoding)r_   constrG   rJ   z-az
--altcharsz'use alternative characters for encoding)rG   rJ   z-oz--outputr>   wbz'encoded output file (default to stdout))rG   rb   rH   rJ   rB   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)rG   r_   rJ   r   r   z-h)r:   )rX   ArgumentParserr1   add_argumentr2   r3   rD   get_license_textadd_subparsers
add_parserfloatFileTypeset_defaultsr;   add_mutually_exclusive_groupr"   r+   r@   rB   argvr   
parse_argsrd   )r:   rR   
subparsersbenchmark_parserencode_parsergroupdecode_parsers          r   mainry      s   $$k4I&IF c!H$8$8$::	   M83L3L3N   &&K&8J!,,[~,N!!C "  !!h''-4W "  !!y!1))()HMh''-4N   668E	   
6	   t$

6   F+))()HMh''-4N   668E	   
6	   t$

6   3	   F+|xx|
4yA~v$'DIIdOr   __main__)NFr=   )rX   r7   r"   r   r8   r   r9   timeitr   r   r2   r   r)   r-   r;   r@   rB   ActionrD   ry   r    r   r   <module>r~      se      
 1 0 ) E"P" <  HOO .eP zF r   