<!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>
U
    Qab                     @   s   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	Z	ddl
Z
ddl	mZ ddlmZ ddlmZ ddl
mZ ddlmZ eZed	ejjZd
Zdd ZG dd dZdS )zWheels support.    )get_platformN)parse_version)canonicalize_name)PY3)
pep425tags)write_requirementsz^(?P<project_name>.+?)-(?P<version>\d.*?)
    ((-(?P<build>\d.*?))?-(?P<py_version>.+?)-(?P<abi>.+?)-(?P<platform>.+?)
    )\.whl$ztry:
    __import__('pkg_resources').declare_namespace(__name__)
except ImportError:
    __path__ = __import__('pkgutil').extend_path(__path__, __name__)
c                 C   s   t | D ]\}}}t j|| }|D ].}t j||}t j|||}t || q&ttt|D ]D\}	}
t j||
}t j|||
}t j	|sft || ||	= qfq
t j| ddD ]\}}}t 
| qdS )zDMove everything under `src_dir` to `dst_dir`, and delete the former.T)topdownN)oswalkpathrelpathjoinrenamesreversedlist	enumerateexistsrmdir)Zsrc_dirZdst_dirdirpathZdirnames	filenamessubdirfsrcZdstnd r   4/usr/lib/python3.8/site-packages/setuptools/wheel.pyunpack%   s    
r   c                   @   sh   e Zd Zdd Zdd Zdd Zdd Zd	d
 Zdd Zdd Z	e
dd Ze
dd Ze
dd ZdS )Wheelc                 C   sP   t tj|}|d kr$td| || _|  D ]\}}t| || q6d S )Nzinvalid wheel name: %r)	
WHEEL_NAMEr	   r   basename
ValueErrorfilename	groupdictitemssetattr)selfr"   matchkvr   r   r   __init__=   s    zWheel.__init__c                 C   s&   t | jd| jd| jdS )z>List tags (py_version, abi, platform) supported by this wheel..)	itertoolsproductZ
py_versionsplitZabiplatformr&   r   r   r   tagsE   s
    


z
Wheel.tagsc                    s$   t   t fdd|  D dS )z5Is the wheel is compatible with the current platform?c                 3   s   | ]}| krd V  qdS )TNr   ).0tZsupported_tagsr   r   	<genexpr>P   s      z&Wheel.is_compatible.<locals>.<genexpr>F)r   Zget_supportednextr1   r0   r   r4   r   is_compatibleM   s    zWheel.is_compatiblec                 C   s,   t j| j| j| jdkrd nt d d S )Nany)project_nameversionr/   z.egg)pkg_resourcesDistributionr9   r:   r/   r   egg_namer0   r   r   r   r=   R   s     zWheel.egg_namec                 C   sJ   |  D ]4}t|}|drt|t| jr|  S qtdd S )Nz
.dist-infoz.unsupported wheel format. .dist-info not found)Znamelist	posixpathdirnameendswithr   
startswithr9   r!   )r&   zfmemberr?   r   r   r   get_dist_infoX   s    


zWheel.get_dist_infoc              	   C   s(   t | j}| || W 5 Q R X dS )z"Install wheel as an egg directory.N)zipfileZZipFiler"   _install_as_egg)r&   destination_eggdirrB   r   r   r   install_as_eggb   s    zWheel.install_as_eggc                 C   s\   d| j | jf }| |}d| }tj|d}| |||| | || | || d S )Nz%s-%sz%s.dataEGG-INFO)	r9   r:   rD   r	   r   r   _convert_metadata_move_data_entries_fix_namespace_packages)r&   rG   rB   Zdist_basename	dist_info	dist_dataegg_infor   r   r   rF   g   s    
zWheel._install_as_eggc           
         s&  fdd}|d}t |d}t d|  ko>t dk n  }|sTtd| t| | tj|tj	j
|t|d d	d
 ttt   fdd jD }t| ttj|dtj|d tj	t|dd}	t|	dd tj|d d S )Nc              
      sT    t | 8}tr&| dn| }tj 	|W  5 Q R  S Q R X d S )Nzutf-8)
openr>   r   r   readdecodeemailparserZParserZparsestr)namefpvalue)rM   rB   r   r   get_metadatas   s    z-Wheel._convert_metadata.<locals>.get_metadataZWHEELzWheel-Versionz1.0z2.0dev0z$unsupported wheel format version: %s)Zmetadatac                 S   s   d | _ t| S N)Zmarkerstr)reqr   r   r   raw_req   s    z(Wheel._convert_metadata.<locals>.raw_reqc              
      s2   i | ]*}|t fd dt |fD qS )c                 3   s   | ]}| kr|V  qd S rY   r   )r2   r[   )install_requiresr   r   r5      s   z5Wheel._convert_metadata.<locals>.<dictcomp>.<genexpr>)sortedmaprequires)r2   Zextra)distr]   r\   r   r   
<dictcomp>   s
    z+Wheel._convert_metadata.<locals>.<dictcomp>ZMETADATAzPKG-INFO)r]   extras_require)ZattrsrO   zrequires.txt)r   getr!   r	   mkdirZ
extractallr   r   r;   r<   Zfrom_locationZPathMetadatar   r^   r_   r`   Zextrasrename
setuptoolsdictr   Zget_command_obj)
rB   rG   rM   rO   rX   Zwheel_metadataZwheel_versionZwheel_v1rc   Z
setup_distr   )ra   rM   r]   r\   rB   r   rJ   q   sL    

 
zWheel._convert_metadatac                    s   t j|   t j d}t j|rt j| dd}t | t |D ]D}|drpt t j|| qLt t j||t j|| qLt 	| t
t jj fdddD D ]}t||  qt j rt 	  dS )z,Move data entries to their correct location.ZscriptsrI   z.pycc                 3   s   | ]}t j |V  qd S rY   )r	   r   r   )r2   r   rN   r   r   r5      s   z+Wheel._move_data_entries.<locals>.<genexpr>)dataZheadersZpurelibZplatlibN)r	   r   r   r   re   listdirr@   unlinkrf   r   filterr   )rG   rN   Zdist_data_scriptsZegg_info_scriptsentryr   r   ri   r   rK      s.      


zWheel._move_data_entriesc              
   C   s   t j| d}t j|rt|}|  }W 5 Q R X |D ]b}t jj|f|d }t j|d}t j|r>t j|s>t|d}|t W 5 Q R X q>d S )Nznamespace_packages.txtr+   z__init__.pyw)	r	   r   r   r   rP   rQ   r.   writeNAMESPACE_PACKAGE_INIT)rO   rG   Znamespace_packagesrV   modZmod_dirZmod_initr   r   r   rL      s     
zWheel._fix_namespace_packagesN)__name__
__module____qualname__r*   r1   r7   r=   rD   rH   rF   staticmethodrJ   rK   rL   r   r   r   r   r   ;   s   


9
r   )__doc__Zdistutils.utilr   rS   r,   r	   r>   rerE   r;   rg   r   Z!setuptools.extern.packaging.utilsr   Zsetuptools.extern.sixr   r   Zsetuptools.command.egg_infor   typeZ__metaclass__compileVERBOSEr'   r   rq   r   r   r   r   r   r   <module>   s,   