+
    -j+                    8  a  0 t $ R t^ RIHt ^ RIt^ RIHt ^ RIHt ^ RIHt ^ RI	t	^ RI
t
^ RIt^ RIt^ RIt^ RIHt ^ RIHt ^ RIHt ^ R	IHt ^ R
IHt ^ RIHt RR.tRtR]R&    ! R R]
P0                  4      t]	P4                  ! RR7       ! R R4      4       t ! R R4      tRtR R ltR R ltR R lt R  R! lt!R"RR#R$R%R/t"R& R' lt#R( R) lt$ ! R* R]4      t%]	P4                   ! R+ R,4      4       t& ! R- R.]]']&3,          4      t(] ! R/ R4      4       t)R# )0a  Evaluate match expressions, as used by `-k` and `-m`.

The grammar is:

expression: expr? EOF
expr:       and_expr ('or' and_expr)*
and_expr:   not_expr ('and' not_expr)*
not_expr:   'not' not_expr | '(' expr ')' | ident kwargs?

ident:      (\w|:|\+|-|\.|\[|\]|\\|/)+
kwargs:     ('(' name '=' value ( ', ' name '=' value )*  ')')
name:       a valid ident, but not a reserved keyword
value:      (unescaped) string literal | (-)?[0-9]+ | 'False' | 'True' | 'None'

The semantics are:

- Empty expression evaluates to False.
- ident evaluates to True or False according to a provided matcher function.
- ident with parentheses and keyword arguments evaluates to True or False according to a provided matcher function.
- or/and/not evaluate according to the usual boolean semantics.
)annotationsN)Iterator)Mapping)Sequence)Final)final)Literal)NoReturn)overload)Protocol
ExpressionExpressionMatcher<pytest match expression>r   	FILE_NAMEc                  >    ] tR t^3tRtRtRtRtRtRt	Rt
RtR	tR
tRtR# )	TokenTypezleft parenthesiszright parenthesisorandnot
identifierzend of input=zstring literal, N)__name__
__module____qualname____firstlineno__LPARENRPARENORANDNOTIDENTEOFEQUALSTRINGCOMMA__static_attributes__r       l/Users/mitch_tango/dev/rabbit-r1-livekit/agent/.venv/lib/python3.14/site-packages/_pytest/mark/expression.pyr   r   3   s4    F F	B
C
CE
CEFEr(   r   T)frozenc                  :    ] tR t^@t$ R	tR]R&   R]R&   R]R&   RtR# )
Tokenpostypevaluer   strintr   N)r-   r.   r/   )r   r   r   r   	__slots____annotations__r'   r   r(   r)   r,   r,   @   s    (I
OJ	Hr(   r,   c                      ] tR t^HtRtR R ltR R lt]R R l4       t]RR/R	 R
 ll4       tRR/R R lltR R lt	Rt
