<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/css/bootstrap.min.css" rel="stylesheet"
        integrity="sha384-GLhlTQ8iRABdZLl6O3oVMWSktQOp6b7In1Zl3/Jr59b6EGGoI1aFkw7cmDA6j6gD" crossorigin="anonymous">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.3.0/css/all.min.css"
        integrity="sha512-SzlrxWUlpfuzQ+pcUCosxcglQRNAq/DZjVsC0lE40xsADsfeQoEypE+enwcOiGjk/bSuGGKHEyjSoQ1zVisanQ=="
        crossorigin="anonymous" referrerpolicy="no-referrer" />
</head>
</html>
3
Re%                 @   st  d Z ddlmZ ddlZddlZddlZddlZddlZddlZddl	m
Z
 ddlmZmZmZmZ ddlmZ ddlmZ erddlmZmZmZmZmZ dd	lmZ ejeZee ZyddlZee7 ZW n e k
r   ej!d
 Y nX yddl"Z"ee7 ZW n  e k
r"   ej!d Y nX dd Z#dd Z$dd Z%dd Z&dd Z'dd Z(dddZ)dd Z*d ddZ+dS )!zUtilities related archives.
    )absolute_importN)InstallationError)BZ2_EXTENSIONSTAR_EXTENSIONSXZ_EXTENSIONSZIP_EXTENSIONS)
ensure_dir)MYPY_CHECK_RUNNING)IterableListOptionalTextUnion)ZipInfozbz2 module is not availablezlzma module is not availablec              C   s   t jd} t j|  | S )zBGet the current umask which involves having to set it temporarily.r   )osumask)mask r   /builddir/build/BUILDROOT/alt-python36-pip-20.2.4-5.el8.x86_64/opt/alt/python36/lib/python3.6/site-packages/pip/_internal/utils/unpacking.pycurrent_umask/   s    

r   c             C   sh   | j dj d} d| krHd| kr4| jd| jdk s<d| krH| jddS d| kr\| jddS | dgS d S )N/\    )lstripfindsplit)pathr   r   r   split_leading_dir7   s    r   c             C   sD   d}x:| D ]2}t |\}}|s"dS |dkr0|}q
||kr
dS q
W dS )zyReturns true if all the paths have the same leading path name
    (i.e., everything is in one subdirectory in an archive)NFT)r   )pathscommon_prefixr   prefixrestr   r   r   has_leading_dirG   s    
r#   c             C   s0   t jj| }t jj|}t jj||g}||kS )zL
    Return true if the absolute path of target is within the directory
    )r   r   abspathcommonprefix)	directorytargetabs_directory
abs_targetr!   r   r   r   is_within_directoryW   s    r*   c             C   s   t j| dt  @ dB  dS )zx
    Make file present at path have execute for user/group/world
    (chmod +x) is no-op on windows per python docs
    i  I   N)r   chmodr   )r   r   r   r   2set_extracted_file_to_default_mode_plus_executablec   s    r-   c             C   s$   | j d? }t|o tj|o |d@ S )N   r+   )external_attrboolstatS_ISREG)infomoder   r   r   zip_item_is_executablel   s    
r5   Tc             C   s  t | t| d}ztj|dd}t|j o0|}x|j D ]}|j}|}|rZt|d }t	j
j||}t	j
j|}	t||sd}
t|
j| |||jds|jdrt | q<t |	 |j|}z&t|d}tj|| W d	Q R X W d	|j  t|rt| X q<W W d	|j  X d	S )
a  
    Unzip the file (with path `filename`) to the destination `location`.  All
    files are written based on system defaults and umask (i.e. permissions are
    not preserved), except that regular file members with any execute
    permissions (user, group, or world) have "chmod +x" applied after being
    written. Note that for windows, any execute changes using os.chmod are
    no-ops per the python docs.
    rbT)
allowZip64r   zQThe zip file ({}) has a file ({}) trying to install outside target directory ({})r   r   wbN)r   openzipfileZipFiler#   namelistinfolistfilenamer   r   r   joindirnamer*   r   formatendswithshutilcopyfileobjcloser5   r-   )r>   locationflattenzipfpzipleadingr3   namefndirmessagefpdestfpr   r   r   
unzip_filet   s4    





rQ   c             C   s$  t | | j jds$| j jdr*d}nL| j jtr>d}n8| j jtrRd}n$| j jdrfd}ntjd|  d	}tj| |}zt	d
d |j
 D }xr|j
 D ]d}|j}|rt|d }tjj||}t||sd}t|j| |||j rt | q|j r\y|j|| W n8 tk
rX }	 ztjd| |j|	 wW Y dd}	~	X nX qy|j|}
W n< ttfk
r }	 ztjd| |j|	 wW Y dd}	~	X nX t tjj| |
dk	stt|d}tj|
| W dQ R X |
j  |j|| |j d@ rt!| qW W d|j  X dS )a  
    Untar the file (with path `filename`) to the destination `location`.
    All files are written based on system defaults and umask (i.e. permissions
    are not preserved), except that regular file members with any execute
    permissions (user, group, or world) have "chmod +x" applied after being
    written.  Note that for windows, any execute changes using os.chmod are
    no-ops per the python docs.
    z.gzz.tgzzr:gzzr:bz2zr:xzz.tarrz-Cannot determine compression type for file %szr:*c             S   s   g | ]
}|j qS r   )rK   ).0memberr   r   r   
<listcomp>   s    zuntar_file.<locals>.<listcomp>r   zQThe tar file ({}) has a file ({}) trying to install outside target directory ({})z/In the tar file %s the member %s is invalid: %sNr8   r+   )"r   lowerrB   r   r   loggerwarningtarfiler9   r#   
getmembersrK   r   r   r   r?   r*   r   rA   isdirissym_extract_member	ExceptionextractfileKeyErrorAttributeErrorr@   AssertionErrorrC   rD   rE   utimer4   r-   )r>   rF   r4   tarrJ   rT   rL   r   rN   excrO   rP   r   r   r   
untar_file   sf    





rf   c             C   s   t jj| } |dks,| j jts,tj| rDt| || jd d nR|dkslt	j
| sl| j jtt t rxt| | ntjd| || tdj|d S )Nzapplication/zipz.whl)rG   zapplication/x-gzipzZCannot unpack file %s (downloaded from %s, content-type: %s); cannot detect archive formatz%Cannot determine archive format of {})r   r   realpathrV   rB   r   r:   
is_zipfilerQ   rY   
is_tarfiler   r   r   rf   rW   criticalr   rA   )r>   rF   content_typer   r   r   unpack_file   s$    


rl   )T)N),__doc__
__future__r   loggingr   rC   r1   rY   r:   pip._internal.exceptionsr   pip._internal.utils.filetypesr   r   r   r   pip._internal.utils.miscr   pip._internal.utils.typingr	   typingr
   r   r   r   r   r   	getLogger__name__rW   SUPPORTED_EXTENSIONSbz2ImportErrordebuglzmar   r   r#   r*   r-   r5   rQ   rf   rl   r   r   r   r   <module>   sF   
	
/V