summaryrefslogtreecommitdiff
path: root/.venv/lib/python3.12/site-packages/numpy/f2py/symbolic.pyi
diff options
context:
space:
mode:
authorblackhao <13851610112@163.com>2025-08-22 02:51:50 -0500
committerblackhao <13851610112@163.com>2025-08-22 02:51:50 -0500
commit4aab4087dc97906d0b9890035401175cdaab32d4 (patch)
tree4e2e9d88a711ec5b1cfa02e8ac72a55183b99123 /.venv/lib/python3.12/site-packages/numpy/f2py/symbolic.pyi
parentafa8f50d1d21c721dabcb31ad244610946ab65a3 (diff)
2.0
Diffstat (limited to '.venv/lib/python3.12/site-packages/numpy/f2py/symbolic.pyi')
-rw-r--r--.venv/lib/python3.12/site-packages/numpy/f2py/symbolic.pyi221
1 files changed, 221 insertions, 0 deletions
diff --git a/.venv/lib/python3.12/site-packages/numpy/f2py/symbolic.pyi b/.venv/lib/python3.12/site-packages/numpy/f2py/symbolic.pyi
new file mode 100644
index 0000000..74e7a48
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/numpy/f2py/symbolic.pyi
@@ -0,0 +1,221 @@
+from collections.abc import Callable, Mapping
+from enum import Enum
+from typing import Any, Generic, ParamSpec, Self, TypeAlias, overload
+from typing import Literal as L
+
+from typing_extensions import TypeVar
+
+__all__ = ["Expr"]
+
+###
+
+_Tss = ParamSpec("_Tss")
+_ExprT = TypeVar("_ExprT", bound=Expr)
+_ExprT1 = TypeVar("_ExprT1", bound=Expr)
+_ExprT2 = TypeVar("_ExprT2", bound=Expr)
+_OpT_co = TypeVar("_OpT_co", bound=Op, default=Op, covariant=True)
+_LanguageT_co = TypeVar("_LanguageT_co", bound=Language, default=Language, covariant=True)
+_DataT_co = TypeVar("_DataT_co", default=Any, covariant=True)
+_LeftT_co = TypeVar("_LeftT_co", default=Any, covariant=True)
+_RightT_co = TypeVar("_RightT_co", default=Any, covariant=True)
+
+_RelCOrPy: TypeAlias = L["==", "!=", "<", "<=", ">", ">="]
+_RelFortran: TypeAlias = L[".eq.", ".ne.", ".lt.", ".le.", ".gt.", ".ge."]
+
+_ToExpr: TypeAlias = Expr | complex | str
+_ToExprN: TypeAlias = _ToExpr | tuple[_ToExprN, ...]
+_NestedString: TypeAlias = str | tuple[_NestedString, ...] | list[_NestedString]
+
+###
+
+class OpError(Exception): ...
+class ExprWarning(UserWarning): ...
+
+class Language(Enum):
+ Python = 0
+ Fortran = 1
+ C = 2
+
+class Op(Enum):
+ INTEGER = 10
+ REAL = 12
+ COMPLEX = 15
+ STRING = 20
+ ARRAY = 30
+ SYMBOL = 40
+ TERNARY = 100
+ APPLY = 200
+ INDEXING = 210
+ CONCAT = 220
+ RELATIONAL = 300
+ TERMS = 1_000
+ FACTORS = 2_000
+ REF = 3_000
+ DEREF = 3_001
+
+class RelOp(Enum):
+ EQ = 1
+ NE = 2
+ LT = 3
+ LE = 4
+ GT = 5
+ GE = 6
+
+ @overload
+ @classmethod
+ def fromstring(cls, s: _RelCOrPy, language: L[Language.C, Language.Python] = ...) -> RelOp: ...
+ @overload
+ @classmethod
+ def fromstring(cls, s: _RelFortran, language: L[Language.Fortran]) -> RelOp: ...
+
+ #
+ @overload
+ def tostring(self, /, language: L[Language.C, Language.Python] = ...) -> _RelCOrPy: ...
+ @overload
+ def tostring(self, /, language: L[Language.Fortran]) -> _RelFortran: ...
+
+class ArithOp(Enum):
+ POS = 1
+ NEG = 2
+ ADD = 3
+ SUB = 4
+ MUL = 5
+ DIV = 6
+ POW = 7
+
+class Precedence(Enum):
+ ATOM = 0
+ POWER = 1
+ UNARY = 2
+ PRODUCT = 3
+ SUM = 4
+ LT = 6
+ EQ = 7
+ LAND = 11
+ LOR = 12
+ TERNARY = 13
+ ASSIGN = 14
+ TUPLE = 15
+ NONE = 100
+
+class Expr(Generic[_OpT_co, _DataT_co]):
+ op: _OpT_co
+ data: _DataT_co
+
+ @staticmethod
+ def parse(s: str, language: Language = ...) -> Expr: ...
+
+ #
+ def __init__(self, /, op: Op, data: _DataT_co) -> None: ...
+
+ #
+ def __lt__(self, other: Expr, /) -> bool: ...
+ def __le__(self, other: Expr, /) -> bool: ...
+ def __gt__(self, other: Expr, /) -> bool: ...
+ def __ge__(self, other: Expr, /) -> bool: ...
+
+ #
+ def __pos__(self, /) -> Self: ...
+ def __neg__(self, /) -> Expr: ...
+
+ #
+ def __add__(self, other: Expr, /) -> Expr: ...
+ def __radd__(self, other: Expr, /) -> Expr: ...
+
+ #
+ def __sub__(self, other: Expr, /) -> Expr: ...
+ def __rsub__(self, other: Expr, /) -> Expr: ...
+
+ #
+ def __mul__(self, other: Expr, /) -> Expr: ...
+ def __rmul__(self, other: Expr, /) -> Expr: ...
+
+ #
+ def __pow__(self, other: Expr, /) -> Expr: ...
+
+ #
+ def __truediv__(self, other: Expr, /) -> Expr: ...
+ def __rtruediv__(self, other: Expr, /) -> Expr: ...
+
+ #
+ def __floordiv__(self, other: Expr, /) -> Expr: ...
+ def __rfloordiv__(self, other: Expr, /) -> Expr: ...
+
+ #
+ def __call__(
+ self,
+ /,
+ *args: _ToExprN,
+ **kwargs: _ToExprN,
+ ) -> Expr[L[Op.APPLY], tuple[Self, tuple[Expr, ...], dict[str, Expr]]]: ...
+
+ #
+ @overload
+ def __getitem__(self, index: _ExprT | tuple[_ExprT], /) -> Expr[L[Op.INDEXING], tuple[Self, _ExprT]]: ...
+ @overload
+ def __getitem__(self, index: _ToExpr | tuple[_ToExpr], /) -> Expr[L[Op.INDEXING], tuple[Self, Expr]]: ...
+
+ #
+ def substitute(self, /, symbols_map: Mapping[Expr, Expr]) -> Expr: ...
+
+ #
+ @overload
+ def traverse(self, /, visit: Callable[_Tss, None], *args: _Tss.args, **kwargs: _Tss.kwargs) -> Expr: ...
+ @overload
+ def traverse(self, /, visit: Callable[_Tss, _ExprT], *args: _Tss.args, **kwargs: _Tss.kwargs) -> _ExprT: ...
+
+ #
+ def contains(self, /, other: Expr) -> bool: ...
+
+ #
+ def symbols(self, /) -> set[Expr]: ...
+ def polynomial_atoms(self, /) -> set[Expr]: ...
+
+ #
+ def linear_solve(self, /, symbol: Expr) -> tuple[Expr, Expr]: ...
+
+ #
+ def tostring(self, /, parent_precedence: Precedence = ..., language: Language = ...) -> str: ...
+
+class _Pair(Generic[_LeftT_co, _RightT_co]):
+ left: _LeftT_co
+ right: _RightT_co
+
+ def __init__(self, /, left: _LeftT_co, right: _RightT_co) -> None: ...
+
+ #
+ @overload
+ def substitute(self: _Pair[_ExprT1, _ExprT2], /, symbols_map: Mapping[Expr, Expr]) -> _Pair[Expr, Expr]: ...
+ @overload
+ def substitute(self: _Pair[_ExprT1, object], /, symbols_map: Mapping[Expr, Expr]) -> _Pair[Expr, Any]: ...
+ @overload
+ def substitute(self: _Pair[object, _ExprT2], /, symbols_map: Mapping[Expr, Expr]) -> _Pair[Any, Expr]: ...
+ @overload
+ def substitute(self, /, symbols_map: Mapping[Expr, Expr]) -> _Pair: ...
+
+class _FromStringWorker(Generic[_LanguageT_co]):
+ language: _LanguageT_co
+
+ original: str | None
+ quotes_map: dict[str, str]
+
+ @overload
+ def __init__(self: _FromStringWorker[L[Language.C]], /, language: L[Language.C] = ...) -> None: ...
+ @overload
+ def __init__(self, /, language: _LanguageT_co) -> None: ...
+
+ #
+ def finalize_string(self, /, s: str) -> str: ...
+
+ #
+ def parse(self, /, inp: str) -> Expr | _Pair: ...
+
+ #
+ @overload
+ def process(self, /, s: str, context: str = "expr") -> Expr | _Pair: ...
+ @overload
+ def process(self, /, s: list[str], context: str = "expr") -> list[Expr | _Pair]: ...
+ @overload
+ def process(self, /, s: tuple[str, ...], context: str = "expr") -> tuple[Expr | _Pair, ...]: ...
+ @overload
+ def process(self, /, s: _NestedString, context: str = "expr") -> Any: ... # noqa: ANN401