
    3i                    |    d dl mZ d dlmZ d dlmZ d dlmZ erd dlm	Z	  G d d      Z
ddZ G d	 d
      Zg dZy)    )annotations)
attrgetter)TYPE_CHECKING)ZipFile)Pathc                      e Zd Z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	Zdd
Zy)Wheelc                R    || _         |j                  j                  d      | _        y )N-)pathstemsplit_parts)selfr   s     N/var/www/opsc/venv/lib/python3.12/site-packages/virtualenv/seed/wheels/util.py__init__zWheel.__init__   s     	iiooc*    c                    |>|j                   dk(  r/t        |j                  j                  d            dk\  r | |      S y )Nz.whlr      )suffixlenr   r   )clsr   s     r   	from_pathzWheel.from_path   s:    v 5#diiooc>R:SWX:Xt9r   c                     | j                   d   S )Nr   r   r   s    r   distributionzWheel.distribution       {{1~r   c                     | j                   d   S )N   r   r   s    r   versionzWheel.version   r   r   c                8    | j                  | j                        S N)as_version_tupler!   r   s    r   version_tuplezWheel.version_tuple    s    $$T\\22r   c                    g }| j                  d      dd D ]  }	 |j                  t        |              |st        |       t	        |      S # t        $ r Y  $w xY w)N.r      )r   appendint
ValueErrortuple)r!   resultparts      r   r$   zWheel.as_version_tuple$   si    MM#&q+ 	Dc$i(	
 W%%V}	  s   A	AAc                .    | j                   j                  S r#   )r   namer   s    r   r0   z
Wheel.name0   s    yy~~r   c           	        dj                  | j                  j                  j                  d      dd        d}t	        t        | j                        d      5 }|j                  |      j                  d      }d d d        dt        fdj                         D        d       }|y	t        d
 |j                  d      D              d |j                  d      D        D ]  }dfdfdfdfdfdfdfdfdfdfdfdffD ]c  \  }}|j                  |      s|t        |      d  j                         }	t        d |	j                  d      D              dd }
 ||
      s  y   y	# 1 sw Y   xY w)Nr   r      z.dist-info/METADATArzutf-8zRequires-Python:c              3  ^   K   | ]$  }|j                        s|t              d   & y wr#   )
startswithr   ).0imarkers     r   	<genexpr>z#Wheel.support_py.<locals>.<genexpr>9   s(     aaALLY_L`3v;=)as   --Tc              3  2   K   | ]  }t        |        y wr#   r*   r6   r7   s     r   r9   z#Wheel.support_py.<locals>.<genexpr><   s     E!s1vEs   r'   c              3  <   K   | ]  }|j                           y wr#   )stripr<   s     r   r9   z#Wheel.support_py.<locals>.<genexpr>=   s     ?a	?s   ,z!=c                    | k7  S r#    vpy_version_ints    r   <lambda>z"Wheel.support_py.<locals>.<lambda>@       1!4 r   ==c                    | k(  S r#   rA   rB   s    r   rE   z"Wheel.support_py.<locals>.<lambda>A   rF   r   z<=c                    | k  S r#   rA   rB   s    r   rE   z"Wheel.support_py.<locals>.<lambda>B   rF   r   z>=c                    | k\  S r#   rA   rB   s    r   rE   z"Wheel.support_py.<locals>.<lambda>C   rF   r   <c                    | k  S r#   rA   rB   s    r   rE   z"Wheel.support_py.<locals>.<lambda>D        2 r   >c                    | kD  S r#   rA   rB   s    r   rE   z"Wheel.support_py.<locals>.<lambda>E   rM   r   c              3  @   K   | ]  }|d k7  rt        |      nd  yw)*Nr;   r<   s     r   r9   z#Wheel.support_py.<locals>.<genexpr>I   s     #_qqCxSVT%A#_s   F)joinr   r   r   r   strreaddecodenext
splitlinesr,   r5   r   r>   )r   
py_versionr0   zip_filemetadatarequiresrequireoperatorcheckver_strr!   r8   rD   s              @@r   
support_pyzWheel.support_py4   s   ((499>>//4Qq9:;;NOS^S) 	;X}}T*11':H	;#a83F3F3HacghEz/?/?/DEE?8>>#+>? 	G 454545452323$ % %%h/%c(mo6<<>G##_GMMZ]L^#__`abcdG >$	  /	; 	;s   !E88Fc                N    | j                   j                   d| j                   dS )N())	__class____name__r   r   s    r   __repr__zWheel.__repr__O   s$    ..))*!DII;a88r   c                ,    t        | j                        S r#   )rS   r   r   s    r   __str__zWheel.__str__R   s    499~r   N)r   r   returnNone)r   r   ri   zWheel | None)ri   rS   )ri   tuple[int, ...])r!   rS   ri   rk   )rX   rS   ri   bool)re   
__module____qualname__r   classmethodr   propertyr   r!   r%   staticmethodr$   r0   r`   rf   rh   rA   r   r   r	   r	      s    +  
     3 3 	 	  69r   r	   c                   g }| j                         D ]_  }t        j                  |      }|s|j                  |k(  s+||j                  |k(  s=|j                  |      sO|j                  |       a t        |t        dd      d      S )Nr%   r   T)keyreverse)	iterdirr	   r   r   r!   r`   r)   sortedr   )from_folderr   r!   for_py_versionwheelsfilenamewheels          r   discover_wheelsr|   V   s    F'') !)""l2EMMW$<  0MM% ! &j.ISWXXr   c                  R    e Zd ZdZdZeefZedd       Zedd       Zed	d       Z	y)
Versionbundleembedc                .    | t         j                  v rd S | S r#   )r~   non_version)values    r   
of_versionzVersion.of_versionk   s     3 33t>>r   c                4    |  t         j                  |       S r#   )r~   as_version_spec)r   r!   s     r   
as_pip_reqzVersion.as_pip_reqo   s     7 7 @ABBr   c                >    t         j                  |       }|dS d| S )N rG   )r~   r   )r!   r   s     r   r   zVersion.as_version_specs   s)    ''0
'r>r*->>r   N)r   
str | Noneri   r   )r   rS   r!   r   ri   rS   )r!   r   ri   rS   )
re   rm   rn   r   r   r   rq   r   r   r   rA   r   r   r~   r~   d   sQ    FE5/K? ? C C ? ?r   r~   )r~   r	   r|   N)
rw   r   r   rS   r!   r   rx   rS   ri   zlist[Wheel])
__future__r   r]   r   typingr   zipfiler   pathlibr   r	   r|   r~   __all__rA   r   r   <module>r      s;    "    H HVY? ?*r   