https://t.me/RX1948
Server : Apache
System : Linux iad1-shared-b8-43 6.6.49-grsec-jammy+ #10 SMP Thu Sep 12 23:23:08 UTC 2024 x86_64
User : dh_edsupp ( 6597262)
PHP Version : 8.2.26
Disable Function : NONE
Directory :  /lib/python3/dist-packages/distlib/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : //lib/python3/dist-packages/distlib/__pycache__/version.cpython-310.pyc
o

��Ia�[�@sZdZddlZddlZddlmZddlmZgd�Ze�e	�Z
Gdd�de�ZGd	d
�d
e
�ZGdd�de
�Ze�d
�Zdd�ZeZGdd�de�Zdd�ZGdd�de�Ze�d�dfe�d�dfe�d�dfe�d�dfe�d�dfe�d�dfe�d �d!fe�d"�d#fe�d$�d%fe�d&�d'ff
Ze�d(�dfe�d)�dfe�d*�d!fe�d �d!fe�d+�dffZe�d,�Zd-d.�Zd/d0�Ze�d1ej�Zd2d2d3d2d4ddd5�Zd6d7�ZGd8d9�d9e�Z Gd:d;�d;e�Z!e�d<ej�Z"d=d>�Z#d?d@�Z$GdAdB�dBe�Z%GdCdD�dDe�Z&GdEdF�dFe
�Z'e'eee�e'ee!dGdH��e'e$e&e�dI�Z(e(dJe(dK<dLdM�Z)dS)Nz~
Implementation of a flexible versioning scheme providing support for PEP-440,
setuptools-compatible and semantic versioning.
�N�)�string_types��parse_requirement)�NormalizedVersion�NormalizedMatcher�
LegacyVersion�
LegacyMatcher�SemanticVersion�SemanticMatcher�UnsupportedVersionError�
get_schemec@seZdZdZdS)rzThis is an unsupported version.N)�__name__�
__module__�__qualname__�__doc__�rr�1/usr/lib/python3/dist-packages/distlib/version.pyrsrc@sxeZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zedd��ZdS)�VersioncCs@|��|_}|�|�|_}t|t�sJ�t|�dksJ�dS)Nr)�strip�_string�parse�_parts�
isinstance�tuple�len)�self�s�partsrrr�__init__szVersion.__init__cC�td��)Nzplease implement in a subclass��NotImplementedError�rrrrrr%�z
Version.parsecCs$t|�t|�krtd||f��dS)Nzcannot compare %r and %r)�type�	TypeError�r�otherrrr�_check_compatible(s�zVersion._check_compatiblecCs|�|�|j|jkS�N�r)rr'rrr�__eq__,�
zVersion.__eq__cC�|�|�Sr*�r,r'rrr�__ne__0�zVersion.__ne__cCs|�|�|j|jkSr*r+r'rrr�__lt__3r-zVersion.__lt__cCs|�|�p	|�|�Sr*�r2r,r'rrr�__gt__7szVersion.__gt__cC�|�|�p	|�|�Sr*r3r'rrr�__le__:�zVersion.__le__cCr5r*)r4r,r'rrr�__ge__=r7zVersion.__ge__cCs
t|j�Sr*)�hashr�rrrr�__hash__A�
zVersion.__hash__cC�d|jj|jfS)Nz%s('%s')��	__class__rrr:rrr�__repr__D�zVersion.__repr__cC�|jSr*�rr:rrr�__str__G�zVersion.__str__cCr )NzPlease implement in subclasses.r!r:rrr�
is_prereleaseJszVersion.is_prereleaseN)rrrrrr)r,r0r2r4r6r8r;r@rD�propertyrFrrrrrsrc	@s�eZdZdZdd�dd�dd�dd�dd�dd�d	d�d
d�d�Zdd
�Zdd�Zdd�Zedd��Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�ZdS) �MatcherNcCs||kSr*r��v�c�prrr�<lambda>T�zMatcher.<lambda>cCs||kSr*rrIrrrrMUrNcCs||kp||kSr*rrIrrrrMV�cC�||kp||kSr*rrIrrrrMWrOcC�||kSr*rrIrrrrMXrNcCrQr*rrIrrrrMYrNcCrPr*rrIrrrrM[rOcCs||kSr*rrIrrrrM\rN)�<�>�<=�>=�==�===�~=�!=cC�t|�Sr*rr#rrrrar$zMatcher.parse_requirementcCs�|jdur	td��|��|_}|�|�}|std|��|j|_|j��|_g}|jrb|jD]2\}}|�	d�rQ|dvrBtd|��|dd�d}}|�|�n|�|�d}}|�
|||f�q/t|�|_dS)	NzPlease specify a version classz
Not valid: %rz.*)rVrYz#'.*' not allowed for %r constraints���TF)
�
version_class�
ValueErrorrrr�name�lower�key�constraints�endswith�appendrr)rr�r�clist�op�vn�prefixrrrrds*


