
    ޕgA)              	      
   U d dl mZ 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
 ddlmZmZmZmZmZ ddl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! G d de	      Z"d"dZ#	 d#	 	 	 	 	 d$dZ$d d ejJ                  ejL                  ejN                  ejP                  ejR                  ejT                  dZ+de,d<   d%dZ-d&dZ.d'dZ/d(dZ0d)dZ1 G d d       Z2d*d!Z3y)+    )annotationsN)AnyCallable	TypedDictcast   )
MarkerAtom
MarkerListOpValueVariable)parse_marker)ParserSyntaxError)InvalidSpecifier	Specifiercanonicalize_name)InvalidMarkerMarkerUndefinedComparisonUndefinedEnvironmentName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__     P/var/www/html/AdoubleTech/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   c                      e Zd ZU ded<   	 ded<   	 ded<   	 ded<   	 ded<   	 ded<   	 ded<   	 ded	<   	 ded
<   	 ded<   	 ded<   y)Environmentstrimplementation_nameimplementation_versionos_nameplatform_machineplatform_releaseplatform_systemplatform_versionpython_full_versionplatform_python_implementationpython_versionsys_platformN)r   r   r   __annotations__r   r    r!   r&   r&   1   s    >
 L
      %(' 9r    r&   c                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   )resultslhsoprhsnormalized_extras        r!   _normalize_extra_valuesr>   y   s     '!*e$qzRc8$g)=0;()CX&399+?0;()C"c\
Nr    c                   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)firstN)_format_marker).0ms     r!   	<genexpr>z!_format_marker.<locals>.<genexpr>   s     @A//@s    ())r6   listr7   r'   lenrB   join	serialize)markerrA   innerrD   s       r!   rB   rB      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:   r<   s     r!   <lambda>rR      s
    3#: r    c                
    | |vS rP   r   rQ   s     r!   rR   rR      s
    s#~ r    )inznot in<z<=z==z!=z>=>zdict[str, Operator]
_operatorsc           	     "   	 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   rK   rL   containsr   rW   getr   )r:   r;   r<   specopers        r!   _eval_opr`      s    4",,.#!678 }}Sd}33  
 'NN2<<>:D|!JrfDuSG1"MNNS>s   *? 	A
Ac                4    | dk(  rt        d |D              S |S )Nr5   c              3  2   K   | ]  }t        |        y wrP   r   )rC   vs     r!   rE   z_normalize.<locals>.<genexpr>   s     :a&q):   )r7   )keyvaluess     r!   
_normalizerg      s#    
 g~:6::: Mr    c                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)re   )andorrk   c              3  2   K   | ]  }t        |        y wrP   )all)rC   items     r!   rE   z$_evaluate_markers.<locals>.<genexpr>   s     ,Ts4y,rd   )r6   rI   r7   r'   append_evaluate_markersr   r8   rg   r`   any)
markersenvironmentgroupsrM   r:   r;   r<   environment_key	lhs_value	rhs_values
             r!   rp   rp      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    c                    | j                    d| j                   d| j                   }| j                  }|dk7  r||d   t	        | j
                        z   z  }|S )Nr[   finalr   )majorminormicroreleaselevelr'   serial)infoversionkinds      r!   format_full_versionr      sW    Adjj\4::,7G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 )Nr[      )r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   )r   sysimplementationr   nameosplatformmachinereleasesystemr1   python_implementationrK   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                  >    e Zd ZddZd	dZd	dZd
dZddZdddZy)r   c                    	 t        t        |            | _        y # t        $ r}t	        t        |            |d }~ww xY wrP   )r>   _parse_marker_markersr   r   r'   )selfrM   es      r!   __init__zMarker.__init__  s;    	/3M&4IJDM" ! 	/A'Q.	/s    	?:?c                ,    t        | j                        S rP   )rB   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 rP   )hash	__class__r   r'   r   s    r!   __hash__zMarker.__hash__$  s     T^^,,c$i899r    c                \    t        |t              st        S t        |       t        |      k(  S rP   )r6   r   NotImplementedr'   )r   others     r!   __eq__zMarker.__eq__'  s%    %(!!4yCJ&&r    Nc                    t        dt                     }d|d<   ||j                  |       |d   d|d<   t        | j                  t        |            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.
        dict[str, str]rY   r5   )r   r   updaterp   r   _repair_python_full_version)r   rs   current_environments      r!   evaluatezMarker.evaluate-  sj     ##35H5JK')G$"&&{3 #7+3/1#G, MM67JK
 	
r    )rM   r'   returnNone)r   r'   )r   int)r   r   r   boolrP   )rs   zdict[str, str] | Noner   r   )	r   r   r   r   r   r   r   r   r   r   r    r!   r   r     s     /2-%:'
r    r   c                H    | d   j                  d      r| dxx   dz  cc<   | S )z
    Work around platform.python_version() returning something that is not PEP 440
    compliant for non-tagged Python builds.
    r/   +local)endswith)envs    r!   r   r   D  s.    
  !**3/!"g-"Jr    )r9   r   r   r   )T)rM   zlist[str] | MarkerAtom | strrA   zbool | Noner   r'   )r:   r'   r;   r   r<   r'   r   r   )rf   r'   re   r'   r   ztuple[str, ...])rr   r
   rs   r   r   r   )r   zsys._version_infor   r'   )r   r&   )r   r   r   r   )4
__future__r   operatorr   r   r   typingr   r   r   r   _parserr	   r
   r   r   r   r   r   
_tokenizerr   
specifiersr   r   utilsr   __all__r'   r   Operator
ValueErrorr   r   r   r&   r>   rB   ltleeqnegegtrW   r3   r`   rg   rp   r   r   r   r   r   r    r!   <module>r      s  
 #  	  
 1 1 @ @ 2 ) 3 $ S#J$%J * z E) EP" @D(1<: &-	
++
++
++
++		#
 		-<$=
 =
@r    