Skip to content

Commit 436ff62

Browse files
authored
Merge pull request #681 from mfinean/fix/input-validation-and-cleanup
Fix input validation and clean up minor code issues
2 parents 970d4e2 + 5306e09 commit 436ff62

2 files changed

Lines changed: 19 additions & 6 deletions

File tree

bencher/bencher.py

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,9 @@
4141
from bencher.utils import params_to_str
4242
from bencher.sample_order import SampleOrder
4343

44+
# Default cache size for benchmark results (100 GB)
45+
DEFAULT_CACHE_SIZE_BYTES = int(100e9)
46+
4447
# Customize the formatter
4548
formatter = logging.Formatter("%(levelname)s: %(message)s")
4649
logging.basicConfig(level=logging.INFO, format="%(levelname)s %(message)s")
@@ -157,15 +160,15 @@ def __init__(
157160
If None, a new report will be created. Defaults to None.
158161
159162
Raises:
160-
AssertionError: If bench_name is not a string.
163+
TypeError: If bench_name is not a string.
161164
RuntimeError: If worker is a class type instead of an instance.
162165
"""
163-
assert isinstance(bench_name, str)
166+
if not isinstance(bench_name, str):
167+
raise TypeError(f"bench_name must be a string, got {type(bench_name).__name__}")
164168
self.bench_name = bench_name
165169
self.worker = None
166170
self.worker_class_instance = None
167171
self.worker_input_cfg = None
168-
self.worker_class_instance = None
169172
self.set_worker(worker, worker_input_cfg)
170173
self.run_cfg = run_cfg
171174
if report is None:
@@ -181,7 +184,7 @@ def __init__(
181184
self.sample_cache = None # store the results of each benchmark function call in a cache
182185
self.ds_dynamic = {} # A dictionary to store unstructured vector datasets
183186

184-
self.cache_size = int(100e9) # default to 100gb
187+
self.cache_size = DEFAULT_CACHE_SIZE_BYTES
185188

186189
# self.bench_cfg = BenchCfg()
187190

@@ -414,7 +417,8 @@ def plot_sweep(
414417
for k, v in input_vars_in.items():
415418
param_var = self.convert_vars_to_params(k, "input", run_cfg)
416419
if isinstance(v, list):
417-
assert len(v) > 0
420+
if len(v) == 0:
421+
raise ValueError(f"Input variable '{k}' cannot be an empty list")
418422
param_var = param_var.with_sample_values(v)
419423

420424
else:

bencher/utils_rerun.py

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,24 @@
11
import logging
2+
from importlib.metadata import version as get_package_version, PackageNotFoundError
23
from rerun.legacy_notebook import as_html
34
import rerun as rr
45
import panel as pn
56
from .utils import publish_file, gen_rerun_data_path
67

78

9+
def _get_rerun_version() -> str:
10+
"""Get the installed rerun package version."""
11+
try:
12+
return get_package_version("rerun-sdk")
13+
except PackageNotFoundError:
14+
return "0.20.1" # Fallback version
15+
16+
817
def rrd_to_pane(
918
url: str, width: int = 500, height: int = 600, version: str = None
1019
): # pragma: no cover
1120
if version is None:
12-
version = "0.20.1" # TODO find a better way of doing this
21+
version = _get_rerun_version()
1322
return pn.pane.HTML(
1423
f'<iframe src="https://app.rerun.io/version/{version}/?url={url}" width={width} height={height}></iframe>'
1524
)

0 commit comments

Comments
 (0)