+
    iB                      a  0 t $ ^ RIHt ^ RIt^ RIt^ RIt^ RIt^ RIHtH	t	H
t
HtHtHtHt ^RIHtHtHtHtHt ^RIHt ^RIHt ^RIHtHt ^RIHt . R7OtR R lt]	] ]] ]] ,          3,          .]!3,          t"]
R8,          t# RR0t$0 R9mt% ! R R
]&4      t' ! R R]&4      t( ! R R]&4      t) ! R R	]4      t*R R lt+R R lt,R:R R llt-RR RR R R! R"]P\                  R#]P\                  R$]P^                  R%]P\                  R&R' /t0R(]1R)&   R* R+ lt2R, R- lt3R. R/ lt4R0 R1 lt5R2 R3 lt6 ! R4 R4      t7R5 R6 lt8R# );    )annotationsN)AbstractSetCallableLiteralMapping	TypedDictUnioncast)
MarkerAtom
MarkerListOpValueVariable)parse_marker)ParserSyntaxError)InvalidSpecifier	Specifier)canonicalize_nameEnvironmentInvalidMarkerMarkerUndefinedComparisonUndefinedEnvironmentNamec                   V ^8  d   QhRR/# )   returnz	list[str] )formats   "]/home/piyush/.cache/uv/builds-v0/.tmpPfdyTF/lib/python3.14/site-packages/packaging/markers.py__annotate__r       s           c                     \         # N)__all__r   r!   r   __dir__r%      s    Nr!   extrasdependency_groupsc                      ] tR t^6tRtRtR# )r   zRaised when attempting to create a :class:`Marker` from invalid input.

This error indicates that the given marker string does not conform to the
:ref:`specification of dependency specifiers <pypug:dependency-specifiers>`.
r   N__name__
__module____qualname____firstlineno____doc____static_attributes__r   r!   r   r   r   6   s    r!   c                      ] tR t^>tRtRtR# )r   zRaised when evaluating an unsupported marker comparison.

This can happen when marker values are compared as versions but do not
conform to the :ref:`specification of version specifiers
<pypug:version-specifiers>`.
r   Nr)   r   r!   r   r   r   >   s    r!   c                      ] tR t^GtRtRtR# )r   zJRaised when evaluating a marker that references a missing environment key.r   Nr)   r   r!   r   r   r   G   s    Tr!   c                      ] tR t^Kt$ RtR]R&    R]R&    R]R&    R]R&    R]R&    R]R&    R]R	&    R]R
&    R]R&    R]R&    R]R&   RtR# )r   zx
A dictionary that represents a Python environment as captured by
:func:`default_environment`. All fields are required.
strimplementation_nameimplementation_versionos_nameplatform_machineplatform_releaseplatform_systemplatform_versionpython_full_versionplatform_python_implementationpython_versionsys_platformr   N)r*   r+   r,   r-   r.   __annotations__r/   r   r!   r   r   r   K   s    
 >
 L
      %(' 9r!   c                    V ^8  d   QhRRRR/# )r   resultzMarkerList | MarkerAtom | strr   r   )r   s   "r   r    r       s      )"r!   c                b   \        V \        4      '       g   V # V w  rp\        V\        4      '       d3   VP                  R 8X  d"   \	        VP                  4      p\        V4      pMG\        V\        4      '       d2   VP                  R 8X  d!   \	        VP                  4      p\        V4      pWV3# )extra)
isinstancetupler   valuer   r   )rA   lhsoprhsnormalized_extras   &    r   _normalize_extrasrK      s     fe$$LCS#x  SYY'%9,SYY7$%	C	"	"syyG';,SYY7$%C<r!   c                    V ^8  d   QhRRRR/# )r   resultsr   r   r   )r   s   "r   r    r       s     3 3Z 3J 3r!   c                B    V  Uu. uF  p\        V4      NK  	  up# u upi )z
Normalize extra values.
)rK   )rM   rs   & r   _normalize_extra_valuesrP      s"    
 +22'Qa '222s   c               $    V ^8  d   QhRRRRRR/# )r   markerzlist[str] | MarkerAtom | strfirstzbool | Noner   r3   r   )r   s   "r   r    r       s$      (1<r!   c                B   \        V \        \        \        34      '       g   Q h\        V \        4      '       dF   \	        V 4      ^8X  d6   \        V ^ ,          \        \        34      '       d   \        V ^ ,          4      # \        V \        4      '       dB   R V  4       pV'       d   RP                  V4      # RRP                  V4      ,           R,           # \        V \        4      '       d/   RP                  V  Uu. uF  q3P                  4       NK  	  up4      # V # u upi )   c              3  <   "   T F  p\        VR R7      x  K  	  R# 5i)F)rS   N)_format_marker).0ms   & r   	<genexpr>!_format_marker.<locals>.<genexpr>   s     @A//s    ())rD   listrE   r3   lenrW   join	serialize)rR   rS   innerrY   s   &&  r   rW   rW      s     ftUC01111 	64  K1vay4-00fQi((&$@@88E?"%(3..	FE	"	"xx71788 8s   ;Dinc                
    W9   # r#   r   rG   rI   s   &&r   <lambda>rg      s    3:r!   znot inc                
    W9  # r#   r   rf   s   &&r   rg   rg      s    s~r!   <c                    R # Fr   _lhs_rhss   &&r   rg   rg          Er!   z<=z==z!=z>=>c                    R # rk   r   rl   s   &&r   rg   rg      ro   r!   zdict[str, Operator]
