7
7
8
8
9
9
from . import config
10
+ from .util import PathLike
10
11
11
12
12
13
class Runner :
@@ -47,8 +48,8 @@ def display_name(self) -> str:
47
48
48
49
49
50
@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" , {})
52
53
runners = []
53
54
for nickname , section in conf .items ():
54
55
runners .append (
@@ -73,27 +74,31 @@ def get_runners() -> list[Runner]:
73
74
return runners
74
75
75
76
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 )}
78
79
79
80
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 )}
82
83
83
84
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 :
85
88
# The envvar BENCHMARK_MACHINE_NICKNAME is used to override the machine that
86
89
# results are reported for.
87
90
if "BENCHMARK_MACHINE_NICKNAME" in os .environ :
88
91
return os .environ ["BENCHMARK_MACHINE_NICKNAME" ]
89
- return get_runner_for_hostname (hostname ).nickname
92
+ return get_runner_for_hostname (hostname , cfgpath ).nickname
90
93
91
94
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 )
94
97
95
98
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 :
97
102
if hostname is None :
98
103
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