
    z-Ph	8                        d dl Z d dlZd dlZd dlZg dZ G d d          Z e            Z G d d          Z e            Z e j	        dg d          Z
d	 Z G d
 de          Z G d d          Z G d de          Z ej        dej                  ZddddddZd Zd ZdZ G d de          Zd Z ej        d          Zd Zd ZdS )    N)parseVersionLegacyVersionInvalidVersionVERSION_PATTERNc                   D    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
S )InfinityTypec                     dS )NInfinity selfs    X/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/pyarrow/vendored/version.py__repr__zInfinityType.__repr__   s    z    c                 :    t          t          |                     S Nhashreprr   s    r   __hash__zInfinityType.__hash__       DJJr   c                     dS NFr   r   others     r   __lt__zInfinityType.__lt__       ur   c                     dS 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00r   c                 .    t          || j                   S r   r"   r   s     r   __ne__zInfinityType.__ne__!       eT^4444r   c                     dS NTr   r   s     r   __gt__zInfinityType.__gt__$       tr   c                     dS r+   r   r   s     r   __ge__zInfinityType.__ge__'   r-   r   c                     t           S r   )NegativeInfinityr   s    r   __neg__zInfinityType.__neg__*   s    r   N__name__
__module____qualname__r   r   r   r    r%   r(   r,   r/   r2   r   r   r   r	   r	      s                   1 1 15 5 5             r   r	   c                   D    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
S )NegativeInfinityTypec                     dS )Nz	-Infinityr   r   s    r   r   zNegativeInfinityType.__repr__2   s    {r   c                 :    t          t          |                     S r   r   r   s    r   r   zNegativeInfinityType.__hash__5   r   r   c                     dS r+   r   r   s     r   r   zNegativeInfinityType.__lt__8   r-   r   c                     dS r+   r   r   s     r   r    zNegativeInfinityType.__le__;   r-   r   c                 ,    t          || j                  S r   r"   r   s     r   r%   zNegativeInfinityType.__eq__>   r&   r   c                 .    t          || j                   S r   r"   r   s     r   r(   zNegativeInfinityType.__ne__A   r)   r   c                     dS r   r   r   s     r   r,   zNegativeInfinityType.__gt__D   r   r   c                     dS r   r   r   s     r   r/   zNegativeInfinityType.__ge__G   r   r   c                     t           S r   )r   r   s    r   r2   zNegativeInfinityType.__neg__J   s    r   Nr3   r   r   r   r8   r8   1   s                   1 1 15 5 5        r   r8   _Version)epochreleasedevprepostlocalc                 `    	 t          |           S # t          $ r t          |           cY S w xY w)z
    Parse the given version string and return either a :class:`Version` object
    or a :class:`LegacyVersion` object depending on if the given version is
    a valid PEP 440 version or a legacy version.
    )r   r   r   )versions    r   r   r   V   sD    &w & & &W%%%%%&s    --c                       e Zd ZdZdS )r   zF
    An invalid version was found, users should refer to PEP 440.
    N)r4   r5   r6   __doc__r   r   r   r   r   b   s           r   r   c                   8    e Zd Zd Zd Zd Zd Zd Zd Zd Z	dS )	_BaseVersionc                 *    t          | j                  S r   )r   _keyr   s    r   r   z_BaseVersion.__hash__j   s    DIr   c                 Z    t          |t                    st          S | j        |j        k     S r   r#   rN   NotImplementedrP   r   s     r   r   z_BaseVersion.__lt__p   )    %.. 	"!!y5:%%r   c                 Z    t          |t                    st          S | j        |j        k    S r   rR   r   s     r   r    z_BaseVersion.__le__v   )    %.. 	"!!yEJ&&r   c                 Z    t          |t                    st          S | j        |j        k    S r   rR   r   s     r   r%   z_BaseVersion.__eq__|   rV   r   c                 Z    t          |t                    st          S | j        |j        k    S r   rR   r   s     r   r/   z_BaseVersion.__ge__   rV   r   c                 Z    t          |t                    st          S | j        |j        k    S r   rR   r   s     r   r,   z_BaseVersion.__gt__   rT   r   c                 Z    t          |t                    st          S | j        |j        k    S r   rR   r   s     r   r(   z_BaseVersion.__ne__   rV   r   N)
r4   r5   r6   r   r   r    r%   r/   r,   r(   r   r   r   rN   rN   h   s}          & & &' ' '' ' '' ' '& & &' ' ' ' 'r   rN   c                      e Zd Zd Zd Zd Zed             Zed             Zed             Z	ed             Z
ed             Zed	             Zed
             Zed             Zed             Zed             Zed             ZdS )r   c                     t          |          | _        t          | j                  | _        t	          j        dt                     d S )NzZCreating a LegacyVersion has been deprecated and will be removed in the next major release)str_version_legacy_cmpkeyrP   warningswarnDeprecationWarning)r   rJ   s     r   __init__zLegacyVersion.__init__   sF    G"4=11	0	
 	
 	
 	
 	
r   c                     | j         S r   r^   r   s    r   __str__zLegacyVersion.__str__   s
    }r   c                     d|  dS )Nz<LegacyVersion('')>r   r   s    r   r   zLegacyVersion.__repr__   s    +$++++r   c                     | j         S r   re   r   s    r   publiczLegacyVersion.public   
    }r   c                     | j         S r   re   r   s    r   base_versionzLegacyVersion.base_version   rk   r   c                     dS )Nr   r   s    r   rC   zLegacyVersion.epoch   s    rr   c                     d S r   r   r   s    r   rD   zLegacyVersion.release       tr   c                     d S r   r   r   s    r   rF   zLegacyVersion.pre   rq   r   c                     d S r   r   r   s    r   rG   zLegacyVersion.post   rq   r   c                     d S r   r   r   s    r   rE   zLegacyVersion.dev   rq   r   c                     d S r   r   r   s    r   rH   zLegacyVersion.local   rq   r   c                     dS r   r   r   s    r   is_prereleasezLegacyVersion.is_prerelease       ur   c                     dS r   r   r   s    r   is_postreleasezLegacyVersion.is_postrelease   rx   r   c                     dS r   r   r   s    r   is_devreleasezLegacyVersion.is_devrelease   rx   r   N)r4   r5   r6   rc   rf   r   propertyrj   rm   rC   rD   rF   rG   rE   rH   rw   rz   r|   r   r   r   r   r      sj       
 
 
  , , ,   X   X   X   X   X   X   X   X   X   X   X  r   r   z(\d+ | [a-z]+ | \.| -)czfinal-@)rF   preview-rcrE   c              #      K   t                               |           D ]Q}t                              ||          }|r|dk    r&|d d         dv r|                    d          V  Jd|z   V  RdV  d S )N.   
0123456789   **final)_legacy_version_component_resplit_legacy_version_replacement_mapgetzfill)sparts     r   _parse_version_partsr      s      ,22155 
 
.224>> 	ts{{8|##**Q--* NNNNNr   c                    d}g }t          |                                           D ]}|                    d          rf|dk     r0|r.|d         dk    r"|                                 |r|d         dk    "|r.|d         dk    r"|                                 |r|d         dk    "|                    |           |t          |          fS )Nro   r   r   z*final-00000000)r   lower
startswithpopappendtuple)rJ   rC   partsr   s       r   r_   r_      s     E E$W]]__55  ??3 	h  b	Y 6 6IIKKK   b	Y 6 6  E"I33		  E"I33 	T%,,r   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 Z	d Z
d Zed             Zed             Zed             Zed	             Zed
             Zed             Zed             Zed             Zed             Zed             Zed             Zed             Zed             Zed             ZdS )r   z^\s*z\s*$c                    | j                             |          }|st          d| d          t          |                    d          r"t          |                    d                    ndt          d |                    d                              d          D                       t          |                    d          |                    d	                    t          |                    d
          |                    d          p|                    d                    t          |                    d          |                    d                    t          |                    d                              | _
        t          | j
        j        | j
        j        | j
        j        | j
        j        | j
        j        | j
        j                  | _        d S )NzInvalid version: ''rC   r   c              3   4   K   | ]}t          |          V  d S r   )int.0is     r   	<genexpr>z#Version.__init__.<locals>.<genexpr><  s(      LLQ#a&&LLLLLLr   rD   r   pre_lpre_npost_lpost_n1post_n2dev_ldev_nrH   )rC   rD   rF   rG   rE   rH   )_regexsearchr   rB   groupr   r   r   _parse_letter_version_parse_local_versionr^   _cmpkeyrC   rD   rF   rG   rE   rH   rP   )r   rJ   matchs      r   rc   zVersion.__init__2  s    ""7++ 	B !@g!@!@!@AAA !/4{{7/C/CJ#ekk'**+++LL%++i*@*@*F*Fs*K*KLLLLL%G$$ekk'&:&:< <&H%%u{{( ( (9"'++i"8"8  &G$$ekk'&:&:< <&u{{7';';<<
 
 
 MM!MMMM
 
			r   c                     d|  dS )Nz
<Version('rh   r   r   s    r   r   zVersion.__repr__R  s    %D%%%%r   c                 B   g }| j         dk    r|                    | j          d           |                    d                    d | j        D                                  | j        7|                    d                    d | j        D                                  | j        |                    d| j                    | j        |                    d| j                    | j        |                    d	| j                    d                    |          S )
Nr   !r   c              3   4   K   | ]}t          |          V  d S r   r]   r   xs     r   r   z"Version.__str__.<locals>.<genexpr>]  (      ;;c!ff;;;;;;r    c              3   4   K   | ]}t          |          V  d S r   r   r   s     r   r   z"Version.__str__.<locals>.<genexpr>a  s(       : :AQ : : : : : :r   z.postz.dev+)rC   r   joinrD   rF   rG   rE   rH   r   r   s     r   rf   zVersion.__str__U  s     :??LLDJ)))*** 	SXX;;dl;;;;;<<< 8LL : : : : :::;;; 9 LL,,,--- 8LL***+++ :!LL)TZ))***wwu~~r   c                     | j         j        }|S r   )r^   rC   )r   _epochs     r   rC   zVersion.epochq  s    $r   c                     | j         j        }|S r   )r^   rD   )r   _releases     r   rD   zVersion.releasev  s    =(r   c                     | j         j        }|S r   )r^   rF   )r   _pres     r   rF   zVersion.pre{  s    } r   c                 B    | j         j        r| j         j        d         nd S Nr   )r^   rG   r   s    r   rG   zVersion.post  s!    (,(:Dt}!!$$Dr   c                 B    | j         j        r| j         j        d         nd S r   )r^   rE   r   s    r   rE   zVersion.dev  s!    '+}'8Bt} ##dBr   c                 p    | j         j        r)d                    d | j         j        D                       S d S )Nr   c              3   4   K   | ]}t          |          V  d S r   r   r   s     r   r   z Version.local.<locals>.<genexpr>  s(      @@qCFF@@@@@@r   )r^   rH   r   r   s    r   rH   zVersion.local  s:    = 	88@@DM,?@@@@@@4r   c                 T    t          |                               dd          d         S )Nr   r   r   )r]   r   r   s    r   rj   zVersion.public  s!    4yysA&&q))r   c                     g }| j         dk    r|                    | j          d           |                    d                    d | j        D                                  d                    |          S )Nr   r   r   c              3   4   K   | ]}t          |          V  d S r   r   r   s     r   r   z'Version.base_version.<locals>.<genexpr>  r   r   r   )rC   r   r   rD   r   s     r   rm   zVersion.base_version  sr     :??LLDJ)))*** 	SXX;;dl;;;;;<<<wwu~~r   c                 &    | j         d up| j        d uS r   )rE   rF   r   s    r   rw   zVersion.is_prerelease  s    xt#;txt';;r   c                     | j         d uS r   )rG   r   s    r   rz   zVersion.is_postrelease  s    y$$r   c                     | j         d uS r   )rE   r   s    r   r|   zVersion.is_devrelease  s    xt##r   c                 P    t          | j                  dk    r| j        d         ndS )Nr   r   lenrD   r   s    r   majorzVersion.major  &    "%dl"3"3q"8"8t|Aa?r   c                 P    t          | j                  dk    r| j        d         ndS )N   r   r   r   r   s    r   minorzVersion.minor  r   r   c                 P    t          | j                  dk    r| j        d         ndS )N   r   r   r   r   s    r   microzVersion.micro  r   r   N)r4   r5   r6   recompiler   VERBOSE
IGNORECASEr   rc   r   rf   r}   rC   rD   rF   rG   rE   rH   rj   rm   rw   rz   r|   r   r   r   r   r   r   r   r   -  s       RZ/1 !#bm!;= =F
 
 
@& & &  8   X   X   X E E XE C C XC   X * * X* 
 
 X
 < < X< % % X% $ $ X$ @ @ X@ @ @ X@ @ @ X@ @ @r   r   c                     | rH|d}|                                  } | 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 d S )
Nr   alphaabetab)r~   rF   r   r   )revrrG   )r   r   )letternumbers     r   r   r     s     # >F 
 WFFvFF...FF|##Fs6{{"" #f # s6{{""4r   z[\._-]c                 l    | 1t          d t                              |           D                       S dS )zR
    Takes a string like abc.1.twelve and turns it into ("abc", 1, "twelve").
    Nc              3      K   | ];}|                                 s|                                nt          |          V  <d S r   )isdigitr   r   )r   r   s     r   r   z'_parse_local_version.<locals>.<genexpr>  sU       
 
 !%=DJJLLLCII
 
 
 
 
 
r   )r   _local_version_separatorsr   )rH   s    r   r   r     sM      
 
177>>
 
 
 
 
 	
 4r   c                 P   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   Z   K   | ]&}t          |t                    r|d fnt          |fV  'dS )r   N)r#   r   r1   r   s     r   r   z_cmpkey.<locals>.<genexpr>  sS       
 
 "!S))DQGG0@!/D
 
 
 
 
 
r   )r   reversedlist	itertools	dropwhiler1   r   )rC   rD   rF   rG   rE   rH   r   r   _post_dev_locals              r   r   r     s     i)*:*:*27*;*;= = > > 	? 	? H {t| 
 |   { }!  
 

 
 
 
 

 (D%v55r   )collectionsr   r   r`   __all__r	   r   r8   r1   
namedtuplerB   r   
ValueErrorr   rN   r   r   r   r   r   r   r_   r   r   r   r   r   r   r   r   r   <module>r      sG           				 0 0 0               : <>>       : ('))  ";!CCC 
	& 	& 	&    Z   *' *' *' *' *' *' *' *'Z; ; ; ; ;L ; ; ;|  *rzrz +  +  	
# #   "  :@I@ I@ I@ I@ I@l I@ I@ I@X  D 'BJy11 	 	 	76 76 76 76 76r   