
    .iV3                    "   U d dl mZ d dlmZ d dlZd dlZd dl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z  d
f   Zded<   eez  eeef   z  Zded<   eeeeef   eeeez  f   z  d
f   z  Zded<   eeeed
f   eeeef   Zded<   eeegef   Zded<    G d de      ZddZ G d de      Z G d d      ZdZeZ  G d de      Z!	 	 	 	 	 	 d dZ" ejF                  d      Z$d!dZ%	 	 	 	 	 	 	 	 	 	 	 	 	 	 d"dZ&y)#    )annotations)CallableN)Any
NamedTupleSupportsInt	TypeAlias)VERSION_PATTERNInvalidVersionVersionparsec                  L    e Zd Zd
dZddZddZddZddZddZddZ	ddZ
y	)InfinityTypec                     y)NInfinity selfs    Z/var/www/app/trading-bot/venv/lib/python3.12/site-packages/pandas/util/version/__init__.py__repr__zInfinityType.__repr__   s        c                *    t        t        |             S Nhashreprr   s    r   __hash__zInfinityType.__hash__       DJr   c                     yNFr   r   others     r   __lt__zInfinityType.__lt__       r   c                     yr   r   r    s     r   __le__zInfinityType.__le__    r#   r   c                ,    t        |t        |             S r   
isinstancetyper    s     r   __eq__zInfinityType.__eq__#       %d,,r   c                     yNTr   r    s     r   __gt__zInfinityType.__gt__&       r   c                     y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returnstrr6   intr!   objectr6   bool)r   r;   r6   NegativeInfinityType__name__
__module____qualname__r   r   r"   r%   r*   r.   r1   r4   r   r   r   r   r      s*     - r   r   c                  L    e Zd Zd
dZddZddZddZddZddZddZ	ddZ
y	)r=   c                     y)Nz	-Infinityr   r   s    r   r   zNegativeInfinityType.__repr__4   s    r   c                *    t        t        |             S r   r   r   s    r   r   zNegativeInfinityType.__hash__7   r   r   c                     yr-   r   r    s     r   r"   zNegativeInfinityType.__lt__:   r/   r   c                     yr-   r   r    s     r   r%   zNegativeInfinityType.__le__=   r/   r   c                ,    t        |t        |             S r   r'   r    s     r   r*   zNegativeInfinityType.__eq__@   r+   r   c                     yr   r   r    s     r   r.   zNegativeInfinityType.__gt__C   r#   r   c                     yr   r   r    s     r   r1   zNegativeInfinityType.__ge__F   r#   r   c                    t         S r   )r   r   s    r   r4   zNegativeInfinityType.__neg__I   s    r   Nr5   r8   r:   )r   r;   r6   r   r>   r   r   r   r=   r=   3   s*     -r   r=   .r   	LocalTypeCmpPrePostDevTypeCmpLocalTypeCmpKeyVersionComparisonMethodc                  J    e Zd ZU ded<   ded<   ded<   ded<   ded<   d	ed
<   y)_Versionr9   epochtuple[int, ...]releasetuple[str, int] | NonedevprepostLocalType | NonelocalN)r?   r@   rA   __annotations__r   r   r   rQ   rQ   b   s%    J		
  r   rQ   r   c                    t        |       S r   )r   )versions    r   r   r   k   s    7r   c                      e Zd ZdZdZy)r
   a  
    An invalid version was found, users should refer to PEP 440.

    The ``InvalidVersion`` exception is raised when a version string is
    improperly formatted. Pandas uses this exception to ensure that all
    version strings are PEP 440 compliant.

    See Also
    --------
    util.version.Version : Class for handling and parsing version strings.

    Examples
    --------
    >>> pd.util.version.Version("1.")
    Traceback (most recent call last):
    InvalidVersion: Invalid version: '1.'
    zpandas.errorsN)r?   r@   rA   __doc__r   r   r   r
   r
   q   s    $ !Jr   r
   c                  P    e Zd ZU ded<   ddZddZddZddZddZddZ	dd	Z
