
    wi1              	      P   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(	 	 	 	 d)dZ)d*dZ*	 d+	 	 	 	 	 d,dZ+d d d ejX                  ejX                  ejZ                  ejX                  d dZ.de/d <   d-d!Z0	 	 	 	 	 	 	 	 d.d"Z1	 	 	 	 	 	 d/d#Z2d0d$Z3d1d%Z4 G d& d'      Z5	 	 	 	 d2d(Z6y)3    )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y)r   zE
    An invalid marker was found, users should refer to PEP 508.
    N__name__
__module____qualname____doc__     P/var/www/feuerwehr-webapp/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   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<   y)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    >
 L
      %(' 9r-   r   c                :   t        | t              s| S | \  }}}t        |t              r0|j                  dk(  r!t	        |j                        }t        |      }n?t        |t              r/|j                  dk(  r t	        |j                        }t        |      }|||fS )Nextra)
isinstancetupler   valuer   r   )resultlhsoprhsnormalized_extras        r.   _normalize_extrasrF      s     fe$LCS#x SYY'%9,SYY7$%	C	"syyG';,SYY7$%C<r-   c                >    | D cg c]  }t        |       c}S c c}w )z!
    Normalize extra values.
    )rF   )resultsrs     r.   _normalize_extra_valuesrJ      s    
 +22Qa 222s   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    ())r>   listr?   r3   lenrN   join	serialize)markerrM   innerrP   s       r.   rN   rN      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,   rB   rD   s     r.   <lambda>r^      s
    3#: r-   c                
    | |vS r\   r,   r]   s     r.   r^   r^      s
    s#~ r-   c                     yNFr,   _lhs_rhss     r.   r^   r^          r-   c                     yra   r,   rb   s     r.   r^   r^      re   r-   )inznot in<z<=z==z!=z>=>zdict[str, Operator]
_operatorsc          	         |j                         }|t        v r#	 t        | |       }|j                  | d      S t
        j                  |      }|t        d|d| d|d       || |      S # t        $ r Y @w xY w)NT)prereleasesz
Undefined z on z and .)rX   MARKERS_REQUIRING_VERSIONr   containsr   rj   getr   )rB   rC   rD   keyop_strspecopers          r.   _eval_opru      s    \\^F
''	8xu-.D ==$=77&NN62D|!JrfDuSG1"MNNS>   		s   A1 1	A=<A=c                    |dk(  rt        |t              sJ d       | |fS |t        v rJt        |t              rt        |       t        |      fS t        |       |D ch c]  }t        |       c}fS | |fS c c}w )Nr=   zextra value must be a string)r>   r3   MARKERS_ALLOWING_SETr   )rB   rD   rq   vs       r.   
_normalizery      s     g~#s#C%CC#Sz
""c3%c*,=c,BCC%c*3,Oa->q-A,OPP 8O -Ps   A7c           	     D   g g}| D ]  }t        |t              r|d   j                  t        ||             3t        |t              r|\  }}}t        |t
              r|j                  }||   }|j                  }	n|j                  }|j                  }||   }	t        |t              sJ d       t        ||	|      \  }}	|d   j                  t        |||	|             |dk(  r|j                  g        |dk(  rt        d|       t        d |D              S )Nzlhs must be a string)rq   orandzUnexpected marker c              3  2   K   | ]  }t        |        y wr\   )all)rO   items     r.   rQ   z$_evaluate_markers.<locals>.<genexpr>  s     ,Ts4y,s   )r>   rU   append_evaluate_markersr?   r   r@   r3   ry   ru   	TypeErrorany)
markersenvironmentgroupsrY   rB   rC   rD   environment_key	lhs_value	rhs_values
             r.   r   r      s    !#tF =fd#2J/DE&!LCS#x("%))'8	II	II	"%))'8	i-E/EE-#-i#X Iy2Jhy"i_UVt^MM"u_0
;<</=2 ,V,,,r-   c                    | j                    d| j                   d| j                   }| j                  }|dk7  r||d   t	        | j
                        z   z  }|S )Nrm   finalr   )majorminormicroreleaselevelr3   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 )Nrm      )r4   r%   r5   r6   r#   r7   r8   r$   r9   r"   r:   )r   sysimplementationr   nameosplatformmachinereleasesystemr"   python_implementationrW   python_version_tuple)iverr4   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                  L    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                    g | _         	 t        t        |            | _         y # t        $ r}t	        t        |            |d }~ww xY wr\   )_markersrJ   _parse_markerr   r   r3   )selfrY   es      r.   __init__zMarker.__init__%  sD     %'	/3M&4IJDM" ! 	/A'Q.	/s   # 	AAAc                ,    t        | j                        S r\   )rN   r   r   s    r.   __str__zMarker.__str__C  s    dmm,,r-   c                <    d| j                   j                   d|  dS )Nrh   z('z')>)	__class__r(   r   s    r.   __repr__zMarker.__repr__F  s"    4>>**+2dV377r-   c                *    t        t        |             S r\   )hashr3   r   s    r.   __hash__zMarker.__hash__I  s    CIr-   c                \    t        |t              st        S t        |       t        |      k(  S r\   )r>   r   NotImplementedr3   )r   others     r.   __eq__zMarker.__eq__L  s%    %(!!4yCJ&&r-   Nc                >   t        dt                     }|dk(  r$|j                  t               t                      n
|dk(  rd|d<   |6|j                  |       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.
        !dict[str, str | AbstractSet[str]]r   )r    r!   r    r=   z
str | None)r
   r   update	frozensetr   r   r   _repair_python_full_version)r   r   contextcurrent_environmentr=   s        r.   evaluatezMarker.evaluateR  s      #/1D1F
 k!&& {ik '  
"+-("&&{3-- \+>w+GHKP/@/GVX#G, MM67JK
 	
r-   )rY   r3   returnNone)r   r3   )r   int)r   objectr   bool)Nr   )r   z+Mapping[str, str | AbstractSet[str]] | Noner   r   r   r   )	r(   r)   r*   r   r   r   r   r   r   r,   r-   r.   r   r   $  sF    /<-8' DH#-%
@%
 !%
 
	%
r-   r   c                V    t        d| d         }|j                  d      r| d| d<   | S )z
    Work around platform.python_version() returning something that is not PEP 440
    compliant for non-tagged Python builds.
    r3   r$   +local)r
   endswith)envr$   s     r.   r   r   z  s=     uc*?&@A##C((;'<E%B!"Jr-   )rA   MarkerList | MarkerAtom | strr   r   )rH   r   r   r   )T)rY   zlist[str] | MarkerAtom | strrM   zbool | Noner   r3   )
rB   r3   rC   r   rD   str | AbstractSet[str]rq   r3   r   r   )rB   r3   rD   r   rq   r3   r   z"tuple[str, str | AbstractSet[str]])r   r   r   r   r   r   )r   zsys._version_infor   r3   )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__r3   r   Operatorr   rw   rn   
ValueErrorr   r   r   r   rF   rJ   rN   eqnerj   r;   ru   ry   r   r   r   r   r   r,   r-   r.   <module>r      s  
 #  	  
 R R R @ @ 2 ) 3 $ S%[%5 567=>@A "56  J * z E) EP)" 3 @D(1<: &-	!
++
++
++
++	!	#
 	"	)03'*--&G-	-B$S
 S
l
	*
&
r-   