Uname: Linux server.digisquadtech.com 4.18.0-553.100.1.el8_10.x86_64 #1 SMP Mon Feb 2 04:13:33 EST 2026 x86_64
User: 1091 (madhavfluid)
Group: 1090 (madhavfluid)
Disabled functions: NONE
Safe mode: On[ PHPinfo ]
//usr/lib64/python3.6///__pycache__      ( Reset | Go to )
File Name: tarfile.cpython-36.opt-2.pyc
3
]i'@s>dZdZdZdZdZddlmZddlZddl    Z    ddl
Z
ddl Z ddl Z ddl Z ddlZddlZddlZddlZy ddlZWnek
rdZYnXy ddlZWnek
rdZYnXeefZyeef7ZWnek
rYnXdd    d
d d d dddddddddgZdZdZdZdZedZdZ dZ!dZ"dZ#dZ$d Z%dZ&d!Z'd"Z(d#Z)d$Z*d%Z+d&Z,d'Z-d(Z.d)Z/d*Z0d+Z1d,Z2d-Z3dZ4d.Z5d/Z6e5Z7e%e&e'e(e+e,e-e)e*e.e/e0f Z8e%e&e-e0fZ9e.e/e0fZ:dZ;d0d1d6d7hZ<e=e=e=e>e>e>d8Z?e    j@d9krd:ZAnejBZAd;d<ZCd=d>ZDd?d@ZEdAe7fdBdCZFdDdEZGdedfdFdGZHdHdIZIdJdKZJGdLd d eKZLGdMddeLZMGdNd d eLZNGdOd d eLZOGdPddeLZPGdQddeLZQGdRdSdSeQZRGdTdUdUeQZSGdVdWdWeQZTGdXdYdYeQZUGdZd[d[eQZVGd\d]d]ZWGd^d_d_ZXGd`dadaeYZZGdbdcdceYZ[Gdddedee
j\Z]GdfdgdgeLZ^Gdhdidie^Z_Gdjdkdke^Z`Gdldmdme^ZaGdndodoe^ZbGdpdqdqe^ZcGdrdsdse^Zde^eeMfZeddtduZfdvdwZgdxdyZhdzd{Ziegeheid|ZjeYZkejld}ZmGd~d    d    eYZnGdddeYZodd
ZpeojZddZqerdkr:eqdS)z0.9.0u"Lars Gustäbel (lars@gustaebel.de)z5$Date: 2011-02-25 17:42:01 +0200 (Fri, 25 Feb 2011) $z?$Id: tarfile.py 88586 2011-02-25 15:42:01Z marc-andre.lemburg $u4Gustavo Niemeyer, Niels Gustäbel, Richard Townsend.)openNTarFileTarInfo
is_tarfileTarError    ReadErrorCompressionError StreamError ExtractError HeaderErrorENCODING USTAR_FORMAT
GNU_FORMAT
PAX_FORMATDEFAULT_FORMATrTz/etc/python/tarfile.cfgisustar  sustar00d01234567LKSxgXpathlinkpathsizemtimeuidgidunamegname)ZatimeZctimer(r)r*r'ntzutf-8cCs8|dkrtd|j||}|d||t|tS)Nzmetadata cannot contain None)
ValueErrorencodelenNUL)slengthencodingerrorsr6/usr/lib64/python3.6/tarfile.pystns r8cCs*|jd}|dkr|d|}|j||S)Nrr#)finddecode)r2r4r5pr6r6r7ntss
 r=c Cs|dd krfd}x0tt|dD]}|dK}|||d7}q"W|ddkrdt|d| }n@y"t|dd}t|jpd    d}Wntk
rtd
YnX|S) Nrr#asciistrict0zinvalid header)r>r?)ranger0r=intstripr.InvalidHeaderError)r2nir6r6r7ntis   rKr@cCst|}d|ko"d|dknrDtd|d|fdt}n|tkrd|d |kopd|dknr|dkrtdg}ntdg}d||}x6t|dD]}|jd|d@|dL}qWntd    |S)
Nrr@r#z%0*orBrAr>r?zoverflow in number field)rFbytesr1r    bytearrayrEinsertr.)rIdigitsformatr2rJr6r6r7itns  2 
 rQcCs0dttjd|}dttjd|}||fS)NrAZ
148B8x356BZ
148b8x356b)sumstructZ unpack_from)bufZunsigned_chksumZ signed_chksumr6r6r7 calc_chksumss    rUc    Cs|pd}|dkrdS|dkr.tj|||dSt||\}}x8t|D],}|j|}t||krh|d|j|qFW|dkr|j|}t||kr|d|j|dS)Nirzunexpected end of datai@)shutil copyfileobjdivmodrEreadr0write)    srcdstr3    exceptionbufsizeblocks    remainderbrTr6r6r7rXs$
 
 
rXcCs ddl}|jdtdtj|S)Nrz$deprecated in favor of stat.filemoder$)warningswarnDeprecationWarningstatfilemode)modercr6r6r7rgsrgcCs8ttjdd}|dk    r(|j|dj|}t|dddS)Nr4backslashreplace )end)getattrsysstdoutr/r;print)r2r4r6r6r7 _safe_printsrpc@s eZdZdS)rN)__name__
__module__ __qualname__r6r6r6r7rsc@s eZdZdS)r
N)rqrrrsr6r6r6r7r
!sc@s eZdZdS)rN)rqrrrsr6r6r6r7r$sc@s eZdZdS)rN)rqrrrsr6r6r6r7r'sc@s eZdZdS)r    N)rqrrrsr6r6r6r7r    *sc@s eZdZdS)r N)rqrrrsr6r6r6r7r -sc@s eZdZdS)EmptyHeaderErrorN)rqrrrsr6r6r6r7rt0srtc@s eZdZdS)TruncatedHeaderErrorN)rqrrrsr6r6r6r7ru3sruc@s eZdZdS)EOFHeaderErrorN)rqrrrsr6r6r6r7rv6srvc@s eZdZdS)rHN)rqrrrsr6r6r6r7rH9srHc@s eZdZdS)SubsequentHeaderErrorN)rqrrrsr6r6r6r7rw<srwc@s,eZdZddZddZddZddZd    S)
_LowLevelFilecCsFtjtjtjBtjBd|}ttdr2|tjO}tj||d|_dS)N)rwO_BINARYi)    osO_RDONLYO_WRONLYO_CREATO_TRUNChasattrr{rfd)selfnamerhr6r6r7__init__Is 

z_LowLevelFile.__init__cCstj|jdS)N)r|closer)rr6r6r7rRsz_LowLevelFile.closecCstj|j|S)N)r|rZr)rr'r6r6r7rZUsz_LowLevelFile.readcCstj|j|dS)N)r|r[r)rr2r6r6r7r[Xsz_LowLevelFile.writeN)rqrrrsrrrZr[r6r6r6r7rxCs    rxc@speZdZddZddZddZddZd    d
Zd d Zd dZ    ddZ
dddZ dddZ ddZ ddZdS)_Streamc    Csd|_|dkrt||}d|_|dkr6t|}|j}|p<d|_||_||_||_||_d|_    d|_
d|_ yL|dkry ddl }Wnt k
rtdYnX||_ |jd|_|d    kr|j|j|_n|jn|d
kr:y ddl}Wnt k
r
td YnX|d    kr.d|_|j|_t|_n
|j|_n||d kry ddl}Wnt k
rntd YnX|d    krd|_|j|_|j|_n
|j|_n|dkrtd|Wn&|js|jjd|_ YnXdS)NTF*rgzzzlib module is not availablerybz2zbz2 module is not availablexzzlzma module is not availabletarzunknown compression type %r)  _extfileobjrx _StreamProxy getcomptyperrhcomptypefileobjr_rTposclosedzlib ImportErrorrcrc32crc _init_read_gzerrorr^_init_write_gzrdbufZBZ2DecompressorcmpOSErrorZ BZ2CompressorlzmaZLZMADecompressor    LZMAErrorZLZMACompressorr)    rrrhrrr_rrrr6r6r7rfsl

  


 

 
 


 

z_Stream.__init__cCst|dr|j r|jdS)Nr)rrr)rr6r6r7__del__sz_Stream.__del__cCs|jjd|jj|jj |jjd|_tjdtt    j    }|j
d|d|j j drf|j dd
|_ |j
|j j dd    tdS) N    rz<Lssz.gzz
iso-8859-1replace)rZ compressobjZDEFLATED    MAX_WBITSZ DEF_MEM_LEVELrrSpackrFtime_Stream__writerendswithr/r1)rZ    timestampr6r6r7rs z_Stream._init_write_gzcCsR|jdkr|jj||j|_|jt|7_|jdkrD|jj|}|j|dS)Nrr)    rrrrrr0rcompressr)rr2r6r6r7r[s 

 z _Stream.writecCsR|j|7_x>t|j|jkrL|jj|jd|j|j|jd|_qWdS)N)rTr0r_rr[)rr2r6r6r7Z__writesz_Stream.__writec Cs|jr
dSd|_z|jdkr:|jdkr:|j|jj7_|jdkr|jr|jj|jd|_|jdkr|jjtj    d|j
|jjtj    d|j d@Wd|j s|jj XdS)NTrzrrrz<Ll)rrhrrTrflushrr[rSrrrrr)rr6r6r7rs
z _Stream.closecCs|jj|jj |_d|_|jddkr0td|jddkrFtdt|jd}|jd|d    @rt|jdd
t|jd}|j    ||d @rx|jd}| s|t
krPqW|d @rx|jd}| s|t
krPqW|d@r|jddS) Nrr$sznot a gzip filer#zunsupported compression methodrAr@rV) rZ decompressobjrrr _Stream__readrrordrZr1)rflagZxlenr2r6r6r7rs.
 


z_Stream._init_read_gzcCs|jS)N)r)rr6r6r7tellsz _Stream.tellrcCs\||jdkrNt||j|j\}}xt|D]}|j|jq.W|j|ntd|jS)Nrz seeking backwards is not allowed)rrYr_rErZr    )rrr`rarJr6r6r7seek s z _Stream.seekNcCsZ|dkr:g}x |j|j}|s P|j|qWdj|}n
|j|}|jt|7_|S)Nr)_readr_appendjoinrr0)rr'trTr6r6r7rZs  
z _Stream.readc Cs|jdkr|j|St|j}|jg}xd||kr|j|j}|sBPy|jj|}Wn|jk
rptdYnX|j    ||t|7}q(Wdj
|}||d|_|d|S)Nrzinvalid compressed datar) rrr0rr_rZ
decompressr^rrr)rr'crrTr6r6r7r*s"



 

