
    'WhY4                        d Z ddlZddlZddlZddlmZmZmZmZm	Z	 g dZ
 G d d      Z e       Z G d d      Z e       Ze	eef   Ze	eeeef   f   Ze	eeef   Ze	eee	eeeef   eeef   f   d	f   f   Zeeeed	f   eeeef   Zeeeed	f   f   Zee	eef   e	eef   gef   Z ej2                  d
g d      Z G d de      Z G d d      ZdZ G d de      Zdede	ee ef   deeeef      fdZ! ejD                  d      Z#dedee   fdZ$dedeed	f   deeeef      deeeef      deeeef      deee      defdZ%y) a  Extract reference documentation from the pypa/packaging source tree.

In the process of copying, some unused methods / classes were removed.
These include:

- parse()
- anything involving LegacyVersion

This software is made available under the terms of *either* of the licenses
found in LICENSE.APACHE or LICENSE.BSD. Contributions to this software is made
under the terms of *both* these licenses.

Vendored from:
- https://github.com/pypa/packaging/
- commit ba07d8287b4554754ac7178d177033ea3f75d489 (09/09/2021)
    N)CallableOptionalSupportsIntTupleUnion)VersionInvalidVersionVERSION_PATTERNc                       e Zd ZdefdZdefdZdedefdZ	dedefdZ
dedefdZdedefdZdedefd	Zdedefd
ZdeddfdZy)InfinityTypereturnc                      y)NInfinity selfs    R/var/www/html/jupyter_env/lib/python3.12/site-packages/seaborn/external/version.py__repr__zInfinityType.__repr__#   s        c                 *    t        t        |             S Nhashreprr   s    r   __hash__zInfinityType.__hash__&       DJr   otherc                      yNFr   r   r   s     r   __lt__zInfinityType.__lt__)       r   c                      yr   r   r    s     r   __le__zInfinityType.__le__,   r"   r   c                 .    t        || j                        S r   
isinstance	__class__r    s     r   __eq__zInfinityType.__eq__/       %00r   c                 0    t        || j                         S r   r&   r    s     r   __ne__zInfinityType.__ne__2       eT^^444r   c                      yNTr   r    s     r   __gt__zInfinityType.__gt__5       r   c                      yr/   r   r    s     r   __ge__zInfinityType.__ge__8   r1   r   r   NegativeInfinityTypec                     t         S r   )NegativeInfinityr   s    r   __neg__zInfinityType.__neg__;   s    r   N)__name__
__module____qualname__strr   intr   objectboolr!   r$   r)   r,   r0   r3   r7   r   r   r   r   r   "   s    #  #  F t F t 1F 1t 15F 5t 5F t F t  f  !7  r   r   c                       e Zd ZdefdZdefdZdedefdZ	dedefdZ
dedefdZdedefdZdedefd	Zdedefd
ZdedefdZy)r4   r   c                      y)Nz	-Infinityr   r   s    r   r   zNegativeInfinityType.__repr__C   s    r   c                 *    t        t        |             S r   r   r   s    r   r   zNegativeInfinityType.__hash__F   r   r   r   c                      yr/   r   r    s     r   r!   zNegativeInfinityType.__lt__I   r1   r   c                      yr/   r   r    s     r   r$   zNegativeInfinityType.__le__L   r1   r   c                 .    t        || j                        S r   r&   r    s     r   r)   zNegativeInfinityType.__eq__O   r*   r   c                 0    t        || j                         S r   r&   r    s     r   r,   zNegativeInfinityType.__ne__R   r-   r   c                      yr   r   r    s     r   r0   zNegativeInfinityType.__gt__U   r"   r   c                      yr   r   r    s     r   r3   zNegativeInfinityType.__ge__X   r"   r   r   c                     t         S r   )r   r   s    r   r7   zNegativeInfinityType.__neg__[   s    r   N)r8   r9   r:   r;   r   r<   r   r=   r>   r!   r$   r)   r,   r0   r3   r   r7   r   r   r   r4   r4   B   s    #  #  F t F t 1F 1t 15F 5t 5F t F t f  r   r4   ._Version)epochreleasedevprepostlocalc                       e Zd ZdZy)r	   zF
    An invalid version was found, users should refer to PEP 440.
    N)r8   r9   r:   __doc__r   r   r   r	   r	      s    r   r	   c                       e Zd ZU eeef   ed<   defdZdd de	fdZ