�zMatcher.__init__cCsxt|t�r
|�|�}|jD],\}}}|j�|�}t|t�r"t||�}|s0d||jjf}t	|��||||�s9dSq
dS)z�
        Check if the provided version matches the constraints.

        :param version: The version to match against this instance.
        :type version: String or :class:`Version` instance.
        z%r not implemented for %sFT)
rrr\r�
_operators�get�getattrr?rr")r�version�operator�
constraintrh�f�msgrrr�match�s




��z
Matcher.matchcCs6d}t|j�dkr|jdddvr|jdd}|S)Nrr)rVrW)rr)r�resultrrr�
exact_version�s zMatcher.exact_versioncCs0t|�t|�ks|j|jkrtd||f��dS)Nzcannot compare %s and %s)r%r^r&r'rrrr)�s�zMatcher._check_compatiblecCs"|�|�|j|jko|j|jkSr*)r)r`rr'rrrr,�s
zMatcher.__eq__cCr.r*r/r'rrrr0�r1zMatcher.__ne__cCst|j�t|j�Sr*)r9r`rr:rrrr;�r7zMatcher.__hash__cCr=)Nz%s(%r)r>r:rrrr@�rAzMatcher.__repr__cCrBr*rCr:rrrrD�rEzMatcher.__str__)rrrr\rirrrqrGrsr)r,r0r;r@rDrrrrrHOs,�
rHzk^v?(\d+!)?(\d+(\.\d+)*)((a|b|c|rc)(\d+))?(\.(post)(\d+))?(\.(dev)(\d+))?(\+([a-zA-Z\d]+(\.[a-zA-Z\d]+)?))?$cCs�|��}t�|�}|std|��|��}tdd�|d�d�D��}t|�dkrA|ddkrA|dd�}t|�dkrA|ddks/|dsHd}n
t|ddd��}|dd	�}|d
d�}|dd
�}|d}|dkrod}n
|dt|d�f}|dkr�d}n
|dt|d�f}|dkr�d}n
|dt|d�f}|dur�d}n"g}	|�d�D]}
|
�	�r�dt|
�f}
nd|
f}
|	�
|
�q�t|	�}|s�|s�|r�d}nd}|s�d}|s�d}||||||fS)NzNot a valid version: %scs��|]}t|�VqdSr*��int��.0rJrrr�	<genexpr>���z_pep_440_key.<locals>.<genexpr>r�.���r����	�
��
)NNr)�ar|)�z)�_)�final)r�PEP440_VERSION_RErqr�groupsr�splitrrv�isdigitrc)r�mr��nums�epoch�pre�post�dev�localr�partrrr�_pep_440_key�sV
�r�c@s0eZdZdZdd�Zegd��Zedd��ZdS)raIA rational version.

    Good:
        1.2         # equivalent to "1.2.0"
        1.2.0
        1.2a1
        1.2.3a2
        1.2.3b1
        1.2.3c1
        1.2.3.4
        TODO: fill this out

    Bad:
        1           # minimum two numbers
        1.2a        # release level must have a release serial
        1.2.3b
    cCs<t|�}t�|�}|��}tdd�|d�d�D��|_|S)Ncsrtr*rurwrrrryrzz*NormalizedVersion.parse.<locals>.<genexpr>rr{)�_normalized_keyr�rqr�rr��_release_clause)rrrrr�r�rrrr
