Source code for benchbuild.driver
#!/usr/bin/env python3
from benchbuild import settings
from benchbuild.utils import log
from plumbum import cli
[docs]class PollyProfiling(cli.Application):
"""Frontend for running/building the benchbuild study framework."""
VERSION = settings.CFG["version"].value()
_list_env = False
verbosity = cli.CountOf('-v', help="Enable verbose output")
debug = cli.Flag('-d', help="Enable debugging output")
[docs] def main(self, *args):
self.verbosity = self.verbosity if self.verbosity < 6 else 5
if self.debug:
self.verbosity = 3
settings.CFG["verbosity"] = self.verbosity
settings.CFG["debug"] = self.debug
log.configure()
log.set_defaults()
if settings.CFG["db"]["create_functions"].value():
from benchbuild.utils.schema import init_functions, Session
init_functions(Session())
if args:
print("Unknown command {0!r}".format(args[0]))
return 1
if not self.nested_command:
self.help()
[docs]def main(*args):
"""Main function."""
settings.update_env()
PollyProfiling.subcommand("bootstrap",
"benchbuild.bootstrap.BenchBuildBootstrap")
PollyProfiling.subcommand("run", "benchbuild.run.BenchBuildRun")
PollyProfiling.subcommand("log", "benchbuild.log.BenchBuildLog")
PollyProfiling.subcommand("test", "benchbuild.test.BenchBuildTest")
PollyProfiling.subcommand("slurm", "benchbuild.slurm.Slurm")
PollyProfiling.subcommand("report", "benchbuild.report.BenchBuildReport")
return PollyProfiling.run(*args)