
                   	       r   % S SK r S SKrS SKrS SKrS SKJrJrJrJrJ	r	J
r
Jr  SSKJrJrJrJrJrJr  SSKJr  SSKJrJr  SSKJr  / SQr\\\/\4   r " S	 S
\5      r  " S S\5      r! " S S\5      r"S\S\4S jr# S*S\\\   \\4   S\	\   S\4S jjr$S S \ RJ                  \ RL                  \ RN                  \ RP                  \ RR                  \ RT                  S.r+\\\4   \,S'   S\S\S\S\4S jr-S\S\S\
\S4   4S  jr.S!\S"\\\4   S\4S# jr/S$S%S\4S& jr0S\\\4   4S' jr1 " S( S)5      r2g)+    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                       \ rS rSrSrSrg)r   "   z=
An invalid marker was found, users should refer to PEP 508.
 N__name__
__module____qualname____firstlineno____doc____static_attributes__r       $lib/third_party/packaging/markers.pyr   r   "       r%   r   c                       \ rS rSrSrSrg)r   (   zH
An invalid operation was attempted on a value that doesn't support it.
r   Nr   r   r%   r&   r   r   (   r'   r%   r   c                       \ rS rSrSrSrg)r   .   zP
A name was attempted to be used that does not exist inside of the
environment.
r   Nr   r   r%   r&   r   r   .   s    r%   r   resultsreturnc                 j   [        U S   [        5      (       a  U S   u  pn[        U[        5      (       a1  UR                  S:X  a!  [	        UR                  5      n[        U5      nOE[        U[        5      (       a0  UR                  S:X  a   [	        UR                  5      n[        U5      nXU4U S'   U $ )z
Normalize extra values.
r   extra)
isinstancetupler   valuer   r   )r,   lhsoprhsnormalized_extras        r&   _normalize_extra_valuesr7   5   s     '!*e$$qzc8$$g)=0;()CX&&399+?0;()Cc\
Nr%   markerfirstc                    [        U [        [        [        45      (       d   e[        U [        5      (       a;  [	        U 5      S:X  a,  [        U S   [        [        45      (       a  [        U S   5      $ [        U [        5      (       a8  S U  5       nU(       a  SR                  U5      $ SSR                  U5      -   S-   $ [        U [        5      (       a/  SR                  U  Vs/ s H  o3R                  5       PM     sn5      $ U $ s  snf )Nr
   r   c              3   6   #    U  H  n[        US S9v   M     g7f)F)r9   N)_format_marker).0ms     r&   	<genexpr>!_format_marker.<locals>.<genexpr>W   s     @A/s    ())r0   listr1   strlenr<   join	serialize)r8   r9   innerr>   s       r&   r<   r<   E   s     ftUC01111 	64  K1vay4-00fQi((&$@@88E?"%(3..	FE	"	"xx71788 8s   $Dc                 
    X;   $ Nr   r3   r5   s     r&   <lambda>rM   c   s    3:r%   c                 
    X;  $ rK   r   rL   s     r&   rM   rM   d   s    s~r%   )inznot in<z<=z==z!=z>=>
_operatorsr3   r4   r5   c           	      $    [        SR                  UR                  5       U/5      5      nUR                  U SS9$ ! [         a     Of = f[
        R                  UR                  5       5      nUc  [        SU< SU < SU< S35      eU" X5      $ )N T)prereleasesz
Undefined z on z and .)r   rG   rH   containsr   rR   getr   )r3   r4   r5   specopers        r&   _eval_opr[   n   s    4",,.#!678 }}Sd}33  
  *~~blln=D|!JrfDuSG1"MNN>s   *< 
A	A	valueskey.c                 6    U S:X  a  [        S U 5       5      $ U$ )Nr/   c              3   8   #    U  H  n[        U5      v   M     g 7frK   r   )r=   vs     r&   r?   _normalize.<locals>.<genexpr>   s     :6a&q))6   )r1   )r]   r\   s     r&   
_normalizerc   }   s#    
 g~:6::: Mr%   markersenvironmentc                 X   / /nU  GH  n[        U[        [        [        45      (       d   e[        U[        5      (       a  US   R	                  [        X15      5        MZ  [        U[        5      (       a  Uu  pEn[        U[        5      (       a  UR                  nX   nUR                  n	OUR                  nUR                  nX   n	[        XUS9u  pUS   R	                  [        XU	5      5        M  US;   d   eUS:X  d  M  UR	                  / 5        GM     [        S U 5       5      $ )N)r]   )andorri   c              3   8   #    U  H  n[        U5      v   M     g 7frK   )all)r=   items     r&   r?   $_evaluate_markers.<locals>.<genexpr>   s     ,VTs4yyVrb   )r0   rD   r1   rE   append_evaluate_markersr   r2   rc   r[   any)
rd   re   groupsr8   r3   r4   r5   environment_key	lhs_value	rhs_values
             r&   ro   ro      s    "tF&4"45555fd##2J/DE&&!LCS#x(("%))'8	II	II	"%))'8	#-i#X I2Jhyi@A]***~b!- 0 ,V,,,r%   infozsys._version_infoc                     SR                  U 5      nU R                  nUS:w  a  XS   [        U R                  5      -   -  nU$ )Nz{0.major}.{0.minor}.{0.micro}finalr   )formatreleaselevelrE   serial)ru   versionkinds      r&   format_full_versionr}      sC    -44T:GDw7S---Nr%   c                     [        [        R                  R                  5      n [        R                  R                  nUU [
        R                  [        R                  " 5       [        R                  " 5       [        R                  " 5       [        R                  " 5       [        R                  " 5       [        R                  " 5       SR                  [        R                  " 5       S S 5      [        R                  S.$ )NrV      )implementation_nameimplementation_versionos_nameplatform_machineplatform_releaseplatform_systemplatform_versionpython_full_versionplatform_python_implementationpython_versionsys_platform)r}   sysimplementationr{   nameosplatformmachinereleasesystemr   python_implementationrG   python_version_tuple)iverr   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S rSrS\SS4S jrS\4S jrS\4S jrS\4S jr	S	\
S\4S
 jrSS\\\\4      S\4S jjrSrg)r      r8   r-   Nc                      [        [        U5      5      U l        g ! [         a  n[	        [        U5      5      UeS nAff = frK   )r7   _parse_marker_markersr   r   rE   )selfr8   es      r&   __init__Marker.__init__   s;    	/3M&4IJDM" ! 	/A'Q.	/s    
A ;A c                 ,    [        U R                  5      $ rK   )r<   r   r   s    r&   __str__Marker.__str__   s    dmm,,r%   c                     SU  S3$ )Nz	<Marker('z')>r   r   s    r&   __repr__Marker.__repr__   s    4&$$r%   c                 V    [        U R                  R                  [        U 5      45      $ rK   )hash	__class__r   rE   r   s    r&   __hash__Marker.__hash__   s     T^^,,c$i899r%   otherc                 f    [        U[        5      (       d  [        $ [        U 5      [        U5      :H  $ rK   )r0   r   NotImplementedrE   )r   r   s     r&   __eq__Marker.__eq__   s(    %((!!4yCJ&&r%   re   c                     [        5       nSUS'   Ub  UR                  U5        US   c  SUS'   [        U R                  U5      $ )zEvaluate 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.
rT   r/   )r   updatero   r   )r   re   current_environments      r&   evaluateMarker.evaluate   sV     23')G$"&&{3 #7+3/1#G, 0CDDr%   )r   rK   )r   r    r!   r"   rE   r   r   r   intr   r   boolr   r   r   r   r$   r   r%   r&   r   r      su    /s /t /2- -%# %:# :'C 'D 'EHT#s(^$< E 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__rE   r   Operator
ValueErrorr   r   r   r7   r<   ltleeqnegegtrR   __annotations__r[   rc   ro   r}   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%   