s

zNormalizedVersion.parse)r��brK�rcr�cst�fdd��jD��S)Nc3s"�|]}|r|d�jvVqdS)rN)�PREREL_TAGS)rx�tr:rrrys� z2NormalizedVersion.is_prerelease.<locals>.<genexpr>)�anyrr:rr:rrFszNormalizedVersion.is_prereleaseN)	rrrrr�setr�rGrFrrrrr�srcCs>t|�}t|�}||krdS|�|�sdSt|�}||dkS)NTFr{)�str�
startswithr)�x�y�nrrr�
_match_prefixs
r�c	@sneZdZeZddddddddd	�Zd
d�Zdd
�Zdd�Zdd�Z	dd�Z
dd�Zdd�Zdd�Z
dd�ZdS)r�_match_compatible�	_match_lt�	_match_gt�	_match_le�	_match_ge�	_match_eq�_match_arbitrary�	_match_ne)rXrRrSrTrUrVrWrYcCsV|rd|vo
|jd}n|jdo|jd}|r'|j�dd�d}|�|�}||fS)N�+r|rr)rrr�r\)rrlrnrh�strip_localrrrr�
_adjust_local6s
zNormalizedMatcher._adjust_localcCsD|�|||�\}}||krdS|j}d�dd�|D��}t||�S)NFr{cS�g|]}t|��qSr�r��rx�irrr�
<listcomp>I�z/NormalizedMatcher._match_lt.<locals>.<listcomp>�r�r��joinr��rrlrnrh�release_clause�pfxrrrr�D�zNormalizedMatcher._match_ltcCsD|�|||�\}}||krdS|j}d�dd�|D��}t||�S)NFr{cSr�rr�r�rrrr�Qr�z/NormalizedMatcher._match_gt.<locals>.<listcomp>r�r�rrrr�Lr�zNormalizedMatcher._match_gtcCs|�|||�\}}||kSr*�r��rrlrnrhrrrr�T�zNormalizedMatcher._match_lecCs|�|||�\}}||kSr*r�r�rrrr�Xr�zNormalizedMatcher._match_gecCs0|�|||�\}}|s||k}|St||�}|Sr*�r�r��rrlrnrhrrrrrr�\s
�zNormalizedMatcher._match_eqcCst|�t|�kSr*r�r�rrrr�dsz"NormalizedMatcher._match_arbitrarycCs2|�|||�\}}|s||k}|St||�}|Sr*r�r�rrrr�gs�zNormalizedMatcher._match_necCsf|�|||�\}}||krdS||krdS|j}t|�dkr$|dd�}d�dd�|D��}t||�S)NTFrr|r{cSr�rr�r�rrrr�zr�z7NormalizedMatcher._match_compatible.<locals>.<listcomp>)r�r�rr�r�r�rrrr�os
z#NormalizedMatcher._match_compatibleN)rrrrr\rir�r�r�r�r�r�r�r�r�rrrrr's(�rz[.+-]$�z^[.](\d)z0.\1z^[.-]z
^\((.*)\)$�\1z^v(ersion)?\s*(\d+)z\2z^r(ev)?\s*(\d+)z[.]{2,}r{z\b(alfa|apha)\b�alphaz\b(pre-alpha|prealpha)\bz	pre.alphaz	\(beta\)$�betaz
^[:~._+-]+z
[,*")([\]]z[~:+_ -]z\.$z
(\d+(\.\d+)*)cCsN|����}tD]
\}}|�||�}q|sd}t�|�}|s#d}|}nZ|��d�d�}dd�|D�}t|�dkrD|�	d�t|�dks9t|�dkrS||�
�d�}nd�dd�|dd�D��||�
�d�}|dd�}d�d	d�|D��}|��}|r�tD]
\}}|�||�}q�|s�|}nd
|vr�dnd}|||}t
|�s�d}|S)
z�
    Try to suggest a semantic form for a version for which
    _suggest_normalized_version couldn't come up with anything.
    z0.0.0rr{cSr�rrur�rrrr��r�z-_suggest_semantic_version.<locals>.<listcomp>�NcSr�rr�r�rrrr��r�cSr�rr�r�rrrr��r�r��-r�)rr_�
