a
    %Rh                     @   s~   d dl Z d dlZd dlZe de jZe dZe dZdd Z	ej
ejejejejejdZG dd	 d	Zdad
d ZdS )    Nz'(?i)^\s*([a-z_]\w*(?:\.[a-z_]\w*)*)(.*)z^\s*\((.*)\)\s*$z%^\s*(<=|>=|<|>|!=|==)\s*([^\s,]+)\s*$c                 C   s6   t | }|std|  | \}}|tj|fS )Nz"bad package restriction syntax: %r)re_splitComparisonmatch
ValueErrorgroups	distutilsversionStrictVersion)predrescompZverStr r   B/opt/python-3.9.24/usr/lib/python3.9/distutils/versionpredicate.pysplitUp   s
    
r   )<z<=z==>z>=z!=c                   @   s$   e Zd Zdd Zdd Zdd ZdS )VersionPredicatec                 C   s   |  }|stdt|}|s.td| | \| _}|  }|rt|}|sbtd| | d }dd |dD | _| jstd| ng | _d S )	Nzempty package restrictionzbad package name in %rzexpected parenthesized list: %rr   c                 S   s   g | ]}t |qS r   )r   ).0ZaPredr   r   r   
<listcomp>t       z-VersionPredicate.__init__.<locals>.<listcomp>,zempty parenthesized list in %r)	stripr   re_validPackager   r   namere_parensplitr	   )selfZversionPredicateStrr   Zparenstrr   r   r   __init__`   s&    

zVersionPredicate.__init__c                 C   s8   | j r.dd | j D }| jd d| d S | jS d S )Nc                 S   s    g | ]\}}|d  t | qS ) )r   )r   condverr   r   r   r   }   r   z,VersionPredicate.__str__.<locals>.<listcomp>z (z, ))r	   r   join)r   seqr   r   r   __str__{   s    zVersionPredicate.__str__c                 C   s(   | j D ]\}}t| ||s dS qdS )NFT)r	   compmap)r   r   r   r    r   r   r   satisfied_by   s    zVersionPredicate.satisfied_byN)__name__
__module____qualname__r   r$   r&   r   r   r   r   r      s   Ar   c                 C   sd   t d u rtdtja |  } t | }|s8td|  |dpDd }|rVtj	
|}|d|fS )Nz=([a-zA-Z_]\w*(?:\.[a-zA-Z_]\w*)*)(?:\s*\(\s*([^)\s]+)\s*\))?$z"illegal provides specification: %r      )_provision_rxrecompileASCIIr   r   r   groupr   r   r   )valuemr    r   r   r   split_provision   s    
r3   )r-   Zdistutils.versionr   operatorr.   r/   r   r   r   r   ltleeqgtgener%   r   r,   r3   r   r   r   r   <module>   s   

n