import operator from typing import Optional, Any, Literal, Callable from construct.core import * UniOperator = Literal[ operator.not_, operator.neg, operator.pos, ] BinOperator = Literal[ operator.add, operator.sub, operator.mul, operator.floordiv, operator.mod, operator.pow, operator.xor, operator.lshift, operator.rshift, operator.and_, operator.or_, operator.contains, operator.gt, operator.ge, operator.lt, operator.le, operator.eq, operator.ne, ] class ExprMixin(object): def __add__(self, other: Any) -> BinExpr: ... def __sub__(self, other: Any) -> BinExpr: ... def __mul__(self, other: Any) -> BinExpr: ... def __floordiv__(self, other: Any) -> BinExpr: ... def __truediv__(self, other: Any) -> BinExpr: ... __div__: Callable[[Any], BinExpr] def __mod__(self, other: Any) -> BinExpr: ... def __pow__(self, other: Any) -> BinExpr: ... def __xor__(self, other: Any) -> BinExpr: ... def __rshift__(self, other: Any) -> BinExpr: ... def __lshift__(self, other: Any) -> BinExpr: ... def __and__(self, other: Any) -> BinExpr: ... def __or__(self, other: Any) -> BinExpr: ... def __radd__(self, other: Any) -> BinExpr: ... def __rsub__(self, other: Any) -> BinExpr: ... def __rmul__(self, other: Any) -> BinExpr: ... def __rfloordiv__(self, other: Any) -> BinExpr: ... def __rtruediv__(self, other: Any) -> BinExpr: ... __rdiv__: Callable[[Any], BinExpr] def __rmod__(self, other: Any) -> BinExpr: ... def __rpow__(self, other: Any) -> BinExpr: ... def __rxor__(self, other: Any) -> BinExpr: ... def __rrshift__(self, other: Any) -> BinExpr: ... def __rlshift__(self, other: Any) -> BinExpr: ... def __rand__(self, other: Any) -> BinExpr: ... def __ror__(self, other: Any) -> BinExpr: ... def __neg__(self) -> UniExpr: ... def __pos__(self) -> UniExpr: ... def __invert__(self) -> UniExpr: ... __inv__: Callable[[], UniExpr] def __contains__(self, other: Any) -> BinExpr: ... def __gt__(self, other: Any) -> BinExpr: ... def __ge__(self, other: Any) -> BinExpr: ... def __lt__(self, other: Any) -> BinExpr: ... def __le__(self, other: Any) -> BinExpr: ... def __eq__(self, other: Any) -> BinExpr: ... def __ne__(self, other: Any) -> BinExpr: ... class UniExpr(ExprMixin): def __init__(self, op: UniOperator, operand: Any) -> None: ... def __call__(self, obj: Union[Context, dict[str, Any]], *args: Any) -> Any: ... class BinExpr(ExprMixin): def __init__(self, op: BinOperator, lhs: Any, rhs: Any) -> None: ... def __call__(self, obj: Union[Context, dict[str, Any]], *args: Any) -> Any: ... class Path(ExprMixin): def __init__(self, name: str, field: Optional[str] = ..., parent: Optional[Path] = ...) -> None: ... def __call__(self, obj: Union[Context, dict[str, Any]], *args: Any) -> Any: ... def __getattr__(self, name: str) -> Path: ... def __getitem__(self, name: str) -> Path: ... class Path2(ExprMixin): def __init__(self, name: str, index: Optional[int] = ..., parent: Optional[Path2] = ...) -> None: ... def __call__(self, *args: Any) -> Any: ... def __getitem__(self, index: int) -> Path2: ... class FuncPath(ExprMixin): def __init__(self, func: Callable[[Any], Any], operand: Optional[Any] = ...) -> None: ... def __call__(self, operand: Any, *args: Any) -> Any: ... this: Path obj_: Path list_: Path2 len_: FuncPath sum_: FuncPath min_: FuncPath max_: FuncPath abs_: FuncPath