from typing import Any


def get_config(index: int, sample_steps: list[int], ema_power: float) -> dict[str, Any]:
    return {
        'num_steps': 40,
        'time_steps': sample_steps,
        'image_height': 64,
        'image_width': 64,
        'image_channels': 3,
        'calculate_fid': True,
        'calculate_isc': True,
        'fid_reference_path': 'PATH/fid-refs/imagenet-64x64.npz',
        'model_name': 'edm-imagenet-64x64-cond-adm',
        'model_path': f'PATH/results/lines-gan-imagenet-64x64-14-bs-16-br-32-single-step-d1299bf7-017e-4346-bfac-8b97704bd815.0/checkpoints/last.tmp.1/ema/beta_0.999_update_every_1_update_after_step_100_inv_gamma_1.0_power_{ema_power}.pth',
        'num_classes': 1000,
        'fid_save_path': f'results_fidelity/fid/lines-gan-imagenet-64x64-14-bs-16-br-32-single-step-d1299bf7-017e-4346-bfac-8b97704bd815.0/checkpoints/last.tmp.1/ema/beta_0.999_update_every_1_update_after_step_100_inv_gamma_1.0_power_{ema_power}/{"[" + str(",".join(map(str, sample_steps))) + "]"}/{index}.pickle',
        'isc_save_path': f'results_fidelity/isc/lines-gan-imagenet-64x64-14-bs-16-br-32-single-step-d1299bf7-017e-4346-bfac-8b97704bd815.0/checkpoints/last.tmp.1/ema/beta_0.999_update_every_1_update_after_step_100_inv_gamma_1.0_power_{ema_power}/{"[" + str(",".join(map(str, sample_steps))) + "]"}/{index}.pickle',
        'batch_size': 10
    }


def get_configs() -> list[dict[str, Any]]:
    configs: list[dict[str, Any]] = []
    for sample_steps in [[0, 40]]:
        for index in range(10):
            configs.append(get_config(index, sample_steps, 1.0))
    return configs
