HEX
Server: LiteSpeed
System: Linux vearitale.com 5.14.0-570.32.1.el9_6.x86_64 #1 SMP PREEMPT_DYNAMIC Wed Aug 6 11:30:41 EDT 2025 x86_64
User: yunab9059 (2007)
PHP: 8.3.21
Disabled: NONE
Upload Files
File: //usr/local/lib/python3.9/site-packages/virtualenv/discovery/__pycache__/py_spec.cpython-39.pyc
a

��h��@sBdZddlmZddlZddlZe�d�ZGdd�d�ZdgZdS)zOA Python specification is an abstract requirement definition of an interpreter.�)�annotationsNzP^(?P<impl>[a-zA-Z]+)?(?P<version>[0-9.]+)?(?P<threaded>t)?(?:-(?P<arch>32|64))?$c@sxeZdZdZdd�dddddddddd	�	d
d�Zedd�d
d��Zddd�dd�Zedd��Z	dd�Z
dd�dd�ZdS)�
PythonSpecz2Contains specification about a Python Interpreter.N��
free_threaded�strz
str | Nonez
int | Nonezbool | None�None)	�str_spec�implementation�major�minor�micro�architecture�pathr�returnc	Cs4||_||_||_||_||_||_||_||_dS�N)rr	r
rrrr
r)	�selfrr	r
rrr
rr�r�F/usr/local/lib/python3.9/site-packages/virtualenv/discovery/py_spec.py�__init__szPythonSpec.__init__)�string_specc
Csbd\}}}}}}}tj�|�r&|}�n$d}	t�t|�}
|
�r@dd�}z�|
��}|d}
|
du�rtdd�|
�d�D��}t	|�d	kr�t
�t	|�d	kr�|\}}}nVt	|�d
kr�|\}}n@t	|�dkr�|d}tt|�d�}|d
kr�tt|�dd��}t
|d�}d}	Wnt
�yYn$0|d}|dv�r4d}||d�}|	�sJ|}|||||||||d�S)N)NNNNNNNFcSs|durdSt|�Sr��int)�valrrr�_int_or_none-sz1PythonSpec.from_string_spec.<locals>._int_or_none�versioncss|]}|rt|�VqdSrr)�.0�irrr�	<genexpr>4�z.PythonSpec.from_string_spec.<locals>.<genexpr>�.���r�	�threadedT�impl>�py�python�archr)�osr�isabs�re�match�PATTERN�	groupdict�tuple�split�len�
ValueErrorrr�bool)�clsrr%r
rrr$r(r�okr,r�groupsr�versionsZversion_datarrr�from_string_spec#sD


zPythonSpec.from_string_specr3z
re.Pattern)�windowsrc
Cs�djdd�|j|j|jfD��}|jdur.dndt�|j���}|jrJdnd}|rVd	nd}|sh|jdurld
nd}tjd|�d|�|�d
|�|�d�	tj	d�S)z>Generate a regular expression for matching against a filename.z{}(\.{}(\.{})?)?css|]}|durdn|VqdS)Nz\d+r)r�vrrrrRrz)PythonSpec.generate_re.<locals>.<genexpr>Nr'zpython|zt?�z\.exe�?z	(?P<impl>z)(?P<v>�)�$)�flags)
�formatr
rrr	r+�escaper�compile�
IGNORECASE)rr9rr%�mod�suffixZversion_conditionalrrr�generate_reOs � ���	�zPythonSpec.generate_recCs|jduotj�|j�Sr)rr)r*�rrrr�is_abseszPythonSpec.is_abscCs�|jr|jr|j|jkrdS|jdur>|j��|j��kr>dS|jdurX|j|jkrXdS|jdurr|j|jkrrdSt|j|j|j	f|j|j|j	f�D]&\}}|dur�|dur�||kr�dSq�dS)z]Called when there's a candidate metadata spec to see if compatible - e.g. PEP-514 on Windows.FNT)
rHrr	�lowerr
r�zipr
rr)r�specZour�reqrrr�	satisfiesis*zPythonSpec.satisfies)rcs2t��j}d}|�dd��fdd�|D���d�S)N)r	r
rrr
rr�(z, c3s0|](}t�|�dur|�dt�|���VqdS)N�=)�getattr)r�krGrrr|rz&PythonSpec.__repr__.<locals>.<genexpr>r=)�type�__name__�join)r�name�paramsrrGr�__repr__ys
zPythonSpec.__repr__)rS�
__module__�__qualname__�__doc__r�classmethodr8rF�propertyrHrMrWrrrrrs�"+
r)	rZ�
__future__rr)r+rBr-r�__all__rrrr�<module>s
u