
    i                     6    S r SSKJr  SSKr " S S\5      r\rg)zCompute file hash digests   )PostProcessor    Nc                   &    \ rS rSrS rS rS rSrg)HashPP   c                 *   [         R                  " X5        UR                  SS5      U l        UR                  S5      U l        UR                  S5      =(       d    UR                  S5      n[        U[        5      (       a  [        UR                  5       5      U l	        O[        U[        5      (       aZ  / U l	        UR                  S5       H=  nUR                  S5      u  pVnU R                  R                  U(       a  UOUU45        M?     OU(       a  X0l	        OSU l	        UR                  S	5      nUc  S
nO&[        U[        5      (       a  UR                  S5      nUR                  U V	s0 s H  oU R                  _M     sn	U5        g s  sn	f )Nz
chunk-sizei   filenamemodehashes,:))md5r   )sha1r   event)file)r   __init__get
chunk_sizer	   
isinstancedictlistitemsr   strsplit	partitionappendregister_hooksrun)
selfjoboptionsr   hnamesepkeyeventsr   s
             J/app/mltbenv/lib/python3.13/site-packages/gallery_dl/postprocessor/hash.pyr   HashPP.__init__   s-   t)!++lE:J/V$=H(=fd##v||~.DK$$DK\\#&!"S!13""3CD$#?@ '  K<DKW%>F$$\\#&F@488O@'J@s   1Fc                    U R                    VVs/ s H  u  p#U[        R                  " U5      4PM     nnnU R                  nU R	                  U5       n UR                  U5      nU(       d  OU H  u  pU	R                  U5        M     M7  S S S 5        U H"  u  p)U	R                  5       UR                  U'   M$     U R                  (       a  UR                  5         g g s  snnf ! , (       d  f       N_= f)N)r   hashlibnewr   _openreadupdate	hexdigestkwdictr	   
build_path)
r   pathfmtr%   r#   r   sizefpdata_r"   s
             r'   r   
HashPP.run+   s     "[[
(	 '++d#$( 	 

 ZZ Bwwt}"DAHHTN #	  ! FC"#++-GNN3  ==  #
 ! s   $C 9C&&
C4c                 |     [        UR                  S5      $ ! [         a    [        UR                  S5      s $ f = f)Nrb)opentemppathOSErrorrealpath)r   r2   s     r'   r,   HashPP._open@   s<    	0(($// 	0(($//	0s     ;;)r   r	   r   N)__name__
__module____qualname____firstlineno__r   r   r,   __static_attributes__     r'   r   r      s    K4!*0rE   r   )__doc__commonr   r*   r   __postprocessor__rD   rE   r'   <module>rI      s%      ! 50] 50p  rE   