
    FZj'                        d dl Z d dlZd dlmZ d dlmZmZmZmZmZm	Z	m
Z
mZmZ 	 d dlZ[dZ	 d dlZ[dZ	 d dlZ[dZdZ	 	 ddZde_        d Zddd	Zddd
dZy# e$ r dZY 9w xY w# e$ r dZY >w xY w# e$ r dZY Cw xY w)    N)suppress)		ReadError_ensure_directory_get_gid_get_uidcopyfileobjregister_archive_formatregister_unpack_formatunregister_archive_formatunregister_unpack_formatTFc	                 N   |d}	nRt         r|dk(  rd}	nDt        r|dk(  rd}	n6t        r|dk(  rd}	n(t        r|dk(  rd}	nt	        dj                  |            |rd	|	z   nd}
| d
z   |
z   }t        j                  j                  |      }|rJt        j                  j                  |      s+||j                  d|       |st        j                  |       ||j                  d       t              t              fd}|sdddlm} |j!                  |d|	z        }|}| t        j                  j#                  ||      }	 |j%                  |||       |j'                          |t        j                  j)                  |      }|S # |j'                          w xY w)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                 H    | _         | _        | _        | _        | S )N)gidgnameuiduname)tarinfor   groupownerr   s    XC:\Users\Rodrigo\frota-trucks-cliente\python\Lib\site-packages\backports/zstd/_shutil.py_set_uid_gidz#_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_tarballrD   (   s     	X/	H/	X-	X. ++16(+;= 	= -53("Lv%4L''//,/K277>>+6KK{3KK$ *+
5/C
5/C *ll</)ABww||Hh7H	GGHglG;IIKww|4	 IIKs   F F$c                     ddl m} |j                  |       st        d| z        |j	                  |       5 }d|_        |j                  |       ddd       y# 1 sw Y   yxY w)z+Unpack zip `filename` to `extract_dir`
    r   )zipfilez%s is not a zip fileTN)r1   rF   
is_zipfiler   ZipFile_ignore_invalid_names
extractall)filenameextract_dirrF   zips       r   _unpack_zipfilerN   r   sT     'h'.9::		"c$(!{# 
#	"	"s   AA"r#   c                    ddl m} 	 |j                  |       }	 |j                  ||       |j                          y# |j                  $ r t	        d| z        w xY w# |j                          w xY w)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)r1   r"   r2   TarErrorr   rJ   r5   )rK   rL   r$   r"   tarobjs        r   _unpack_tarfilerR   ~   sx     'Jh'+f5  J=HJ 	JJ 	s   > A AA1)rB   rM   c                    | rrd}d}t        t              5  t        |       ddd       t        t              5  t        |       ddd       t	        |t
        dg|       t        |ddgt        g |       |r<d}d}t        t              5  t        |       ddd       t        |d	gt        g |       yy# 1 sw Y   xY w# 1 sw Y   |xY w# 1 sw Y   7xY w)
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)r9   r   z.tar.zstz.tzstrM   zZIP filez.zip)	r   KeyErrorr   r   r	   rD   r
   rR   rN   )rB   rM   namedescriptions       r   register_shutilrX      s     (h%d+  h$T*  m6I5JKXtj'%:ORQ\]
 h$T*  tfXKP     s"   B4C 
C4B= C	C)r   r   r   NNNN)r+   shutil
contextlibr   r   r   r   r   r   r	   r
   r   r   zlibr%   ImportErrorr   r&   lzmar'   r(   rD   supports_root_dirrN   rR   rX    r    r   <module>r`      s    	  
 
 
ONO  LM@DFP #' 
$ 6: "  T Qw  O  N  Os3   A A* A7 A'&A'*A43A47B B