
import os

import filer

from mocla import Mocla
from train import Train


class Otocl:
    """clear grund_eval when report is autonomous"""

    def __init__(self, erimp, do_verbose=False):
        self.e = erimp
        self.do_verbose = do_verbose
        self.mocla = Mocla(erimp)
        self.train = Train(erimp)
        self.fina = erimp.abovo.constants['eval_grund_name']
        self.grund_size = int(self.e.conf['grund_size'])
        return None

    def run(self):
        for repcode in self.e.live:
            self.run_for_report(repcode)
        return None

    def run_for_report(self, repcode):
        report = self.e.report[repcode]
        if report.is_is_autonomous():
            if self.do_verbose:
                print(f"{repcode} is autonomous")
            return True
        self.train.setup(repcode)
        # train_fufi = self.train.train_fufi
        train_fufi = self.train.last_fufi(repcode)
        if train_fufi is None:
            if self.do_verbose:
                print(f"{repcode} has no train fufi")
            return False
        if not os.path.isfile(train_fufi):
            if self.do_verbose:
                print(f"{repcode} has no train fufi {train_fufi}")
            return False
        count_lines = filer.count_lines(train_fufi)
        # print(train_fufi + ' ' + str(count_lines))
        if count_lines <= self.grund_size:
            if self.do_verbose:
                print(f"{repcode} not autonomous")
            return False
        eval_grund_fufi = report.dirs['mocla'] + '/' + self.fina
        ## most be there, because is_it_auto testss for it
        if self.do_verbose:
            print(f"otocl removes {eval_grund_fufi}")
        os.remove(eval_grund_fufi)
        #    def is_it(self, repcode)
