77
88
99from . import config
10+ from .util import PathLike
1011
1112
1213class Runner :
@@ -47,8 +48,8 @@ def display_name(self) -> str:
4748
4849
4950@functools .cache
50- def get_runners () -> list [Runner ]:
51- conf = config .get_bench_runner_config ().get ("runners" , {})
51+ def get_runners (cfgpath : PathLike | None = None ) -> list [Runner ]:
52+ conf = config .get_bench_runner_config (cfgpath ).get ("runners" , {})
5253 runners = []
5354 for nickname , section in conf .items ():
5455 runners .append (
@@ -73,27 +74,31 @@ def get_runners() -> list[Runner]:
7374 return runners
7475
7576
76- def get_runners_by_hostname () -> dict [str , Runner ]:
77- return {x .hostname : x for x in get_runners ()}
77+ def get_runners_by_hostname (cfgpath : PathLike | None = None ) -> dict [str , Runner ]:
78+ return {x .hostname : x for x in get_runners (cfgpath )}
7879
7980
80- def get_runners_by_nickname () -> dict [str , Runner ]:
81- return {x .nickname : x for x in get_runners ()}
81+ def get_runners_by_nickname (cfgpath : PathLike | None = None ) -> dict [str , Runner ]:
82+ return {x .nickname : x for x in get_runners (cfgpath )}
8283
8384
84- def get_nickname_for_hostname (hostname : str | None = None ) -> str :
85+ def get_nickname_for_hostname (
86+ hostname : str | None = None , cfgpath : PathLike | None = None
87+ ) -> str :
8588 # The envvar BENCHMARK_MACHINE_NICKNAME is used to override the machine that
8689 # results are reported for.
8790 if "BENCHMARK_MACHINE_NICKNAME" in os .environ :
8891 return os .environ ["BENCHMARK_MACHINE_NICKNAME" ]
89- return get_runner_for_hostname (hostname ).nickname
92+ return get_runner_for_hostname (hostname , cfgpath ).nickname
9093
9194
92- def get_runner_by_nickname (nickname : str ) -> Runner :
93- return get_runners_by_nickname ().get (nickname , unknown_runner )
95+ def get_runner_by_nickname (nickname : str , cfgpath : PathLike | None = None ) -> Runner :
96+ return get_runners_by_nickname (cfgpath ).get (nickname , unknown_runner )
9497
9598
96- def get_runner_for_hostname (hostname : str | None = None ) -> Runner :
99+ def get_runner_for_hostname (
100+ hostname : str | None = None , cfgpath : PathLike | None = None
101+ ) -> Runner :
97102 if hostname is None :
98103 hostname = socket .gethostname ()
99- return get_runners_by_hostname ().get (hostname , unknown_runner )
104+ return get_runners_by_hostname (cfgpath ).get (hostname , unknown_runner )
0 commit comments