#!/usr/bin/env python # -*- coding: utf-8 -*- from pathlib import Path import re from wireviz import __version__, APP_NAME, APP_URL from wireviz.wv_helper import flatten2d, open_file_read, open_file_write def generate_html_output(filename: (str, Path), bom_list): with open_file_write(f'{filename}.html') as file: file.write('\n') file.write('\n') file.write(' \n') file.write(f' \n') file.write(f' {APP_NAME} Diagram and BOM\n') file.write('\n') file.write('

Diagram

') with open_file_read(f'{filename}.svg') as svg: file.write(re.sub( '^<[?]xml [^?>]*[?]>[^<]*]*>', '', svg.read(1024), 1)) for svgdata in svg: file.write(svgdata) file.write('

Bill of Materials

') listy = flatten2d(bom_list) file.write('') file.write('') for item in listy[0]: file.write(f'') file.write('') for row in listy[1:]: file.write('') for i, item in enumerate(row): item_str = item.replace('\u00b2', '²') align = 'text-align:right; ' if listy[0][i] == 'Qty' else '' file.write(f'') file.write('') file.write('
{item}
{item_str}
') file.write('')