_REPLACEMENTS�sub�_NUMERIC_PREFIXrqr�r�rrc�endr��_SUFFIX_REPLACEMENTS�	is_semver)rrr�pat�replr�rh�suffix�seprrr�_suggest_semantic_version�s<

�,r�cCsbzt|�|WStyYnw|��}dD]
\}}|�||�}qt�dd|�}t�dd|�}t�dd|�}t�dd	|�}t�d
d|�}|�d�rP|d
d�}t�dd|�}t�dd|�}t�dd|�}t�dd|�}t�dd|�}t�dd|�}t�dd|�}t�dd|�}t�dd|�}t�dd|�}t�dd |�}zt|�W|Sty�d}Y|Sw)!a�Suggest a normalized version close to the given version string.

    If you have a version string that isn't rational (i.e. NormalizedVersion
    doesn't like it) then you might be able to get an equivalent (or close)
    rational version from this function.

    This does a number of simple normalizations to the given string, based
    on observation of versions currently in use on PyPI. Given a dump of
    those version during PyCon 2009, 4287 of them:
    - 2312 (53.93%) match NormalizedVersion without change
      with the automatic suggestion
    - 3474 (81.04%) match when using this suggestion method

    @param s {str} An irrational version string.
    @returns A rational version string, or None, if couldn't determine one.
    ))z-alphar�)z-betar�)r�r�)r�r�)r�rK)z-finalr�)z-prerK)z-releaser�)z.releaser�)z-stabler�)r�r{)r�r{)� r�)z.finalr�)r�r�zpre$�pre0zdev$�dev0z([abc]|rc)[\-\.](\d+)$z\1\2z[\-\.](dev)[\-\.]?r?(\d+)$z.\1\2z[.~]?([abc])\.?r�rJrNz\b0+(\d+)(?!\d)z(\d+[abc])$z\g<1>0z\.?(dev-r|dev\.r)\.?(\d+)$z.dev\2z-(a|b|c)(\d+)$z[\.\-](dev|devel)$z.dev0z(?![\.\-])dev$z(final|stable)$r�z\.?(r|-|-r)\.?(\d+)$z.post\2z\.?(dev|git|bzr)\.?(\d+)$z\.?(pre|preview|-c)(\d+)$zc\g<2>zp(\d+)$z.post\1)r�rr_�replace�rer�r�)r�rs�origr�rrr�_suggest_normalized_version�sD�
	
��r�z([a-z]+|\d+|[\.-])rKzfinal-�@)r��previewr�r�r�r�r{cCs�dd�}g}||�D]8}|�d�r=|dkr)|r)|ddkr)|��|r)|ddks|r=|ddkr=|��|r=|ddks1|�|�q
t|�S)NcSstg}t�|���D])}t�||�}|r2d|dd�kr!dkr)nn|�d�}nd|}|�|�q	|�d�|S)N�0r�9��*�*final)�
_VERSION_PARTr�r_�_VERSION_REPLACErj�zfillrc)rrrrLrrr�	get_partsCs 
�
z_legacy_key.<locals>.get_partsr�r�r|z*final-�00000000)r��poprcr)rr�rrrLrrr�_legacy_keyBs

