import os

out = []

for fname in os.listdir("."):

    if not fname.startswith("sol"):
        continue

    YR = int(fname[3:7])
    MN = int(fname[8:10])

    with open(fname, "r") as f:

        found_first = False

        for line in f:

            chunks = [x.strip() for x in line.split(" ") if x.strip()]
            if len(chunks) < 14:
                continue

            try:
                yr = int(chunks[1])
                mn = int(chunks[0])
            except ValueError:
                continue

            if not found_first:
                found_first = True
                min_yr, min_mn = yr, mn
            else:
                max_yr = yr
                max_mn = mn

        print(
            f"File: {fname}, range: {min_yr:04d}-{min_mn:02d} -> {max_yr:04d}-{max_mn:02d}"
        )
        out.append(
            (
                YR,
                MN,
                f"{YR:04d}_{MN:02d},{min_yr:04d}_{min_mn:02d},{max_yr:04d}_{max_mn:02d}\n",
            )
        )

out = sorted(out, key=lambda x: 12 * x[0] + x[1])

with open("ranges.csv", "w") as f:
    f.write("forecastyear_month,firstyear_month,lastyear_month\n")
    f.writelines([l[2] for l in out])