z _Stream._readcCsnt|j}|jg}x6||krH|jj|j}|s0P|j||t|7}qWdj|}||d|_|d|S)Nr)r0rTrrZr_rr)rr'rrrTr6r6r7Z__read@s



z_Stream.__read)r)N)rqrrrsrrrr[rrrrrrZrrr6r6r6r7r[s F
    

rc@s,eZdZddZddZddZddZd    S)
rcCs||_|jjt|_dS)N)rrZ    BLOCKSIZErT)rrr6r6r7rVsz_StreamProxy.__init__cCs|jj|_|jS)N)rrZrT)rr'r6r6r7rZZs
z_StreamProxy.readcCsP|jjdrdS|jdddkr8|jdddkr8d    S|jjdrHd Sd SdS)NsrrrsBZhr
s1AY&SYr]7zXZrr)rr)rT
startswith)rr6r6r7r^s $ z_StreamProxy.getcomptypecCs|jjdS)N)rr)rr6r6r7rhsz_StreamProxy.closeN)rqrrrsrrZrrr6r6r6r7rQs
rc@sfeZdZdddZddZddZdd    Zd
d Zd d Ze    j
fddZ dddZ ddZ ddZdS) _FileInFileNcCs||_||_||_d|_t|dd|_d|_|dkr>d|fg}d|_g|_d}|j}xT|D]L\}}||kr~|jj    d||df|jj    d||||f||7}||}qZW||jkr|jj    d||jdfdS)NrrFT)
roffsetr'positionrlrr    map_indexmapr)rrrr'Z    blockinfoZlastposZrealposr6r6r7rus(
 
z_FileInFile.__init__cCsdS)Nr6)rr6r6r7rsz_FileInFile.flushcCsdS)NTr6)rr6r6r7readablesz_FileInFile.readablecCsdS)NFr6)rr6r6r7writablesz_FileInFile.writablecCs
|jjS)N)rseekable)rr6r6r7rsz_FileInFile.seekablecCs|jS)N)r)rr6r6r7rsz_FileInFile.tellcCs|tjkr tt|d|j|_nj|tjkr\|dkrFt|j|d|_qt|j||j|_n.|tjkrtt|j||jd|_ntd|jS)NrzInvalid argument)    ioSEEK_SETminmaxr'rSEEK_CURSEEK_ENDr.)rrwhencer6r6r7rs


z_FileInFile.seekc    Cs|dkr|j|j}nt||j|j}d}x|dkr xZ|j|j\}}}}||jkob|knrlPq:|jd7_|jt|jkr:d|_q:Wt|||j}|r|jj||j||jj|}t||krt    d||7}n |t
|7}||8}|j|7_q.W|S)Nrrr#zunexpected end of data) r'rrrrr0rrrZrr1)    rr'rTdatastartstoprr3rbr6r6r7rZs. 
  
 z_FileInFile.readcCs&|jt|}||dt|<t|S)N)rZr0)rrbrTr6r6r7readintosz_FileInFile.readintocCs
