sweep.SweepManagerBuilder
sweep.SweepManagerBuilder(config)
Builder for SweepManager with flexible configuration.
The builder pattern allows for fluent configuration of SweepManager with sensible defaults and resource ownership tracking.
Examples
>>> manager = (
... SweepManagerBuilder(config)
... .with_registry("experiment.duckdb", experiment_name="my_sweep")
... .with_cli(jar_path=Path("josh.jar"))
... .build()
... )
Methods
build
sweep.SweepManagerBuilder.build()
Build the SweepManager instance.
Expands jobs, creates or verifies session, and registers runs.
Returns
|
SweepManager |
Configured SweepManager ready for use. |
Raises
|
ValueError |
If session_id provided but hashes don’t match registered runs. |
Examples
>>> manager = (
... SweepManager.builder(config)
... .with_registry("experiment.duckdb")
... .with_cli()
... .build()
... )
with_cli
sweep.SweepManagerBuilder.with_cli(cli=None, *, jar_path=None, java_path='java')
Configure the CLI.
Parameters
| cli |
JoshCLI | None |
Existing JoshCLI instance. |
None |
| jar_path |
Path | None |
Path to josh jar (creates new CLI). |
None |
| java_path |
str |
Path to java executable (default: “java”). |
'java' |
Returns
|
SweepManagerBuilder |
Self for chaining. |
Examples
>>> # Use existing CLI
>>> builder.with_cli(existing_cli)
>>> # Create new CLI with custom jar path
>>> builder.with_cli(jar_path=Path("josh.jar"))
with_defaults
sweep.SweepManagerBuilder.with_defaults(
registry=':memory:',
experiment_name=None,
jar_path=None,
)
Apply default configuration for simple cases.
Convenience method that sets up both registry and CLI with defaults.
Parameters
| registry |
str | Path | RunRegistry |
Registry path or instance (default: in-memory). |
':memory:' |
| experiment_name |
str | None |
Name for the experiment session. |
None |
| jar_path |
Path | None |
Path to josh jar file. |
None |
Returns
|
SweepManagerBuilder |
Self for chaining. |
Examples
>>> manager = (
... SweepManager.builder(config)
... .with_defaults(registry=":memory:")
... .build()
... )
with_registry
sweep.SweepManagerBuilder.with_registry(
registry_or_path,
*,
experiment_name=None,
session_id=None,
)
Configure the registry.
Parameters
| registry_or_path |
str | Path | RunRegistry |
Path to create new registry, or existing instance. |
required |
| experiment_name |
str | None |
Name for new session (when creating registry). |
None |
| session_id |
str | None |
Use existing session ID (to resume a previous session). |
None |
Returns
|
SweepManagerBuilder |
Self for chaining. |
Examples
>>> # Create new registry from path
>>> builder.with_registry("experiment.duckdb", experiment_name="my_sweep")
>>> # Use existing registry
>>> builder.with_registry(existing_registry, session_id="abc-123")