holobench 1.27.0__tar.gz → 1.28.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {holobench-1.27.0/holobench.egg-info → holobench-1.28.1}/PKG-INFO +4 -4
- {holobench-1.27.0 → holobench-1.28.1}/README.md +1 -1
- {holobench-1.27.0 → holobench-1.28.1}/bencher/bencher.py +48 -46
- {holobench-1.27.0 → holobench-1.28.1}/bencher/variables/parametrised_sweep.py +3 -1
- {holobench-1.27.0 → holobench-1.28.1/holobench.egg-info}/PKG-INFO +4 -4
- {holobench-1.27.0 → holobench-1.28.1}/holobench.egg-info/requires.txt +2 -2
- {holobench-1.27.0 → holobench-1.28.1}/pyproject.toml +12 -11
- {holobench-1.27.0 → holobench-1.28.1}/test/test_sweep_base.py +11 -0
- {holobench-1.27.0 → holobench-1.28.1}/LICENSE +0 -0
- {holobench-1.27.0 → holobench-1.28.1}/MANIFEST.in +0 -0
- {holobench-1.27.0 → holobench-1.28.1}/bencher/__init__.py +0 -0
- {holobench-1.27.0 → holobench-1.28.1}/bencher/bench_cfg.py +0 -0
- {holobench-1.27.0 → holobench-1.28.1}/bencher/bench_plot_server.py +0 -0
- {holobench-1.27.0 → holobench-1.28.1}/bencher/bench_report.py +0 -0
- {holobench-1.27.0 → holobench-1.28.1}/bencher/bench_runner.py +0 -0
- {holobench-1.27.0 → holobench-1.28.1}/bencher/caching.py +0 -0
- {holobench-1.27.0 → holobench-1.28.1}/bencher/class_enum.py +0 -0
- {holobench-1.27.0 → holobench-1.28.1}/bencher/example/__init__.py +0 -0
- {holobench-1.27.0 → holobench-1.28.1}/bencher/example/benchmark_data.py +0 -0
- {holobench-1.27.0 → holobench-1.28.1}/bencher/example/example_all.py +0 -0
- {holobench-1.27.0 → holobench-1.28.1}/bencher/example/example_categorical.py +0 -0
- {holobench-1.27.0 → holobench-1.28.1}/bencher/example/example_composable_container.py +0 -0
- {holobench-1.27.0 → holobench-1.28.1}/bencher/example/example_composable_container2.py +0 -0
- {holobench-1.27.0 → holobench-1.28.1}/bencher/example/example_consts.py +0 -0
- {holobench-1.27.0 → holobench-1.28.1}/bencher/example/example_custom_sweep.py +0 -0
- {holobench-1.27.0 → holobench-1.28.1}/bencher/example/example_custom_sweep2.py +0 -0
- {holobench-1.27.0 → holobench-1.28.1}/bencher/example/example_docs.py +0 -0
- {holobench-1.27.0 → holobench-1.28.1}/bencher/example/example_filepath.py +0 -0
- {holobench-1.27.0 → holobench-1.28.1}/bencher/example/example_float3D.py +0 -0
- {holobench-1.27.0 → holobench-1.28.1}/bencher/example/example_float_cat.py +0 -0
- {holobench-1.27.0 → holobench-1.28.1}/bencher/example/example_floats.py +0 -0
- {holobench-1.27.0 → holobench-1.28.1}/bencher/example/example_floats2D.py +0 -0
- {holobench-1.27.0 → holobench-1.28.1}/bencher/example/example_holosweep.py +0 -0
- {holobench-1.27.0 → holobench-1.28.1}/bencher/example/example_holosweep_objects.py +0 -0
- {holobench-1.27.0 → holobench-1.28.1}/bencher/example/example_holosweep_tap.py +0 -0
- {holobench-1.27.0 → holobench-1.28.1}/bencher/example/example_image.py +0 -0
- {holobench-1.27.0 → holobench-1.28.1}/bencher/example/example_levels.py +0 -0
- {holobench-1.27.0 → holobench-1.28.1}/bencher/example/example_levels2.py +0 -0
- {holobench-1.27.0 → holobench-1.28.1}/bencher/example/example_pareto.py +0 -0
- {holobench-1.27.0 → holobench-1.28.1}/bencher/example/example_sample_cache.py +0 -0
- {holobench-1.27.0 → holobench-1.28.1}/bencher/example/example_sample_cache_context.py +0 -0
- {holobench-1.27.0 → holobench-1.28.1}/bencher/example/example_simple.py +0 -0
- {holobench-1.27.0 → holobench-1.28.1}/bencher/example/example_simple_bool.py +0 -0
- {holobench-1.27.0 → holobench-1.28.1}/bencher/example/example_simple_cat.py +0 -0
- {holobench-1.27.0 → holobench-1.28.1}/bencher/example/example_simple_float.py +0 -0
- {holobench-1.27.0 → holobench-1.28.1}/bencher/example/example_simple_float2d.py +0 -0
- {holobench-1.27.0 → holobench-1.28.1}/bencher/example/example_strings.py +0 -0
- {holobench-1.27.0 → holobench-1.28.1}/bencher/example/example_time_event.py +0 -0
- {holobench-1.27.0 → holobench-1.28.1}/bencher/example/example_video.py +0 -0
- {holobench-1.27.0 → holobench-1.28.1}/bencher/example/example_workflow.py +0 -0
- {holobench-1.27.0 → holobench-1.28.1}/bencher/example/experimental/example_bokeh_plotly.py +0 -0
- {holobench-1.27.0 → holobench-1.28.1}/bencher/example/experimental/example_hover_ex.py +0 -0
- {holobench-1.27.0 → holobench-1.28.1}/bencher/example/experimental/example_hvplot_explorer.py +0 -0
- {holobench-1.27.0 → holobench-1.28.1}/bencher/example/experimental/example_interactive.py +0 -0
- {holobench-1.27.0 → holobench-1.28.1}/bencher/example/experimental/example_streamnd.py +0 -0
- {holobench-1.27.0 → holobench-1.28.1}/bencher/example/experimental/example_streams.py +0 -0
- {holobench-1.27.0 → holobench-1.28.1}/bencher/example/experimental/example_template.py +0 -0
- {holobench-1.27.0 → holobench-1.28.1}/bencher/example/experimental/example_updates.py +0 -0
- {holobench-1.27.0 → holobench-1.28.1}/bencher/example/experimental/example_vector.py +0 -0
- {holobench-1.27.0 → holobench-1.28.1}/bencher/example/meta/example_meta.py +0 -0
- {holobench-1.27.0 → holobench-1.28.1}/bencher/example/meta/example_meta_cat.py +0 -0
- {holobench-1.27.0 → holobench-1.28.1}/bencher/example/meta/example_meta_float.py +0 -0
- {holobench-1.27.0 → holobench-1.28.1}/bencher/example/meta/example_meta_levels.py +0 -0
- {holobench-1.27.0 → holobench-1.28.1}/bencher/example/optuna/example_optuna.py +0 -0
- {holobench-1.27.0 → holobench-1.28.1}/bencher/example/shelved/example_float2D_scatter.py +0 -0
- {holobench-1.27.0 → holobench-1.28.1}/bencher/example/shelved/example_float3D_cone.py +0 -0
- {holobench-1.27.0 → holobench-1.28.1}/bencher/example/shelved/example_kwargs.py +0 -0
- {holobench-1.27.0 → holobench-1.28.1}/bencher/job.py +0 -0
- {holobench-1.27.0 → holobench-1.28.1}/bencher/optuna_conversions.py +0 -0
- {holobench-1.27.0 → holobench-1.28.1}/bencher/plotting/__init__.py +0 -0
- {holobench-1.27.0 → holobench-1.28.1}/bencher/plotting/plot_filter.py +0 -0
- {holobench-1.27.0 → holobench-1.28.1}/bencher/plotting/plt_cnt_cfg.py +0 -0
- {holobench-1.27.0 → holobench-1.28.1}/bencher/results/__init__.py +0 -0
- {holobench-1.27.0 → holobench-1.28.1}/bencher/results/bench_result.py +0 -0
- {holobench-1.27.0 → holobench-1.28.1}/bencher/results/bench_result_base.py +0 -0
- {holobench-1.27.0 → holobench-1.28.1}/bencher/results/composable_container/__init__.py +0 -0
- {holobench-1.27.0 → holobench-1.28.1}/bencher/results/composable_container/composable_container_base.py +0 -0
- {holobench-1.27.0 → holobench-1.28.1}/bencher/results/composable_container/composable_container_panel.py +0 -0
- {holobench-1.27.0 → holobench-1.28.1}/bencher/results/composable_container/composable_container_video.py +0 -0
- {holobench-1.27.0 → holobench-1.28.1}/bencher/results/float_formatter.py +0 -0
- {holobench-1.27.0 → holobench-1.28.1}/bencher/results/holoview_result.py +0 -0
- {holobench-1.27.0 → holobench-1.28.1}/bencher/results/optuna_result.py +0 -0
- {holobench-1.27.0 → holobench-1.28.1}/bencher/results/panel_result.py +0 -0
- {holobench-1.27.0 → holobench-1.28.1}/bencher/results/plotly_result.py +0 -0
- {holobench-1.27.0 → holobench-1.28.1}/bencher/results/video_result.py +0 -0
- {holobench-1.27.0 → holobench-1.28.1}/bencher/results/video_summary.py +0 -0
- {holobench-1.27.0 → holobench-1.28.1}/bencher/utils.py +0 -0
- {holobench-1.27.0 → holobench-1.28.1}/bencher/variables/__init__.py +0 -0
- {holobench-1.27.0 → holobench-1.28.1}/bencher/variables/inputs.py +0 -0
- {holobench-1.27.0 → holobench-1.28.1}/bencher/variables/results.py +0 -0
- {holobench-1.27.0 → holobench-1.28.1}/bencher/variables/sweep_base.py +0 -0
- {holobench-1.27.0 → holobench-1.28.1}/bencher/variables/time.py +0 -0
- {holobench-1.27.0 → holobench-1.28.1}/bencher/video_writer.py +0 -0
- {holobench-1.27.0 → holobench-1.28.1}/bencher/worker_job.py +0 -0
- {holobench-1.27.0 → holobench-1.28.1}/holobench.egg-info/SOURCES.txt +0 -0
- {holobench-1.27.0 → holobench-1.28.1}/holobench.egg-info/dependency_links.txt +0 -0
- {holobench-1.27.0 → holobench-1.28.1}/holobench.egg-info/not-zip-safe +0 -0
- {holobench-1.27.0 → holobench-1.28.1}/holobench.egg-info/top_level.txt +0 -0
- {holobench-1.27.0 → holobench-1.28.1}/package.xml +0 -0
- {holobench-1.27.0 → holobench-1.28.1}/resource/bencher +0 -0
- {holobench-1.27.0 → holobench-1.28.1}/setup.cfg +0 -0
- {holobench-1.27.0 → holobench-1.28.1}/setup.py +0 -0
- {holobench-1.27.0 → holobench-1.28.1}/test/test_bch_p.py +0 -0
- {holobench-1.27.0 → holobench-1.28.1}/test/test_bench_examples.py +0 -0
- {holobench-1.27.0 → holobench-1.28.1}/test/test_bench_report.py +0 -0
- {holobench-1.27.0 → holobench-1.28.1}/test/test_bench_result_base.py +0 -0
- {holobench-1.27.0 → holobench-1.28.1}/test/test_bench_runner.py +0 -0
- {holobench-1.27.0 → holobench-1.28.1}/test/test_bencher.py +0 -0
- {holobench-1.27.0 → holobench-1.28.1}/test/test_cache.py +0 -0
- {holobench-1.27.0 → holobench-1.28.1}/test/test_class_enum.py +0 -0
- {holobench-1.27.0 → holobench-1.28.1}/test/test_combinations.py +0 -0
- {holobench-1.27.0 → holobench-1.28.1}/test/test_composable_container_base.py +0 -0
- {holobench-1.27.0 → holobench-1.28.1}/test/test_composable_container_video.py +0 -0
- {holobench-1.27.0 → holobench-1.28.1}/test/test_float_formatter.py +0 -0
- {holobench-1.27.0 → holobench-1.28.1}/test/test_job.py +0 -0
- {holobench-1.27.0 → holobench-1.28.1}/test/test_meta_tests.py +0 -0
- {holobench-1.27.0 → holobench-1.28.1}/test/test_parametrized_sweep.py +0 -0
- {holobench-1.27.0 → holobench-1.28.1}/test/test_plot_filter.py +0 -0
- {holobench-1.27.0 → holobench-1.28.1}/test/test_plot_server.py +0 -0
- {holobench-1.27.0 → holobench-1.28.1}/test/test_sample_cache.py +0 -0
- {holobench-1.27.0 → holobench-1.28.1}/test/test_sweep_vars.py +0 -0
- {holobench-1.27.0 → holobench-1.28.1}/test/test_utils.py +0 -0
- {holobench-1.27.0 → holobench-1.28.1}/test/test_vars.py +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: holobench
|
3
|
-
Version: 1.
|
3
|
+
Version: 1.28.1
|
4
4
|
Summary: A package for benchmarking the performance of arbitrary functions
|
5
5
|
Author-email: Austin Gregg-Smith <blooop@gmail.com>
|
6
6
|
Project-URL: Repository, https://github.com/dyson-ai/bencher
|
@@ -9,7 +9,7 @@ Project-URL: Documentation, https://bencher.readthedocs.io/en/latest/
|
|
9
9
|
Description-Content-Type: text/markdown
|
10
10
|
License-File: LICENSE
|
11
11
|
Requires-Dist: holoviews<=1.19.0,>=1.15
|
12
|
-
Requires-Dist: numpy<=
|
12
|
+
Requires-Dist: numpy<=2.0.0,>=1.0
|
13
13
|
Requires-Dist: param<=2.1.0,>=1.13.0
|
14
14
|
Requires-Dist: hvplot<=0.10.0,>=0.8
|
15
15
|
Requires-Dist: matplotlib<=3.9.0,>=3.6.3
|
@@ -31,7 +31,7 @@ Requires-Dist: pylint<=3.2.3,>=2.17.7; extra == "test"
|
|
31
31
|
Requires-Dist: pytest-cov<=5.0.0,>=4.1; extra == "test"
|
32
32
|
Requires-Dist: pytest<=8.2.2,>=7.4; extra == "test"
|
33
33
|
Requires-Dist: hypothesis<=6.103.2,>=6.82; extra == "test"
|
34
|
-
Requires-Dist: ruff<=0.4.
|
34
|
+
Requires-Dist: ruff<=0.4.10,>=0.0.280; extra == "test"
|
35
35
|
Requires-Dist: coverage<=7.5.3,>=7.2.7; extra == "test"
|
36
36
|
|
37
37
|
# Bencher
|
@@ -90,4 +90,4 @@ Bencher is designed to work with stochastic pure functions with no side effects.
|
|
90
90
|
|
91
91
|
### Example Output
|
92
92
|
|
93
|
-
https://dyson-ai.github.io/bencher/
|
93
|
+
https://dyson-ai.github.io/bencher/
|
@@ -280,40 +280,42 @@ class Bench(BenchPlotServer):
|
|
280
280
|
BenchResult: A class with all the data used to generate the results and the results
|
281
281
|
"""
|
282
282
|
|
283
|
+
input_vars_in = deepcopy(input_vars)
|
284
|
+
result_vars_in = deepcopy(result_vars)
|
285
|
+
const_vars_in = deepcopy(const_vars)
|
286
|
+
|
283
287
|
if self.worker_class_instance is not None:
|
284
|
-
if
|
288
|
+
if input_vars_in is None:
|
285
289
|
logging.info(
|
286
290
|
"No input variables passed, using all param variables in bench class as inputs"
|
287
291
|
)
|
288
292
|
if self.input_vars is None:
|
289
|
-
|
293
|
+
input_vars_in = self.worker_class_instance.get_inputs_only()
|
290
294
|
else:
|
291
|
-
|
292
|
-
for i in
|
295
|
+
input_vars_in = deepcopy(self.input_vars)
|
296
|
+
for i in input_vars_in:
|
293
297
|
logging.info(f"input var: {i.name}")
|
294
|
-
if
|
298
|
+
if result_vars_in is None:
|
295
299
|
logging.info(
|
296
300
|
"No results variables passed, using all result variables in bench class:"
|
297
301
|
)
|
298
302
|
if self.result_vars is None:
|
299
|
-
|
303
|
+
result_vars_in = self.worker_class_instance.get_results_only()
|
300
304
|
else:
|
301
|
-
|
305
|
+
result_vars_in = deepcopy(self.result_vars)
|
302
306
|
|
303
|
-
if
|
307
|
+
if const_vars_in is None:
|
304
308
|
if self.const_vars is None:
|
305
|
-
|
309
|
+
const_vars_in = self.worker_class_instance.get_input_defaults()
|
306
310
|
else:
|
307
|
-
|
311
|
+
const_vars_in = deepcopy(self.const_vars)
|
308
312
|
else:
|
309
|
-
if
|
310
|
-
|
311
|
-
if
|
312
|
-
|
313
|
-
if
|
314
|
-
|
315
|
-
else:
|
316
|
-
const_vars = deepcopy(const_vars)
|
313
|
+
if input_vars_in is None:
|
314
|
+
input_vars_in = []
|
315
|
+
if result_vars_in is None:
|
316
|
+
result_vars_in = []
|
317
|
+
if const_vars_in is None:
|
318
|
+
const_vars_in = []
|
317
319
|
|
318
320
|
if run_cfg is None:
|
319
321
|
if self.run_cfg is None:
|
@@ -328,9 +330,9 @@ class Bench(BenchPlotServer):
|
|
328
330
|
|
329
331
|
self.last_run_cfg = run_cfg
|
330
332
|
|
331
|
-
if isinstance(
|
333
|
+
if isinstance(input_vars_in, dict):
|
332
334
|
input_lists = []
|
333
|
-
for k, v in
|
335
|
+
for k, v in input_vars_in.items():
|
334
336
|
param_var = self.convert_vars_to_params(k, "input", run_cfg)
|
335
337
|
if isinstance(v, list):
|
336
338
|
assert len(v) > 0
|
@@ -340,56 +342,56 @@ class Bench(BenchPlotServer):
|
|
340
342
|
raise RuntimeError("Unsupported type")
|
341
343
|
input_lists.append(param_var)
|
342
344
|
|
343
|
-
|
345
|
+
input_vars_in = input_lists
|
344
346
|
else:
|
345
|
-
for i in range(len(
|
346
|
-
|
347
|
-
for i in range(len(
|
348
|
-
|
347
|
+
for i in range(len(input_vars_in)):
|
348
|
+
input_vars_in[i] = self.convert_vars_to_params(input_vars_in[i], "input", run_cfg)
|
349
|
+
for i in range(len(result_vars_in)):
|
350
|
+
result_vars_in[i] = self.convert_vars_to_params(result_vars_in[i], "result", run_cfg)
|
349
351
|
|
350
|
-
for r in
|
352
|
+
for r in result_vars_in:
|
351
353
|
logging.info(f"result var: {r.name}")
|
352
354
|
|
353
|
-
if isinstance(
|
354
|
-
|
355
|
+
if isinstance(const_vars_in, dict):
|
356
|
+
const_vars_in = list(const_vars_in.items())
|
355
357
|
|
356
|
-
for i in range(len(
|
358
|
+
for i in range(len(const_vars_in)):
|
357
359
|
# consts come as tuple pairs
|
358
|
-
cv_list = list(
|
360
|
+
cv_list = list(const_vars_in[i])
|
359
361
|
cv_list[0] = self.convert_vars_to_params(cv_list[0], "const", run_cfg)
|
360
|
-
|
362
|
+
const_vars_in[i] = cv_list
|
361
363
|
|
362
364
|
if title is None:
|
363
|
-
if len(
|
364
|
-
title = "Sweeping " + " vs ".join([i.name for i in
|
365
|
-
elif len(
|
365
|
+
if len(input_vars_in) > 0:
|
366
|
+
title = "Sweeping " + " vs ".join([i.name for i in input_vars_in])
|
367
|
+
elif len(const_vars_in) > 0:
|
366
368
|
title = "Constant Value"
|
367
|
-
if len(
|
369
|
+
if len(const_vars_in) > 1:
|
368
370
|
title += "s"
|
369
|
-
title += ": " + ", ".join([f"{c[0].name}={c[1]}" for c in
|
371
|
+
title += ": " + ", ".join([f"{c[0].name}={c[1]}" for c in const_vars_in])
|
370
372
|
else:
|
371
373
|
raise RuntimeError("you must pass a title, or define inputs or consts")
|
372
374
|
|
373
375
|
if run_cfg.level > 0:
|
374
376
|
inputs = []
|
375
|
-
print(
|
376
|
-
if len(
|
377
|
-
for i in
|
377
|
+
print(input_vars_in)
|
378
|
+
if len(input_vars_in) > 0:
|
379
|
+
for i in input_vars_in:
|
378
380
|
inputs.append(i.with_level(run_cfg.level))
|
379
|
-
|
381
|
+
input_vars_in = inputs
|
380
382
|
|
381
383
|
# if any of the inputs have been include as constants, remove those variables from the list of constants
|
382
384
|
with suppress(ValueError, AttributeError):
|
383
|
-
for i in
|
384
|
-
for c in
|
385
|
+
for i in input_vars_in:
|
386
|
+
for c in const_vars_in:
|
385
387
|
# print(i.hash_persistent())
|
386
388
|
if i.name == c[0].name:
|
387
|
-
|
389
|
+
const_vars_in.remove(c)
|
388
390
|
logging.info(f"removing {i.name} from constants")
|
389
391
|
|
390
392
|
result_hmaps = []
|
391
393
|
result_vars_only = []
|
392
|
-
for i in
|
394
|
+
for i in result_vars_in:
|
393
395
|
if isinstance(i, ResultHmap):
|
394
396
|
result_hmaps.append(i)
|
395
397
|
else:
|
@@ -409,10 +411,10 @@ class Bench(BenchPlotServer):
|
|
409
411
|
plot_callbacks = [BenchResult.to_auto_plots] if plot_callbacks else []
|
410
412
|
|
411
413
|
bench_cfg = BenchCfg(
|
412
|
-
input_vars=
|
414
|
+
input_vars=input_vars_in,
|
413
415
|
result_vars=result_vars_only,
|
414
416
|
result_hmaps=result_hmaps,
|
415
|
-
const_vars=
|
417
|
+
const_vars=const_vars_in,
|
416
418
|
bench_name=self.bench_name,
|
417
419
|
description=description,
|
418
420
|
post_description=post_description,
|
@@ -7,6 +7,7 @@ import panel as pn
|
|
7
7
|
|
8
8
|
from bencher.utils import make_namedtuple, hash_sha1
|
9
9
|
from bencher.variables.results import ALL_RESULT_TYPES, ResultHmap
|
10
|
+
from bencher.bench_cfg import BenchRunCfg
|
10
11
|
|
11
12
|
|
12
13
|
class ParametrizedSweep(Parameterized):
|
@@ -197,7 +198,8 @@ class ParametrizedSweep(Parameterized):
|
|
197
198
|
def plot_hmap(self, **kwargs):
|
198
199
|
return self.__call__(**kwargs)["hmap"]
|
199
200
|
|
200
|
-
|
201
|
+
# TODO Add type hints here and fix the circular imports
|
202
|
+
def to_bench(self, run_cfg: BenchRunCfg = None, report=None, name: str = None):
|
201
203
|
from bencher import Bench
|
202
204
|
|
203
205
|
assert isinstance(self, ParametrizedSweep)
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: holobench
|
3
|
-
Version: 1.
|
3
|
+
Version: 1.28.1
|
4
4
|
Summary: A package for benchmarking the performance of arbitrary functions
|
5
5
|
Author-email: Austin Gregg-Smith <blooop@gmail.com>
|
6
6
|
Project-URL: Repository, https://github.com/dyson-ai/bencher
|
@@ -9,7 +9,7 @@ Project-URL: Documentation, https://bencher.readthedocs.io/en/latest/
|
|
9
9
|
Description-Content-Type: text/markdown
|
10
10
|
License-File: LICENSE
|
11
11
|
Requires-Dist: holoviews<=1.19.0,>=1.15
|
12
|
-
Requires-Dist: numpy<=
|
12
|
+
Requires-Dist: numpy<=2.0.0,>=1.0
|
13
13
|
Requires-Dist: param<=2.1.0,>=1.13.0
|
14
14
|
Requires-Dist: hvplot<=0.10.0,>=0.8
|
15
15
|
Requires-Dist: matplotlib<=3.9.0,>=3.6.3
|
@@ -31,7 +31,7 @@ Requires-Dist: pylint<=3.2.3,>=2.17.7; extra == "test"
|
|
31
31
|
Requires-Dist: pytest-cov<=5.0.0,>=4.1; extra == "test"
|
32
32
|
Requires-Dist: pytest<=8.2.2,>=7.4; extra == "test"
|
33
33
|
Requires-Dist: hypothesis<=6.103.2,>=6.82; extra == "test"
|
34
|
-
Requires-Dist: ruff<=0.4.
|
34
|
+
Requires-Dist: ruff<=0.4.10,>=0.0.280; extra == "test"
|
35
35
|
Requires-Dist: coverage<=7.5.3,>=7.2.7; extra == "test"
|
36
36
|
|
37
37
|
# Bencher
|
@@ -90,4 +90,4 @@ Bencher is designed to work with stochastic pure functions with no side effects.
|
|
90
90
|
|
91
91
|
### Example Output
|
92
92
|
|
93
|
-
https://dyson-ai.github.io/bencher/
|
93
|
+
https://dyson-ai.github.io/bencher/
|
@@ -1,5 +1,5 @@
|
|
1
1
|
holoviews<=1.19.0,>=1.15
|
2
|
-
numpy<=
|
2
|
+
numpy<=2.0.0,>=1.0
|
3
3
|
param<=2.1.0,>=1.13.0
|
4
4
|
hvplot<=0.10.0,>=0.8
|
5
5
|
matplotlib<=3.9.0,>=3.6.3
|
@@ -22,5 +22,5 @@ pylint<=3.2.3,>=2.17.7
|
|
22
22
|
pytest-cov<=5.0.0,>=4.1
|
23
23
|
pytest<=8.2.2,>=7.4
|
24
24
|
hypothesis<=6.103.2,>=6.82
|
25
|
-
ruff<=0.4.
|
25
|
+
ruff<=0.4.10,>=0.0.280
|
26
26
|
coverage<=7.5.3,>=7.2.7
|
@@ -1,6 +1,6 @@
|
|
1
1
|
[project]
|
2
2
|
name = "holobench"
|
3
|
-
version = "1.
|
3
|
+
version = "1.28.1"
|
4
4
|
|
5
5
|
authors = [{ name = "Austin Gregg-Smith", email = "blooop@gmail.com" }]
|
6
6
|
description = "A package for benchmarking the performance of arbitrary functions"
|
@@ -8,7 +8,7 @@ readme = "README.md"
|
|
8
8
|
|
9
9
|
dependencies = [
|
10
10
|
"holoviews>=1.15,<=1.19.0",
|
11
|
-
"numpy>=1.0,<=
|
11
|
+
"numpy>=1.0,<=2.0.0",
|
12
12
|
"param>=1.13.0,<=2.1.0",
|
13
13
|
"hvplot>=0.8,<=0.10.0",
|
14
14
|
"matplotlib>=3.6.3,<=3.9.0",
|
@@ -40,7 +40,7 @@ python = "3.10.*"
|
|
40
40
|
python = "3.11.*"
|
41
41
|
|
42
42
|
[tool.pixi.pypi-dependencies]
|
43
|
-
|
43
|
+
holobench = { path = ".",editable=true}
|
44
44
|
|
45
45
|
[project.optional-dependencies]
|
46
46
|
test = [
|
@@ -49,7 +49,7 @@ test = [
|
|
49
49
|
"pytest-cov>=4.1,<=5.0.0",
|
50
50
|
"pytest>=7.4,<=8.2.2",
|
51
51
|
"hypothesis>=6.82,<=6.103.2",
|
52
|
-
"ruff>=0.0.280,<=0.4.
|
52
|
+
"ruff>=0.0.280,<=0.4.10",
|
53
53
|
"coverage>=7.2.7,<=7.5.3",
|
54
54
|
]
|
55
55
|
|
@@ -67,9 +67,9 @@ include = ["bencher"]
|
|
67
67
|
|
68
68
|
# Environments
|
69
69
|
[tool.pixi.environments]
|
70
|
-
default = {features = ["test"], solve-group = "default" }
|
71
|
-
py310 = ["py310","test"]
|
72
|
-
py311 = ["py311","test"]
|
70
|
+
default = { features = ["test"], solve-group = "default" }
|
71
|
+
py310 = ["py310", "test"]
|
72
|
+
py311 = ["py311", "test"]
|
73
73
|
|
74
74
|
[tool.pixi.tasks]
|
75
75
|
format = "black ."
|
@@ -78,16 +78,15 @@ ruff-lint = "ruff check . --fix"
|
|
78
78
|
pylint = "pylint --version && echo 'running pylint...' && pylint $(git ls-files '*.py')"
|
79
79
|
lint = { depends_on = ["ruff-lint", "pylint"] }
|
80
80
|
style = { depends_on = ["format", "lint"] }
|
81
|
-
commit-format = "git commit -a -m'autoformat code'"
|
81
|
+
commit-format = "git commit -a -m'autoformat code' || true"
|
82
82
|
test = "pytest"
|
83
83
|
coverage = "coverage run -m pytest && coverage xml -o coverage.xml"
|
84
84
|
coverage-report = "coverage report -m"
|
85
|
-
update-lock = "pixi update && git commit -a -m'update pixi.lock'"
|
86
|
-
fix = { depends_on = ["update-lock", "format", "ruff-lint"] }
|
85
|
+
update-lock = "pixi update && git commit -a -m'update pixi.lock' || true"
|
87
86
|
push = "git push"
|
88
87
|
update-lock-push = { depends_on = ["update-lock", "push"] }
|
88
|
+
fix = { depends_on = ["update-lock", "format", "ruff-lint"] }
|
89
89
|
fix-commit-push = { depends_on = ["fix", "commit-format", "update-lock-push"] }
|
90
|
-
|
91
90
|
ci-no-cover = { depends_on = ["style", "test"] }
|
92
91
|
ci = { depends_on = [
|
93
92
|
"format",
|
@@ -99,6 +98,8 @@ ci = { depends_on = [
|
|
99
98
|
] }
|
100
99
|
ci-push = { depends_on = ["format", "ruff-lint", "update-lock", "ci", "push"] }
|
101
100
|
clear-pixi = "rm -rf .pixi pixi.lock"
|
101
|
+
setup-git-merge-driver = "git config merge.ours.driver true"
|
102
|
+
update-from-template-repo = "./scripts/update_from_template.sh"
|
102
103
|
|
103
104
|
[tool.pylint]
|
104
105
|
extension-pkg-whitelist = ["numpy", "scipy"]
|
@@ -96,6 +96,17 @@ class TestSweepBase(unittest.TestCase):
|
|
96
96
|
instance_defaults = exp.get_input_defaults([exp.param.var_float.with_const(2)])
|
97
97
|
self.assertEqual(instance_defaults[0][1], 2)
|
98
98
|
|
99
|
+
def test_default_values_override(self):
|
100
|
+
|
101
|
+
initial = AllSweepVars.get_input_defaults()
|
102
|
+
|
103
|
+
overrride_defaults = AllSweepVars.get_input_defaults_override()
|
104
|
+
override = AllSweepVars.get_input_defaults_override(var_float=1)
|
105
|
+
after = AllSweepVars.get_input_defaults()
|
106
|
+
|
107
|
+
self.assertListEqual(initial, after)
|
108
|
+
self.assertNotEqual(override, overrride_defaults)
|
109
|
+
|
99
110
|
def test_with_sample_values(self):
|
100
111
|
vals = AllSweepVars.param.var_float.with_sample_values([0, 1]).values()
|
101
112
|
self.assertEqual(vals[0], 0)
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{holobench-1.27.0 → holobench-1.28.1}/bencher/example/experimental/example_hvplot_explorer.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|