bencher.factories ================= .. py:module:: bencher.factories .. autoapi-nested-parse:: Factory functions for creating Bench and BenchRunner instances. This module breaks the circular dependency between ParametrizedSweep and Bench/BenchRunner by providing standalone factory functions that can be imported without triggering circular imports. Functions --------- .. autoapisummary:: bencher.factories.create_bench bencher.factories.create_bench_runner Module Contents --------------- .. py:function:: create_bench(sweep: bencher.variables.parametrised_sweep.ParametrizedSweep, run_cfg: bencher.bench_cfg.BenchRunCfg | None = None, report: bencher.bench_report.BenchReport | None = None, name: str | None = None) -> bencher.bencher.Bench Create a Bench instance from a ParametrizedSweep. :param sweep: The ParametrizedSweep instance to benchmark. :param run_cfg: Optional benchmark run configuration. :param report: Optional existing report to append results to. :param name: Optional name for the benchmark. If None, derived from sweep's class name. :returns: A configured Bench instance. .. py:function:: create_bench_runner(sweep: bencher.variables.parametrised_sweep.ParametrizedSweep, run_cfg: bencher.bench_cfg.BenchRunCfg | None = None, name: str | None = None) -> bencher.bench_runner.BenchRunner Create a BenchRunner instance from a ParametrizedSweep. Enables fluent chaining like: MyConfig().to_bench_runner().add(func).run(subsampling_divisions=2, max_subsampling_divisions=4) :param sweep: The ParametrizedSweep instance to use as the benchmark class. :param run_cfg: Optional benchmark run configuration. Created if not provided. :param name: Optional name for the runner. If None, auto-generated. :returns: A configured BenchRunner instance.