HEX
Server: LiteSpeed
System: Linux php-prod-1.spaceapp.ru 5.15.0-157-generic #167-Ubuntu SMP Wed Sep 17 21:35:53 UTC 2025 x86_64
User: xnsbb3110 (1041)
PHP: 8.1.33
Disabled: NONE
Upload Files
File: //usr/local/lib/python3.10/dist-packages/virtualenv/discovery/__pycache__/py_spec.cpython-310.pyc
o

3�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@sVeZdZdZdd�d"dd�Zed#dd��Zd$dd�Zedd��Z	dd�Z
d%d d!�ZdS)&�
PythonSpecz2Contains specification about a Python Interpreter.N��
free_threaded�str_spec�str�implementation�
str | None�major�
int | None�minor�micro�architecture�pathr�bool | None�return�Nonec	Cs4||_||_||_||_||_||_||_||_dS�N)rrr
rr
rrr)	�selfrrr
rr
rrr�r�G/usr/local/lib/python3.10/dist-packages/virtualenv/discovery/py_spec.py�__init__s
zPythonSpec.__init__�string_specc
CsVd\}}}}}}}tj�|�r|}n�d}	t�t|�}
|
r�dd�}za|
��}|d}
|
dur~tdd�|
�d�D��}t	|�d	krAt
�t	|�d	krM|\}}}n+t	|�d
krX|\}}n t	|�dkrx|d}tt|�d�}|d
krxtt|�dd��}t
|d�}d}	Wn	t
y�Ynw|d}|dvr�d}||d�}|	s�|}|||||||||d�S)N)NNNNNNNFcSs|durdSt|�Sr��int)�valrrr�_int_or_none-sz1PythonSpec.from_string_spec.<locals>._int_or_none�versioncss�|]	}|rt|�VqdSrr)�.0�irrr�	<genexpr>4s�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
rr
r&r*r�okr.r�groupsr�versions�version_datarrr�from_string_spec#sF
�zPythonSpec.from_string_spec�windowsr5�
re.Patternc
Cs�djdd�|j|j|jfD��}|jdurdndt�|j���}|jr%dnd}|r+d	nd}|s4|jdur6d
nd}tjd|�d|�|�d
|�|�d�	tj	d�S)z>Generate a regular expression for matching against a filename.z{}(\.{}(\.{})?)?css �|]}|dur
dn|VqdS)Nz\d+r)r�vrrrr Rs�z)PythonSpec.generate_re.<locals>.<genexpr>Nr)zpython|zt?�z\.exe�?z	(?P<impl>z)(?P<v>�)�$)�flags)
�formatr
rr
rr-�escaper�compile�
IGNORECASE)rr<rr'�mod�suffix�version_conditionalrrr�generate_reOs � �
��	�zPythonSpec.generate_recCs|jduotj�|j�Sr)rr+r,�rrrr�is_abseszPythonSpec.is_abscCs�|jr|jr|j|jkrdS|jdur|j��|j��krdS|jdur,|j|jkr,dS|jdur9|j|jkr9dSt|j|j|j	f|j|j|j	f�D]\}}|dur]|dur]||kr]dSqJdS)z]Called when there's a candidate metadata spec to see if compatible - e.g. PEP-514 on Windows.FNT)
rMrr�lowerrr�zipr
rr
)r�spec�our�reqrrr�	satisfiesis*�zPythonSpec.satisfiescs2t��j}d}|�dd��fdd�|D���d�S)N)rr
rr
rrr�(z, c3s2�|]}t�|�dur|�dt�|���VqdS)N�=)�getattr)r�krLrrr |s�0z&PythonSpec.__repr__.<locals>.<genexpr>rA)�type�__name__�join)r�name�paramsrrLr�__repr__ys
$zPythonSpec.__repr__)rrrr	r
rrrr
rrrrr	rrrr)rr)r<r5rr=)rr)rY�
__module__�__qualname__�__doc__r�classmethodr;rK�propertyrMrSr]rrrrrs�
+
r)	r`�
__future__rr+r-rFr/r�__all__rrrr�<module>s
u