
    Mh/              	      *   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" 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j*        ej+        ej,        ej-        ej.        ej/        d#Z0d$e1d%<   d@d,Z2dAd/Z3dBd4Z4dCd7Z5dDd8Z6 G d9 d:          Z7dEd<Z8dS )F    )annotationsN)AbstractSetAnyCallableLiteral	TypedDictUnioncast   )
MarkerAtom
MarkerListOpValueVariable)parse_marker)ParserSyntaxError)InvalidSpecifier	Specifiercanonicalize_name)EvaluateContextInvalidMarkerMarkerUndefinedComparisonUndefinedEnvironmentNamedefault_environment)metadata	lock_filerequirementextrasdependency_groupsc                      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__     Q/var/www/html/test/jupyter/venv/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   '   r+   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   -   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 )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/   4   s         >
 LLL
      (''' 9 r)   r/   resultsr   returnc                r   t          | d         t                    r| d         \  }}}t          |t                    r/|j        dk    r$t	          |j                  }t          |          }nCt          |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_valuesrH   |   s     '!*e$$ "qzRc8$$ 	*g)=)=0;;())CCX&& 	*39+?+?0;;())C"c\
Nr)   Tmarkerlist[str] | MarkerAtom | strfirstbool | Noner0   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)rK   N)_format_marker.0ms     r*   	<genexpr>z!_format_marker.<locals>.<genexpr>   s/      @@A///@@@@@@r)    ()c                6    g | ]}|                                 S r(   )	serializerP   s     r*   
<listcomp>z"_format_marker.<locals>.<listcomp>   s     7771777r)   )rA   listrB   r0   lenrO   join)rI   rK   inners      r*   rO   rO      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(   rD   rF   s     r*   <lambda>ra      s
    3#: r)   c                
    | |vS r_   r(   r`   s     r*   ra   ra      s
    s#~ r)   )inznot in<z<=z==z!=z>=>zdict[str, Operator]
_operatorsrD   rE   r   rF   str | AbstractSet[str]boolc           	        t          |t                    r^	 t          d                    |                                |g                    }|                    | d          S # t          $ r Y nw xY wt                              |                                          }|t          d|d| d|d           || |          S )N T)prereleasesz
Undefined z on z and .)
rA   r0   r   r\   rX   containsr   rf   getr   )rD   rE   rF   specopers        r*   _eval_oprq      s    #s 8	8RWWbllnnc%:;;<<D ==$=777   	 	 	D	
 'NN2<<>>::D|!"Mr"M"M"M"MS"M"M"MNNN4S>>s   6A$ $
A10A1key"tuple[str, str | AbstractSet[str]]c                >   |dk    r=t          |t                    s
J d            t          |           t          |          fS |t          v rNt          |t                    rt          |           t          |          fS t          |           d |D             fS | |fS )Nr@   zextra value must be a stringc                ,    h | ]}t          |          S r(   r   )rQ   vs     r*   	<setcomp>z_normalize.<locals>.<setcomp>   s!    ,O,O,Oa->q-A-A,O,O,Or)   )rA   r0   r   MARKERS_ALLOWING_SET)rD   rF   rr   s      r*   
_normalizery      s     g~~#s##CC%CCCC!#&&(9#(>(>??
"""c3 	Q%c**,=c,B,BCC%c**,O,O3,O,O,OPP 8Or)   markersr   environment!dict[str, str | AbstractSet[str]]c                   g g}| D ]D}t          |t          t          t          f          sJ t          |t                    r*|d                             t          ||                     ft          |t                    r|\  }}}t          |t                    r|j        }||         }|j        }	n|j        }|j        }||         }	t          |t                    s
J d            t          ||	|          \  }}	|d                             t          |||	                     #|dv sJ |dk    r|                    g            Ft          d |D                       S )Nzlhs must be a string)rr   )andorr   c              3  4   K   | ]}t          |          V  d S r_   )all)rQ   items     r*   rS   z$_evaluate_markers.<locals>.<genexpr>   s(      ,,Ts4yy,,,,,,r)   )rA   rZ   rB   r0   append_evaluate_markersr   rC   ry   rq   any)
rz   r{   groupsrI   rD   rE   rF   environment_key	lhs_value	rhs_values
             r*   r   r      sy    !#tF " "&4"455555fd## 	"2J/DDEEEE&& 	"!LCS#x(( 9"%)'8	I		I	"%)'8	i--EE/EEEE#-i#X#X#X Iy2Jhy"i@@AAAA]****~~b!!!,,V,,,,,,r)   infosys._version_infoc                    | j          d| j         d| j         }| j        }|dk    r ||d         t	          | j                  z   z  }|S )Nrl   finalr   )majorminormicroreleaselevelr0   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 )Nrl      )r1   r2   r3   r4   r5   r6   r7   r8   r9   r:   r;   )r   sysimplementationr   nameosplatformmachinereleasesystemr:   python_implementationr\   python_version_tuple)iverr1   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   rI   r0   r>   Nonec                    	 t          t          |                    | _        d S # t          $ r"}t	          t          |                    |d }~ww xY wr_   )rH   _parse_marker_markersr   r   r0   )selfrI   es      r*   __init__zMarker.__init__  sY    	/3M&4I4IJJDMMM" ! 	/ 	/ 	/A''Q.	/s   !% 
AAAc                *    t          | j                  S r_   )rO   r   r   s    r*   __str__zMarker.__str__,  s    dm,,,r)   c                    d|  dS )Nz	<Marker('z')>r(   r   s    r*   __repr__zMarker.__repr__/  s    $4$$$$r)   intc                R    t          | j        j        t          |           f          S r_   )hash	__class__r$   r0   r   s    r*   __hash__zMarker.__hash__2  s     T^,c$ii8999r)   otherr   rh   c                z    t          |t                    st          S t          |           t          |          k    S r_   )rA   r   NotImplementedr0   )r   r   s     r*   __eq__zMarker.__eq__5  s1    %(( 	"!!4yyCJJ&&r)   Nr   r{   dict[str, str] | Nonecontextr   c                P   t          dt                                }|dk    r0|                    t                      t                                 n|dk    rd|d<   |&|                    |           d|v r|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 *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   rj   r@   )r
   r   update	frozensetr   r   _repair_python_full_version)r   r{   r   current_environments       r*   evaluatezMarker.evaluate;  s      #/1D1F1F
 
 k!!&& {{ikk '     
""+-("&&{333 ---2Eg2N2V/1#G, M67JKK
 
 	
r)   )rI   r0   r>   r   )r>   r0   )r>   r   )r   r   r>   rh   )Nr   )r{   r   r   r   r>   rh   )	r$   r%   r&   r   r   r   r   r   r   r(   r)   r*   r   r     s        / / / /2- - - -% % % %: : : :' ' ' ' .2#-"
 "
 "
 "
 "
 "
 "
r)   r   envc                v    t          t          | 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.
    r8   +local)r
   r0   endswith)r   r8   s     r*   r   r   `  sJ     sC(=$>??##C(( C(;%B%B%B!"Jr)   )r=   r   r>   r   )T)rI   rJ   rK   rL   r>   r0   )rD   r0   rE   r   rF   rg   r>   rh   )rD   r0   rF   rg   rr   r0   r>   rs   )rz   r   r{   r|   r>   rh   )r   r   r>   r0   )r>   r/   )r   r|   r>   r|   )9
__future__r   operatorr   r   r   typingr   r   r   r   r   r	   r
   _parserr   r   r   r   r   r   r   
_tokenizerr   
specifiersr   r   utilsr   __all__r0   rh   Operatorr   rx   
ValueErrorr   r   r   r/   rH   rO   ltleeqnegegtrf   r<   rq   ry   r   r   r   r   r   r(   r)   r*   <module>r      s   
 # " " " " " "  				  



 N N N N N N N N N N N N N N N N N N @ @ @ @ @ @ @ @ @ @ @ @ @ @ 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   " @D    : &
%--	
+
+
+
+		# 	#
 	 	 	 	       (- - - -@      $K
 K
 K
 K
 K
 K
 K
 K
\
 
 
 
 
 
r)   