
    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j%        ej&        ej'        ej(        ej)        ej*        d Z+d!e,d"<   d=d(Z-d>d,Z.d?d1Z/d@d4Z0dAd5Z1 G d6 d7          Z2dBd9Z3dS )C    )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dS )r   zE
    An invalid marker was found, users should refer to PEP 508.
    N__name__
__module____qualname____doc__     ]/var/www/html/nodeJS/PythonScripts/venv3.11/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&   1   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   )r4   lhsoprhsnormalized_extras        r!   _normalize_extra_valuesr?   y   s     '!*e$$ "qzRc8$$ 	*g)=)=0;;())CCX&& 	*39+?+?0;;())C"c\
Nr    Tmarkerlist[str] | MarkerAtom | strfirstbool | Noner'   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)rB   N)_format_marker.0ms     r!   	<genexpr>z!_format_marker.<locals>.<genexpr>   s/      @@A///@@@@@@r     ()c                6    g | ]}|                                 S r   )	serializerG   s     r!   
<listcomp>z"_format_marker.<locals>.<listcomp>   s     7771777r    )r8   listr9   r'   lenrF   join)r@   rB   inners      r!   rF   rF      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   r;   r=   s     r!   <lambda>rX      s
    3#: r    c                
    | |vS rV   r   rW   s     r!   rX   rX      s
    s#~ r    )inznot in<z<=z==z!=z>=>zdict[str, Operator]
_operatorsr;   r<   r   r=   boolc           	     d   	 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 .)r   rS   rO   containsr   r]   getr   )r;   r<   r=   specopers        r!   _eval_oprg      s    4",,..#!67788 }}Sd}333    
 'NN2<<>>::D|!"Mr"M"M"M"MS"M"M"MNNN4S>>s   6A 
AAvalueskeytuple[str, ...]c                D    | dk    rt          d |D                       S |S )Nr7   c              3  4   K   | ]}t          |          V  d S rV   r   )rH   vs     r!   rJ   z_normalize.<locals>.<genexpr>   s+      ::a&q))::::::r    )r9   )ri   rh   s     r!   
_normalizern      s1    
 g~~::6:::::: Mr    markersr
   environmentdict[str, str]c                   g g}| 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          ||	|          \  }}	|d                             t          |||	                     |dv sJ |dk    r|                    g            't          d |D                       S )N)ri   )andorru   c              3  4   K   | ]}t          |          V  d S rV   )all)rH   items     r!   rJ   z$_evaluate_markers.<locals>.<genexpr>   s(      ,,Ts4yy,,,,,,r    )r8   rQ   r9   r'   append_evaluate_markersr   r:   rn   rg   any)
ro   rp   groupsr@   r;   r<   r=   environment_key	lhs_value	rhs_values
             r!   rz   rz      sX    "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#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 )Nrb   finalr   )majorminormicroreleaselevelr'   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 )Nrb      )r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   )r   sysimplementationr   nameosplatformmachinereleasesystemr1   python_implementationrS   python_version_tuple)iverr(   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                  @    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   r@   r'   r5   Nonec                    	 t          t          |                    | _        d S # t          $ r"}t	          t          |                    |d }~ww xY wrV   )r?   _parse_marker_markersr   r   r'   )selfr@   es      r!   __init__zMarker.__init__  sY    	/3M&4I4IJJDMMM" ! 	/ 	/ 	/A''Q.	/s   !% 
AAAc                *    t          | j                  S rV   )rF   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 rV   )hash	__class__r   r'   r   s    r!   __hash__zMarker.__hash__$  s     T^,c$ii8999r    otherr   r^   c                z    t          |t                    st          S t          |           t          |          k    S rV   )r8   r   NotImplementedr'   )r   r   s     r!   __eq__zMarker.__eq__'  s1    %(( 	"!!4yyCJJ&&r    Nrp   dict[str, str] | Nonec                    t          dt                                }d|d<   |"|                    |           |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.
        rq   r`   r7   )r   r   updaterz   r   _repair_python_full_version)r   rp   current_environments      r!   evaluatezMarker.evaluate-  s|     ##35H5J5JKK')G$"&&{333 #7+3/1#G, M67JKK
 
 	
r    )r@   r'   r5   r   )r5   r'   )r5   r   )r   r   r5   r^   rV   )rp   r   r5   r^   )	r   r   r   r   r   r   r   r   r   r   r    r!   r   r     s        / / / /2- - - -% % % %: : : :' ' ' '
 
 
 
 
 
 
r    r   envc                \    | d                              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)r   s    r!   r   r   D  sB    
  !**3// .!"""g-"""Jr    )r4   r   r5   r   )T)r@   rA   rB   rC   r5   r'   )r;   r'   r<   r   r=   r'   r5   r^   )rh   r'   ri   r'   r5   rj   )ro   r
   rp   rq   r5   r^   )r   r   r5   r'   )r5   r&   )r   rq   r5   rq   )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?   rF   ltleeqnegegtr]   r3   rg   rn   rz   r   r   r   r   r   r    r!   <module>r      s  
 # " " " " " "  				  



 1 1 1 1 1 1 1 1 1 1 1 1 @ @ @ @ @ @ @ @ @ @ @ @ @ @ 2 2 2 2 2 2 ) ) ) ) ) ) 3 3 3 3 3 3 3 3 $ $ $ $ $ $   S#J$%    J       *       z   E E E E E) E E EP   " @D    : &
%--	
+
+
+
+		# 	#
 	 	 	 	   	 	 	 	- - - -<      $=
 =
 =
 =
 =
 =
 =
 =
@     r    