Source code for pyslurmutils.client.job_io.remote

"""Remote execution: remote code declared on the client side with pure python builtins"""

from functools import lru_cache

try:
    from importlib.resources import files as resource_files
except ImportError:
    from importlib_resources import files as resource_files

# For testing: execute remote main locally
from ._file import main as file_main  # noqa F401
from ._tcp import main as tcp_main  # noqa F401


[docs] @lru_cache(3) def remote_script(name: str) -> str: package, *parts = __name__.split(".") filename = resource_files(package) for part in parts: filename /= part filename /= f"_{name}.py" with open(filename, "r") as file: file_content = "".join( [s for s in file.readlines() if not s.startswith("from ._base")] ) if name == "base": return file_content base = remote_script("base") return "".join( [ base, "\n", file_content, "\n", "if __name__ == '__main__':\n", " main()\n", "\n", ] )