dd de	fdZdede	fdZdd de	fdZdd de	fd	Zdede	fd
Zy)_BaseVersion_keyr   c                 ,    t        | j                        S r   )r   rT   r   s    r   r   z_BaseVersion.__hash__   s    DIIr   r   c                 `    t        |t              st        S | j                  |j                  k  S r   r'   rS   NotImplementedrT   r    s     r   r!   z_BaseVersion.__lt__   %    %.!!yy5::%%r   c                 `    t        |t              st        S | j                  |j                  k  S r   rW   r    s     r   r$   z_BaseVersion.__le__   %    %.!!yyEJJ&&r   c                 `    t        |t              st        S | j                  |j                  k(  S r   rW   r    s     r   r)   z_BaseVersion.__eq__   r[   r   c                 `    t        |t              st        S | j                  |j                  k\  S r   rW   r    s     r   r3   z_BaseVersion.__ge__   r[   r   c                 `    t        |t              st        S | j                  |j                  kD  S r   rW   r    s     r   r0   z_BaseVersion.__gt__   rY   r   c                 `    t        |t              st        S | j                  |j                  k7  S r   rW   r    s     r   r,   z_BaseVersion.__ne__   r[   r   N)r8   r9   r:   r   CmpKeyLegacyCmpKey__annotations__r<   r   r>   r!   r$   r=   r)   r3   r0   r,   r   r   r   rS   rS      s    
$
%%# &N &t &'N 't ''F 't ''N 't '&N &t &'F 't 'r   rS   a  
    v?
    (?:
        (?:(?P<epoch>[0-9]+)!)?                           # epoch
        (?P<release>[0-9]+(?:\.[0-9]+)*)                  # release segment
        (?P<pre>                                          # pre-release
            [-_\.]?
            (?P<pre_l>(a|b|c|rc|alpha|beta|pre|preview))
            [-_\.]?
            (?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                      e Zd Z ej                  dez   dz   ej                  ej                  z        Zde	ddfdZ
de	fdZde	fdZedefd	       Zedeed
f   fd       Zedeee	ef      fd       Zedee   fd       Zedee   fd       Zedee	   fd       Zede	fd       Zede	fd       Zedefd       Zedefd       Zedefd       Zedefd       Zedefd       Zedefd       Zy)r   z^\s*z\s*$versionr   Nc                    | j                   j                  |      }|st        d| d      t        |j	                  d      rt        |j	                  d            ndt        d |j	                  d      j                  d      D              t        |j	                  d      |j	                  d	            t        |j	                  d
      |j	                  d      xs |j	                  d            t        |j	                  d      |j	                  d            t        |j	                  d                  | _
        t        | j                  j                  | j                  j                  | j                  j                  | j                  j                  | j                  j                   | j                  j"                        | _        y )NzInvalid version: ''rJ   r   c              3   2   K   | ]  }t        |        y wr   )r<   .0is     r   	<genexpr>z#Version.__init__.<locals>.<genexpr>   s     LQ#a&L   rK   .pre_lpre_npost_lpost_n1post_n2dev_ldev_nrO   )rJ   rK   rM   rN   rL   rO   )_regexsearchr	   rI   groupr<   tuplesplit_parse_letter_version_parse_local_version_version_cmpkeyrJ   rK   rM   rN   rL   rO   rT   )r   rd   matchs      r   __init__zVersion.__init__   sR    ""7+ #5gYa!@AA !/4{{7/C#ekk'*+L%++i*@*F*Fs*KLL%ekk'&:EKK<PQ&H%u{{9'='WYAW &ekk'&:EKK<PQ&u{{7';<	
 MMMM!!MMMMMMMM
	r   c                     d|  dS )Nz
<Version('z')>r   r   s    r   r   zVersion.__repr__   s    D6%%r   c                 Z   g }| j                   dk7  r|j                  | j                    d       |j                  dj                  d | j                  D                     | j                  1|j                  dj                  d | j                  D                     | j
                  |j                  d| j
                          | j                  |j                  d| j                          | j                  |j                  d	| j                          dj                  |      S )