_operatorsc          
     ,    V ^8  d   QhRRRRRRRRRR	/# )
r   rG   r3   rH   r   rI   str | AbstractSet[str]keyr   boolr   )r   s   "r   r    r       s0      # 2 $: C D r!   c          	        VP                  4       pV\        9   d$    \        V V 24      pVP                  V R R7      # \
        P                  V4      pVf   \        RV: RV : RV: R24      hV! W4      #   \         d     LFi ; i)T)prereleasesz
Undefined z on z and .)rb   MARKERS_REQUIRING_VERSIONr   containsr   rr   getr   )rG   rH   rI   ru   op_strspecopers   &&&$   r   _eval_opr      s    \\^F
''	8xu-.D ==$=77&NN62D|!JrfDuSG1"MNN>   		s   A8 8BBc               (    V ^8  d   QhRRRRRRRR/# )r   rG   r3   rI   rt   ru   r   z"tuple[str, str | AbstractSet[str]]r   )r   s   "r   r    r       s,      	)03'r!   c                   VR 8X  d!   \        V\        4      '       g   Q R4       hW3# V\        9   dS   \        V\        4      '       d   \        V 4      \        V4      3# \        V 4      V Uu0 uF  p\        V4      kK  	  up3# W3# u upi )rC   zextra value must be a string)rD   r3   MARKERS_ALLOWING_SETr   )rG   rI   ru   vs   &&& r   
_normalizer      s     g~#s##C%CC#z
""c3%c*,=c,BCC%c*3,O3a->q-A3,OPP 8O -Ps   -Bc               $    V ^8  d   QhRRRRRR/# )r   markersr   environment!dict[str, str | AbstractSet[str]]r   rv   r   )r   s   "r   r    r       s$     - --&G-	-r!   c           
        . .pV  EF2  p\        V\        4      '       d$   VR	,          P                  \        W14      4       K=  \        V\        4      '       d   Vw  rEp\        V\
        4      '       d"   VP                  pW,          pVP                  p	M VP                  pVP                  pW,          p	\        V\        4      '       g   Q R4       h\        WVR7      w  rVR	,          P                  \        WWR7      4       EK  VR8X  d   VP                  . 4       EK  VR8X  d   EK&  \        RV: 24      h	  \        ;QJ d    R V 4       F  '       g   K   R# 	  R# ! R V 4       4      # )
rU   zlhs must be a string)ru   orandzUnexpected marker c              3  8   "   T F  p\        V4      x  K  	  R # 5ir#   )all)rX   items   & r   rZ   $_evaluate_markers.<locals>.<genexpr>  s     ,VTs4yyVs   TF)rD   r_   append_evaluate_markersrE   r   rF   r3   r   r   	TypeErrorany)
r   r   groupsrR   rG   rH   rI   environment_key	lhs_value	rhs_values
   &&        r   r   r      s-    !#tFfd##2J/DE&&!LCS#x(("%))'8	II	II	"%))'8	i--E/EE-#-i#X I2JhyiUVt^MM"u_0
;<</ 2 3,V,33,3,3,V,,,r!   c                    V ^8  d   QhRRRR/# )r   infozsys._version_infor   r3   r   )r   s   "r   r    r      s      0 S r!   c                    V P                    R V P                   R V P                   2pV P                  pVR8w  d*   W^ ,          \	        V P
                  4      ,           ,          pV# )ry   final)majorminormicroreleaselevelr3   serial)r   versionkinds   &  r   _format_full_versionr     sU    Adjj\4::,7GDw7S---Nr!   c                   V ^8  d   QhRR/# )r   r   r   r   )r   s   "r   r    r    '  s      [ r!   c                    \        \        P                  P                  4      p \        P                  P                  pRVRV R\
        P                  R\        P                  ! 4       R\        P                  ! 4       R\        P                  ! 4       R\        P                  ! 4       R\        P                  ! 4       R	\        P                  ! 4       R