d|_dS)NT)r)rr6r6r7rsz_FileInFile.close)N)N)rqrrrsrrrrrrrrrrZrrr6r6r6r7ros

rcseZdZfddZZS) ExFileObjectcs&t|j|j|j|j}tj|dS)N)rr offset_datar'sparsesuperr)rtarfiletarinfor)    __class__r6r7rs
 zExFileObject.__init__)rqrrrsr __classcell__r6r6)rr7rsrc@s eZdZdS) FilterErrorN)rqrrrsr6r6r6r7rsrcseZdZfddZZS)AbsolutePathErrorcs ||_tjd|jddS)Nzmember z has an absolute path)rrrr)rr)rr6r7rszAbsolutePathError.__init__)rqrrrsrrr6r6)rr7rsrcseZdZfddZZS)OutsideDestinationErrorcs.||_||_tj|jd|dddS)Nz would be extracted to z, z which is outside the destination)r_pathrrr)rrr%)rr6r7rsz OutsideDestinationError.__init__)rqrrrsrrr6r6)rr7rsrcseZdZfddZZS)SpecialFileErrorcs||_tj|jddS)Nz is a special file)rrrr)rr)rr6r7rszSpecialFileError.__init__)rqrrrsrrr6r6)rr7rsrcseZdZfddZZS)AbsoluteLinkErrorcs||_tj|jddS)Nz! is a symlink to an absolute path)rrrr)rr)rr6r7rszAbsoluteLinkError.__init__)rqrrrsrrr6r6)rr7rsrcseZdZfddZZS)LinkOutsideDestinationErrorcs.||_||_tj|jd|dddS)Nz would link to z, z which is outside the destination)rrrrr)rrr%)rr6r7rsz$LinkOutsideDestinationError.__init__)rqrrrsrrr6r6)rr7rsrcseZdZfddZZS)LinkFallbackErrorcs2||_||_tjd|jdd|ddS)Nzlink z would be extracted as a zcopy of z, which was rejected)rrrrr)rrr%)rr6r7rszLinkFallbackError.__init__)rqrrrsrrr6r6)rr7rsrcCs$i}|j}tjj|tjjd}|jdtjfrH|jjdtj}|d<tjj|r\t    |tjjtjj
||tjjd}tjj ||g|krt |||j }|dk    r|d@}|r|js|jr|d@s|dM}|dO}n|js|jrd}nt|||j kr||d<|r |jdk    r,d|d    <|jdk    r@d|d
<|jdk    rTd|d <|jdk    rhd|d <|js||jr tjj|jrt|tjj|j}||jkr||d <|jrtjj
|tjj||j}ntjj
||j}tjj|tjjd}tjj ||g|kr t|||S)N)rC/ri@Iirhr)r*r+r,linknamei)rr|r%realpath ALLOW_MISSINGrseplstripisabsrr
commonpathrrhisregislnkisdirissymrr)r*r+r,rrnormpathdirnamer)member    dest_pathZfor_data    new_attrsrZ target_pathrhZ
normalizedr6r6r7_get_filtered_attrssd  


      


 
rcCs|S)Nr6)rrr6r6r7fully_trusted_filterTsrcCs(t||d}|r$|jf|ddiS|S)NFdeep)rr)rrrr6r6r7
tar_filterWs rcCs(t||d}|r$|jf|ddiS|S)NTrF)rr)rrrr6r6r7 data_filter]s r)Z fully_trustedrrs([0-9]{1,20}) c@seZdZdlZdmddZddZddZeeeZddZ    ddZ
ee    e
Z d d!Z e e e e e e e e d"e d#
d$d%Zd&d'Zeed(fd)d*Zd+d,Zd-d.Zd/d0Zed1d2Zd3d4Zed5d6Zed7d8Zed9d:Zed;d<Zed=d>Zed?d@ZdAdBZ dCdDZ!dEdFZ"dGdHZ#dIdJZ$dKdLZ%dMdNZ&dOdPZ'dQdRZ(dSdTZ)dUdVZ*dWdXZ+dYdZZ,d[d\Z-d]d^Z.d_d`Z/dadbZ0dcddZ1dedfZ2dgdhZ3didjZ4dkS)nrrrhr)r*r'r(chksumtyperr+r,devmajordevminorrr pax_headersrr_sparse_structs _link_targetrcCsj||_d|_d|_d|_d|_d|_d|_t|_d|_    d|_
d|_ d|_ d|_ d|_d|_d|_i|_dS)Nirr)rrhr)r*r'r(rREGTYPErrr+r,rrrrrr)rrr6r6r7rs"zTarInfo.__init__cCs|jS)N)r)rr6r6r7_getpathszTarInfo._getpathcCs
||_dS)N)r)rrr6r6r7_setpathszTarInfo._setpathcCs|jS)N)r)rr6r6r7 _getlinkpathszTarInfo._getlinkpathcCs
||_dS)N)r)rrr6r6r7 _setlinkpathszTarInfo._setlinkpathcCsd|jj|jt|fS)Nz<%s %r at %#x>)rrqrid)rr6r6r7__repr__szTarInfo.__repr__T)
rr(rhrr)r*r+r,r_KEEPc
Cs|    rtj|} n
tj|} ||
k    r(|| _||
k    r6|| _||
k    rD|| _||
k    rR|| _||
k    r`|| _||
k    rn|| _||
k    r||| _||
k    r|| _    | S)N)
copydeepcopyrr(rhrr)r*r+r,) rrr(rhrr)r*r+r,rr    resultr6r6r7rs( 
zTarInfo.replacecCs|jdkrd}n
|jd@}|j||j|j|j|j|j|j|j|j    |j
|j |j d }|dt kr~|djd r~|dd7<|S)Ni) rrhr)r*r'r(rrrr+r,rrrrr)rhrr)r*r'r(rrrr+r,rrDIRTYPEr)rrhinfor6r6r7get_infos&


zTarInfo.get_infosurrogateescapecCs~|j}x(|jD]\}}|dkrtd|qW|tkrH|j|||S|tkr^|j|||S|tkrr|j||StddS)Nz%s may not be Nonezinvalid format)    ritemsr.r create_ustar_headerrcreate_gnu_headerrcreate_pax_header)rrPr4r5rrvaluer6r6r7tobufs z TarInfo.tobufcCsnt|d<t|dj||tkr(tdt|dj||tkr^|j|d||\|d<|d<|j|t||S)Nmagicrzlinkname is too longrprefix)     POSIX_MAGICr0r/ LENGTH_LINKr. LENGTH_NAME_posix_split_name_create_headerr )rrr4r5r6r6r7rs zTarInfo.create_ustar_headercCst|d<d}t|dj||tkr<||j|dt||7}t|dj||tkrl||j|dt||7}||j|t    ||S)Nrrrr)
    GNU_MAGICr0r/r_create_gnu_long_headerGNUTYPE_LONGLINKrGNUTYPE_LONGNAMErr)rrr4r5rTr6r6r7rszTarInfo.create_gnu_headerc
