File: //usr/local/lib/python3.10/dist-packages/virtualenv/discovery/__pycache__/py_spec.cpython-310.pyc
o
3�h� � @ sB d Z ddlmZ ddlZddlZe�d�ZG dd� 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 @ sV e Zd ZdZdd�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 C s4 || _ || _|| _|| _|| _|| _|| _|| _d S �N)r r r
r r
r r r ) �selfr r r
r r
r r r � r �G/usr/local/lib/python3.10/dist-packages/virtualenv/discovery/py_spec.py�__init__ s
zPythonSpec.__init__�string_specc
C sV d\}}}}}}}t j�|�r|}n�d} t�t|�}
|
r�dd� }za|
�� }|d }
|
d ur~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} W n t
y� Y nw |d }|dv r�d }||d �}| s�|}| ||||||||d�S )N)NNNNNNNFc S s | d u rd S t | �S r ��int)�valr r r �_int_or_none- s z1PythonSpec.from_string_spec.<locals>._int_or_none�versionc s s � | ] }|rt |�V qd S r r )�.0�ir r r � <genexpr>4 s � z.PythonSpec.from_string_spec.<locals>.<genexpr>�.� � � r � �threadedT�impl> �py�python�archr )�osr �isabs�re�match�PATTERN� groupdict�tuple�split�len�
ValueErrorr r �bool)�clsr r'