
    i[                        S SK r S SKrS SKJr  S SKJrJrJrJrJrJ	r	J
r
JrJr   S SKrCSr S SKrCSr S SKrCSrSr  SS jrS\l        S rSS.S	 jrSSS
.S jrg! \ a    Sr N=f = f! \ a    Sr NCf = f! \ a    Sr NIf = f)    N)suppress)		ReadError_ensure_directory_get_gid_get_uidcopyfileobjregister_archive_formatregister_unpack_formatunregister_archive_formatunregister_unpack_formatTFc	                   ^^^^ Uc  Sn	Oj[         (       a	  US:X  a  Sn	OV[        (       a	  US:X  a  Sn	OB[        (       a	  US:X  a  Sn	O.[        (       a	  US:X  a  Sn	O[	        SR                  U5      5      eU(       a  S	U	-   OSn
U S
-   U
-   n[        R                  R                  U5      nU(       aV  [        R                  R                  U5      (       d2  Ub  UR                  SU5        U(       d  [        R                  " U5        Ub  UR                  S5        [        T5      m[        T5      mUUUU4S jnU(       da  SSKJn  UR!                  USU	-  5      nUnUb  [        R                  R#                  X5      n UR%                  UUUS9  UR'                  5         Ub  [        R                  R)                  U5      nU$ ! UR'                  5         f = f)a  Create a (possibly compressed) tar file from all the files under
'base_dir'.

'compress' must be "gzip" (the default), "bzip2", "xz", "zst", or None.

'owner' and 'group' can be used to define an owner and a group for the
archive that is being built. If not provided, the current owner and group
will be used.

The output tar file will be named 'base_name' +  ".tar", possibly plus
the appropriate compression extension (".gz", ".bz2", ".xz", or ".zst").

Returns the output filename.
 gzipgzbzip2bz2xzzstzCbad value for 'compress', or compression format not supported : {0}.z.tarzcreating %szCreating tar archivec                 L   > Tb  TU l         TU l        Tb  TU l        TU l        U $ )N)gidgnameuiduname)tarinfor   groupownerr   s    C/app/mltbenv/lib/python3.13/site-packages/backports/zstd/_shutil.py_set_uid_gid#_make_tarball.<locals>._set_uid_gidW   s.    ?GK!GM?GK!GM    r   tarfilezw|%sfilter)_ZLIB_SUPPORTED_BZ2_SUPPORTED_LZMA_SUPPORTED_ZSTD_SUPPORTED
ValueErrorformatospathdirnameexistsinfomakedirsr   r   backports.zstdr#   openjoinaddcloseabspath)	base_namebase_dircompressverbosedry_runr   r   loggerroot_dirtar_compressioncompress_extarchive_namearchive_dirr   r#   tararcnamer   r   s        ``          @@r   _make_tarballrE   (   s     	X/	H/	X-	X. ++16(+;= 	= -53("Lv%4L''//,/K277>>+66KK{3KK$ *+
5/C
5/C  *ll</)ABww||H7H	GGHglG;IIKww|4	 IIKs   G Gc                    SSK Jn  UR                  U 5      (       d  [        SU -  5      eUR	                  U 5      n UR                  5        H  nUR                  nUR                  S5      (       d  SU;   a  M-  [        R                  R                  " U/UR                  S5      Q76 nU(       d  Mf  [        U5        UR                  S5      (       a  M  UR                  US5       n[        US5       n[        Xx5        SSS5        SSS5        M     UR!                  5         g! , (       d  f       N+= f! , (       d  f       M  = f! UR!                  5         f = f)	z+Unpack zip `filename` to `extract_dir`
    r   )zipfilez%s is not a zip file/z..rwbN)r2   rG   
is_zipfiler   ZipFileinfolistfilename
startswithr,   r-   r4   splitr   endswithr3   r   r6   )	rN   extract_dirrG   zipr0   name
targetpathsourcetargets	            r   _unpack_zipfilerX   r   s    'h''.9::
//(
#CLLND==D s##tt|kDDJJsODJj)==%%XXdC(FZ.&/ / )( #$ 			 /. )( 			sB   BE	 E	 (D75D&D7	E	 &
D40D77
E	E	 	Er$   c                    SSK Jn   UR                  U 5      n UR                  XS9  UR                  5         g! UR                   a    [	        SU -  5      ef = f! UR                  5         f = f)zIUnpack tar/tar.gz/tar.bz2/tar.xz/tar.zst `filename` to `extract_dir`
    r   r"   z/%s is not a compressed or uncompressed tar filer$   N)r2   r#   r3   TarErrorr   
extractallr6   )rN   rR   r%   r#   tarobjs        r   _unpack_tarfiler]      sv     'Jh'+5  J=HJ 	JJ 	s   : A AA.)rC   rS   c                    U (       ar  SnSn[        [        5         [        U5        SSS5        [        [        5         [        U5        SSS5        [	        U[
        S/U5        [        USS/[        / U5        U(       a<  SnSn[        [        5         [        U5        SSS5        [        US	/[        / U5        gg! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       NF= f)
a  Register support for Zstandard in shutil's archiving operations.

tar
    Register support for zstdtar archive format and .tar.zst/.tzst unpacking extensions.
    Defaults to True.
zip
    Register support for .zip unpacking extension.
    Defaults to True.
zstdtarzzstd'ed tar-fileN)r:   r   z.tar.zstz.tzstrS   zZIP filez.zip)	r   KeyErrorr   r   r	   rE   r
   r]   rX   )rC   rS   rT   descriptions       r   register_shutilrb      s     (h%d+  h$T*  m6I5JKXtj'%:ORQ\]
 h$T*  tfXKP     s"   B>CC >
C
C 
C.)r   r   r   NNNN)r,   shutil
contextlibr   r   r   r   r   r   r	   r
   r   r   zlibr&   ImportErrorr   r'   lzmar(   r)   rE   supports_root_dirrX   r]   rb    r!   r   <module>rj      s    	  
 
 
ONO  LM@DFP #' < 6: "  T Q[  O  N  Os3   A  A. A<  A+*A+.A98A9<BB