Cs4t|d<|jj}xddtfddtfddfD]h\}}}||kr@q,y||jd    d
Wn"tk
rv||||<w,YnXt|||kr,||||<q,WxldD]d\}}||krd||<q||}d|kod |dkn st|t    rt
|||<d||<qW|r|j |t |}    nd}    |    |j |td    dS)Nrrr%rr&r+ r,rBrCr)r@r*r' r(rr#rr)r+r+r")r,r,r"r)r@r*r@r'r#r(r#)r$r%r&r')rrr
rrr/UnicodeEncodeErrorr0
isinstancefloatstr_create_pax_generic_headerXHDTYPErr )
rrr4rrZhnamer3rOvalrTr6r6r7rs4
 .  zTarInfo.create_pax_headercCs|j|tdS)Nzutf-8)r,XGLTYPE)clsrr6r6r7create_pax_global_header?sz TarInfo.create_pax_global_headercCs|jd}xltdt|D]R}dj|d|}dj||d}t|j||tkrt|j||tkrPqWtd||fS)Nrr#zname is too long)splitrEr0rr/ LENGTH_PREFIXrr.)rrr4r5Z
componentsrJrr6r6r7rEs
zTarInfo._posix_split_namec Cs|jdttfk}|r@t|jddd|}t|jddd|}ntdd||}tdd||}|jdt}|dkrxtdt|jddd    ||t|jd
dd @d|t|jd dd|t|jd dd|t|jddd|t|jddd|d|t|jddd    |||jdtt|jddd||t|jddd||t|jddd|t|jddd|t|jddd||g}tj    dt
dj |}    t |    t
dd}
|    ddt d|
d|    d d}    |    S)!Nrrrr@rrzTarInfo.type must not be Nonerrrhir)r*r'r#r(s        rrr+r"r,rrz%dsrilz%06orBieii)getCHRTYPEBLKTYPErQr8rr.rrSrrrrUrL) rrPr4r5Zhas_device_fieldsrrZfiletypepartsrTrr6r6r7rUs8 
&zTarInfo._create_headercCs.tt|t\}}|dkr*|t|t7}|S)Nr)rYr0rr1)Zpayloadr`rar6r6r7_create_payloadszTarInfo._create_payloadcCsR|j||t}i}d|d<||d<t||d<t|d<|j|t|||j|S)Nz ././@LongLinkrrr'r)r/r1r0rrr r8)r0rrr4r5rr6r6r7rs zTarInfo._create_gnu_long_headerc Cs:d}x@|jD]4\}}y|jddWqtk
r@d}PYqXqWd}|rV|d7}x|jD]\}}|jd}|r|j|d}n
|jd}t|t|d}d    }    }
x"|tt|
}    |    |
krP|    }
qW|tt|
d
d |d |d 7}q`Wi} d| d<|| d<t|| d<t| d<|j| td
d|j    |S)NFzutf-8rCTrs21 hdrcharset=BINARY
rrrrB =
z././@PaxHeaderrrr'rr)
rr/r(r0r+rLrrr r8) r0rrr4ZbinarykeywordrZrecordslrIr<rr6r6r7r,s< 

* z"TarInfo._create_pax_generic_headerc Cstt|dkrtdt|tkr(td|jttkr>tdt|dd}|t|krbt    d|}t
|dd|||_ t|dd    |_ t|d    d
|_ t|d
d |_t|d d |_t|d d|_||_|dd |_t
|d d|||_t
|dd|||_t
|dd|||_t|dd|_t|dd|_t
|dd||}|jtkr|j jdrt|_|jtkr6d}g}xrtdD]f}    y0t|||d}
t||d|d} Wntk
rPYnX|j|
| f|d7}qWt|d} t|dd} || | f|_ |j!rN|j j"d|_ |rp|jt#krp|d|j |_ |S)Nrz empty headerztruncated headerzend of file headerz bad checksumrlt|ii    i)iIiQiYirirr#iii)$r0rtrrucountr1rvrKrUrHr=rrhr)r*r'r(rrrr+r,rrAREGTYPErr GNUTYPE_SPARSErEr.rboolrrrstrip    GNU_TYPES)r0rTr4r5robjrrstructsrJrnumbytes
isextendedorigsizer6r6r7frombufsZ      
zTarInfo.frombufcCs8|jjt}|j||j|j}|jjt|_|j|S)N)    rrZrrQr4r5rr _proc_member)r0rrTrLr6r6r7 fromtarfile s zTarInfo.fromtarfilecCsT|jttfkr|j|S|jtkr,|j|S|jtttfkrF|j    |S|j
|SdS)N) rr!r  _proc_gnulongrH _proc_sparser-r/SOLARIS_XHDTYPE    _proc_pax _proc_builtin)rrr6r6r7rR!s



zTarInfo._proc_membercCsR|jj|_|j}|js$|jtkr4||j|j7}||_|j    |j
|j |j |S)N) rrrrrSUPPORTED_TYPES_blockr'r_apply_pax_inforr4r5)rrrr6r6r7rX.s zTarInfo._proc_builtinc Cs|jj|j|j}y|j|}Wntk
r>tdYnX|j|_|jt    krft
||j |j |_ n|jtkrt
||j |j |_|S)Nz missing or bad subsequent header)rrZrZr'rSr rwrrr!r=r4r5rr r)rrrTnextr6r6r7rT?s

