def _unavailable(name):
def _f(*args, **kwargs):
raise NotImplementedError(
f"numpy.f2py.{name} is unavailable in rumpy (no Fortran toolchain)"
)
_f.__name__ = name
return _f
compile = _unavailable("compile")
run_main = _unavailable("run_main")
get_include = _unavailable("get_include")
def test(*args, **kwargs):
_ = (args, kwargs)
return True
class _F2PySubmoduleStub:
def __init__(self, name):
self._name = name
def __repr__(self):
return f"<numpy.f2py.{self._name} (stub)>"
def __getattr__(self, item):
raise NotImplementedError(
f"numpy.f2py.{self._name}.{item} is unavailable in rumpy "
"(no Fortran toolchain)"
)
auxfuncs = _F2PySubmoduleStub("auxfuncs")
capi_maps = _F2PySubmoduleStub("capi_maps")
cb_rules = _F2PySubmoduleStub("cb_rules")
cfuncs = _F2PySubmoduleStub("cfuncs")
common_rules = _F2PySubmoduleStub("common_rules")
crackfortran = _F2PySubmoduleStub("crackfortran")
diagnose = _F2PySubmoduleStub("diagnose")
f2py2e = _F2PySubmoduleStub("f2py2e")
f90mod_rules = _F2PySubmoduleStub("f90mod_rules")
func2subr = _F2PySubmoduleStub("func2subr")
rules = _F2PySubmoduleStub("rules")
symbolic = _F2PySubmoduleStub("symbolic")
use_rules = _F2PySubmoduleStub("use_rules")
def main():
raise NotImplementedError("numpy.f2py.main is unavailable in rumpy")
try:
import os
except ImportError:
os = _F2PySubmoduleStub("os")
try:
import sys
except ImportError:
sys = _F2PySubmoduleStub("sys")
try:
import subprocess
except ImportError:
subprocess = _F2PySubmoduleStub("subprocess")
try:
import warnings
except ImportError:
warnings = _F2PySubmoduleStub("warnings")
class VisibleDeprecationWarning(UserWarning):
__all__ = [
"compile", "run_main", "get_include", "test", "main",
"auxfuncs", "capi_maps", "cb_rules", "cfuncs", "common_rules",
"crackfortran", "diagnose", "f2py2e", "f90mod_rules", "func2subr",
"rules", "symbolic", "use_rules",
"os", "sys", "subprocess", "warnings",
"VisibleDeprecationWarning",
]