
    iG                     J    S r SSKJr  SSKJr  SSKrSSKr " S S\5      r\rg)	zStore files in ZIP archives   )PostProcessor   )util    Nc                       \ rS rSr\R
                  \R                  \R                  \R                  S.r	S r
S rS rS rS rS rS	 rS
rg)ZipPP   )storezipbzip2lzmac                    [         R                  " X5        UR                  SS5      (       + U l        UR                  S5      U l        SUR                  SS5      -   nUR                  SS5      nX@R
                  ;  a  U R                  R                  S	U5        SnS U l        UR                  R                  S S
 U l        U R                  U-   SU R
                  U   S4U l        UR                  SUR                  S5      S:X  a  U R                  OU R                  0U5        UR                   S   R#                  U R$                  5        g )Nz
keep-filesFfiles.	extensionr   compressionr
   z;unknown compression algorithm '%s'; falling back to 'store'aTfilemodesafefinalize)r   __init__getdeleter   COMPRESSION_ALGORITHMSlogwarningzfilepathfmtrealdirectorypathargsregister_hooks
write_safe
write_fasthooksappendr   )selfjoboptionsext	algorithms        I/app/mltbenv/lib/python3.13/site-packages/gallery_dl/postprocessor/zip.pyr   ZipPP.__init__   s"   t)!++lE::[[)
GKKU33KKw7	777HHM  I
KK--cr2	YY_c00;TC	 	F(;v(ET____
 	 			*$$T]]3    c                     [         R                  " U R                  6 $ ! [         a]    [        R
                  " [        R                  R                  U R                  5      5        [         R                  " U R                  6 s $ f = fN)zipfileZipFiler#   FileNotFoundErrorosmakedirsr"   dirname)r)   s    r.   open
ZipPP.open1   sY    	/??DII..  	/KK		23??DII..	/s    A$BBc                    U R                   (       a#  U R                  XU R                   5        S U l         UR                  UR                  ;  a8  UR	                  UR
                  UR                  5        U R                  Ul        g g r2   )r   write_extrafilename
NameToInfowritetemppathr   r)   r    r   s      r.   r?   ZipPP.write8   sd     ::WTZZ8DJ5#3#33KK(('*:*:;![[GN 4r0   c                 ~    U R                   c  U R                  5       U l         U R                  XR                   5        g r2   )r   r9   r?   r)   r    s     r.   r&   ZipPP.write_fastC   s)    ::DJ

7JJ'r0   c                 z    U R                  5        nU R                  X5        S S S 5        g ! , (       d  f       g = fr2   )r9   r?   rA   s      r.   r%   ZipPP.write_safeH   s#    YY[EJJw& [[s   ,
:c                 r   [        [        R                  U5       H  n[        R                  R                  U5      (       d*  [        R                  R                  UR                  U5      n UR                  U[        R                  R                  U5      5        U R                  (       a  [        R                  " U5        M  M     g ! [         ab  nU R                  R                  SXBR                  5        U R                  R!                  SXUR"                  R$                  5         S nAGM  S nAff = f)NzUnable to write %s to %sz%s: %s)mapr   expand_pathr6   r"   isabsjoinr!   r?   basenamer   remove_fileOSErrorr   r   r=   debug	__class____name__)r)   r    r   r   r"   excs         r.   r<   ZipPP.write_extraL   s    ((%0D77==&&ww||G$9$94@	+D"''"2"24"89 ;;$$T*  1
    .nnFxmm.D.DE	s   -/C


D6AD11D6c                 n   U R                   (       a  U R                   R                  5         U R                  (       ay  [        R                  " U R
                  5        U R                   (       aG  U R                   R                  (       d+  [        R                  " U R                   R                  5        g g g g r2   )	r   closer   r   remove_directoryr"   r>   rN   r=   rD   s     r.   r   ZipPP.finalize[   si    ::JJ;;!!$)),zz$**"7"7  !4!45 #8z r0   )r#   r   r   r"   r   N)rR   
__module____qualname____firstlineno__r3   
ZIP_STOREDZIP_DEFLATED	ZIP_BZIP2ZIP_LZMAr   r   r9   r?   r&   r%   r<   r   __static_attributes__ r0   r.   r   r      sS     ##%%""!!	4./	)(
'+	6r0   r   )	__doc__commonr    r   r3   r6   r   __postprocessor__ra   r0   r.   <module>rf      s-    " !   	S6M S6l  r0   