zTarInfo._proc_gnulongc
Cs|j\}}}|`x|r|jjt}d}xvtdD]j}y0t|||d}t||d|d}    Wntk
rzPYnX|r|    r|j||    f|d7}q0Wt|d}qW||_    |jj
|_ |j |j |j |_||_ |S)Nrr#rEi)rrrZrrErKr.rrIrrrrZr'r)
rrrMrOrPrTrrJrrNr6r6r7rUUs(    zTarInfo._proc_sparsec Cs|jj|j|j}|jtkr&|j}n
|jj}d}d}g}x0t||koV||dkrnt    j
||}|srt dyt |j d}Wntk
rt dYnX|dkrt d||t|krt d|jd|d}    ||jdd|    }
|
jd\} } } | s"| dks"||    dkr*t d|j|| | f| dkrd|dkrd| dkr`|j}nd    }||7}q@W|dkr~d    }x`|D]X\}} } |j| d    d    |j}|tkr|j| ||j|j}n|j| d    d    |j}|||<qWy|j|}Wntk
r td
YnXd |kr&|j||nFd |kr>|j||n.|jd dkrl|jddkrl|j||||jttfkr|j ||j|j|j!|_!d|kr|j"}|j#s|jt$kr||j|j7}||_!|S)Nrzinvalid headerr#r:rs
hdrcharsetsBINARYzutf-8z missing or bad subsequent headerzGNU.sparse.mapzGNU.sparse.sizezGNU.sparse.major1zGNU.sparse.minorrDr')%rrZrZr'rr/rr
r0_header_length_prefix_rematchrHrFgroupr.rrk    partitionrr4_decode_pax_fieldr5PAX_NAME_FIELDSrSr rw_proc_gnusparse_01_proc_gnusparse_00r4_proc_gnusparse_10r-rVr[rrrrY)rrrTrrr4 raw_headersrar3Zheader_value_end_offsetZkeyword_and_valueZ raw_keywordZequalsZ    raw_valuer<rr\rr6r6r7rWqsx

   
 


 



 
zTarInfo._proc_paxc Csg}g}x|D]\}}}|dkrVy|jt|jWqtk
rRtdYqXq|dkry|jt|jWqtk
rtdYqXqWtt|||_dS)NsGNU.sparse.offsetzinvalid headersGNU.sparse.numbytes)rrFr;r.rHlistzipr)rr\riZoffsetsrN_r<rr6r6r7rgszTarInfo._proc_gnusparse_00cCs@dd|djdD}tt|ddd|ddd|_dS)NcSsg|] }t|qSr6)rF).0xr6r6r7
<listcomp>sz.TarInfo._proc_gnusparse_01.<locals>.<listcomp>zGNU.sparse.map,r$r#)r2rjrkr)rr\rrr6r6r7rfszTarInfo._proc_gnusparse_01cCsd}g}|jjt}|jdd\}}t|}xJt||dkrvd|krV||jjt7}|jdd\}}|jt|q.W|jj|_t    t
|ddd|ddd|_ dS)Nr;r#r$) rrZrr2rFr0rrrrjrkr)rr\rrZfieldsrrTZnumberr6r6r7rhs  zTarInfo._proc_gnusparse_10c Csx|jD]\}}|dkr(t|d|q
|dkrBt|dt|q
|dkr\t|dt|q
|tkr
|tkryt||}Wntk
rd}YnX|dkr|jd}t|||q
W|j|_dS)NzGNU.sparse.namer%zGNU.sparse.sizer'zGNU.sparse.realsizerr)    rsetattrrF
PAX_FIELDSPAX_NUMBER_FIELDSr.rJr
r)rrr4r5r<rr6r6r7r[s"

zTarInfo._apply_pax_infoc Cs.y |j|dStk
r(|j||SXdS)NrC)r;UnicodeDecodeError)rrr4Zfallback_encodingZfallback_errorsr6r6r7rd,s zTarInfo._decode_pax_fieldcCs2|dkrtdt|t\}}|r*|d7}|tS)Nrzinvalid offsetr#)rHrYr)rrFr`rar6r6r7rZ4s zTarInfo._blockcCs
|jtkS)N)r REGULAR_TYPES)rr6r6r7r@sz TarInfo.isregcCs|jS)N)r)rr6r6r7isfileBszTarInfo.isfilecCs
|jtkS)N)rr )rr6r6r7rDsz TarInfo.isdircCs
|jtkS)N)rSYMTYPE)rr6r6r7rFsz TarInfo.issymcCs
|jtkS)N)rLNKTYPE)rr6r6r7rHsz TarInfo.islnkcCs
|jtkS)N)rr5)rr6r6r7ischrJsz TarInfo.ischrcCs
|jtkS)N)rr6)rr6r6r7isblkLsz TarInfo.isblkcCs
|jtkS)N)rFIFOTYPE)rr6r6r7isfifoNszTarInfo.isfifocCs
|jdk    S)N)r)rr6r6r7issparsePszTarInfo.issparsecCs|jtttfkS)N)rr5r6r{)rr6r6r7isdevRsz TarInfo.isdevN)rrhr)r*r'r(rrrr+r,rrrrrrrrr)r)5rqrrrs    __slots__rrrpropertyr%rrr&rr    rrrr rrrr classmethodr1r staticmethodrr8rr,rQrSrRrXrTrUrWrgrfrhr[rdrZrrvrrrryrzr|r}r~r6r6r6r7rssd


 1  *
 3 ?  z c @seZdZdZdZdZdZeZe    Z
dZ e Z eZdZdjddZedddefd    d
Zedkd d ZedlddZedmddZednddZdddddZddZddZddZdd Zdod!d"Zdpdd$d%d&Zdqdd'd(d)Z drd*d+Z!d,d-Z"dsddd/d0d1Z#d2d3Z$dtddd/d5d6Z%d7d8Z&dud9d:Z'd;d<Z(d=d>Z)d?d@Z*dvdddAdBdCZ+dDdEZ,dFdGZ-dHdIZ.dJdKZ/dLdMZ0dNdOZ1dPdQZ2dRdSZ3dTdUZ4dVdWZ5dXdYZ6dwdZd[Z7d\d]Z8dxd^d_Z9d`daZ:dbdcZ;dddeZ<dfdgZ=dhdiZ>dS)yrrFr#NryrcCsddddd}||krtd||_|||_|sj|jdkrVtjj| rVd|_d|_t||j}d    |_n@|dkrt|d
rt    |j
t t fr|j
}t|d r|j|_d |_|rtjj |nd|_
||_|dk    r||_|dk    r||_|dk    r||_|dk    r||_|dk    r||_|    |_|
dk    r4|jtkr4|
|_ni|_| dk    rJ| |_| dk    rZ| |_| |_d    |_g|_d    |_|jj|_i|_y|jd krd|_ |j!|_ |jdkr8x|jj"|jy|jj#|}|jj$|WnTt%k
r|jj"|jPYn0t&k
r0}zt't |WYdd}~XnXqW|jdkrd |_|jr|jj(|jj)}|jj*||jt+|7_Wn&|js|jj,d |_YnXdS)Nrbzr+bwbZxb)ryarzrnz!mode must be 'r', 'a', 'w' or 'x'rrzFrrhTryrn)rrzrn)-r.rh_moder|r%exists    bltn_openrrr)rr+rLabspathrrPr dereference ignore_zerosr4r5rrdebug
errorlevel copybufsizermembers_loadedrrinodes firstmemberr\rrSrrvr rr1r
r[r0r)rrrhrrPrrrr4r5rrrrZmodeserTr6r6r7rrs 
 




  
  $  
zTarFile.__init__c s| r| rtd|dkrfdd}xttj|dD]b}tj|}|dk    r\|j}    y||d|f|Sttfk
r|dk    r|j|    w8Yq8Xq8Wtdnd|kr |jdd    \}
}|
pd}
|pd
}|jkrtj|}n td ||||
|f|Sd |kr|jd d    \}
}|
p.d}
|p8d
}|
dkrLtdt    ||
|||} y||
| f|} Wn| j
YnXd| _ | S|dkrj |||f|StddS)Nznothing to openryr:*csj|dkS)Ntaropen)    OPEN_METH)r)r0r6r7not_compressed sz$TarFile.open.<locals>.not_compressed)keyz%file could not be opened successfully:r#rzunknown compression type %r|rzzmode must be 'r' or 'w'Frrnzundiscernible mode)ryr)ryrz)rrzrn) r.sortedrrlrrrrr2rrrr) r0rrhrr_kwargsrrfuncZ    saved_posrgstreamrr6)r0r7rsP%  
  

 




