Skip to content

combobulator

combobulator

Declarative execution chains.

Step

Bases: BaseModel

One job and the lineage from which it should start.

job_name: str property

Return the registered name or portable class identity for this job.

new(job: type[BasicJob[Any]], base: BaseQuery | None = None, resume: bool = False, implicit_base: Literal['previous'] | None = None) -> Self classmethod

Build an execution step and immediately serialize its base query.

Combobulation

Bases: BaseModel

Ordered jobs and resource constraints for one execution.

jobs: tuple[type[BasicJob[Any]], ...] property

Return the job classes in execution order.

config: DictConfig property

Return the mutable, structured configuration shared by all steps.

healthcheck() -> bool

Return whether the execution has a job and no missing config values.

run(job: type[BasicJob[Any]]) -> Self

Append a fresh job without restoring a checkpoint.

branch(job: type[BasicJob[Any]], base: BaseQuery | None = None) -> Self

Append a job that starts a new lineage from a checkpoint.

Parameters:

Name Type Description Default
job type[BasicJob[Any]]

Job class to run after the current final step.

required
base BaseQuery | None

Optional query selecting an explicit base. Without one, the execution uses the preceding step's last checkpoint.

None

Returns:

Type Description
Self

A new execution ending with the branching job.

resume(job: type[BasicJob[Any]], base: BaseQuery | None = None) -> Self

Append a job that continues an existing checkpoint lineage.

Parameters:

Name Type Description Default
job type[BasicJob[Any]]

Job class to run after the current final step.

required
base BaseQuery | None

Optional query selecting an explicit base. Without one, the execution uses the preceding step's last checkpoint.

None

Returns:

Type Description
Self

A new execution ending with the resumed job.

memory(minimum: int | str) -> Self

Request memory per node: integer MiB or a size such as "64Gi".

shard(tp: int = 1, fsdp: bool = False, zero: bool = True, activation_checkpointing: bool = False) -> Self

Set parallelism for every job in this execution.

cpu(minimum: int) -> Self

Return a new execution with a minimum CPU request.

gpu(minimum: int) -> Self

Return a new execution with a minimum GPU request.

chip(chip: str | Chip) -> Self

Return a new execution accepting one additional chip type.

serialize() -> DictConfig

Serialize the complete execution setup.

Returns:

Type Description
DictConfig

An OmegaConf containing the execution graph, resource constraints,

DictConfig

and hydrated component configuration.

deserialize(serialized: DictConfig) -> Self classmethod

Restore an execution from :meth:serialize output.

Parameters:

Name Type Description Default
serialized DictConfig

Complete execution setup.

required

Returns:

Type Description
Self

The restored execution with its embedded component configuration.

Raises:

Type Description
ValueError

If a serialized job cannot be resolved or restored.

Combobulator

Assemble declarative execution chains without running them.

run(job: type[BasicJob[Any]], base: BaseQuery | None = None) -> Combobulation

Start an execution with one job.

Parameters:

Name Type Description Default
job type[BasicJob[Any]]

First job class in the execution.

required
base BaseQuery | None

Optional query selecting the node from which to branch. An empty query result causes execution to stop without running it.

None

Returns:

Type Description
Combobulation

A new execution containing the initial job.