#!/usr/bin/python3

import argparse
import glob
import os
import sys

from alfit import Alfit
from erimp import Erimp
from fitli import Fitli

desc = 'delete useless fitlis'
parser = argparse.ArgumentParser(description=desc)
parser.add_argument('-v', action='store_true', help='raise verbosity')
parser.add_argument('-n', action='store_true', help='dry run')
parser.add_argument('bapis', metavar='bnp', type=str, nargs='*',
                    help='bits and pieces arguments')
args = parser.parse_args()
e = Erimp(args.bapis, do_verbose=args.v)
alfit = Alfit(erimp=e)

# # clear old alfits
alfit.clear_old_issues()


# # this needs changing for NEP
repcodes = e.o.by_timely()
count_models = 0

used_sigs: dict = {}
for repcode in repcodes:
    mocla_dir = e.report[repcode].dirs['mocla']
    if os.path.isdir(mocla_dir):
        model_glob = mocla_dir + '/*.model'
        model_fufis = glob.glob(model_glob)
        e.folda.remove_all_but_recent(mocla_dir, '*.model')
        e.folda.remove_all_but_recent(mocla_dir, '*.train')
        count_models = len(model_fufis)
        if len(model_fufis) > 1:
            print(f"{repcode} has {count_models} models",
                  file=sys.stderr)
        for model_fufi in model_fufis:
            # print(f"I see {model_fufi}")
            sig = os.path.basename(model_fufi[0:-6])
            # sig = bana.partition('_')[2]
            # # remove .model
            if sig in used_sigs:
                used_sigs[sig] += 1
                continue
            print(f"I add {model_fufi}")
            used_sigs[sig] = 1
vemli_dir = e.dirs['vemli']
vemli_glob = vemli_dir + '/*'
vemli_fufis = glob.glob(vemli_glob)

fitli = Fitli(e, '')

#print(used_sigs)

#quit()


#print(e.dirs['fitli'])
#quit()
# # fitli.clear_by_sigsi(e.dirs['class'], used_sigs)
fitli.clear_by_sigsi(e.dirs['fitli'], used_sigs)

# # fitli.clear_by_sigsi(e.dirs['vemli'], used_sigs)

quit()

for vemli_fufi in vemli_fufis:
    bana = os.path.basename(vemli_fufi[0:-8])
    # # after the issuedate
    afisda = bana[11:]
    sig = afisda.partition('_')[2]
    if sig in used_sigs:
        if args.v:
            print(f"keep {vemli_fufi}")
    else:
        print(f"delete {vemli_fufi}")
        if args.n:
            continue
        os.remove(vemli_fufi)