R# )Scannerc                    V ^8  d   QhRRRR/# )   inputr0   returnNoner   )formats   "r)   __annotate__Scanner.__annotate__K   s     ) )c )d )r(   c                	r    Wn         V P                  V4      V n        \        V P                  4      V n        R # N)r8   lextokensnextcurrent)selfr8   s   &&r)   __init__Scanner.__init__K   s&    
hhuoDKK(r(   c                    V ^8  d   QhRRRR/# )r7   r8   r0   r9   zIterator[Token]r   )r;   s   "r)   r<   r=   P   s     2, 2, 2, 2,r(   c              #  	  "   ^ pV\        V4      8  Ed   W,          R9   d   V^,          pK)  W,          R8X  d)   \        \        P                  RV4      x  V^,          pK^  W,          R8X  d)   \        \        P                  RV4      x  V^,          pK  W,          R8X  d)   \        \        P
                  RV4      x  V^,          pK  W,          R8X  d)   \        \        P                  RV4      x  V^,          pK  W,          ;pR9   d   VP                  W2^,           4      pVR8X  d    \        RV R2\        ^V^,           V34      hWV^,            pVP                  R4      ;pR8w  d   \        R	\        ^V^,           V34      h\        \        P                  WR4      x  V\        V4      ,          pEK  \        P                  ! R
WR 4      pV'       d   VP                  ^ 4      pVR8X  d   \        \        P                  WR4      x  MdVR8X  d   \        \        P                  WR4      x  M@VR8X  d   \        \        P                   WR4      x  M\        \        P"                  WR4      x  V\        V4      ,          pEK  \        RW,           R2\        ^V^,           V34      h\        \        P$                  RV4      x  R# 5i)    ()r   r   "zclosing quote "z" is missing\z4escaping with "\" not supported in marker expressionz(:?\w|:|\+|-|\.|\[|\]|\\|/)+Nr   r   r   zunexpected character " ) 	)'rL   )lenr,   r   r   r   r$   r&   findSyntaxErrorr   r%   rematchgroupr   r    r!   r"   r#   )rD   r8   r-   
quote_charend_quote_posr/   backslash_posrW   s   &&      r)   r@   Scanner.lexP   sN    CJz[(qs"I,,c377qs"I,,c377qs"IOOS#66qs"IOOS#66q %
**z9 %

:Qw ? B&%)*\B"AsQw6  MA$56%*ZZ%55M"<%O"A}q'8%@  I,,e99s5z!!@%+N!KKNE}#ILL%==%#IMM5>>%#IMM5>>#IOOU@@3u:%C%0A>"AsQw6  IMM2s++s   KKc               $    V ^8  d   QhRRRRRR/# )r7   r.   r   rejectzLiteral[True]r9   r,   r   )r;   s   "r)   r<   r=      s    MM9MM5Mr(   c               	    R # r?   r   rD   r.   r^   s   &&$r)   acceptScanner.accept   s    JMr(   r^   Fc               $    V ^8  d   QhRRRRRR/# )r7   r.   r   r^   zLiteral[False]r9   Token | Noner   )r;   s   "r)   r<   r=      s$      *8	r(   c               	    R # r?   r   r`   s   &&$r)   ra   rb      s     r(   c               $    V ^8  d   QhRRRRRR/# )r7   r.   r   r^   boolr9   rd   r   )r;   s   "r)   r<   r=      s!      9  , r(   c               	    V P                   P                  VJ dG   V P                   pVP                  \        P                  Jd   \	        V P
                  4      V n         V# V'       d   V P                  V34       R # r?   )rC   r.   r   r#   rB   rA   r^   )rD   r.   r^   tokens   &&$ r)   ra   rb      sV    <<$LLEzz.#DKK0LKK r(   c                    V ^8  d   QhRRRR/# )r7   expectedzSequence[TokenType]r9   r	   r   )r;   s   "r)   r<   r=      s     
 
2 
x 
r(   c                	    \        R P                  RP                  R V 4       4      V P                  P                  P
                  4      \        ^V P                  P                  ^,           V P                  34      h)zexpected {}; got {}z OR c              3  8   "   T F  qP                   x  K  	  R # 5ir?   )r/   ).0r.   s   & r)   	<genexpr>!Scanner.reject.<locals>.<genexpr>   s     <84JJ8s   )	rU   r;   joinrC   r.   r/   r   r-   r8   )rD   rk   s   &&r)   r^   Scanner.reject   sc    !((<8<<!!'' 4<<++a/<
 	
r(   )rC   r8   rA   N)r   r   r   r   r2   rE   r@   r
   ra   r^   r'   r   r(   r)   r5   r5   H   sR    .I)
2,h M M;@  
 
