ס8 ~G d Z ddlZddlZddlZddlZddlZddlZddlmZ ddlm Z ddlm Z ddlmZ ddlmZ ddlm Z ej d k rej Znej Zd dgZ G d d ej Z ej d G d d Z G d de Z G d d ZdZdedej fdZdedej fdZdedej fdZdedej fdZ G d de e e!f Z" G d 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 * e Zd ZdZdZdZdZdZdZdZ dS ) TokenTypezleft parenthesiszright parenthesisorandnot identifierzend of inputN) __name__ __module____qualname__LPARENRPARENORANDNOTIDENTEOF i/builddir/build/BUILD/cloudlinux-venv-1.0.10/venv/lib/python3.11/site-packages/_pytest/mark/expression.pyr r * s1 F F B C CE CCCr r T)frozenc 2 e Zd ZU dZeed<