264 lines
7.8 KiB
Python
264 lines
7.8 KiB
Python
from collections.abc import Callable, Mapping
|
|
from pprint import pprint as show
|
|
from typing import Any, Final, Never, TypeAlias, TypeVar, overload
|
|
from typing import Literal as L
|
|
|
|
from _typeshed import FileDescriptorOrPath
|
|
|
|
from .cfuncs import errmess
|
|
|
|
__all__ = [
|
|
"applyrules",
|
|
"containscommon",
|
|
"containsderivedtypes",
|
|
"debugcapi",
|
|
"dictappend",
|
|
"errmess",
|
|
"gentitle",
|
|
"get_f2py_modulename",
|
|
"getargs2",
|
|
"getcallprotoargument",
|
|
"getcallstatement",
|
|
"getdimension",
|
|
"getfortranname",
|
|
"getpymethoddef",
|
|
"getrestdoc",
|
|
"getuseblocks",
|
|
"getusercode",
|
|
"getusercode1",
|
|
"hasbody",
|
|
"hascallstatement",
|
|
"hascommon",
|
|
"hasexternals",
|
|
"hasinitvalue",
|
|
"hasnote",
|
|
"hasresultnote",
|
|
"isallocatable",
|
|
"isarray",
|
|
"isarrayofstrings",
|
|
"isattr_value",
|
|
"ischaracter",
|
|
"ischaracter_or_characterarray",
|
|
"ischaracterarray",
|
|
"iscomplex",
|
|
"iscomplexarray",
|
|
"iscomplexfunction",
|
|
"iscomplexfunction_warn",
|
|
"iscstyledirective",
|
|
"isdouble",
|
|
"isdummyroutine",
|
|
"isexternal",
|
|
"isfunction",
|
|
"isfunction_wrap",
|
|
"isint1",
|
|
"isint1array",
|
|
"isinteger",
|
|
"isintent_aux",
|
|
"isintent_c",
|
|
"isintent_callback",
|
|
"isintent_copy",
|
|
"isintent_dict",
|
|
"isintent_hide",
|
|
"isintent_in",
|
|
"isintent_inout",
|
|
"isintent_inplace",
|
|
"isintent_nothide",
|
|
"isintent_out",
|
|
"isintent_overwrite",
|
|
"islogical",
|
|
"islogicalfunction",
|
|
"islong_complex",
|
|
"islong_double",
|
|
"islong_doublefunction",
|
|
"islong_long",
|
|
"islong_longfunction",
|
|
"ismodule",
|
|
"ismoduleroutine",
|
|
"isoptional",
|
|
"isprivate",
|
|
"isrequired",
|
|
"isroutine",
|
|
"isscalar",
|
|
"issigned_long_longarray",
|
|
"isstring",
|
|
"isstring_or_stringarray",
|
|
"isstringarray",
|
|
"isstringfunction",
|
|
"issubroutine",
|
|
"issubroutine_wrap",
|
|
"isthreadsafe",
|
|
"isunsigned",
|
|
"isunsigned_char",
|
|
"isunsigned_chararray",
|
|
"isunsigned_long_long",
|
|
"isunsigned_long_longarray",
|
|
"isunsigned_short",
|
|
"isunsigned_shortarray",
|
|
"isvariable",
|
|
"l_and",
|
|
"l_not",
|
|
"l_or",
|
|
"outmess",
|
|
"process_f2cmap_dict",
|
|
"replace",
|
|
"show",
|
|
"stripcomma",
|
|
"throw_error",
|
|
]
|
|
|
|
###
|
|
|
|
_VT = TypeVar("_VT")
|
|
_RT = TypeVar("_RT")
|
|
|
|
_Var: TypeAlias = Mapping[str, list[str]]
|
|
_ROut: TypeAlias = Mapping[str, str]
|
|
_F2CMap: TypeAlias = Mapping[str, Mapping[str, str]]
|
|
|
|
_Bool: TypeAlias = bool | L[0, 1]
|
|
_Intent: TypeAlias = L[
|
|
"INTENT_IN",
|
|
"INTENT_OUT",
|
|
"INTENT_INOUT",
|
|
"INTENT_C",
|
|
"INTENT_CACHE",
|
|
"INTENT_HIDE",
|
|
"INTENT_INPLACE",
|
|
"INTENT_ALIGNED4",
|
|
"INTENT_ALIGNED8",
|
|
"INTENT_ALIGNED16",
|
|
"OPTIONAL",
|
|
]
|
|
|
|
###
|
|
|
|
isintent_dict: dict[Callable[[_Var], _Bool], _Intent]
|
|
|
|
class F2PYError(Exception): ...
|
|
|
|
class throw_error:
|
|
mess: Final[str]
|
|
def __init__(self, /, mess: str) -> None: ...
|
|
def __call__(self, /, var: _Var) -> Never: ... # raises F2PYError
|
|
|
|
#
|
|
def l_and(*f: tuple[str, Callable[[_VT], _RT]]) -> Callable[[_VT], _RT]: ...
|
|
def l_or(*f: tuple[str, Callable[[_VT], _RT]]) -> Callable[[_VT], _RT]: ...
|
|
def l_not(f: tuple[str, Callable[[_VT], _RT]]) -> Callable[[_VT], _RT]: ...
|
|
|
|
#
|
|
def outmess(t: str) -> None: ...
|
|
def debugcapi(var: _Var) -> bool: ...
|
|
|
|
#
|
|
def hasinitvalue(var: _Var | str) -> bool: ...
|
|
def hasnote(var: _Var | str) -> bool: ...
|
|
def ischaracter(var: _Var) -> bool: ...
|
|
def ischaracterarray(var: _Var) -> bool: ...
|
|
def ischaracter_or_characterarray(var: _Var) -> bool: ...
|
|
def isstring(var: _Var) -> bool: ...
|
|
def isstringarray(var: _Var) -> bool: ...
|
|
def isstring_or_stringarray(var: _Var) -> bool: ...
|
|
def isarray(var: _Var) -> bool: ...
|
|
def isarrayofstrings(var: _Var) -> bool: ...
|
|
def isscalar(var: _Var) -> bool: ...
|
|
def iscomplex(var: _Var) -> bool: ...
|
|
def islogical(var: _Var) -> bool: ...
|
|
def isinteger(var: _Var) -> bool: ...
|
|
def isint1(var: _Var) -> bool: ...
|
|
def isint1array(var: _Var) -> bool: ...
|
|
def islong_long(var: _Var) -> _Bool: ...
|
|
def isunsigned(var: _Var) -> _Bool: ...
|
|
def isunsigned_char(var: _Var) -> _Bool: ...
|
|
def isunsigned_chararray(var: _Var) -> bool: ...
|
|
def isunsigned_short(var: _Var) -> _Bool: ...
|
|
def isunsigned_shortarray(var: _Var) -> bool: ...
|
|
def isunsigned_long_long(var: _Var) -> _Bool: ...
|
|
def isunsigned_long_longarray(var: _Var) -> bool: ...
|
|
def issigned_long_longarray(var: _Var) -> bool: ...
|
|
def isdouble(var: _Var) -> _Bool: ...
|
|
def islong_double(var: _Var) -> _Bool: ...
|
|
def islong_complex(var: _Var) -> _Bool: ...
|
|
def iscomplexarray(var: _Var) -> bool: ...
|
|
def isallocatable(var: _Var) -> bool: ...
|
|
def isattr_value(var: _Var) -> bool: ...
|
|
def isoptional(var: _Var) -> bool: ...
|
|
def isexternal(var: _Var) -> bool: ...
|
|
def isrequired(var: _Var) -> bool: ...
|
|
def isprivate(var: _Var) -> bool: ...
|
|
def isvariable(var: _Var) -> bool: ...
|
|
def isintent_in(var: _Var) -> _Bool: ...
|
|
def isintent_inout(var: _Var) -> bool: ...
|
|
def isintent_out(var: _Var) -> bool: ...
|
|
def isintent_hide(var: _Var) -> bool: ...
|
|
def isintent_nothide(var: _Var) -> bool: ...
|
|
def isintent_c(var: _Var) -> bool: ...
|
|
def isintent_cache(var: _Var) -> bool: ...
|
|
def isintent_copy(var: _Var) -> bool: ...
|
|
def isintent_overwrite(var: _Var) -> bool: ...
|
|
def isintent_callback(var: _Var) -> bool: ...
|
|
def isintent_inplace(var: _Var) -> bool: ...
|
|
def isintent_aux(var: _Var) -> bool: ...
|
|
|
|
#
|
|
def containsderivedtypes(rout: _ROut) -> L[0, 1]: ...
|
|
def containscommon(rout: _ROut) -> _Bool: ...
|
|
def hasexternals(rout: _ROut) -> bool: ...
|
|
def hasresultnote(rout: _ROut) -> _Bool: ...
|
|
def hasbody(rout: _ROut) -> _Bool: ...
|
|
def hascommon(rout: _ROut) -> bool: ...
|
|
def hasderivedtypes(rout: _ROut) -> bool: ...
|
|
def hascallstatement(rout: _ROut) -> bool: ...
|
|
def isroutine(rout: _ROut) -> bool: ...
|
|
def ismodule(rout: _ROut) -> bool: ...
|
|
def ismoduleroutine(rout: _ROut) -> bool: ...
|
|
def issubroutine(rout: _ROut) -> bool: ...
|
|
def issubroutine_wrap(rout: _ROut) -> _Bool: ...
|
|
def isfunction(rout: _ROut) -> bool: ...
|
|
def isfunction_wrap(rout: _ROut) -> _Bool: ...
|
|
def islogicalfunction(rout: _ROut) -> _Bool: ...
|
|
def islong_longfunction(rout: _ROut) -> _Bool: ...
|
|
def islong_doublefunction(rout: _ROut) -> _Bool: ...
|
|
def iscomplexfunction(rout: _ROut) -> _Bool: ...
|
|
def iscomplexfunction_warn(rout: _ROut) -> _Bool: ...
|
|
def isstringfunction(rout: _ROut) -> _Bool: ...
|
|
def isthreadsafe(rout: _ROut) -> bool: ...
|
|
def isdummyroutine(rout: _ROut) -> _Bool: ...
|
|
def iscstyledirective(f2py_line: str) -> bool: ...
|
|
|
|
# .
|
|
def getdimension(var: _Var) -> list[Any] | None: ...
|
|
def getfortranname(rout: _ROut) -> str: ...
|
|
def getmultilineblock(rout: _ROut, blockname: str, comment: _Bool = 1, counter: int = 0) -> str | None: ...
|
|
def getcallstatement(rout: _ROut) -> str | None: ...
|
|
def getcallprotoargument(rout: _ROut, cb_map: dict[str, str] = {}) -> str: ...
|
|
def getusercode(rout: _ROut) -> str | None: ...
|
|
def getusercode1(rout: _ROut) -> str | None: ...
|
|
def getpymethoddef(rout: _ROut) -> str | None: ...
|
|
def getargs(rout: _ROut) -> tuple[list[str], list[str]]: ...
|
|
def getargs2(rout: _ROut) -> tuple[list[str], list[str]]: ...
|
|
def getrestdoc(rout: _ROut) -> str | None: ...
|
|
|
|
#
|
|
def gentitle(name: str) -> str: ...
|
|
def stripcomma(s: str) -> str: ...
|
|
@overload
|
|
def replace(str: str, d: list[str], defaultsep: str = "") -> list[str]: ...
|
|
@overload
|
|
def replace(str: list[str], d: str, defaultsep: str = "") -> list[str]: ...
|
|
@overload
|
|
def replace(str: str, d: str, defaultsep: str = "") -> str: ...
|
|
|
|
#
|
|
def dictappend(rd: Mapping[str, object], ar: Mapping[str, object] | list[Mapping[str, object]]) -> dict[str, Any]: ...
|
|
def applyrules(rules: Mapping[str, object], d: Mapping[str, object], var: _Var = {}) -> dict[str, Any]: ...
|
|
|
|
#
|
|
def get_f2py_modulename(source: FileDescriptorOrPath) -> str: ...
|
|
def getuseblocks(pymod: Mapping[str, Mapping[str, Mapping[str, str]]]) -> list[str]: ...
|
|
def process_f2cmap_dict(
|
|
f2cmap_all: _F2CMap,
|
|
new_map: _F2CMap,
|
|
c2py_map: _F2CMap,
|
|
verbose: bool = False,
|
|
) -> tuple[dict[str, dict[str, str]], list[str]]: ...
|