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

Name Description
build Build the SweepManager instance.
with_cli Configure the CLI.
with_defaults Apply default configuration for simple cases.
with_registry Configure the registry.

build

sweep.SweepManagerBuilder.build()

Build the SweepManager instance.

Expands jobs, creates or verifies session, and registers runs.

Returns

Name Type Description
SweepManager Configured SweepManager ready for use.

Raises

Name Type Description
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

Name Type Description Default
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

Name Type Description
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

Name Type Description Default
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

Name Type Description
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

Name Type Description Default
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

Name Type Description
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")