r(   r5   $c                    V ^8  d   QhRRRR/# )r7   sr5   r9   zast.Expressionr   )r;   s   "r)   r<   r<      s     : :' :n :r(   c                &   V P                  \        P                  4      '       d   \        P                  ! R 4      pM,\        V 4      pV P                  \        P                  RR7       \        P                  ! \        P                  ! V4      4      # )FTr^   )ra   r   r#   astConstantexprfix_missing_locationsr   ru   rets   & r)   
expressionr~      sZ    xx	U+1g	t,$$S^^C%899r(   c                    V ^8  d   QhRRRR/# r7   ru   r5   r9   zast.exprr   )r;   s   "r)   r<   r<      s      G  r(   c                    \        V 4      pV P                  \        P                  4      '       d9   \        V 4      p\        P
                  ! \        P                  ! 4       W.4      pK]  V# r?   )and_exprra   r   r   rx   BoolOpOrru   r}   rhss   &  r)   rz   rz      sD    
1+C
((9<<
 
 qkjjC:.Jr(   c                    V ^8  d   QhRRRR/# r   r   )r;   s   "r)   r<   r<      s       H r(   c                    \        V 4      pV P                  \        P                  4      '       d9   \        V 4      p\        P
                  ! \        P                  ! 4       W.4      pK]  V# r?   )not_exprra   r   r    rx   r   Andr   s   &  r)   r   r      sD    
1+C
((9==
!
!qkjjSJ/Jr(   c                    V ^8  d   QhRRRR/# r   r   )r;   s   "r)   r<   r<      s     A A AH Ar(   c                   V P                  \        P                  4      '       d4   \        P                  ! \        P
                  ! 4       \        V 4      4      # V P                  \        P                  4      '       d/   \        V 4      pV P                  \        P                  R R7       V# V P                  \        P                  4      pV'       d   \        P                  ! \        VP                  ,           \        P                  ! 4       4      pV P                  \        P                  4      '       dF   \        P                  ! V. \!        V 4      R7      pV P                  \        P                  R R7       V# TpV# V P#                  \        P                  \        P                  \        P                  34       R# )Trw   )funcargskeywordsN)ra   r   r!   rx   UnaryOpNotr   r   rz   r   r"   NameIDENT_PREFIXr/   LoadCall
all_kwargsr^   )ru   r}   identnames   &   r)   r   r      s   xx	{{3779hqk22xx	  !!1g	!!$/
HHY__%Exxu{{2CHHJ?88I$$%%((2
1FCHHY%%dH3 
 C
HHimmY--y?@r(   TrueFalseFr:   c                    V ^8  d   QhRRRR/# )r7   ru   r5   r9   zast.keywordr   )r;   s   "r)   r<   r<      s      G  r(   c                   V P                  \        P                  R R7      pVP                  P	                  4       '       g=   \        RVP                   2\        ^VP                  ^,           V P                  34      h\        P                  ! VP                  4      '       d>   \        RVP                   R2\        ^VP                  ^,           V P                  34      hV P                  \        P                  R R7       V P                  \        P                  4      ;p'       d   VP                  ^R	 pMV P                  \        P                  R R7      pVP                  ;pP                  4       '       g5   VP                  R4      '       d*   VR,          P                  4       '       d   \        V4      pMjVP                  \         9   d   \         VP                  ,          pM=\        RVP                   R2\        ^VP                  ^,           V P                  34      h\"        P                  ! VP                  \"        P$                  ! V4      4      pV# )
Trw   znot a valid python identifier z$unexpected reserved python keyword ``-:   NNzunexpected character/s "rL   rR   )ra   r   r"   r/   isidentifierrU   r   r-   r8   keyword	iskeywordr$   r%   isdigit
startswithr1   BUILTIN_MATCHERSrx   ry   )ru   keyword_namevalue_tokenr/   numberr}   s   &     r)   single_kwargr      s   88IOOD89L**,,,\-?-?,@A<++a/9
 	
 ++,,2<3E3E2FaH<++a/9
 	
 HHY__TH*hhy//00{0)4):):1R)@hhyth<!'''F0022c""vbz'9'9';';KE"22$[%6%67E*;+<+<*=Q?A{2AGG< 
 ++l((#,,u*=
>CJr(   c                    V ^8  d   QhRRRR/# )r7   ru   r5   r9   zlist[ast.keyword]r   )r;   s   "r)   r<   r<      s      ' / r(   c                    \        V 4      .pV P                  \        P                  4      '       d   VP	                  \        V 4      4       KA  V# r?   )r   ra   r   r&   appendr|   s   & r)   r   r      s6    ?
C
((9??
#
#

<?#Jr(   c                  &    ] tR t^tRtR R ltRtR# )r   a  A callable which, given an identifier and optional kwargs, should return
whether it matches in an :class:`Expression` evaluation.

Should be prepared to handle arbitrary strings as input.

If no kwargs are provided, the expression of the form `foo`.
If kwargs are provided, the expression is of the form `foo(1, b=True, "s")`.

If the expression is not supported (e.g. don't want to accept the kwargs
syntax variant), should raise :class:`~pytest.UsageError`.

Example::

    def matcher(name: str, /, **kwargs: str | int | bool | None) -> bool:
        # Match `cat`.
        if name == "cat" and not kwargs:
            return True
        # Match `dog(barks=True)`.
        if name == "dog" and kwargs == {"barks": False}:
            return True
        return False
c               $    V ^8  d   QhRRRRRR/# )r7   r   r0   kwargsstr | int | bool | Noner9   rg   r   )r;   s   "r)   r<   ExpressionMatcher.__annotate__  s    TTST/FT4Tr(   c               	    R # r?   r   )rD   r   r   s   "",r)   __call__ExpressionMatcher.__call__  s    QTr(   r   N)r   r   r   r   __doc__r   r'   r   r(   r)   r   r      s    . UTr(   c                  D    ] tR tRt$ R]R&   R]R&   R R ltR R	 ltR
tR# )MatcherNameAdapteri  r   matcherr0   r   c                   V ^8  d   QhRR/# )r7   r9   rg   r   )r;   s   "r)   r<   MatcherNameAdapter.__annotate__  s     ' '$ 'r(   c                	8    V P                  V P                  4      # r?   r   r   rD   s   &r)   __bool__MatcherNameAdapter.__bool__  s    ||DII&&r(   c                    V ^8  d   QhRRRR/# )r7   r   r   r9   rg   r   )r;   s   "r)   r<   r   "  s     1 1!8 1T 1r(   c                	<    V P                   ! V P                  3/ VB # r?   r   )rD   r   s   &,r)   r   MatcherNameAdapter.__call__"  s    ||DII000r(   r   N)r   r   r   r   r3   r   r   r'   r   r(   r)   r   r     s    
I'1 1r(   r   c                  J    ] tR tRtRtR R ltR R ltR R ltR	 R
 ltRt	R# )MatcherAdapteri&  zDAdapts a matcher function to a locals mapping as required by eval().c                    V ^8  d   QhRRRR/# )r7   r   r   r9   r:   r   )r;   s   "r)   r<   MatcherAdapter.__annotate__)  s       1 d r(   c                	    Wn         R # r?   r   rD   r   s   &&r)   rE   MatcherAdapter.__init__)  s    r(   c                    V ^8  d   QhRRRR/# )r7   keyr0   r9   r   r   )r;   s   "r)   r<   r   ,  s     W Ws W'9 Wr(   c                	P    \        V P                  V\        \        4      R  R7      # )Nr   )r   r   rS   r   )rD   r   s   &&r)   __getitem__MatcherAdapter.__getitem__,  s     !$,,S\ARAT=UVVr(   c                   V ^8  d   QhRR/# )r7   r9   zIterator[str]r   )r;   s   "r)   r<   r   /  s     $ $- $r(   c                	    \        4       hr?   NotImplementedErrorr   s   &r)   __iter__MatcherAdapter.__iter__/      !##r(   c                   V ^8  d   QhRR/# )r7   r9   r1   r   )r;   s   "r)   r<   r   2  s     $ $ $r(   c                	    \        4       hr?   r   r   s   &r)   __len__MatcherAdapter.__len__2  r   r(   r   N)
r   r   r   r   r   rE   r   r   r   r'   r   r(   r)   r   r   &  s    NW$$ $r(   r   c                  L    ] tR tRtRtR	tR R lt]R R l4       tR R lt	R	t
R
# )r   i6  zoA compiled match expression as used by -k and -m.

The expression can be evaluated against different matchers.
c               $    V ^8  d   QhRRRRRR/# )r7   r8   r0   codeztypes.CodeTyper9   r:   r   )r;   s   "r)   r<   Expression.__annotate__?  s!     ! !c ! !D !r(   c                	    Wn         W n        R # r?   )r8   _code)rD   r8   r   s   &&&r)   rE   Expression.__init__?  s    !
 
r(   c                    V ^8  d   QhRRRR/# )r7   r8   r0   r9   r   r   )r;   s   "r)   r<   r   E  s     ' 'C 'J 'r(   c                \    \        \        V4      4      p\        VRRR7      p\        W4      # )zCompile a match expression.

:param input: The input expression - one line.

:raises SyntaxError: If the expression is malformed.
r   eval)filenamemode)r~   r5   compiler   )clsr8   astexprr   s   &&  r)   r   Expression.compileD  s2     WU^,0

 %&&r(   c                    V ^8  d   QhRRRR/# )r7   r   r   r9   rg   r   )r;   s   "r)   r<   r   T  s     U U 1 Ud Ur(   c           	     X    \        \        V P                  R/ /\        V4      4      4      # )at  Evaluate the match expression.

:param matcher:
    A callback which determines whether an identifier matches or not.
    See the :class:`ExpressionMatcher` protocol for details and example.

:returns: Whether the expression matches or not.

:raises UsageError:
    If the matcher doesn't support the expression. Cannot happen if the
    matcher supports all expressions.
__builtins__)rg   r   r   r   r   s   &&r)   evaluateExpression.evaluateT  s&     Dnb%9>';RSTTr(   )r   r8   N)r   r   r   r   r   r2   rE   classmethodr   r   r'   r   r(   r)   r   r   6  s3    
 #I!
 ' 'U Ur(   )*__conditional_annotations__r   
__future__r   rx   collections.abcr   r   r   dataclassesenumr   rV   typestypingr   r   r   r	   r
   r   __all__r   r3   Enumr   	dataclassr,   r5   r   r~   rz   r   r   r   r   r   r   r   r0   r   r   )r   s   @r)   <module>r      s5  , # 
 $ # $    	         /	5 .
		 
 d#  $U
 U
v :A( D'5&$? DU U6 1 1 1$WS"445 $  *U *U *Ur(   