Source code for experimental_lowqa.tasks.runtimepy
"""
A module for tasks related to the runtimepy project.
"""
# built-in
from pathlib import Path
# third-party
from vcorelib.task import Inbox, Outbox
from vcorelib.task.subprocess.run import SubprocessLogMixin
[docs]
class ArbiterTask(SubprocessLogMixin):
"""A task for running the runtime arbiter."""
default_requirements = {"vmklib.init", "venv", "python-editable"}
[docs]
async def run(self, inbox: Inbox, outbox: Outbox, *args, **kwargs) -> bool:
"""Generate ninja configuration files."""
cwd: Path = args[0]
configs = cwd.joinpath("local", "arbiter")
config = configs.joinpath(kwargs.get("config", "test") + ".yaml")
cli_args = [
str(
inbox["venv"]["venv{python_version}"]["bin"].joinpath(
"runtimepy"
)
)
]
if kwargs.get("verbose", False):
cli_args.append("--verbose")
cli_args += ["arbiter", str(config)]
return await self.exec(*cli_args)