
    gWOf               	       b   U d dl 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	m
Z
mZ ddlmZmZmZmZmZmZ ddlmZ ddlmZmZ ddlmZ g dZeeegef   Z G d	 d
e      Z  G d de      Z! G d de      Z"dedefdZ#	 d*deee   eef   de	e   defdZ$d d e jJ                  e jL                  e jN                  e jP                  e jR                  e jT                  dZ+eeef   e,d<   dedededefdZ-dedede
edf   fd Z.d!ed"eeef   defd#Z/d$d%defd&Z0deeef   fd'Z1 G d( d)      Z2y)+    N)AnyCallableDictListOptionalTupleUnion   )
MarkerAtom
MarkerListOpValueVariableparse_marker)ParserSyntaxError)InvalidSpecifier	Specifiercanonicalize_name)InvalidMarkerUndefinedComparisonUndefinedEnvironmentNameMarkerdefault_environmentc                       e Zd ZdZy)r   zE
    An invalid marker was found, users should refer to PEP 508.
    N__name__
__module____qualname____doc__     R/var/www/premiumrankchecker/venv/lib/python3.12/site-packages/packaging/markers.pyr   r   "       r"   r   c                       e Zd ZdZy)r   zP
    An invalid operation was attempted on a value that doesn't support it.
    Nr   r!   r"   r#   r   r   (   r$   r"   r   c                       e Zd ZdZy)r   z\
    A name was attempted to be used that does not exist inside of the
    environment.
    Nr   r!   r"   r#   r   r   .   s    r"   r   resultsreturnc                 L   t        | d   t              r| d   \  }}}t        |t              r0|j                  dk(  r!t	        |j                        }t        |      }n?t        |t              r/|j                  dk(  r t	        |j                        }t        |      }|||f| d<   | S )z!
    Normalize extra values.
    r   extra)
isinstancetupler   valuer   r   )r'   lhsoprhsnormalized_extras        r#   _normalize_extra_valuesr2   5   s     '!*e$qzRc8$g)=0;()CX&399+?0;()C"c\
Nr"   markerfirstc                    t        | t        t        t        f      sJ t        | t              r5t	        |       dk(  r't        | d   t        t        f      rt        | d         S t        | t              r3d | D        }|rdj                  |      S ddj                  |      z   dz   S t        | t              r-dj                  | D cg c]  }|j                          c}      S | S c c}w )Nr
   r   c              3   6   K   | ]  }t        |d         yw)F)r4   N)_format_marker).0ms     r#   	<genexpr>z!_format_marker.<locals>.<genexpr>W   s     @A//@s    ())r+   listr,   strlenr7   join	serialize)r3   r4   innerr9   s       r#   r7   r7   E   s     ftUC0111 	64 K1vay4-0fQi((&$@@88E?"%(3..	FE	"xx71788 8s   C%c                 
    | |v S Nr!   r.   r0   s     r#   <lambda>rG   c   s
    3#: r"   c                 
    | |vS rE   r!   rF   s     r#   rG   rG   d   s
    s#~ r"   )inznot in<z<=z==z!=z>=>
_operatorsr.   r/   r0   c           	      "   	 t        dj                  |j                         |g            }|j                  | d      S # t        $ r Y nw xY wt
        j                  |j                               }|t        d|d| d|d       || |      S )N T)prereleasesz
Undefined z on z and .)r   rA   rB   containsr   rL   getr   )r.   r/   r0   specopers        r#   _eval_oprU   n   s    4",,.#!678 }}Sd}33  
  *~~blln=D|!JrfDuSG1"MNNS>s   *? 	A
Avalueskey.c                 4    | dk(  rt        d |D              S |S )Nr*   c              3   2   K   | ]  }t        |        y wrE   r   )r8   vs     r#   r:   z_normalize.<locals>.<genexpr>   s     :a&q):   )r,   )rW   rV   s     r#   
_normalizer\   }   s#    
 g~:6::: Mr"   markersenvironmentc                 0   g g}| D ]  }t        |t        t        t        f      sJ t        |t              r|d   j	                  t        ||             Ot        |t              r|\  }}}t        |t              r|j                  }||   }|j                  }	n|j                  }|j                  }||   }	t        ||	|      \  }}	|d   j	                  t        |||	             |dv sJ |dk(  s|j	                  g         t        d |D              S )N)rW   )andorrb   c              3   2   K   | ]  }t        |        y wrE   )all)r8   items     r#   r:   z$_evaluate_markers.<locals>.<genexpr>   s     ,Ts4y,r[   )r+   r>   r,   r?   append_evaluate_markersr   r-   r\   rU   any)