RP                  \        P                  ! 4       R,          4      R\        P                  /# )zReturn the default marker environment for the current Python process.

This is the base environment used by :meth:`Marker.evaluate`.
r4   r5   r6   r7   r8   r9   r:   r;   r<   r=   ry   :Nr   Nr>   )r   sysimplementationr   nameosplatformmachinereleasesystemr=   python_implementationra   python_version_tuple)iverr4   s     r   default_environmentr   '  s    
   2 2 : :;D,,112 $277H,,.H,,.8??,H,,.x668((*H*H*J#((8#@#@#B2#FG r!   c                      ] tR tRtRtRtR R lt]R R l4       tR R lt	R	 R
 lt
R R ltR R ltR R ltR R ltR R ltR R ltRR R lltRtR# )r   i=  a  Represents a parsed dependency marker expression.

Marker expressions are parsed according to the
:ref:`specification of dependency specifiers <pypug:dependency-specifiers>`.

:param marker: The string representation of a marker expression.
:raises InvalidMarker: If ``marker`` cannot be parsed.

Instances are safe to serialize with :mod:`pickle`. They use a stable
format so the same pickle can be loaded in future packaging releases.

.. versionchanged:: 26.2

    Added a stable pickle format. Pickles created with packaging 26.2+ can
    be unpickled with future releases.  Backward compatibility with pickles
    from packaging < 26.2 is supported but may be removed in a future
    release.
c                    V ^8  d   QhRRRR/# )r   rR   r3   r   Noner   )r   s   "r   r    Marker.__annotate__S  s     / /s /t /r!   c                	    . V n          \        \        V4      4      V n         R #   \         d   p\	        \        T4      4      ThR p?ii ; ir#   )_markersrP   _parse_markerr   r   r3   )selfrR   es   && r   __init__Marker.__init__S  sD     %'	/3M&4IJDM" ! 	/A'Q.	/s   $ A	AA	c                    V ^8  d   QhRRRR/# )r   r   r   r   r   r   )r   s   "r   r    r   r  s      J 6 r!   c                4    V P                  V 4      pWn        V# )zCreate a Marker instance from a pre-parsed marker tree.

This avoids re-parsing serialised marker strings when combining markers.
)__new__r   )clsr   news   && r   _from_markersMarker._from_markersq  s     kk#
r!   c                   V ^8  d   QhRR/# r   r   r3   r   )r   s   "r   r    r   {  s     - - -r!   c                	,    \        V P                  4      # r#   )rW   r   r   s   &r   __str__Marker.__str__{  s    dmm,,r!   c                   V ^8  d   QhRR/# r   r   )r   s   "r   r    r   ~  s     = =# =r!   c                	P    R V P                   P                   R\        V 4      : R2# )ri   r]   z)>)	__class__r*   r3   r   s   &r   __repr__Marker.__repr__~  s&    4>>**+1SYM<<r!   c                   V ^8  d   QhRR/# )r   r   intr   )r   s   "r   r    r     s      # r!   c                	*    \        \        V 4      4      # r#   )hashr3   r   s   &r   __hash__Marker.__hash__  s    CIr!   c                    V ^8  d   QhRRRR/# )r   otherobjectr   rv   r   )r   s   "r   r    r     s     ' 'F 't 'r!   c                	h    \        V\        4      '       g   \        # \        V 4      \        V4      8H  # r#   )rD   r   NotImplementedr3   r   r   s   &&r   __eq__Marker.__eq__  s(    %((!!4yCJ&&r!   c                   V ^8  d   QhRR/# r   r   )r   s   "r   r    r     s      c r!   c                	    \        V 4      # r#   )r3   r   s   &r   __getstate__Marker.__getstate__  s     4yr!   c                    V ^8  d   QhRRRR/# )r   stater   r   r   r   )r   s   "r   r    r     s     A A& AT Ar!   c                	.   \        V\        4      '       d    \        \        V4      4      V n        R# \        V\        4      '       d/   RV9   d(   VR,          p\        V\        4      '       d	   W0n        R# \        V\        4      '       dY   \        V4      ^8X  dI   Vw  rE\        V\        4      '       d/   RV9   d(   VR,          p\        V\        4      '       d	   W0n        R# \        R V: 24      h  \
         d   p\        R T: 24      ThRp?ii ; i)zCannot restore Marker from Nr   )rD   r3   rP   r   r   r   r   dictr_   rE   r`   )r   r   excr   _	slot_dicts   &&    r   __setstate__Marker.__setstate__  s    eS!!R 7e8L M eT""zU':J'G'4(( 'eU##E
a LA)T**zY/F#J/gt,,$+M5eY?@@# % R"=eY GHcQRs   C4 4D?DDc                    V ^8  d   QhRRRR/# r   r   r   r   r   )r   s   "r   r    r     s     J JV J Jr!   c                	    \        V\        4      '       g   \        # V P                  V P                  R VP                  .4      # )r   rD   r   r   r   r   r   s   &&r   __and__Marker.__and__  s5    %((!!!!4==%"HIIr!   c                    V ^8  d   QhRRRR/# r   r   )r   s   "r   r    r     s     I IF Iv Ir!   c                	    \        V\        4      '       g   \        # V P                  V P                  R VP                  .4      # )r   r   r   s   &&r   __or__Marker.__or__  s5    %((!!!!4==$"GHHr!   Nc               $    V ^8  d   QhRRRRRR/# )r   r   z+Mapping[str, str | AbstractSet[str]] | NonecontextEvaluateContextr   rv   r   )r   s   "r   r    r     s(     .
 .
@.
 !.
 
	.
r!   c                d   \        R\        4       4      pVR8X  d%   VP                  \        4       \        4       R7       MVR8X  d   RVR&   VeD   VP                  V4       RV9   d,   \        RVR,          4      pV'       d   \	        V4      MRVR&   \        V P                  \        V4      4      # )a  Evaluate a marker.

Return the boolean from evaluating this marker against the environment.
The environment is determined from the current Python process unless
passed in explicitly.

:param environment: Mapping containing keys and values to override the
   detected environment.
:param EvaluateContext context: The context in which the marker is
    evaluated, which influences what marker names are considered valid.
    Accepted values are ``"metadata"`` (for core metadata; default),
    ``"lock_file"``, and ``"requirement"`` (i.e. all other situations).
:raises UndefinedComparison: If the marker uses a comparison on values
    that are not valid versions per the :ref:`specification of version
    specifiers <pypug:version-specifiers>`.
:raises UndefinedEnvironmentName: If the marker references a value that
    is missing from the evaluation environment.
:returns: ``True`` if the marker matches, otherwise ``False``.

r   	lock_file)r&   r'   metadata rC   z
str | None)r
   r   update	frozensetr   r   r   _repair_python_full_version)r   r   r   current_environmentrC   s   &&&  r   evaluateMarker.evaluate  s    2 #/1D1F
 k!&& {ik '  
"+-("&&{3-- \+>w+GHKP/@/GVX#G, MM67JK
 	
r!   )r   )Nr   )r*   r+   r,   r-   r.   	__slots__r   classmethodr   r   r   r   r   r   r   r   r   r  r/   r   r!   r   r   r   =  s\    & I/<  -='
A0J
I
.
 .
r!   c                    V ^8  d   QhRRRR/# )r   envr   r   r   )r   s   "r   r    r      s     
 
	*
&
r!   c                j    \        RV R,          4      pVP                  R4      '       d	   V R2V R&   V # )zw
Work around platform.python_version() returning something that is not PEP 440
compliant for non-tagged Python builds.
r3   r;   +local)r
   endswith)r  r;   s   & r   r   r     s@     uc*?&@A##C(((;'<E%B!"Jr!   )r   r   r   r   r   r   r   )r   r   requirement>   r=   r8   r;   r5   )T)9__conditional_annotations__
__future__r   operatorr   r   r   typingr   r   r   r   r   r	   r
   _parserr   r   r   r   r   r   r   
_tokenizerr   
specifiersr   r   utilsr   r$   r%   r3   rv   Operatorr   r   rz   
ValueErrorr   r   r   r   rK   rP   rW   eqnerr   r?   r   r   r   r   r   r   r   )r  s   @r   <module>r     sI  
 # "  	  
 R R R @ @ 2 ) 3 $ S%[%5 567=>@A !"56  J * Uz UJ) JZ 3: 	
%-	!(++(++(++(++	!	#
 	"*-B,b
 b
J
r!   