
    cPi1              	      *   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
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eee         f         gef         Z e	d         Z!ddhZ"h dZ# G d de$          Z% G d de$          Z& G d de$          Z' G d de          Z(dBdZ)dCdZ*	 dDdEd$Z+d% d& d' ej,        ej,        ej-        ej,        d( d)Z.d*e/d+<   dFd3Z0dGd5Z1dHd9Z2dId<Z3dJd=Z4 G d> d?          Z5dKdAZ6dS )L    )annotationsN)AbstractSetCallableLiteralMapping	TypedDictUnioncast   )
MarkerAtom
MarkerListOpValueVariable)parse_marker)ParserSyntaxError)InvalidSpecifier	Specifiercanonicalize_name)EnvironmentEvaluateContextInvalidMarkerMarkerUndefinedComparisonUndefinedEnvironmentNamedefault_environment)metadata	lock_filerequirementextrasdependency_groups>   python_versionplatform_releasepython_full_versionimplementation_versionc                      e Zd ZdZdS )r   zE
    An invalid marker was found, users should refer to PEP 508.
    N__name__
__module____qualname____doc__     e/home/jaya/work/projects/VOICE-AGENT/VIET/agent-env/lib/python3.11/site-packages/packaging/markers.pyr   r   (              r.   r   c                      e Zd ZdZdS )r   zP
    An invalid operation was attempted on a value that doesn't support it.
    Nr(   r-   r.   r/   r   r   .   r0   r.   r   c                      e Zd ZdZdS )r   z\
    A name was attempted to be used that does not exist inside of the
    environment.
    Nr(   r-   r.   r/   r   r   4   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<   dS )r   strimplementation_namer&   os_nameplatform_machiner$   platform_systemplatform_versionr%   platform_python_implementationr#   sys_platformN)r)   r*   r+   __annotations__r-   r.   r/   r   r   ;   s         >
 LLL
      (''' 9 r.   r   resultMarkerList | MarkerAtom | strreturnc                T   t          | t                    s| S | \  }}}t          |t                    r/|j        dk    r$t	          |j                  }t          |          }nCt          |t                    r.|j        dk    r#t	          |j                  }t          |          }|||fS )Nextra)
isinstancetupler   valuer   r   )r=   lhsoprhsnormalized_extras        r/   _normalize_extrasrI      s     fe$$ LCS#x   &SY'%9%9,SY77$%%	C	"	" &syG';';,SY77$%%C<r.   resultsr   c                    d | D             S )z!
    Normalize extra values.
    c                ,    g | ]}t          |          S r-   )rI   ).0rs     r/   
<listcomp>z+_normalize_extra_values.<locals>.<listcomp>   s!    222Qa  222r.   r-   )rJ   s    r/   _normalize_extra_valuesrP      s    
 32'2222r.   Tmarkerlist[str] | MarkerAtom | strfirstbool | Noner4   c                   t          | t          t          t          f          sJ t          | t                    rJt	          |           dk    r7t          | d         t          t          f          rt          | d                   S t          | t                    r>d | D             }|rd                    |          S dd                    |          z   dz   S t          | t                    rd                    d | D                       S | S )Nr   r   c              3  8   K   | ]}t          |d           V  dS )F)rS   N)_format_markerrM   ms     r/   	<genexpr>z!_format_marker.<locals>.<genexpr>   s/      @@A///@@@@@@r.    ()c                6    g | ]}|                                 S r-   )	serializerX   s     r/   rO   z"_format_marker.<locals>.<listcomp>   s     7771777r.   )rB   listrC   r4   lenrW   join)rQ   rS   inners      r/   rW   rW      s    ftUC011111 	64  )KK1vay4-00  fQi(((&$ 	@@@@@ 	/88E??"%(3..	FE	"	" xx77777888r.   c                
    | |v S Nr-   rE   rG   s     r/   <lambda>rg      s
    3#: r.   c                
    | |vS re   r-   rf   s     r/   rg   rg      s
    s#~ r.   c                    dS NFr-   _lhs_rhss     r/   rg   rg          E r.   c                    dS rj   r-   rk   s     r/   rg   rg      rn   r.   )inznot in<z<=z==z!=z>=>zdict[str, Operator]
_operatorsrE   rF   r   rG   str | AbstractSet[str]keyboolc          	     4   |                                 }|t          v r;	 t          | |           }|                    | d          S # t          $ r Y nw xY wt
                              |          }|t          d|d| d|d           || |          S )NT)prereleasesz
Undefined z on z and .)r_   MARKERS_REQUIRING_VERSIONr   containsr   rs   getr   )rE   rF   rG   ru   op_strspecopers          r/   _eval_opr      s    \\^^F
'''	8---..D ==$=777   	 	 	D	
 'NN622D|!"Mr"M"M"M"MS"M"M"MNNN4S>>s   A	 	
AA"tuple[str, str | AbstractSet[str]]c                
   |dk    r#t          |t                    s
J d            | |fS |t          v rNt          |t                    rt          |           t          |          fS t          |           d |D             fS | |fS )NrA   zextra value must be a stringc                ,    h | ]}t          |          S r-   r   )rM   vs     r/   	<setcomp>z_normalize.<locals>.<setcomp>   s!    ,O,O,Oa->q-A-A,O,O,Or.   )rB   r4   MARKERS_ALLOWING_SETr   )rE   rG   ru   s      r/   
_normalizer      s     g~~#s##CC%CCC#Sz
"""c3 	Q%c**,=c,B,BCC%c**,O,O3,O,O,OPP 8Or.   markersenvironment!dict[str, str | AbstractSet[str]]c           	        g g}| D ]6}t          |t                    r*|d                             t          ||                     Bt          |t                    r|\  }}}t          |t
                    r|j        }||         }|j        }	n|j        }|j        }||         }	t          |t                    s
J d            t          ||	|          \  }}	|d                             t          |||	|                     |dk    r|                    g            |dk    r&t          d|          t          d |D                       S )Nzlhs must be a string)ru   orandzUnexpected marker c              3  4   K   | ]}t          |          V  d S re   )all)rM   items     r/   rZ   z$_evaluate_markers.<locals>.<genexpr>  s(      ,,Ts4yy,,,,,,r.   )rB   r`   append_evaluate_markersrC   r   rD   r4   r   r   	TypeErrorany)
r   r   groupsrQ   rE   rF   rG   environment_key	lhs_value	rhs_values
             r/   r   r      su    !#tF = =fd## 	=2J/DDEEEE&& 	=!LCS#x(( 9"%)'8	I		I	"%)'8	i--EE/EEE-#-i#X#X#X Iy2Jhy"i_UUUVVVVt^^MM"u__;;;<<<,,V,,,,,,r.   infosys._version_infoc                    | j          d| j         d| j         }| j        }|dk    r ||d         t	          | j                  z   z  }|S )Nry   finalr   )majorminormicroreleaselevelr4   serial)r   versionkinds      r/   format_full_versionr   
  sV    77dj774:7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                    t          j                    d d                   t          j        dS )Nry      )r5   r&   r6   r7   r$   r8   r9   r%   r:   r#   r;   )r   sysimplementationr   nameosplatformmachinereleasesystemr#   python_implementationrb   python_version_tuple)iverr5   s     r/   r   r     s    s19::D,12"&7$,..$,..#?,,$,..'688*2*H*J*J((8#@#B#B2A2#FGG  r.   c                  D    e Zd ZddZddZddZdd	ZddZ	 	 dddZdS )r   rQ   r4   r?   Nonec                    g | _         	 t          t          |                    | _         d S # t          $ r"}t	          t          |                    |d }~ww xY wre   )_markersrP   _parse_markerr   r   r4   )selfrQ   es      r/   __init__zMarker.__init__%  sb     %'	/3M&4I4IJJDMMM" ! 	/ 	/ 	/A''Q.	/s   !, 
AAAc                *    t          | j                  S re   )rW   r   r   s    r/   __str__zMarker.__str__C  s    dm,,,r.   c                (    d| j         j         d|  dS )Nrq   z('z')>)	__class__r)   r   s    r/   __repr__zMarker.__repr__F  s     74>*77d7777r.   intc                :    t          t          |                     S re   )hashr4   r   s    r/   __hash__zMarker.__hash__I  s    CIIr.   otherobjectrv   c                z    t          |t                    st          S t          |           t          |          k    S re   )rB   r   NotImplementedr4   )r   r   s     r/   __eq__zMarker.__eq__L  s1    %(( 	"!!4yyCJJ&&r.   Nr   r   +Mapping[str, str | AbstractSet[str]] | Nonecontextr   c                   t          dt                                }|dk    r0|                    t                      t                                 n|dk    rd|d<   |E|                    |           d|v r,t          d|d                   }|rt	          |          n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 *context* parameter specifies what
        context the markers are being evaluated for, which influences what markers
        are considered valid. Acceptable values are "metadata" (for core metadata;
        default), "lock_file", and "requirement" (i.e. all other situations).

        The environment is determined from the current Python process.
        r   r   )r!   r"   r    rA   Nz
str | None)r
   r   update	frozensetr   r   r   _repair_python_full_version)r   r   r   current_environmentrA   s        r/   evaluatezMarker.evaluateR  s      #/1D1F1F
 
 k!!&& {{ikk '     
""+-("&&{333--- \+>w+GHHKP/X/@/G/G/GVX#G, M67JKK
 
 	
r.   )rQ   r4   r?   r   )r?   r4   )r?   r   )r   r   r?   rv   )Nr   )r   r   r   r   r?   rv   )	r)   r*   r+   r   r   r   r   r   r   r-   r.   r/   r   r   $  s        / / / /<- - - -8 8 8 8   ' ' ' ' DH#-%
 %
 %
 %
 %
 %
 %
r.   r   envc                l    t          d| d                   }|                    d          r| d| d<   | S )z
    Work around platform.python_version() returning something that is not PEP 440
    compliant for non-tagged Python builds.
    r4   r%   +local)r
   endswith)r   r%   s     r/   r   r   z  sJ     uc*?&@AA##C(( C(;%B%B%B!"Jr.   )r=   r>   r?   r>   )rJ   r   r?   r   )T)rQ   rR   rS   rT   r?   r4   )
rE   r4   rF   r   rG   rt   ru   r4   r?   rv   )rE   r4   rG   rt   ru   r4   r?   r   )r   r   r   r   r?   rv   )r   r   r?   r4   )r?   r   )r   r   r?   r   )7
__future__r   operatorr   r   r   typingr   r   r   r   r   r	   r
   _parserr   r   r   r   r   r   r   
_tokenizerr   
specifiersr   r   utilsr   __all__r4   rv   Operatorr   r   rz   
ValueErrorr   r   r   r   rI   rP   rW   eqners   r<   r   r   r   r   r   r   r   r-   r.   r/   <module>r      sH  
 # " " " " " "  				  



 R R R R R R R R R R R R R R R R R R @ @ @ @ @ @ @ @ @ @ @ @ @ @ 2 2 2 2 2 2 ) ) ) ) ) ) 3 3 3 3 3 3 3 3 $ $ $ $ $ $   S%[%5 567=>@A "56        J       *       z   E E E E E) E E EP    3 3 3 3 @D    : &
%--	!	!
+
+
+
+	!	!	# 	#
 	 	 	 	   "   *- - - -B      $S
 S
 S
 S
 S
 S
 S
 S
l
 
 
 
 
 
r.   