o
    Uhz                     @  sT   d dl mZ d dlmZ d dlmZ G dd dZdd ZG dd	 d	Zg d
Z	dS )    )annotations)
attrgetter)ZipFilec                   @  sz   e Zd ZdddZedd Zedd Zed	d
 Zedd Z	e
dd Zedd Zdd ZdddZdddZdS )WheelreturnNonec                 C  s   || _ |jd| _d S )N-)pathstemsplit_parts)selfr	    r   o/var/www/html/construction_image-detection-poc/venv/lib/python3.10/site-packages/virtualenv/seed/wheels/util.py__init__   s   zWheel.__init__c                 C  s2   |d ur|j dkrt|jddkr| |S d S )Nz.whlr      )suffixlenr
   r   )clsr	   r   r   r   	from_path   s   &zWheel.from_pathc                 C  
   | j d S )Nr   r   r   r   r   r   distribution      
zWheel.distributionc                 C  r   )N   r   r   r   r   r   version   r   zWheel.versionc                 C  s   |  | jS N)as_version_tupler   r   r   r   r   version_tuple   s   zWheel.version_tuplec              	   C  sV   g }|  ddd D ]}z	|t| W q ty    Y  nw |s't| t|S )N.r      )r   appendint
ValueErrortuple)r   resultpartr   r   r   r       s   zWheel.as_version_tuplec                 C  s   | j jS r   )r	   namer   r   r   r   r(   ,   s   z
Wheel.namec              
     sx  d | jjddd  d}tt| jd}||d}W d    n1 s,w   Y  d t fdd	|	 D d }|d u rGd
S t
dd	 |dD dd	 |dD D ]\}dfddfdfddfdfddfdfddfdfddfdfddffD ]-\}}||r|t|d   }	t
dd	 |	dD dd }
||
s  dS  nqq]d
S )Nr   r      z.dist-info/METADATArzutf-8zRequires-Python:c                 3  s*    | ]}|  r|t d  V  qd S r   )
startswithr   .0i)markerr   r   	<genexpr>5   s   ( z#Wheel.support_py.<locals>.<genexpr>Tc                 s  s    | ]}t |V  qd S r   r#   r,   r   r   r   r0   8       r    c                 s  s    | ]}|  V  qd S r   )stripr,   r   r   r   r0   9   r2   ,z!=c                   s    | kS r   r   vpy_version_intr   r   <lambda><       z"Wheel.support_py.<locals>.<lambda>==c                   s    | kS r   r   r5   r7   r   r   r9   =   r:   z<=c                   s    | kS r   r   r5   r7   r   r   r9   >   r:   z>=c                   s    | kS r   r   r5   r7   r   r   r9   ?   r:   <c                   s    | k S r   r   r5   r7   r   r   r9   @   r:   >c                   s    | kS r   r   r5   r7   r   r   r9   A   r:   c                 s  s$    | ]}|d krt |ndV  qdS )*Nr1   r,   r   r   r   r0   E   s   " F)joinr	   r
   r   r   strreaddecodenext
splitlinesr%   r+   r   r3   )r   
py_versionr(   zip_filemetadatarequiresrequireoperatorcheckver_strr   r   )r/   r8   r   
support_py0   s4   "
 zWheel.support_pyr@   c                 C  s   | j j d| j dS )N())	__class____name__r	   r   r   r   r   __repr__K   s   zWheel.__repr__c                 C  s
   t | jS r   )r@   r	   r   r   r   r   __str__N   s   
zWheel.__str__N)r   r   )r   r@   )rQ   
__module____qualname__r   classmethodr   propertyr   r   r   staticmethodr   r(   rM   rR   rS   r   r   r   r   r      s"    







r   c                 C  sd   g }|   D ]!}t|}|r'|j|kr'|d u s|j|kr'||r'|| qt|tddddS )Nr   r   T)keyreverse)	iterdirr   r   r   r   rM   r"   sortedr   )from_folderr   r   for_py_versionwheelsfilenamewheelr   r   r   discover_wheelsR   s   


rb   c                   @  s@   e Zd ZdZdZeefZedd Zedd Zedd Z	d	S )
Versionbundleembedc                 C  s   | t jv rd S | S r   )rc   non_version)valuer   r   r   
of_versiong      zVersion.of_versionc                 C  s   |  t | S r   )rc   as_version_spec)r   r   r   r   r   
as_pip_reqk   ri   zVersion.as_pip_reqc                 C  s    t | }|d u rdS d| S )N r;   )rc   rh   )r   rh   r   r   r   rj   o   s   
zVersion.as_version_specN)
rQ   rT   rU   rd   re   rf   rX   rh   rk   rj   r   r   r   r   rc   `   s    

rc   )rc   r   rb   N)

__future__r   rJ   r   zipfiler   r   rb   rc   __all__r   r   r   r   <module>   s    K