
    Mhn              	         d Z ddlmZ ddlmZ ddlZ ej        d          Zdddd	ddd	dd
Zddddddddd
Z	ddddZ
 G d d edg d                    ZddZ edddd          Ze                                ZdS )zMeta related things.    )annotations)
namedtupleNz(?x)
    (?P<major>\d+)(?:\.(?P<minor>\d+))?(?:\.(?P<micro>\d+))?
    (?:(?P<type>a|b|rc)(?P<pre>\d+))?
    (?:\.post(?P<post>\d+))?
    (?:\.dev(?P<dev>\d+))?
     abrc).devz
.dev-alphaz	.dev-beta.dev-candidatealphabeta	candidatefinalz2 - Pre-Alphaz	3 - Alphaz4 - Betaz5 - Production/Stabler   r   r   )r   r   r   c                  R     e Zd ZdZ	 	 dd fdZddZddZddZddZddZ	 xZ
S )Versional  
    Get the version (PEP 440).

    A biased approach to the PEP 440 semantic version.

    Provides a tuple structure which is sorted for comparisons `v1 > v2` etc.
      (major, minor, micro, release type, pre-release build, post-release build, development release build)
    Release types are named in is such a way they are comparable with ease.
    Accessors to check if a development, pre-release, or post-release build. Also provides accessor to get
    development status for setup files.

    How it works (currently):

    - You must specify a release type as either `final`, `alpha`, `beta`, or `candidate`.
    - To define a development release, you can use either `.dev`, `.dev-alpha`, `.dev-beta`, or `.dev-candidate`.
      The dot is used to ensure all development specifiers are sorted before `alpha`.
      You can specify a `dev` number for development builds, but do not have to as implicit development releases
      are allowed.
    - You must specify a `pre` value greater than zero if using a prerelease as this project (not PEP 440) does not
      allow implicit prereleases.
    - You can optionally set `post` to a value greater than zero to make the build a post release. While post releases
      are technically allowed in prereleases, it is strongly discouraged, so we are rejecting them. It should be
      noted that we do not allow `post0` even though PEP 440 does not restrict this. This project specifically
      does not allow implicit post releases.
    - It should be noted that we do not support epochs `1!` or local versions `+some-custom.version-1`.

    Acceptable version releases:

    ```
    Version(1, 0, 0, "final")                    1.0
    Version(1, 2, 0, "final")                    1.2
    Version(1, 2, 3, "final")                    1.2.3
    Version(1, 2, 0, ".dev-alpha", pre=4)        1.2a4
    Version(1, 2, 0, ".dev-beta", pre=4)         1.2b4
    Version(1, 2, 0, ".dev-candidate", pre=4)    1.2rc4
    Version(1, 2, 0, "final", post=1)            1.2.post1
    Version(1, 2, 3, ".dev")                     1.2.3.dev0
    Version(1, 2, 3, ".dev", dev=1)              1.2.3.dev1
    ```

    r   r   majorintminormicroreleasestrprepostdevreturnc           
     .   |||||fD ],}t          |t                    r|dk    st          d          -|t          vrt          d| d          d|cxk     rdk     r;n n8|dk    rt          d          |rt          d          |rt          d	          nU|d
k     r-|dk    r|dk    rt          d          |rt          d	          n"|rt          d          |rt          d          t	                                          | |||||||          S )zValidate version info.r   z6All version parts except 'release' should be integers.'z' is not a valid release type.r
   r   z"Implicit pre-releases not allowed.z%Version is not a development release.z0Post-releases are not allowed with pre-releases.r   r	   z!Implicit pre-release not allowed.zVersion is not a pre-release.)
isinstancer   
ValueErrorREL_MAPsuper__new__)
clsr   r   r   r   r   r   r   value	__class__s
            R/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/soupsieve/__meta__.pyr!   zVersion.__new__S   s    UE35 	[ 	[Euc** [uzz !YZZZ 0: '!!HHHHIII g/////////axx !EFFF U !HIII U !STTTU wC1HH !DEEE U !STTTU
  J !@AAA J !HIIIwwsE5%#tSQQQ    boolc                2    t          | j        dk              S )zIs prerelease.r   )r'   r   selfs    r%   _is_prezVersion._is_pre{   s     DHqL!!!r&   c                2    t          | j        dk               S )zIs development.r   )r'   r   r)   s    r%   _is_devzVersion._is_dev   s     DL7*+++r&   c                2    t          | j        dk              S )zIs post.r   )r'   r   r)   s    r%   _is_postzVersion._is_post   s     DIM"""r&   c                &    t           | j                 S )zGet development status string.)
DEV_STATUSr   r)   s    r%   _get_dev_statuszVersion._get_dev_status   s     $,''r&   c                Z   | j         dk    r| j         d| j         }n| j         d| j         d| j          }|                                 r|t          | j                  | j         z  }|                                 r|d| j         z  }| 	                                r|d| j
         z  }|S )z Get the canonical output string.r   .z.postr	   )r   r   r   r+   r   r   r   r/   r   r-   r   )r*   vers     r%   _get_canonicalzVersion._get_canonical   s     :??Z..$*..CCZ;;$*;;tz;;C<<>> 	8gdl+7TX777C==?? 	'&49&&&C<<>> 	%$$($$$C
r&   )r   r   r   r   )r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   )r   r'   )r   r   )__name__
__module____qualname____doc__r!   r+   r-   r/   r2   r6   __classcell__)r$   s   @r%   r   r   (   s        ( (X <C01&R &R &R &R &R &R &RP" " " "
, , , ,
# # # #
( ( ( (
       r&   r   )r   r   r   r   r   r   r   r5   r   r   c           	        t                               |           }|t          d|  d          t          |                    d                    }|                    d          r"t          |                    d                    nd}|                    d          r"t          |                    d                    nd}|                    d          rCt
          |                    d                   }t          |                    d	                    }nd
}d}|                    d          r|                    d          nd}|                    d          r,t          |                    d                    }|rd|z   nd}nd}|                    d          r"t          |                    d                    nd}t          |||||||          S )z.Parse version into a comparable Version tuple.Nr   z' is not a valid versionr   r   r   r   typer   r   r   z.dev-r	   r   )RE_VERmatchr   r   groupPRE_REL_MAPr   )	r5   mr   r   r   r   r   r   r   s	            r%   parse_versionrC      s    	SAy:S:::;;;   !!E%&WWW%5%5<C  !!!1E%&WWW%5%5<C  !!!1E 	wwv aggfoo.!''%..!! GGENN
1!''%...Cwwu~~ !''%..!!'*6'G## $%776??93qwwvD5%dC@@@r&         r   )r5   r   r   r   )r:   
__future__r   collectionsr   recompiler>   r   r1   rA   r   rC   __version_info__r6   __version__ r&   r%   <module>rM      s9     " " " " " " " " " " " " 					
 
 	 	 ! %$	 	
 &<<v v v v vjj$`$`$`aa v v vr A  A  A  AF 71aG,, --//r&   