def edit_kep()

in hack/edit-keps.py [0:0]


def edit_kep(yaml, file_name, force_rewrite=False):
    with open(file_name, "r") as fp:
        kep = yaml.load(fp)

    rewrite = force_rewrite

    stage = kep.get("stage", "unknown")
    status = kep.get("status", "unknown")
    latest_milestone = kep.get("latest-milestone", "unknown")
    last_updated = kep.get("last-updated", "unknown")
    milestone = kep.get("milestone", {})

    if status == "implemented":
        if latest_milestone == "unknown":
            print(f'status: {status} stage: {stage} last-updated: {last_updated} file: {file_name}')
            kep["latest-milestone"] = "0.0"
            rewrite = True
        if stage == "unknown":
            if latest_milestone == "unknown":
                kep["stage"] = "stable"
            else:
                kep["stage"] = [s for s,v in milestone.items() if v == latest_milestone][0]
            rewrite = True

    # Dump KEP to file_name
    if rewrite:
        print(f'  writing {file_name}')
        with open(file_name, "w") as fp:
            yaml.dump(kep, fp)
            fp.truncate()