
    *pj                        S r SSKrSSKrSSKrSSKrSSKrSSKrSSKrSSKJ	r	  Sr
Sr " S S\R                  5      r " S	 S
\R                  5      rS\S\S\S\R                   \R                  SS4   4S jrS\S\S\S\4S jrS\S\S\4S jr\R,                  S   \R,                  SS 4S\S\R.                  \   SS4S jjr\S:X  a  \" 5         gg)z/CLI utility to compute crc32c on an input file.    N   )crc32ci   i   c                   >    \ rS rSr% \\S'   \\S'   \\S'   \\S'   Srg)_ChecksumingResult   filename	file_sizechecksumduration N)	__name__
__module____qualname____firstlineno__str__annotations__intfloat__static_attributes__r       G/var/www/html/pdf-tiff/venv/lib/python3.13/site-packages/crc32c/_cli.pyr   r      s    MNMOr   r   c                   *    \ rS rSr% \\S'   \\S'   Srg)_FormattingOptions   show_filename
show_speedr   N)r   r   r   r   boolr   r   r   r   r   r   r      s    r   r   filenor	   
block_sizereturnc              #      #    [        SX5       HB  n[        X!U-
  5      n[        R                  " XU[        R                  S9 nUv   S S S 5        MD     g ! , (       d  f       MV  = f7f)Nr   )lengthoffsetaccess)rangeminmmapACCESS_READ)r   r	   r   r#   r"   mms         r   _mmap_iteratorr*      s\      91ZV!34YY&9I9I
H
 
 2
 
s   AA(A	A(
A%	 A(r   use_mmapc                    [        U S5       nUR                  5       n[        R                  " U5      R                  nU(       a  [        XEU5      nO-[        R                  " UR                  U5      n[        US5      nSn[        R                  " 5       n	U H  n
[        X5      nM     [        R                  " 5       nS S S 5        [        U WWWW	-
  5      $ ! , (       d  f       N= f)Nrbr   r   )openr   osstatst_sizer*   	functoolspartialreaditertime	monotonicr   r   )r   r   r+   
input_filer   r	   data_iteratorr4   r
   startdataends               r   _get_checksumr=   (   s    	h	""$GGFO++	*6jIM$$Z__jAD sOM !Dd-H "nn 
 h	8cEkKK 
	s   B2C
C&resultformatting_optsc                     U R                   S nUR                  (       a  USU R                   3-  nUR                  (       a)  U R                  U R
                  -  nUSUS-  S-  S S3-  nU$ )N08x z (i   z.2fz MB/s))r
   r   r   r   r	   r   )r>   r?   reportspeeds       r   _format_resultrE   ;   sr     $F$$Afoo&''!!  6??2But|d*3/v66Mr   nameargsc                    [         R                  " [        R                  S   SS9nUR	                  SSSS9  UR                  S5      nUR	                  S	S
SSS9  UR	                  SS[        SS9  UR                  S5      nUR	                  SSSSS9  UR	                  SSSSS9  UR                  U5      nUR                  (       + nU(       a  [        O[        n[        R                  " [        XvS9n[        UR                  (       + UR                   5      n	[#        XR$                  5       H  n
['        [)        X5      5        M     g)zMain application entry-point.r   z-Calculates and prints crc32c on input file(s))description	filenames+zinput file(s))nargshelpzI/O optionsz-Mz--disable-mmapzAvoid reading file with mmap
store_true)rM   actionz-bz--block-sizez Block size for iterative reading)typerM   zFormatting optionsz-sz--show-speedz&Report checksumming speed on each filez-Nz--hide-filenamezDo not print filename in result)r   r+   N)argparseArgumentParsersysargvadd_argumentadd_argument_groupr   
parse_argsdisable_mmapDEFAULT_BLOCK_SIZE_MMAPDEFAULT_BLOCK_SIZE_FREADr2   r3   r=   r   hide_filenamer   maprJ   printrE   )rF   rG   parserio_groupformatting_groupoptsr+   r   get_checksumr?   r>   s              r   mainrc   G   sW    $$!PF 3_E((7H%CL   /	   001EF!!5	 "  !!.	 "  T"D$$$H,4(:RJ$$*L )T-?-?)?QOlNN3nV56 4r   __main__)__doc__rQ   r2   r'   r/   rS   r6   typing_crc32cr   rZ   rY   
NamedTupler   r   r   	Generatorr*   r   r   r=   rE   rT   Listrc   r   r   r   r   <module>rk      s    5    	 
   $ * ** ** 
-0diit+,LC LS LD LEW L&		1C		 XXa[388AB< *7s *7C(8 *7D *7Z zF r   