def generate_job_json()

in runtool/runtool/experiments_converter.py [0:0]


def generate_job_json(job: Job) -> Iterable[dict]:
    """Creates JSONs for starting training jobs in SageMaker."""

    run_configuration = job.run_configuration
    tags = job.generate_tags()
    datasets = job.generate_datasets()
    metrics = job.generate_metrics()
    overrides = job.generate_sagemaker_overrides()
    hyperparameters = job.generate_hyperparameters()

    s3_path = f"s3://{job.bucket}/{job.experiment_name}/{run_configuration}"

    for run in range(job.runs):
        job_name = job.generate_job_name(run)
        json_ = {
            "AlgorithmSpecification": {
                "TrainingImage": job.experiment["algorithm"]["image"],
                "TrainingInputMode": "File",
                "MetricDefinitions": metrics,
            },
            "HyperParameters": hyperparameters,
            "InputDataConfig": datasets,
            "OutputDataConfig": {"S3OutputPath": s3_path},
            "ResourceConfig": {
                "InstanceCount": 1,
                "InstanceType": job.experiment["algorithm"]["instance"],
                "VolumeSizeInGB": 32,
            },
            "StoppingCondition": {"MaxRuntimeInSeconds": 86400},
            "RoleArn": job.role,
            "TrainingJobName": job_name,
            "Tags": [
                *tags,
                {"Key": "run_number", "Value": str(run)},  # add current run
            ],
        }

        # apply any custom sagemaker json
        yield update_nested_dict(json_, overrides)