Skip to content

Launch Configuration

genesis.launch.JobConfig dataclass

Base job configuration

Source code in genesis/launch/scheduler.py
@dataclass
class JobConfig:
    """Base job configuration"""

    eval_program_path: Optional[str] = "evaluate.py"
    extra_cmd_args: Dict[str, Any] = field(default_factory=dict)

    def to_dict(self) -> Dict[str, Any]:
        """Convert to dictionary representation"""
        job_to_dict = asdict(self)
        return {k: v for k, v in job_to_dict.items() if v is not None}

to_dict()

Convert to dictionary representation

Source code in genesis/launch/scheduler.py
def to_dict(self) -> Dict[str, Any]:
    """Convert to dictionary representation"""
    job_to_dict = asdict(self)
    return {k: v for k, v in job_to_dict.items() if v is not None}

genesis.launch.LocalJobConfig dataclass

Bases: JobConfig

Configuration for local jobs

Source code in genesis/launch/scheduler.py
@dataclass
class LocalJobConfig(JobConfig):
    """Configuration for local jobs"""

    time: Optional[str] = None
    conda_env: Optional[str] = None

genesis.launch.SlurmDockerJobConfig dataclass

Bases: JobConfig

Configuration for SLURM jobs using Docker

Source code in genesis/launch/scheduler.py
@dataclass
class SlurmDockerJobConfig(JobConfig):
    """Configuration for SLURM jobs using Docker"""

    image: str = "ubuntu:latest"
    image_tar_path: Optional[str] = None
    docker_flags: str = ""
    partition: str = "gpu"
    time: str = "01:00:00"
    cpus: int = 1
    gpus: int = 1
    mem: Optional[str] = "8G"

genesis.launch.SlurmCondaJobConfig dataclass

Bases: JobConfig

Configuration for SLURM jobs using Conda environment

Source code in genesis/launch/scheduler.py
@dataclass
class SlurmCondaJobConfig(JobConfig):
    """Configuration for SLURM jobs using Conda environment"""

    conda_env: str = ""
    modules: Optional[List[str]] = None
    partition: str = "gpu"
    time: str = "01:00:00"
    cpus: int = 1
    gpus: int = 1
    mem: Optional[str] = "8G"

    def __post_init__(self):
        if self.modules is None:
            self.modules = []

genesis.launch.E2BJobConfig dataclass

Bases: JobConfig

Configuration for E2B cloud sandbox jobs

Source code in genesis/launch/scheduler.py
@dataclass
class E2BJobConfig(JobConfig):
    """Configuration for E2B cloud sandbox jobs"""

    template: str = "base"
    timeout: int = 300  # Sandbox timeout in seconds
    dependencies: Optional[List[str]] = None  # Pip packages to install
    additional_files: Optional[Dict[str, str]] = None  # sandbox_path -> local_path
    env_vars: Optional[Dict[str, str]] = None  # Environment variables to set

    def __post_init__(self):
        if self.dependencies is None:
            self.dependencies = []
        if self.additional_files is None:
            self.additional_files = {}
        if self.env_vars is None:
            self.env_vars = {}