z TarFile.opencKs |dkrtd||||f|S)Nryrrzrnz!mode must be 'r', 'a', 'w' or 'x')ryrrzrn)r.)r0rrhrrr6r6r7r<szTarFile.taropenrcKs|d
krtdyddl}|jWn ttfk
rBtdYnXy|j||d||}Wn.tk
r|dk    r|dkrtdYnXy|j|||f|}WnBtk
r|j    |dkrtdYn|j    YnXd    |_
|S) Nryrzrnzmode must be 'r', 'w' or 'x'rzgzip module is not availablerbznot a gzip fileF)ryrzrn) r.gzipZGzipFilerAttributeErrorrrrrrr)r0rrhr compresslevelrrrr6r6r7gzopenDs2
zTarFile.gzopencKs|d
krtdy ddl}Wntk
r8tdYnX|j|pD|||d}y|j|||f|}WnFttfk
r|j|dkrt    dYn|jYnXd    |_
|S) Nryrzrnzmode must be 'r', 'w' or 'x'rzbz2 module is not available)rznot a bzip2 fileF)ryrzrn) r.rrrZBZ2FilerrEOFErrorrrr)r0rrhrrrrrr6r6r7bz2openfs(  zTarFile.bz2opencKs|d
krtdy ddl}Wntk
r8tdYnX|j|pD|||d}y|j|||f|}WnH|jtfk
r|j|dkrt    dYn|jYnXd    |_
|S) Nryrzrnzmode must be 'r', 'w' or 'x'rzlzma module is not available)presetznot an lzma fileF)ryrzrn) r.rrrZLZMAFilerrrrrr)r0rrhrrrrrr6r6r7xzopens& zTarFile.xzopenrrrr)rrrrc
Cs|jr
dSd|_z`|jdkrn|jjttd|jtd7_t|jt\}}|dkrn|jjtt|Wd|j    s|jj
XdS)NTrrzrnr$r)rrzrn) rrhrr[r1rrrY
RECORDSIZErr)rr`rar6r6r7rs
z TarFile.closecCs"|j|}|dkrtd||S)Nzfilename %r not found)
_getmemberKeyError)rrrr6r6r7    getmembers
 zTarFile.getmembercCs|j|js|j|jS)N)_checkr_loadr)rr6r6r7
getmembersszTarFile.getmemberscCsdd|jDS)NcSsg|]
}|jqSr6)r)rmrr6r6r7rosz$TarFile.getnames.<locals>.<listcomp>)r)rr6r6r7getnamesszTarFile.getnamesc Csp|jd|dk    r|j}|dkr$|}tjj|\}}|jtjd}|jd}|j}||_    |dkrt
tdr|j rtj |}qtj |}ntj|j}d}|j}t j|r|j|jf}    |j r|jdkr|    |jkr||j|    krt}
|j|    }nt}
|    drx||j|    <nht j|r"t}
nVt j|r4t}
nDt j|rPt}
tj|}n(t j|rbt }
nt j!|rtt"}
ndS||_||_#|j$|_%|j&|_'|
tkr|j(|_)nd|_)|j*|_+|
|_,||_-t.ryt.j/|j%d|_0Wnt1k
rYnXt2r*yt2j3|j'd|_4Wnt1k
r(YnX|
t t"fkrlt
tdrlt
tdrltj5|j6|_7tj8|j6|_9|S)    Nawxrlstatrr#rmajorminor):rrr|r%
splitdriverrrrrrrrrffstatfilenost_modeS_ISREGst_inost_devst_nlinkrrxrS_ISDIRr S_ISFIFOr{S_ISLNKrwreadlinkS_ISCHRr5S_ISBLKr6rhst_uidr)st_gidr*st_sizer'st_mtimer(rrpwdgetpwuidr+rgrpZgetgrgidr,rst_rdevrrr) rrarcnamerZdrvrZstatresrZstmdinoderr6r6r7
gettarinfos~    

     
       

zTarFile.gettarinfoT)rcCs0|j|dkr|}x|D]
}|r|jdkr:tdnttj|jtd|jpX|j|jpb|jf|j    sz|j
rtdd|j |j fntd|j |jdkrtdntdtj|jddt|j|jrd    nd
|r"|jr
td |j|jr"td |jtqWdS) Nz
??????????z%s/%sz%10sz%d,%dz%10dz????-??-?? ??:??:??z%d-%02d-%02d %02d:%02d:%02drrrz-> zlink to )rrhrprfrgr+r)r,r*ryrzrrr'r(rZ    localtimerrrrrro)rverboserrr6r6r7rj>s2





z TarFile.list)filterc    
Csv|jd|dkr|}|dk    rPddl}|jdtd||rP|jdd|dS|jdk    rtjj||jkr|jdd|dS|jd||j    ||}|dkr|jdd|dS|dk    r||}|dkr|jdd|dS|j
rt |d    }|j ||WdQRXnd|j rh|j ||rrxHtj|D].}|jtjj||tjj|||||d
q4Wn
|j |dS) Nrrzuse the filter argument insteadr$ztarfile: Excluded %rztarfile: Skipped %rr#ztarfile: Unsupported type %rr)r)rrcrdre_dbgrr|r%rrrraddfilerlistdiraddr)    rrr    recursiveZexcluderrcrfr6r6r7rdsB
  
 

z TarFile.addcCs|jdtj|}|j|j|j|j}|jj||jt    |7_|j
}|dk    rt ||j|j |dt |j t\}}|dkr|jjtt||d7}|j|t7_|jj|dS)Nr)r_rr#)rr
rrPr4r5rr[rr0rrXr'rYrr1rr)rrrrTr_r`rar6r6r7rs

 zTarFile.addfilec"CsH|dkr|j}|dkrtjjd}|dkry tt}Wntk
rNYnBXddl}|jddd}||j    |WdQRX|jdddd}|ry t
|}Wn&t k
rt d|d    dYnX||_|St rtjdttStSt|trtd|St|r|Syt
|St k
rBt d|d    dYnXdS)NZ PYTHON_TARFILE_EXTRACTION_FILTERr#)Z interpolationZcomment_prefixesrr)Zfallbackzfilter z
 not foundz4The default behavior of tarfile extraction has been z$changed to disallow common exploits z(including CVE-2007-4559). z1By default, absolute/parent paths are disallowed z and some mode bits are cleared. z/See https://access.redhat.com/articles/7004769 zfor more details.z#String names are not supported for z2TarFile.extraction_filter. Use a function such as ztarfile.data_filter directly.)rzXThe default behavior of tarfile extraction has been changed to disallow common exploits zsThe default behavior of tarfile extraction has been changed to disallow common exploits (including CVE-2007-4559). zThe default behavior of tarfile extraction has been changed to disallow common exploits (including CVE-2007-4559). By default, absolute/parent paths are disallowed zThe default behavior of tarfile extraction has been changed to disallow common exploits (including CVE-2007-4559). By default, absolute/parent paths are disallowed and some mode bits are cleared. zThe default behavior of tarfile extraction has been changed to disallow common exploits (including CVE-2007-4559). By default, absolute/parent paths are disallowed and some mode bits are cleared. See https://access.redhat.com/articles/7004769 aThe default behavior of tarfile extraction has been changed to disallow common exploits (including CVE-2007-4559). By default, absolute/parent paths are disallowed and some mode bits are cleared. See https://access.redhat.com/articles/7004769 for more details.zUString names are not supported for TarFile.extraction_filter. Use a function such as zrString names are not supported for TarFile.extraction_filter. Use a function such as tarfile.data_filter directly.)extraction_filterr|environr4r_CONFIG_FILENAMEFileNotFoundError configparserZ ConfigParserZ    read_file_NAMED_FILTERSrr._RH_SAFER_DEFAULTrcrdRuntimeWarningrrr)r+    TypeErrorcallable)rrrfilerZconfr6r6r7_get_filter_functionsR

    
