o �J�hF?� @shdZddlmZddlZddlZddlmZmZmZm Z m Z m Z ddl m Z mZmZmZgd�Ze e eefdfZe eee eeffZe ee e e eefe ee eefffdffZe ee edfeeeefZeeegefZGd d �d e�Zd-dd�ZGdd�de�ZGdd�d�ZdZeZ Gdd�de�Z!d.dd�Z"e�#d�Z$d/d!d"�Z%d0d+d,�Z&dS)1zB .. testsetup:: from packaging.version import parse, Version �)� annotationsN)�Any�Callable� NamedTuple� SupportsInt�Tuple�Union�)�Infinity� InfinityType�NegativeInfinity�NegativeInfinityType)�VERSION_PATTERN�parse�Version�InvalidVersion.c@s>eZdZUded<ded<ded<ded<ded<d ed <d S) �_Version�int�epoch�tuple[int, ...]�release�tuple[str, int] | None�dev�pre�post�LocalType | None�localN)�__name__� __module__� __qualname__�__annotations__�r!r!�OC:\pinokio\api\whisper-webui.git\app\env\lib\site-packages\packaging\version.pyr&s  r�version�str�returnrcCst|�S)z�Parse the given version string. >>> parse('1.0.dev1') <Version('1.0.dev1')> :param version: The version string to parse. :raises InvalidVersion: When the version string is not a valid version. )r)r#r!r!r"r/� rc@seZdZdZdS)rz�Raised when a version string is not a valid version. >>> Version("invalid") Traceback (most recent call last): ... packaging.version.InvalidVersion: Invalid version: 'invalid' N)rrr�__doc__r!r!r!r"r;src@s\eZdZUded<ddd�Zdd d �Zdd d �Zddd�Zddd�Zddd�Z ddd�Z dS)� _BaseVersionztuple[Any, ...]�_keyr%rcCs t|j�S�N)�hashr)��selfr!r!r"�__hash__Hs z_BaseVersion.__hash__�other�boolcCst|t�stS|j|jkSr*�� isinstancer(�NotImplementedr)�r-r/r!r!r"�__lt__N�  z_BaseVersion.__lt__cCst|t�stS|j|jkSr*r1r4r!r!r"�__le__Tr6z_BaseVersion.__le__�objectcCst|t�stS|j|jkSr*r1r4r!r!r"�__eq__Zr6z_BaseVersion.__eq__cCst|t�stS|j|jkSr*r1r4r!r!r"�__ge__`r6z_BaseVersion.__ge__cCst|t�stS|j|jkSr*r1r4r!r!r"�__gt__fr6z_BaseVersion.__gt__cCst|t�stS|j|jkSr*r1r4r!r!r"�__ne__lr6z_BaseVersion.__ne__N�r%r)r/r(r%r0)r/r8r%r0) rrrr r.r5r7r9r:r;r<r!r!r!r"r(Es       r(a� v? (?: (?:(?P<epoch>[0-9]+)!)? # epoch (?P<release>[0-9]+(?:\.[0-9]+)*) # release segment (?P<pre> # pre-release [-_\.]? (?P<pre_l>alpha|a|beta|b|preview|pre|c|rc) [-_\.]? (?P<pre_n>[0-9]+)? )? (?P<post> # post release (?:-(?P<post_n1>[0-9]+)) | (?: [-_\.]? (?P<post_l>post|rev|r) [-_\.]? (?P<post_n2>[0-9]+)? ) )? (?P<dev> # dev release [-_\.]? (?P<dev_l>dev) [-_\.]? (?P<dev_n>[0-9]+)? )? ) (?:\+(?P<local>[a-z0-9]+(?:[-_\.][a-z0-9]+)*))? # local version c@seZdZUdZe�dedejejB�Z de d<d3d d �Z d4d d �Z d4dd�Z ed5dd��Zed6dd��Zed7dd��Zed8dd��Zed8dd��Zed9dd ��Zed4d!d"��Zed4d#d$��Zed:d&d'��Zed:d(d)��Zed:d*d+��Zed5d,d-��Zed5d.d/��Zed5d0d1��Zd2S);ra�This class abstracts handling of a project's versions. A :class:`Version` instance is comparison aware and can be compared and sorted using the standard Python interfaces. >>> v1 = Version("1.0a5") >>> v2 = Version("1.0") >>> v1 <Version('1.0a5')> >>> v2 <Version('1.0')> >>> v1 < v2 True >>> v1 == v2 False >>> v1 > v2 False >>> v1 >= v2 False >>> v1 <= v2 True z^\s*z\s*$�CmpKeyr)r#r$r%�Nonec Cs�|j�|�}|std|�d���t|�d�rt|�d��ndtdd�|�d��d�D��t|�d �|�d ��t|�d �|�d �pD|�d ��t|�d�|�d��t |�d��d�|_ t |j j |j j |j j|j j|j j|j j�|_dS)aCInitialize a Version object. :param version: The string representation of a version which will be parsed and normalized before use. :raises InvalidVersion: If the ``version`` does not conform to PEP 440 in any way then this exception will be raised. zInvalid version: '�'rrcs��|]}t|�VqdSr*)r��.0�ir!r!r"� <genexpr>���z#Version.__init__.<locals>.<genexpr>r�.Zpre_lZpre_nZpost_lZpost_n1Zpost_n2Zdev_lZdev_nr)rrrrrrN)�_regex�searchrr�groupr�tuple�split�_parse_letter_version�_parse_local_version�_version�_cmpkeyrrrrrrr))r-r#�matchr!r!r"�__init__�s* � �  �zVersion.__init__cCs d|�d�S)z�A representation of the Version that shows all internal state. >>> Version('1.0.0') <Version('1.0.0')> z <Version('z')>r!r,r!r!r"�__repr__�s zVersion.__repr__cCs�g}|jdkr|�|j�d��|�d�dd�|jD���|jdur1|�d�dd�|jD���|jdur?|�d |j���|jdurM|�d |j���|jdur[|�d |j���d�|�S) zA string representation of the version that can be rounded-tripped. >>> str(Version("1.0a5")) '1.0a5' r�!rGcsrAr*�r$�rC�xr!r!r"rE�rFz"Version.__str__.<locals>.<genexpr>N�csrAr*rUrVr!r!r"rE�rFz.postz.dev�+)r�append�joinrrrrr�r-�partsr!r!r"�__str__�s      zVersion.__str__rcC�|jjS)zThe epoch of the version. >>> Version("2.0.0").epoch 0 >>> Version("1!2.0.0").epoch 1 )rOrr,r!r!r"r r&z Version.epochrcCr_)adThe components of the "release" segment of the version. >>> Version("1.2.3").release (1, 2, 3) >>> Version("2.0.0").release (2, 0, 0) >>> Version("1!2.0.0.post0").release (2, 0, 0) Includes trailing zeroes but not the epoch or any pre-release / development / post-release suffixes. )rOrr,r!r!r"rszVersion.releasercCr_)aThe pre-release segment of the version. >>> print(Version("1.2.3").pre) None >>> Version("1.2.3a1").pre ('a', 1) >>> Version("1.2.3b1").pre ('b', 1) >>> Version("1.2.3rc1").pre ('rc', 1) )rOrr,r!r!r"r&s z Version.pre� int | NonecC�|jjr |jjdSdS)z�The post-release number of the version. >>> print(Version("1.2.3").post) None >>> Version("1.2.3.post1").post 1 r N)rOrr,r!r!r"r5� z Version.postcCra)z�The development number of the version. >>> print(Version("1.2.3").dev) None >>> Version("1.2.3.dev1").dev 1 r N)rOrr,r!r!r"r@rbz Version.dev� str | NonecCs$|jjrd�dd�|jjD��SdS)z�The local version segment of the version. >>> print(Version("1.2.3").local) None >>> Version("1.2.3+abc").local 'abc' rGcsrAr*rUrVr!r!r"rEUrFz Version.local.<locals>.<genexpr>N)rOrr[r,r!r!r"rKs z Version.localcCst|��dd�dS)z�The public portion of the version. >>> Version("1.2.3").public '1.2.3' >>> Version("1.2.3+abc").public '1.2.3' >>> Version("1.2.3+abc.dev1").public '1.2.3' rYr r)r$rLr,r!r!r"�publicYs zVersion.publiccCsFg}|jdkr|�|j�d��|�d�dd�|jD���d�|�S)a]The "base version" of the version. >>> Version("1.2.3").base_version '1.2.3' >>> Version("1.2.3+abc").base_version '1.2.3' >>> Version("1!1.2.3+abc.dev1").base_version '1!1.2.3' The "base version" is the public version of the project without any pre or post release markers. rrTrGcsrAr*rUrVr!r!r"rE{rFz'Version.base_version.<locals>.<genexpr>rX)rrZr[rr\r!r!r"� base_versionfs   zVersion.base_versionr0cCs|jdup |jduS)aTWhether this version is a pre-release. >>> Version("1.2.3").is_prerelease False >>> Version("1.2.3a1").is_prerelease True >>> Version("1.2.3b1").is_prerelease True >>> Version("1.2.3rc1").is_prerelease True >>> Version("1.2.3dev1").is_prerelease True N)rrr,r!r!r"� is_prereleaseszVersion.is_prereleasecC� |jduS)z�Whether this version is a post-release. >>> Version("1.2.3").is_postrelease False >>> Version("1.2.3.post1").is_postrelease True N)rr,r!r!r"�is_postrelease�� zVersion.is_postreleasecCrg)z�Whether this version is a development release. >>> Version("1.2.3").is_devrelease False >>> Version("1.2.3.dev1").is_devrelease True N)rr,r!r!r"� is_devrelease�rizVersion.is_devreleasecCst|j�dkr |jdSdS)zqThe first item of :attr:`release` or ``0`` if unavailable. >>> Version("1.2.3").major 1 r r��lenrr,r!r!r"�major�sz Version.majorcC�t|j�dkr |jdSdS)z�The second item of :attr:`release` or ``0`` if unavailable. >>> Version("1.2.3").minor 2 >>> Version("1").minor 0 �r rrkr,r!r!r"�minor�� z Version.minorcCrn)z�The third item of :attr:`release` or ``0`` if unavailable. >>> Version("1.2.3").micro 3 >>> Version("1").micro 0 �rorrkr,r!r!r"�micro�rqz Version.microN)r#r$r%r?)r%r$r=)r%r)r%r)r%r`)r%rc)r%r0)rrrr'�re�compiler�VERBOSE� IGNORECASErHr rRrSr^�propertyrrrrrrrdrerfrhrjrmrprsr!r!r!r"r�sF   & !              �letterrc�number� str | bytes | SupportsInt | NonercCsv|r-|durd}|��}|dkrd}n|dkrd}n |dvr!d}n|dvr'd }|t|�fS|s9|r9d }|t|�fSdS) Nr�alpha�a�beta�b)�crZpreview�rc)Zrev�rr)�lowerr)ryrzr!r!r"rM�s"  rMz[\._-]rrcCs$|durtdd�t�|�D��SdS)zR Takes a string like abc.1.twelve and turns it into ("abc", 1, "twelve"). Ncss(�|]}|��s |��nt|�VqdSr*)�isdigitr�r)rC�partr!r!r"rE�s �� �z'_parse_local_version.<locals>.<genexpr>)rK�_local_version_separatorsrL)rr!r!r"rN�s �rNrrrrrrrr>c Cs�tttt�dd�t|�����}|dur|dur|durt}n |dur&t}n|}|dur/t}n|}|dur8t} n|} |durAt} n tdd�|D��} ||||| | fS)NcSs|dkS)Nrr!)rWr!r!r"�<lambda>sz_cmpkey.<locals>.<lambda>css*�|]}t|t�r |dfnt|fVqdS)rXN)r2rr rBr!r!r"rE/s� �z_cmpkey.<locals>.<genexpr>)rK�reversed�list� itertools� dropwhiler r ) rrrrrr�_releaseZ_preZ_postZ_dev�_localr!r!r"rP�s( � �rP)r#r$r%r)ryrcrzr{r%r)rrcr%r)rrrrrrrrrrrrr%r>)'r'� __future__rr�rt�typingrrrrrrZ _structuresr r r r �__all__rr$Z LocalTypeZCmpPrePostDevTypeZ CmpLocalTyper>r0ZVersionComparisonMethodrr� ValueErrorrr(Z_VERSION_PATTERNrrrMrur�rNrPr!r!r!r"�<module>sL  *�� ��   0  ' # 
Memory