Nr   !rm   c              3   2   K   | ]  }t        |        y wr   r;   ri   xs     r   rk   z"Version.__str__.<locals>.<genexpr>       ;c!f;rl    c              3   2   K   | ]  }t        |        y wr   r   r   s     r   rk   z"Version.__str__.<locals>.<genexpr>  s      :AQ :rl   z.postz.dev+)rJ   appendjoinrK   rM   rN   rL   rO   r   partss     r   __str__zVersion.__str__   s     ::?LLDJJ<q)* 	SXX;dll;;< 88LL : ::; 99 LL5,- 88LL4z*+ ::!LL1TZZL)*wwu~r   c                 2    | j                   j                  }|S r   )r|   rJ   )r   _epochs     r   rJ   zVersion.epoch  s    mm))r   .c                 2    | j                   j                  }|S r   )r|   rK   )r   _releases     r   rK   zVersion.release  s    $(MM$9$9r   c                 2    | j                   j                  }|S r   )r|   rM   )r   _pres     r   rM   zVersion.pre   s    *.--*;*;r   c                 d    | j                   j                  r| j                   j                  d   S d S N   )r|   rN   r   s    r   rN   zVersion.post%  s(    (,(:(:t}}!!!$DDr   c                 d    | j                   j                  r| j                   j                  d   S d S r   )r|   rL   r   s    r   rL   zVersion.dev)  s(    '+}}'8'8t}}  #BdBr   c                     | j                   j                  r,dj                  d | j                   j                  D              S y )Nrm   c              3   2   K   | ]  }t        |        y wr   r   r   s     r   rk   z Version.local.<locals>.<genexpr>0  s     @qCF@rl   )r|   rO   r   r   s    r   rO   zVersion.local-  s1    ==88@DMM,?,?@@@r   c                 >    t        |       j                  dd      d   S )Nr   r   r   )r;   ry   r   s    r   publiczVersion.public4  s    4ysA&q))r   c                     g }| j                   dk7  r|j                  | j                    d       |j                  dj                  d | j                  D                     dj                  |      S )Nr   r   rm   c              3   2   K   | ]  }t        |        y wr   r   r   s     r   rk   z'Version.base_version.<locals>.<genexpr>A  r   rl   r   )rJ   r   r   rK   r   s     r   base_versionzVersion.base_version8  sZ     ::?LLDJJ<q)* 	SXX;dll;;<wwu~r   c                 >    | j                   d uxs | j                  d uS r   )rL   rM   r   s    r   is_prereleasezVersion.is_prereleaseE  s    xxt#;txxt';;r   c                     | j                   d uS r   )rN   r   s    r   is_postreleasezVersion.is_postreleaseI  s    yy$$r   c                     | j                   d uS r   )rL   r   s    r   is_devreleasezVersion.is_devreleaseM  s    xxt##r   c                 T    t        | j                        dk\  r| j                  d   S dS )Nr   r   lenrK   r   s    r   majorzVersion.majorQ  %    "%dll"3q"8t||A?a?r   c                 T    t        | j                        dk\  r| j                  d   S dS )N   r   r   r   r   s    r   minorzVersion.minorU  r   r   c                 T    t        | j                        dk\  r| j                  d   S dS )N   r   r   r   r   s    r   microzVersion.microY  r   r   ) r8   r9   r:   recompiler
   VERBOSE
IGNORECASEru   r;   r   r   r   propertyr<   rJ   r   rK   r   rM   rN   rL   rO   r   r   r>   r   r   r   r   r   r   r   r   r   r   r      s    RZZ/1G;RZZ"--=WXF
 
 
:&# & 8 s   sCx   XeCHo.   Ehsm E E CXc] C C x}   * * * 
c 
 
 <t < < % % % $t $ $ @s @ @ @s @ @ @s @ @r   r   letternumberr   c                     | r>|d}| j                         } | dk(  rd} n| dk(  rd} n| dv rd} n| dv rd	} | t        |      fS | s|rd	} | t        |      fS y )
Nr   alphaabetab)crM   previewrc)revrrN   )lowerr<   )r   r   s     r   rz   rz   ^  s      >F 
 WFvF..F|#Fs6{""f s6{""r   z[\._-]rO   c                 R    | %t        d t        j                  |       D              S y)zR
    Takes a string like abc.1.twelve and turns it into ("abc", 1, "twelve").
    Nc              3   r   K   | ]/  }|j                         s|j                         n
t        |       1 y wr   )isdigitr   r<   )ri   parts     r   rk   z'_parse_local_version.<locals>.<genexpr>  s/      
 !%DJJLCI=
s   57)rx   _local_version_separatorsry   )rO   s    r   r{   r{     s4      
177>
 
 	
 r   rJ   rK   rM   rN   rL   c                    t        t        t        t        j                  d t        |                              }||	|t
        }n|t        }n|}|t
        }n|}|t        }	n|}	|t
        }
nt        d |D              }
| ||||	|
fS )Nc                     | dk(  S )Nr   r   )r   s    r   <lambda>z_cmpkey.<locals>.<lambda>  s
    AF r   c              3   T   K   | ]   }t        |t              r|d fnt        |f " yw)r   N)r'   r<   r6   rh   s     r   rk   z_cmpkey.<locals>.<genexpr>  s-      
IJz!S)QG0@!/DD
s   &()rx   reversedlist	itertools	dropwhiler6   r   )rJ   rK   rM   rN   rL   rO   r   r   _post_dev_locals              r   r}   r}     s     i))*:HW<MNOPH {t|/ 
 | 0  {' },  
NS
 
 (D%v55r   )&rQ   collectionsr   r   typingr   r   r   r   r   __all__r   r   r4   r6   InfiniteTypesr;   r<   PrePostDevTypeSubLocalType	LocalTyper`   ra   r>   VersionComparisonMethod
namedtuplerI   
ValueErrorr	   rS   r
   r   bytesrz   r   r   r{   r}   r   r   r   <module>r      sf  .   	 @ @
:
   : > : () 
 l$889}eCHo56]C,-	,#$&457	

 		
	 
sCx...)S
 S%S/)*"
6< %(<"=>D  ";!!CZ +' +'`@E@l E@P!!sE;67!eCHo!H 'BJJy1 	 	(; 	<6<638_<6 
%S/	"<6 5c?
#	<6
 
%S/	"<6 E,'(<6 <6r   