/
lib
/
python3.9
/
site-packages
/
virtualenv
/
discovery
/
__pycache__
/
Upload File
HOME
a ��:i � @ sB d Z ddlmZ ddlZddlZe�d�ZG dd� d�ZdgZdS )zNA Python specification is an abstract requirement definition of an interpreter� )�annotationsNz@^(?P<impl>[a-zA-Z]+)?(?P<version>[0-9.]+)?(?:-(?P<arch>32|64))?$c @ sN e Zd ZdZdd�dd�Zedd� �Zdd � Zed d� �Z dd � Z dd� ZdS )� PythonSpecz1Contains specification about a Python Interpreter�None)�returnc C s. || _ || _|| _|| _|| _|| _|| _d S �N)�str_spec�implementation�major�minor�micro�architecture�path)�selfr r r r r r r � r �@/usr/lib/python3.9/site-packages/virtualenv/discovery/py_spec.py�__init__ s zPythonSpec.__init__c C sX d\}}}}}}t j�|�r$|}�n d}t�t|�} | �r:dd� } z�| �� }|d }|d ur�tdd� |�d�D ��} t | �d kr�t �t | �d kr�| \}}}nVt | �d kr�| \}}n@t | �dkr�| d }tt|�d �}|d kr�tt|�dd � �}d}W n t �y Y n.0 |d }|dk�s*|dk�r.d }| |d �}|�sD|}| |||||||�S )N)NNNNNNFc 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>( � z.PythonSpec.from_string_spec.<locals>.<genexpr>�.� � � r � T�impl�py�python�arch) �osr �isabs�re�match�PATTERN� groupdict�tuple�split�len� ValueErrorr �str)�clsZstring_specr r r r r# r �okr'