3
\
ã @ s~ d dl Z d dlZd dlZe jde jƒZe jdƒZe jdƒZdd„ Z ej
ejejej
ejejdœZG dd „ d ƒZdad
d„ ZdS )é Nz'(?i)^\s*([a-z_]\w*(?:\.[a-z_]\w*)*)(.*)z^\s*\((.*)\)\s*$z%^\s*(<=|>=|<|>|!=|==)\s*([^\s,]+)\s*$c C s6 t j| ƒ}|std| ƒ‚|jƒ \}}|tjj|ƒfS )Nz"bad package restriction syntax: %r)Úre_splitComparisonÚmatchÚ
ValueErrorÚgroupsÚ distutilsÚversionÚ
StrictVersion)ÚpredÚresÚcompZverStr© r ú2/usr/lib64/python3.6/distutils/versionpredicate.pyÚsplitUp s
r )úz>=z!=c @ s$ e Zd Zdd„ Zdd„ Zdd„ ZdS )ÚVersionPredicatec C s¢ |j ƒ }|stdƒ‚tj|ƒ}|s.td| ƒ‚|jƒ \| _}|j ƒ }|r˜tj|ƒ}|sbtd| ƒ‚|jƒ d }dd„ |jdƒD ƒ| _| jsžtd| ƒ‚ng | _d S ) Nzempty package restrictionzbad package name in %rzexpected parenthesized list: %rr c S s g | ]}t |ƒ‘qS r )r )Ú.0ZaPredr r r
ú
t s z-VersionPredicate.__init__..ú,zempty parenthesized list in %r) Ústripr Úre_validPackager r ÚnameÚre_parenÚsplitr )ÚselfZversionPredicateStrr ZparenÚstrr r r
Ú__init__` s$
zVersionPredicate.__init__c C s8 | j r.dd„ | j D ƒ}| jd dj|ƒ d S | jS d S )Nc S s g | ]\}}|d t |ƒ ‘qS )ú )r )r ÚcondÚverr r r
r } s z,VersionPredicate.__str__..z (z, ú))r r Újoin)r Úseqr r r
Ú__str__{ s zVersionPredicate.__str__c C s* x$| j D ]\}}t| ||ƒsdS qW dS )NFT)r Úcompmap)r r r r r r r
Úsatisfied_by‚ s zVersionPredicate.satisfied_byN)Ú__name__Ú
__module__Ú__qualname__r r# r% r r r r
r s Ar c C sd t d krtjdtjƒa | jƒ } t j| ƒ}|s8td| ƒ‚|jdƒpDd }|rVtj j
|ƒ}|jdƒ|fS )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
r2 )r, Zdistutils.versionr Úoperatorr- r. r r r r ÚltÚleÚeqÚgtÚgeÚner$ r r+ r2 r r r r
Ú s
n