|
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]]: ... |
|
|