def parse_from_root()

in pyrela/parse_log.py [0:0]


def parse_from_root(root, max_epoch, min_epoch, filter_string):
    logs = {}
    root = os.path.abspath(root)
    for exp in os.listdir(root):
        if filter_string:
            go = True
            for s in filter_string:
                if s not in exp:
                    go = False
                    break
            if not go:
                continue
        exp_folder = os.path.join(root, exp)
        log_file = os.path.join(exp_folder, "train.log")
        if os.path.exists(log_file):
            try:
                log = parse_log(log_file, max_epoch)
                if min_epoch > 0 and log["epoch"] < min_epoch:
                    print(
                        "%s is dropped due to being too short\n\t%d vs %d"
                        % (log_file, log["epoch"], min_epoch)
                    )
                else:
                    logs[exp] = log
            except:
                print("something is wrong with %s" % log_file)

    return logs