zTarFile._get_filter_function.) numeric_ownerrc"Csg}|j|}|dkr|}xT|D]L}|j|||\}}    |dkr@q |jrR|j|    |j|||j ||dq W|jddddx$|D]}    yy||    |}Wn4tk
r}
z|j|    t|
wWYdd}
~
XnX|dkr|j|    dwt    j
j ||j } yt    j | } Wn$tk
r.|j|dwYnXtj| jsL|j|dw|j|| |d    |j|| |j|| Wqtk
r} z|j| WYdd} ~ XqXqWdS)
N)    set_attrsrfilter_functioncSs|jS)N)r)rr6r6r7<lambda>    sz$TarFile.extractall.<locals>.<lambda>T)rreversezexcluded by filterZmissingznot a directory)r)r_get_extract_tarinforr _extract_onesort_FILTER_ERRORS_log_no_directory_fixupreprr|r%rrrrrfrrchownutimechmodr
_handle_nonfatal_error)rr%rrrZ directoriesrrr
unfilteredexcdirpathrrr6r6r7
extractallsP


    zTarFile.extractallcCs|jdd|j|fdS)Nr$z(tarfile: Not fixing up directory %r (%s))rr)rrreasonr6r6r7r4    szTarFile._log_no_directory_fixuprc    Cs8|j|}|j|||\}}|dk    r4|j||||dS)N)rrr)    rrr%rrrrrrr6r6r7extract8    s

zTarFile.extractcCst|tr|j|}n|}d}y|||}WnZttfk
r\}z|j|WYdd}~Xn,tk
r}z|j|WYdd}~XnX|dkr|jdd|j    dS|j
rt j |}t j j||j|_||fS)Nr$ztarfile: Excluded %r)NN)r)r+rrr_handle_fatal_errorr
rrrrr
r|r%rrr)rrrr%rfilteredrr6r6r7rL    s"
 
zTarFile._get_extract_tarinfocCs|jdy&|j|tjj||j||||dWnVtk
r\}z|j|WYdd}~Xn,tk
r}z|j    |WYdd}~XnXdS)Nry)rrrextraction_root)
r_extract_memberr|r%rrrrr
r)rrr%rrrrr6r6r7rj    s
 zTarFile._extract_onecCs"|jdkrn|jdd|dS)Nr#z tarfile: %s)rr)rrr6r6r7r~    s
zTarFile._handle_nonfatal_errorcCsn|jdkrn\t|trP|jdkr6|jdd|jqj|jdd|j|jfn|jddt|j|fdS)Nrr#z tarfile: %sztarfile: %s %rztarfile: %s %s)rr)rfilenamerstrerrorrrq)rrr6r6r7r    s


zTarFile._handle_fatal_errorcCs|jdt|tr |j|}n|}|js6|jtkrB|j||S|jsR|j    rzt|j
t rht dq~|j |j|SndSdS)Nryz'cannot extract (sym)link as file object)rr)r+rrrrY
fileobjectrrrrr     extractfile_find_link_target)rrrr6r6r7r    s

   
zTarFile.extractfile)rrcCs\|jd}|jdtj}tjj|}|r@tjj| r@tj||jsP|j    rj|j
dd|j |j fn|j
d|j |j r|j||n|jr|j||n~|jr|j||nh|js|jr|j||nJ|js|j    r|j||||dn&|jtkr|j||n |j|||rX|j||||j    sX|j|||j||dS)Nrr#z%s -> %s)rr)rJrr|rr%rrmakedirsrrrrrrmakefilermakedirr|makefiforyrzmakedevmakelink_with_filterrrY makeunknownrrr)rr
targetpathrrrrZ    upperdirsr6r6r7r    s:
 

  
 zTarFile._extract_memberc Cs@y&|jdkrtj|n tj|dWntk
r:YnXdS)Ni)rhr|mkdirFileExistsError)rrrr6r6r7r    s 
 zTarFile.makedircCs|j}|j|j|j}t|df}|jdk    rrx,|jD]"\}}|j|t|||t|q6W|j|j|j    nt|||jt|WdQRXdS)Nr)
rrrrrrrXrr'truncate)rrrsourcer_targetrr'r6r6r7r    s  

 
zTarFile.makefilecCs"|j|||jdd|jdS)Nr#z9tarfile: Unknown file type %r, extracted as regular file.)rrr)rrrr6r6r7r
s zTarFile.makeunknowncCs"ttdrtj|ntddS)Nmkfifozfifo not supported by system)rr|r r
)rrrr6r6r7r
s
 zTarFile.makefifocCsnttd sttd r td|j}|dkr2d}|jrF|tjO}n
|tjO}tj||tj    |j
|j dS)Nmknodrz'special devices not supported by systemi) rr|r
rhrzrfS_IFBLKS_IFCHRrrrr)rrrrhr6r6r7r
s 
zTarFile.makedevcCs|j||ddS)N)r)rrrr6r6r7makelink(
szTarFile.makelinkc    $Cs&d}yT|jr6tjj|r$tj|tj|j|dStjj|jrVtj    |j|dSWnt
k
rpd}YnXy|j |}Wn$t k
r|rt dnYnX|dkr|}nR|dkrt dy|||}Wn2tk
r}zt||j|WYdd}~XnX|dk    r"|j||||ddS)NFTz%unable to resolve link inside archivez6makelink_with_filter: if filter_function is not None, z%extraction_root must also not be None)rrz[makelink_with_filter: if filter_function is not None, extraction_root must also not be None)rr|r%lexistsunlinksymlinkrrrlinksymlink_exceptionrrr
rrrr)    rrrrrZkeyerror_to_extracterrorrrcauser6r6r7r+
sB     

 
zTarFile.makelink_with_filtercCsttdrtjdkr|j}|j}|sytrB|jrBtj|jd}Wntk
rXYnXyt    rv|j
rvt    j |j
d}Wntk
rYnX|dkrd}|dkrd}y4|j rttdrtj |||ntj|||Wntk
rtdYnXdS)    Ngeteuidrr$r#lchownzcould not change ownerr9r9)rr|rr*r)rr,Zgetgrnamrrr+getpwnamrrrrr
)rrrrgur6r6r7r]
s0