��r�c@� eZdZdd�Zedd��ZdS)rcCrZr*)r�r#rrrr]r$zLegacyVersion.parsecCs:d}|jD]}t|t�r|�d�r|dkrd}|Sq|S)NFr�r�T)rrrr�)rrrr�rrrrF`s
�zLegacyVersion.is_prereleaseN�rrrrrGrFrrrrr\�rc@s4eZdZeZeej�Zded<e�	d�Z
dd�ZdS)r	r�rXz^(\d+(\.\d+)*)cCs`||krdS|j�t|��}|st�d||�dS|��d}d|vr+|�dd�d}t||�S)NFzACannot compute compatible match for version %s  and constraint %sTrr{r)�
numeric_rerqr��logger�warningr��rsplitr�)rrlrnrhr�rrrrr�ss�
zLegacyMatcher._match_compatibleN)rrrrr\�dictrHrir��compiler�r�rrrrr	ks

r	zN^(\d+)\.(\d+)\.(\d+)(-[a-z0-9]+(\.[a-z0-9-]+)*)?(\+[a-z0-9]+(\.[a-z0-9-]+)*)?$cCs
t�|�Sr*)�
_SEMVER_RErq)rrrrr��r<r�c	Csndd�}t|�}|st|��|��}dd�|dd�D�\}}}||dd�||dd�}}|||f||fS)	NcSs:|dur	|f}|S|dd��d�}tdd�|D��}|S)Nrr{cSs"g|]
}|��r
|�d�n|�qS)r�)r�r�)rxrLrrrr��s"z5_semantic_key.<locals>.make_tuple.<locals>.<listcomp>)r�r)r�absentrrrrrr�
make_tuple�s�z!_semantic_key.<locals>.make_tuplecSr�rrur�rrrr��r�z!_semantic_key.<locals>.<listcomp>r��|�r�)r�rr�)	rr�r�r��major�minor�patchr��buildrrr�
_semantic_key�s
r�c@r�)r
cCrZr*)r�r#rrrr�r$zSemanticVersion.parsecCs|jdddkS)Nrrr�)rr:rrrrF�szSemanticVersion.is_prereleaseNr�rrrrr
�r�r
c@seZdZeZdS)rN)rrrr
r\rrrrr�src@s6eZdZddd�Zdd�Zdd�Zdd	�Zd
d�ZdS)
�
VersionSchemeNcCs||_||_||_dSr*)r`�matcher�	suggester)rr`r�r�rrrr�s
zVersionScheme.__init__cCs0z|j�|�d}W|Styd}Y|Sw�NTF)r�r\r�rrrrrrr�is_valid_version�s��zVersionScheme.is_valid_versioncCs.z
|�|�d}W|Styd}Y|Swr�)r�rr�rrr�is_valid_matcher�s
��zVersionScheme.is_valid_matchercCs$|�d�r|dd�}|�d|�S)z:
        Used for processing some metadata fields
        �,Nr|zdummy_name (%s))rbr�r#rrr�is_valid_constraint_list�s
z&VersionScheme.is_valid_constraint_listcCs |jdur	d}|S|�|�}|Sr*)r�r�rrr�suggest�s


�zVersionScheme.suggestr*)rrrrr�r�rrrrrrr��s
	r�cCs|Sr*rr#rrrrM�srM)�
normalized�legacy�semanticr�defaultcCs|tvr
td|��t|S)Nzunknown scheme name: %r)�_SCHEMESr])r^rrrr
�sr
)*r�loggingr��compatr�utilr�__all__�	getLoggerrr�r]r�objectrrHr�r�r�r�rr�rr�r�r�r�r��Ir�r�r�rr	r�r�r�r
rr�rr
rrrr�<module>s�
1
d=$W���
.r��	'���

https://t.me/RX1948 - 2025