i=e4 d Z ddlZddlZddlmZ ddlmZmZmZm Z m
Z
mZmZm
Z
mZmZmZmZ ddlmZmZmZmZmZ edeeef ee ef Zedegef Z edd Zd
edefdZd
Z G d d ZeZ dS )z6Version handling by a semver compatible version class. N)wraps)AnyDictIterableOptionalSupportsIntTupleUnioncastCallable
CollectionTypeTypeVar )VersionTupleVersionDictVersionIteratorStringVersionPartVersionT)boundoperatorreturnc ^ t dddt dt f fd }|S )z0Wrap a Version binary op method in a type-check.selfr otherr c t t t t gt j R }t
|| st S | | S N)r dicttuplelistr __args__
isinstanceNotImplemented)r r comparable_typesr s `/builddir/build/BUILD/cloudlinux-venv-1.0.10/venv/lib/python3.11/site-packages/semver/version.pywrapperz_comparator..wrapper' sW
_
%!122 "!!xe$$$ )r
Comparablebool)r r( s ` r' _comparatorr, $ sO 8__
%i
%
%t
%
%
%
%
% _
% Nr) c | |k | |k z
S )z6Return negative if ab. abs r' _cmpr2 7 s
Ea!er) c t e Zd ZdZdZ ed eD Z ej d Z dZ
ej e
dd ej Z
ej e
dd ej Z dFdeded
edeeeef deeeef f
dZed Zedefd Zej d Zedefd Zej d Zedefd Zej d Zedee fd Zej d Zedee fd Zej d ZdefdZ de!fdZ"de#fdZ$e%d edefd! Z&dGd"Z'dGd#Z(dGd$Z)dHd&ee dd fd'Z*dId&ee dd fd(Z+d)e,defd*Z-dHd+ed,edd fd-Z.e/d)e,de0fd. Z1e/d)e,de0fd/ Z2e/d)e,de0fd0 Z3e/d)e,de0fd1 Z4e/d)e,de0fd2 Z5e/d)e,de0fd3 Z6d4eee7f deeee e8eeef d5f f fd6Z9defd7Z:defd8Z;defd9Ze dJd>e?e@ d?ed@e0de@fdA ZAdBeeee f dd fdCZBed?ede0fdD ZCd)d de0fdEZDd
S )Kr a
A semver compatible version class.
See specification at https://semver.org.
:param major: version when you make incompatible API changes.
:param minor: version when you add functionality in a backwards-compatible manner.
:param patch: version when you make backwards-compatible bug fixes.
:param prerelease: an optional prerelease string
:param build: an optional build string
)_major_minor_patch_prerelease_buildc " g | ]}|d d
S )r Nr. ).0items r'
zVersion.L s 22248222r) z(?:[^\d]*(\d+)[^\d]*)+a3
^
(?P0|[1-9]\d*)
(?:
\.
(?P0|[1-9]\d*)
(?:
\.
(?P0|[1-9]\d*)
){opt_patch}
){opt_minor}
(?:-(?P
(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)
(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*
))?
(?:\+(?P
[0-9a-zA-Z-]+
(?:\.[0-9a-zA-Z-]+)*
))?
$
) opt_patch opt_minor?r Nmajorminorpatch
prereleasebuildc t | t | t | d}| D ]-\ }}|dk r"t d | .|d | _ |d | _ |d | _ |d nt | | _ |d nt | | _ d S )N)rA rB rC r z1{!r} is negative. A version can only be positive.rA rB rC )
intitems
ValueErrorformatr4 r5 r6 strr7 r8 ) r rA rB rC rD rE
version_partsnamevalues r' __init__zVersion.__init__q s #&e**s5zzCPUJJWW
(..00 KD%qyy GNNtTT
$G,#G,#G,#-#5443z??#mddUr) c H d }|pd|pd}}| d | d }}d |D }d |D }t || D ]\ }} ||| }|dk r|c S t t | t | S )Nc t | t r%t |t rt | | S t | t rdS t |t rdS t | | S )Nr )r$ rG r2 r/ s r' cmp_prerelease_tagz,Version._nat_cmp..cmp_prerelease_tag so !S!!
"jC&8&8
"Aqzz!As##
"rAs##
"qAqzz!r) r= .c Z g | ](}t j d | rt | n|)S z^\d+$rematchrG r: xs r' r<