§ |<ˆjkãó—dZddlZddlZddlZddlZddlZddlZddlmZddlm Z ddlm Z ddlm Z ddlm Z ddlm Z ejd krejZnejZd d gZGd „d ej¦«Zejd¬¦«Gd„d¦«¦«ZGd„d e¦«ZGd„d¦«ZdZdedejfd„Zdedejfd„Zdedejfd„Zdedejfd„ZGd„de e e!f¦«Z"Gd„d ¦«ZdS)aÍ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 ident: (\w|:|\+|-|\.|\[|\]|\\|/)+ The semantics are: - Empty expression evaluates to False. - ident evaluates to True of False according to a provided matcher function. - or/and/not evaluate according to the usual boolean semantics. éN)ÚCallable)ÚIterator)ÚMapping)ÚNoReturn)ÚOptional)ÚSequence)ééÚ ExpressionÚ ParseErrorcó*—eZdZdZdZdZdZdZdZdZ dS) Ú TokenTypezleft parenthesiszright parenthesisÚorÚandÚnotÚ identifierz end of inputN) Ú__name__Ú __module__Ú __qualname__ÚLPARENÚRPARENÚORÚANDÚNOTÚIDENTÚEOF©óúi/builddir/build/BUILD/cloudlinux-venv-1.0.12/venv/lib/python3.11/site-packages/_pytest/mark/expression.pyrr*s1€€€€€Ø €FØ €FØ €BØ €CØ €CØ €EØ €C€C€CrrT)Úfrozencó2—eZdZUdZeed<eed<eed<dS)ÚToken)ÚtypeÚvalueÚposr#r$r%N)rrrÚ __slots__rÚ__annotations__ÚstrÚintrrrr"r"4s0€€€€€€à(€IØ €O€O�OØ €J€J�JØ €H€H�H€H€Hrr"có2—eZdZdZdededdfd„Zdefd„ZdS)r z«The expression contains invalid syntax. :param column: The column in the line where the error occurred (1-based). :param message: A description of the error. ÚcolumnÚmessageÚreturnNcó"—||_||_dS©N©r+r,)Úselfr+r,s rÚ__init__zParseError.__init__Cs€ØˆŒ ؈Œ ˆ ˆ rcó&—d|j›d|j›�S)Nz at column z: r0©r1s rÚ__str__zParseError.__str__Gs€Ø9˜DœKÐ9Ð9¨4¬<Ð9Ð9Ð9r)rrrÚ__doc__r)r(r2r5rrrr r <sb€€€€€ððð ˜sð¨Sð°Tððððð:˜ð:ð:ð:ð:ð:ð:rcó€—eZdZdZdeddfd„Zdedeefd„Zddœd e d e de efd „Z d e e defd „ZdS)ÚScanner)ÚtokensÚcurrentÚinputr-Ncól—| |¦«|_t|j¦«|_dSr/)Úlexr9Únextr:)r1r;s rr2zScanner.__init__Ns(€Ø—h’h˜u‘o”oˆŒ ݘDœKÑ(Ô(ˆŒ ˆ ˆ rc#óRK—d}|t|¦«k�rq||dvr|dz }�nL||dkr$ttjd|¦«V—|dz }�n||dkr#ttjd|¦«V—|dz }nít jd||d…¦«}|r±| d¦«}|dkrttj||¦«V—ne|dkrttj ||¦«V—nA|d krttj ||¦«V—nttj ||¦«V—|t|¦«z }nt|dzd ||›d �¦«‚|t|¦«k�°qttj d |¦«V—dS) Nr)ú ú éú(ú)z(:?\w|:|\+|-|\.|\[|\]|\\|/)+rrrzunexpected character "ú"Ú)Úlenr"rrrÚreÚmatchÚgrouprrrrr r)r1r;r%rIr$s rr=z Scanner.lexRsÏèè€ØˆØ•C˜‘J”JÒÑØ�SŒz˜[Ð(Ð(Ø�q‘�‘Ø�s”˜sÒ"Ð"Ý�IÔ,¨c°3Ñ7Ô7Ð7Ð7Ð7Ø�q‘�‘Ø�s”˜sÒ"Ð"Ý�IÔ,¨c°3Ñ7Ô7Ð7Ð7Ð7Ø�q‘��åœÐ!@À%ÈÈÈÄ+ÑNÔN�ØðØ!ŸKšK¨™NœN�EØ ’}�}Ý#¥I¤L°%¸Ñ=Ô=Ð=Ð=Ð=Ð=Ø %š˜Ý#¥I¤M°5¸#Ñ>Ô>Ð>Ð>Ð>Ð>Ø %š˜Ý#¥I¤M°5¸#Ñ>Ô>Ð>Ð>Ð>Ð>å#¥I¤O°U¸CÑ@Ô@Ð@Ð@Ð@Ø�3˜u™:œ:Ñ%�C�Cå$ؘa™Ø>°°s´Ð>Ð>Ð>ñôðð/•C˜‘J”JÒÑõ6•I”M 2 sÑ+Ô+Ð+Ð+Ð+Ð+Ð+rF©Úrejectr#rLcó¼—|jj|ur5|j}|jtjurt |j¦«|_|S|r| |f¦«dSr/)r:r#rrr>r9rL)r1r#rLÚtokens rÚacceptzScanner.acceptqs_€Ø Œ<Ô  Ð $Ð $Ø”LˆEØŒz¥¤Ð.Ð.Ý# D¤KÑ0Ô0�” ؈LØ ð !Ø �KŠK˜˜Ñ Ô Ð ØˆtrÚexpectedc ó¼—t|jjdzd d d„|D¦«¦«|jjj¦«¦«‚)NrBzexpected {}; got {}z OR c3ó$K—|] }|jV—Œ dSr/)r$)Ú.0r#s rú z!Scanner.reject..s$èè€Ð<Ð<¨4˜DœJÐ<Ð<Ð<Ð<Ð<Ð9>ððð˜9ð°ðÀ(È5Ä/ððððð ˜x¨ Ô2ð °xð ð ð ð ð ð rr8ú$Úsr-có —| tj¦«rtd¦«}n0t |¦«}| tjd¬¦«t jt j|¦«¦«S)NFTrK)rOrrÚastNameConstantÚexprÚastÚfix_missing_locationsr )rYÚrets rÚ expressionr`‹se€Ø‡x‚x• ” ÑÔð-Ý'¨Ñ.Ô.ˆˆå�1‰gŒgˆØ �Š•” tˆÑ,Ô,Ð,Ý Ô $¥S¤^°CÑ%8Ô%8Ñ 9Ô 9Ð9rcó—t|¦«}| tj¦«rVt|¦«}t jt j¦«||g¦«}| tj¦«°V|Sr/)Úand_exprrOrrr]ÚBoolOpÚOr©rYr_Úrhss rr\r\”sh€Ý �1‰+Œ+€CØ �(Š(•9”<Ñ Ô ð/Ý�q‰kŒkˆÝŒj�œ™œ C¨ :Ñ.Ô.ˆð �(Š(•9”<Ñ Ô ð/ð €Jrcó—t|¦«}| tj¦«rVt|¦«}t jt j¦«||g¦«}| tj¦«°V|Sr/)Únot_exprrOrrr]rcÚAndres rrbrbœsh€Ý �1‰+Œ+€CØ �(Š(•9”=Ñ !Ô !ð0Ý�q‰kŒkˆÝŒj�œ™œ S¨# JÑ/Ô/ˆð �(Š(•9”=Ñ !Ô !ð0ð €Jrcó`—| tj¦«r3tjtj¦«t |¦«¦«S| tj¦«r2t|¦«}| tj d¬¦«|S| tj ¦«}|r3tj t|j ztj¦«¦«S| tjtjtj f¦«dS)NTrK)rOrrr]ÚUnaryOpÚNotrhrr\rrÚNameÚ IDENT_PREFIXr$ÚLoadrL)rYr_Úidents rrhrh¤s׀؇x‚x• ” ÑÔð3ÝŒ{�3œ7™9œ9¥h¨q¡k¤kÑ2Ô2Ð2؇x‚x• Ô Ñ!Ô!ðÝ�1‰gŒgˆØ �Š•Ô!¨$ˆÑ/Ô/Ð/؈ Ø �HŠH•Y”_Ñ %Ô %€EØ ð@ÝŒx�  u¤{Ñ2µC´H±J´JÑ?Ô?Ð?؇H‚H�iŒm�YÔ-­y¬Ð ?Ñ@Ô@Ð@Ð@Ð@rcóh—eZdZdZdeegefddfd„Zdedefd„Zde efd„Z de fd „Z dS) ÚMatcherAdapterzDAdapts a matcher function to a locals mapping as required by eval().Úmatcherr-Ncó—||_dSr/)rs)r1rss rr2zMatcherAdapter.__init__´s €ØˆŒ ˆ ˆ rÚkeycó`—| |tt¦«d…¦«Sr/)rsrGrn)r1rus rÚ __getitem__zMatcherAdapter.__getitem__·s'€Ø�|Š|˜C¥¥LÑ 1Ô 1Ð 3Ð 3Ô4Ñ5Ô5Ð5rcó—t¦«‚r/©ÚNotImplementedErrorr4s rÚ__iter__zMatcherAdapter.__iter__ºó€Ý!Ñ#Ô#Ð#rcó—t¦«‚r/ryr4s rÚ__len__zMatcherAdapter.__len__½r|r) rrrr6rr(rWr2rwrr{r)r~rrrrrrr±s£€€€€€ØNÐNð ¨#¨°¨Ô 5ð¸$ððððð6˜sð6 tð6ð6ð6ð6ð$˜( 3œ-ð$ð$ð$ð$ð$˜ð$ð$ð$ð$ð$ð$rrrcór—eZdZdZdZdejddfd„Zede ddfd„¦«Z d e e ge fde fd „Z dS) r zwA compiled match expression as used by -k and -m. The expression can be evaluated against different matchers. ©Úcoder�r-Ncó—||_dSr/r€)r1r�s rr2zExpression.__init__És €ØˆŒ ˆ ˆ rr;có|—tt|¦«¦«}t|dd¬¦«}t|¦«S)z\Compile a match expression. :param input: The input expression - one line. zÚeval)ÚfilenameÚmode)r`r8Úcompiler )r1r;Úastexprr�s rr‡zExpression.compileÌsD€õ �W U™^œ^Ñ,Ô,ˆÝ&Ø Ø0Øð ñ ô ˆõ ˜$ÑÔÐrrscóP—t|jdiit|¦«¦«}|S)a Evaluate the match expression. :param matcher: Given an identifier, should return whether it matches or not. Should be prepared to handle arbitrary strings as input. :returns: Whether the expression matches or not. Ú __builtins__)r„r�rr)r1rsr_s rÚevaluatezExpression.evaluateÚs)€õ˜œ ^°RÐ$8½.ÈÑ:QÔ:QÑRÔRˆØˆ r)rrrr6r&ÚtypesÚCodeTyper2Ú classmethodr(r‡rrWr‹rrrr r Ás¤€€€€€ððð €Ið˜Uœ^ð°ðððððð  ˜Sð   \ð  ð  ð  ñ„[ð  ð  ¨#¨°¨Ô 5ð ¸$ð ð ð ð ð ð r)#r6r]Ú dataclassesÚenumrHÚsysrŒÚtypingrrrrrrÚ version_infoÚConstantr[Ú NameConstantÚ__all__ÚEnumrÚ dataclassr"Ú Exceptionr r8rnr r`r\rbrhr(rWrrrrrúršsªðððð  € € € ØÐÐÐØ € € € Ø € € € Ø € € € Ø € € € ØÐÐÐÐÐØÐÐÐÐÐØÐÐÐÐÐØÐÐÐÐÐØÐÐÐÐÐØÐÐÐÐÐàÔ�vÒÐØ”l€O€OàÔ&€OðØð €ð ðððð�” ñôðð€Ô˜dÐ#Ñ#Ô#ð ð ð ð ð ñ ô ñ$Ô#ð ð :ð :ð :ð :ð :�ñ :ô :ð :ð7 ð7 ð7 ð7 ð7 ñ7 ô7 ð7 ðz€ ð:�'ð:˜cœnð:ð:ð:ð:ðˆGð˜œððððð�ð˜CœHððððð A�ð A˜CœHð Að Að Að Að $ð $ð $ð $ð $�W˜S $˜YÔ'ñ $ô $ð $ð #ð#ð#ð#ð#ñ#ô#ð#ð#ð#r