y
)_BaseVersionztuple[Any, ...]_keyc                ,    t        | j                        S r   )r   rb   r   s    r   r   z_BaseVersion.__hash__   s    DIIr   c                `    t        |t              st        S | j                  |j                  k  S r   r(   ra   NotImplementedrb   r    s     r   r"   z_BaseVersion.__lt__   %    %.!!yy5::%%r   c                `    t        |t              st        S | j                  |j                  k  S r   re   r    s     r   r%   z_BaseVersion.__le__   %    %.!!yyEJJ&&r   c                `    t        |t              st        S | j                  |j                  k(  S r   re   r    s     r   r*   z_BaseVersion.__eq__   ri   r   c                `    t        |t              st        S | j                  |j                  k\  S r   re   r    s     r   r1   z_BaseVersion.__ge__   ri   r   c                `    t        |t              st        S | j                  |j                  kD  S r   re   r    s     r   r.   z_BaseVersion.__gt__   rg   r   c                `    t        |t              st        S | j                  |j                  k7  S r   re   r    s     r   __ne__z_BaseVersion.__ne__   ri   r   Nr8   )r!   ra   r6   r<   r:   )r?   r@   rA   r[   r   r"   r%   r*   r1   r.   rn   r   r   r   ra   ra      s+    
&'''&'r   ra   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                     e Zd ZU  ej                  dez   dz   ej                  ej                  z        Zde	d<   ddZ
ddZddZedd       Zedd	       Zedd
       Zedd       Zedd       Zedd       Zedd       Zedd       Zedd       Zedd       Zedd       Zedd       Zedd       Zedd       Zy)r   z^\s*z\s*$rN   rb   c                   | 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: ''rR   r   c              3  2   K   | ]  }t        |        y wr   )r9   .0is     r   	<genexpr>z#Version.__init__.<locals>.<genexpr>   s     LQ#a&L   rT   .pre_lpre_npost_lpost_n1post_n2dev_ldev_nrZ   )rR   rT   rW   rX   rV   rZ   )_regexsearchr
   rQ   groupr9   tuplesplit_parse_letter_version_parse_local_version_version_cmpkeyrR   rT   rW   rX   rV   rZ   rb   )r   r]   matchs      r   __init__zVersion.__init__   sP   ""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   !rx   c              3  2   K   | ]  }t        |        y wr   r7   rt   xs     r   rv   z"Version.__str__.<locals>.<genexpr>       ;c!f;rw    c              3  2   K   | ]  }t        |        y wr   r   r   s     r   rv   z"Version.__str__.<locals>.<genexpr>  s      :AQ :rw   z.postz.dev+)rR   appendjoinrT   rW   rX   rV   rZ   r   partss     r   __str__zVersion.__str__   s     ::?LLDJJ<q)* 	SXX;dll;;< 88LL : ::; 99 LL5,- 88LL4z*+ ::!LL1TZZL)*wwu~r   c                .    | j                   j                  S r   )r   rR   r   s    r   rR   zVersion.epoch  s    }}"""r   c                .    | j                   j                  S r   )r   rT   r   s    r   rT   zVersion.release  s    }}$$$r   c                .    | j                   j                  S r   )r   rW   r   s    r   rW   zVersion.pre   s    }}   r   c                d    | j                   j                  r| j                   j                  d   S d S N   )r   rX   r   s    r   rX   zVersion.post$  s(    (,(:(:t}}!!!$DDr   c                d    | j                   j                  r| j                   j                  d   S d S r   )r   rV   r   s    r   rV   zVersion.dev(  s(    '+}}'8'8t}}  #BdBr   c                    | j                   j                  r,dj                  d | j                   j                  D              S y )Nrx   c              3  2   K   | ]  }t        |        y wr   r   r   s     r   rv   z Version.local.<locals>.<genexpr>/  s     @qCF@rw   )r   rZ   r   r   s    r   rZ   zVersion.local,  s1    ==88@DMM,?,?@@@r   c                >    t        |       j                  dd      d   S )Nr   r   r   )r7   r   r   s    r   publiczVersion.public3  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   rx   c              3  2   K   | ]  }t        |        y wr   r   r   s     r   rv   z'Version.base_version.<locals>.<genexpr>@  r   rw   r   )rR   r   r   rT   r   s     r   base_versionzVersion.base_version7  sZ     ::?LLDJJ<q)* 	SXX;dll;;<wwu~r   c                >    | j                   d uxs | j                  d uS r   )rV   rW   r   s    r   is_prereleasezVersion.is_prereleaseD  s    xxt#;txxt';;r   c                    | j                   d uS r   )rX   r   s    r   is_postreleasezVersion.is_postreleaseH  s    yy$$r   c                    | j                   d uS r   )rV   r   s    r   is_devreleasezVersion.is_devreleaseL  s    xxt##r   c                T    t        | j                        dk\  r| j                  d   S dS )Nr   r   lenrT   r   s    r   majorzVersion.majorP  %    "%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.minorT  r   r   c                T    t        | j                        dk\  r| j                  d   S dS )N   r   r   r   r   s    r   microzVersion.microX  r   r   N)r]   r7   r6   Noner5   r8   )r6   rS   )r6   rU   )r6   z
int | None)r6   
str | None)r6   r<   )r?   r@   rA   recompiler	   VERBOSE
IGNORECASEr   r[   r   r   r   propertyrR   rT   rW   rX   rV   rZ   r   r   r   r   r   r   r   r   r   r   r   r   r      sa   RZZ/1G;RZZ"--=WXF
L
8&8 # # % % ! ! E E C C   * * 
 
 < < % % $ $ @ @ @ @ @ @r   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)crW   previewrc)revrrX   )lowerr9   )letternumbers     r   r   r   ]  s      >F 
 WFvF..F|#Fs6{""f s6{""r   z[\._-]c                R    | %t        d t        j                  |       D              S y )Nc              3  r   K   | ]/  }|j                         s|j                         n
t        |       1 y wr   )isdigitr   r9   )rt   parts     r   rv   z'_parse_local_version.<locals>.<genexpr>  s/      
 !%DJJLCI=
s   57)r   _local_version_separatorsr   )rZ   s    r   r   r     s2     
177>
 
 	
 r   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(   r9   r3   rs   s     r   rv   z_cmpkey.<locals>.<genexpr>  s-      
IJz!S)QG0@!/DD
s   &()r   reversedlist	itertools	dropwhiler3   r   )rR   rT   rW   rX   rV   rZ   _release_pre_post_dev_locals              r   r   r     s     i))*:HW<MNOPH {t|"2 
 |#3  {"* }/  
NS
 
 (D%v55r   )r]   r7   r6   r   )r   r   r   z str | bytes | SupportsInt | Noner6   rU   )rZ   r   r6   rY   )rR   r9   rT   rS   rW   rU   rX   rU   rV   rU   rZ   rY   r6   rN   )'
__future__r   collections.abcr   r   r   typingr   r   r   r   __all__r   r   r=   r3   r   r9   r7   rK   r[   rL   rM   rN   r<   rO   rQ   r   
ValueErrorr
   ra   _VERSION_PATTERNr	   r   r   r   r   r   r   r   r   r   <module>r      s   # $  	  D   4 > 4 ()  S3Y^,	9 ,+.BBU3PS8_T 9 TE#s(Oe$8#)$CDDcIJK i  	#s(O	  &.vv.>.D%E  Ez !Z !,+' +'` > #A@l A@H   @  F 'BJJy1 ;6;6;6 
 ;6 !	;6
 
 ;6 ;6 ;6r   