r]   r^   groupsr3   r.   r/   r0   environment_key	lhs_value	rhs_values
             r#   rg   rg      s    "tF "&4"4555fd#2J/DE&!LCS#x("%))'8	II	II	"%))'8	#-i#X Iy2Jhy"i@A]***~b!-"0 ,V,,,r"   infozsys._version_infoc                     dj                  |       }| j                  }|dk7  r||d   t        | j                        z   z  }|S )Nz{0.major}.{0.minor}.{0.micro}finalr   )formatreleaselevelr?   serial)rm   versionkinds      r#   format_full_versionru      sE    -44T:GDw47S---Nr"   c                     t        t        j                  j                        } t        j                  j                  }|| t
        j                  t        j                         t        j                         t        j                         t        j                         t        j                         t        j                         dj                  t        j                         d d       t        j                  dS )NrP      )implementation_nameimplementation_versionos_nameplatform_machineplatform_releaseplatform_systemplatform_versionpython_full_versionplatform_python_implementationpython_versionsys_platform)ru   sysimplementationrs   nameosplatformmachinereleasesystemr   python_implementationrA   python_version_tuple)iverrx   s     r#   r   r      s    s1199:D,,112"&77$,,.$,,.#??,$,,.'668*2*H*H*J((8#@#@#B2A#FG r"   c                   r    e Zd ZdeddfdZdefdZdefdZdefdZde	de
fd	Zdd
eeeef      de
fdZy)r   r3   r(   Nc                     	 t        t        |            | _        y # t        $ r}t	        t        |            |d }~ww xY wrE   )r2   _parse_marker_markersr   r   r?   )selfr3   es      r#   __init__zMarker.__init__   s;    	/3M&4IJDM" ! 	/A'Q.	/s    	?:?c                 ,    t        | j                        S rE   )r7   r   r   s    r#   __str__zMarker.__str__   s    dmm,,r"   c                     d|  dS )Nz	<Marker('z')>r!   r   s    r#   __repr__zMarker.__repr__   s    4&$$r"   c                 V    t        | j                  j                  t        |       f      S rE   )hash	__class__r   r?   r   s    r#   __hash__zMarker.__hash__   s     T^^,,c$i899r"   otherc                 \    t        |t              st        S t        |       t        |      k(  S rE   )r+   r   NotImplementedr?   )r   r   s     r#   __eq__zMarker.__eq__   s%    %(!!4yCJ&&r"   r^   c                     t               }d|d<   ||j                  |       |d   d|d<   t        | j                  |      S )a$  Evaluate a marker.

        Return the boolean from evaluating the given marker against the
        environment. environment is an optional argument to override all or
        part of the determined environment.

        The environment is determined from the current Python process.
        rN   r*   )r   updaterg   r   )r   r^   current_environments      r#   evaluatezMarker.evaluate   sV     23')G$"&&{3 #7+3/1#G, 0CDDr"   rE   )r   r   r   r?   r   r   r   intr   r   boolr   r   r   r   r!   r"   r#   r   r      so    /s /t /2- -%# %:# :'C 'D 'EHT#s(^$< E Er"   r   )T)3operatorr   r   r   typingr   r   r   r   r   r   r	   _parserr   r   r   r   r   r   r   
_tokenizerr   
specifiersr   r   utilsr   __all__r?   r   Operator
ValueErrorr   r   r   r2   r7   ltleeqnegegtrL   __annotations__rU   r\   rg   ru   r   r   r!   r"   r#   <module>r      s  
  	  
 D D D  * 3 $ S#J$%J * z S S " HL$s)Z,-6>tn< &-	
++
++
++
++		#
Dh 	# 2 C D 	 	# 	%S/ 	-z -S#X -4 -<1 c T#s(^ $;E ;Er"   