#!/usr/bin/python3

import argparse
import glob
import os

# import shutil
import shotiser

from erimp import Erimp
# from train import Train

#run.check(do_print=None)
#if run.has_something_with('release', do_print=None):
#    quit()

desc = 'model sigs'
parser = argparse.ArgumentParser(description=desc)
parser.add_argument('-v', action='store_true', help='raise verbosity')
parser.add_argument('-r', action='store_true', help='clear vemlis')
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)



# t = Train(erimp=e, do_verbose=args.v)

# # this needs changing for NEP
repcodes = e.o.by_train_size()
count_models = 0
modvis = {}
for repcode in repcodes:
    if e.report[repcode].bremse_level() > 0:
        # print("clear_by_motvi: " + repcode + " is bremsed.")
        continue
    shoti = shotiser.now()
    mocla_dir = e.report[repcode].dirs['mocla']
    if os.path.isdir(mocla_dir):
        model_glob = mocla_dir + '/*.model'
        model_fufis = glob.glob(model_glob)
        count_models = len(model_fufis)
        if count_models == 0:
            print("clear_by_motvi: no model for " + repcode)
            continue
        if count_models > 1:
            print("clear_by_motvi: " + str(count_models) + "models for "
                  + repcode)
            continue
        model_bana = os.path.basename(model_fufis[0])
        modvi = model_bana[:-6]
        if modvi not in modvis:
            modvis[modvi] = [repcode]
        else:
            modvis[modvi].append(repcode)

class_fudi = e.dirs['class']

# unless, nothing to delete there, only by issuedate
# class_fufis = glob.glob(class_fudi + '/*.json.gz')
# for class_fufi in class_fufis:
#     with_motvi = True
#     for part in ['krikt', 'alfit']:
#         end = '.' + part + '.json.gz'
#         if class_fufi.endswith(end):
#             with_motvi = False
#             continue
#     if not with_motvi:
#         continue
#     bana = os.path.basename(class_fufi)
#     modvi = bana[11:-14]
#     print(bana + ' ' + modvi)
#     continue
#     if modvi in modvis:
#         print("keep " + class_fufi)
#         continue
#     target = class_fufi + '.gone'
#     # shutil.move(class_fufi, target)

class_fufis = glob.glob(class_fudi + '/*.class')
for class_fufi in class_fufis:
    bana = os.path.basename(class_fufi)
    modvi = bana[11:-6]
    print(bana + ' ' + modvi)
    if modvi in modvis:
        print("keep " + class_fufi)
        continue
    #target = class_fufi + '.gone'
    #shutil.move(class_fufi, target)
    os.remove(class_fufi)

class_fudi = e.dirs['class']
vemli_fufis = glob.glob(class_fudi + '/*.vemli.json.gz')
for vemli_fufi in vemli_fufis:
    bana = os.path.basename(vemli_fufi)
    modvi = bana[11:-8]
    if modvi in modvis:
        print("keep " + vemli_fufi)
        continue
    #target = vemli_fufi + '.gone'
    #shutil.move(vemli_fufi, target)
    os.cemove(vemli_fufi)

vemli_fudi = e.dirs['vemli']
vemli_fufis = glob.glob(vemli_fudi + '/*.json.gz')
for vemli_fufi in vemli_fufis:
    bana = os.path.basename(vemli_fufi)
    modvi = bana[11:-8]
    if modvi in modvis:
        continue
    #target = vemli_fufi + '.gone'
    #shutil.move(vemli_fufi, target)
    os.remove(vemli_fufi)
quit()
