
    Dg               	       p   U 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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"dedefdZ#	 d+deee         eef         de	e         defdZ$d d e j%        e j&        e j'        e j(        e j)        e j*        dZ+eeef         e,d<   dedededefdZ-dedede
ed f         fd!Z.d"ed#eeef         defd$Z/d%d&defd'Z0deeef         fd(Z1 G d) d*          Z2dS ),    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                       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__     F/var/www/sysmax/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   results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_valuesr2   5   s     '!*e$$ "qzRc8$$ 	*g)=)=0;;())CCX&& 	*39+?+?0;;())C"c\
Nr"   Tmarkerfirstc                    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)r4   N)_format_marker.0ms     r#   	<genexpr>z!_format_marker.<locals>.<genexpr>W   s/      @@A///@@@@@@r"    ()c                 6    g | ]}|                                 S r!   )	serializer8   s     r#   
<listcomp>z"_format_marker.<locals>.<listcomp>]   s     7771777r"   )r+   listr,   strlenr7   join)r3   r4   inners      r#   r7   r7   E   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.   r0   s     r#   <lambda>rJ   c   s
    3#: r"   c                 
    | |vS rH   r!   rI   s     r#   rJ   rJ   d   s
    s#~ r"   )inznot in<z<=z==z!=z>=>
_operatorsr.   r/   r0   c           	      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   rE   r@   containsr   rO   getr   )r.   r/   r0   specopers        r#   _eval_oprX   n   s    4",,..#!67788 }}Sd}333    
  *~~bllnn==D|!"Mr"M"M"M"MS"M"M"MNNN4S>>s   6A 
AAvalueskey.c                 D    | dk    rt          d |D                       S |S )Nr*   c              3   4   K   | ]}t          |          V  d S rH   r   )r9   vs     r#   r;   z_normalize.<locals>.<genexpr>   s+      ::a&q))::::::r"   )r,   )rZ   rY   s     r#   
_normalizer^   }   s1    
 g~~::6:::::: Mr"   markersenvironmentc                    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)rZ   )andorrd   c              3   4   K   | ]}t          |          V  d S rH   )all)r9   items     r#   r;   z$_evaluate_markers.<locals>.<genexpr>   s(      ,,Ts4yy,,,,,,r"   )r+   rB   r,   rC   append_evaluate_markersr   r-   r^   rX   any)
r_   r`   groupsr3   r.   r/   r0   environment_key	lhs_value	rhs_values
             r#   ri   ri      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"   infozsys._version_infoc                     d                     |           }| j        }|dk    r ||d         t          | j                  z   z  }|S )Nz{0.major}.{0.minor}.{0.micro}finalr   )formatreleaselevelrC   serial)ro   versionkinds      r#   format_full_versionrw      sH    -44T::G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 )NrS      )implementation_nameimplementation_versionos_nameplatform_machineplatform_releaseplatform_systemplatform_versionpython_full_versionplatform_python_implementationpython_versionsys_platform)rw   sysimplementationru   nameosplatformmachinereleasesystemr   python_implementationrE   python_version_tuple)iverrz   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eddfdZdefdZdefdZdefdZde	de
fd	Zdd
eeeef                  de
fdZdS )r   r3   r(   Nc                     	 t          t          |                    | _        d S # t          $ r"}t	          t          |                    |d }~ww xY wrH   )r2   _parse_marker_markersr   r   rC   )selfr3   es      r#   __init__zMarker.__init__   sY    	/3M&4I4IJJDMMM" ! 	/ 	/ 	/A''Q.	/s   !% 
AAAc                 *    t          | j                  S rH   )r7   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"   c                 R    t          | j        j        t          |           f          S rH   )hash	__class__r   rC   r   s    r#   __hash__zMarker.__hash__   s     T^,c$ii8999r"   otherc                 z    t          |t                    st          S t          |           t          |          k    S rH   )r+   r   NotImplementedrC   )r   r   s     r#   __eq__zMarker.__eq__   s1    %(( 	"!!4yyCJJ&&r"   r`   c                     t                      }d|d<   |"|                    |           |d         d|d<   t          | j        |          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*   )r   updateri   r   )r   r`   current_environments      r#   evaluatezMarker.evaluate   s`     233')G$"&&{333 #7+3/1#G, 0CDDDr"   rH   )r   r   r   rC   r   r   r   intr   r   boolr   r   r   r   r!   r"   r#   r   r      s        /s /t / / / /2- - - - -%# % % % %:# : : : :'C 'D ' ' ' 'E EHT#s(^$< E E E E 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__rC   r   Operator
ValueErrorr   r   r   r2   r7   ltleeqnegegtrO   __annotations__rX   r^   ri   rw   r   r   r!   r"   r#   <module>r      si  
  				  



 D D D D D D D D D D D D D D D D D D                * ) ) ) ) ) 3 3 3 3 3 3 3 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 ;E ;E ;E ;E ;E ;E ;E ;Er"   