z TarFile.chownc CsL|jdkrdSttdrHytj||jWntk
rFtdYnXdS)Nrzcould not change mode)rhrr|rrr
)rrrr6r6r7r~
s

z TarFile.chmodc CsV|j}|dkrdSttds dSytj|||fWntk
rPtdYnXdS)Nrz"could not change modification time)r(rr|rrr
)rrrr(r6r6r7r
s
z TarFile.utimecCs|jd|jdk    r$|j}d|_|S|j|jjkrZ|jj|jd|jjdsZtdd}xby|jj    |}WnHt
k
r}z2|j r|j dd|j|f|jt 7_wbWYdd}~Xntk
r,}zN|j r|j dd|j|f|jt 7_wbn|jdkrtt|WYdd}~Xntk
rT|jdkrPtdYnjtk
r}z|jdkr~tt|WYdd}~Xn0tk
r}ztt|WYdd}~XnXPqbW|dk    r|jj|nd|_|S)    NZrar#zunexpected end of datar$z0x%X: %srz
empty fileT)rrrrrrrZrrrSrvrrrrHr+rtrurwrrr)rmrrr6r6r7r\
sL

     
z TarFile.nextc     Cs|j}d}|dk    rHy|j|}Wntk
r:d}YnX|d|}|rXtjj|}xLt|D]@}|r||j|jkrbd}qb|rtjj|j}n|j}||krb|SqbW|rt|dS)NFT)    rindexr.r|r%rreversedrr)    rrr    normalizerZskippingrr member_namer6r6r7r
s,
   zTarFile._getmembercCs"x|j}|dkrPqWd|_dS)NT)r\r)rrr6r6r7r
s
z TarFile._loadcCs:|jrtd|jj|dk    r6|j|kr6td|jdS)Nz %s is closedzbad operation for mode %r)rrrrqrh)rrhr6r6r7r
szTarFile._checkcCs`|jr.djtdtjj|j|jf}d}n
|j}|}|j||dd}|dkr\t    d||S)NrT)rr zlinkname %r not found)
rrrr|r%rrrrr)rrrlimitrr6r6r7r s  zTarFile._find_link_targetccs|jr|jEdHdSd}|jdk    r:|j}|d7}|VxN|t|jkrV|j|}n"|jst|j}|sxd|_dSndS|d7}|Vq<WdS)Nrr#T)rrrr\r0)rrrr6r6r7__iter__ s& 
 zTarFile.__iter__cCs||jkrt|tjddS)N)r)rrormstderr)rlevelmsgr6r6r7r: s
z TarFile._dbgcCs |j|S)N)r)rr6r6r7    __enter__@ szTarFile.__enter__cCs,|dkr|jn|js"|jjd|_dS)NT)rrrr)rrr    tracebackr6r6r7__exit__D s


zTarFile.__exit__) NryNNNNNNrNNNN)ryN)ryNr)ryNr)ryNN)NNN)T)NTN)N)rN)rT)N)TF)NF)N)?rqrrrsrrrrrrPr r4r5rrrrrrrrrrrrrrrrrrrrjrrrrrrrrrrrrrrrrrrrrrrr\rrrrr#rr'r)r6r6r6r7rVs
lZ  !   

d&=
5D
 62! 6
(

    c Cs.yt|}|jdStk
r(dSXdS)NTF)rrr)rrr6r6r7rR s c Csddl}d}|j|d}|jdddddd    |jd
d td d |j}|jddddd|jdddd5dd|jdddd6dd|jdddd d|j}|jr|j r|jd!d"|j    r*|j    }t
|rt |d# }|j t |j tjd$WdQRX|jr&t d%j|n|jd!d&j|n|jr|j}t
|rjtj |d'}|j|jd(WdQRXn|jd!d&j|n|jrPt|jd!kr|jd}tj}n,t|jd)kr|j\}}n|jd!|jt
|r<tj |d'}|j||jd*WdQRX|jrN|d+kr&d,j|}    n d-j||}    t |    n|jd!d&j|n|jr|jjd}
tjj|
\} } d.d.d/d/d0d0d0d0d1} | | krd2| | nd3}|j}tj |
| }x|D]}|j|qWWdQRX|jrt d4j|
n|jd!|jdS)7Nrz3A simple command line interface for tarfile module.) descriptionz-vz    --verbose
store_trueFzVerbose output)actiondefaulthelpz--filterz <filtername>zFilter for extraction)metavarchoicesr.z-lz--list    <tarfile>zShow listing of a tarfile)r/r.z-ez    --extract+ <output_dir>zExtract tarfile into target dir)nargsr/r.z-cz--create<name><file>zCreate tarfile from sourcesz-tz--testzTest if a tarfile is validr#z&--filter is only valid for extraction
ry)rz{!r} is a tar archive.z{!r} is not a tar archive.
zr:*)rr$)r%rrz{!r} file is extracted.z+{!r} file is extracted into {!r} directory.rrr)z.gzz.tgzz.xzz.txzz.bz2z.tbzz.tbz2z.tb2zw:rzz{!r} file created.)r1r3)r5r6)argparseArgumentParser add_argumentrZadd_mutually_exclusive_group
parse_argsrrexitZtestrrrrormr$rrPrjrr0r|curdirZ format_helprZcreatepopr%splitextr)r7r*parserrbargsr\rZtfr<r&Ztar_namerlZextZ compressionsZtar_modeZ    tar_files    file_namer6r6r7main` s  



 
 

 

 
 
rB__main__)r%r&r'r(r)r*r+r,)T)sversion
__author__Z__date__Z    __cvsid__ __credits__builtinsrrrmr|rrWrfrrSr
rercrrrrNotImplementedErrorrr    NameError__all__rrr1rrrrrrr3rrGrxrwr5r6r r{ZCONTTYPEr!r rHr-r/rVr rrrrYrurKrrrer*rFrsrr getfilesystemencodingr8r=rKrQrUrXrgrp    Exceptionrr
rrr    r rtrurvrHrwrxrobjectrrBufferedReaderrrrrrrrrrrrrrrr    compiler`rrrrBrqr6r6r6r7<module> s$  
 

   wh 


D
h b


All system for education purposes only. For more tools: Telegram @jackleet

Mr.X Private Shell

Logo
-
New File | New Folder
Command
SQL