def get_model(filename): ''' Билдим модель ''' data = load_dat_file(filename) model = HybridModel(10) # model = CoreModel() # другие варианты # model = FullScanModel(5) for item in data: model.add_point(item[:-1], item[-1]) return model
def get_result_in_html(model, datafile, sourcefile='', test_mod=False): ''' Шаблонизируем результаты расчётов ''' templatefile = os.path.join(TEMPLATES_DIR, 'outtable.html') datafile = datafile row_list = load_dat_file(datafile) table_out = '' error_count = 0 for row in row_list: row_out = '' for td in row: row_out += '<td class="col-md-1">%s</td>' % td # В тестовых разбиениях так же присутствует метка класса # Но в боевой выборке она видимо должна отсутствовать? if test_mod: # Если мы проверяемся на тестовых данных, то мы подрезаем метку класса model_result = model.get_result(row[:-1]) else: # Если мы работаем с боевым файлом то мы съедаем всю строку целиком model_result = model.get_result(row) if model_result == td: # в последней ячейке правильный класс r_td = 'class="success"' else: r_td = 'class="danger"' error_count += 1 row_out += '<td %s>%s</td>' % (r_td, model_result) table_out += '<tr>%s</tr>' % row_out table = '<table class="table">%s</table>' % table_out with open(templatefile, 'r') as template: template = template.read().format( **{ 'row_count': len(row_list), 'error_count': error_count, 'table': table, 'filedata': os.path.split(datafile)[1], 'filemodel': os.path.split(sourcefile)[1] }) return template