diff options
Diffstat (limited to 'Artix-7/run.py')
-rwxr-xr-x | Artix-7/run.py | 59 |
1 files changed, 12 insertions, 47 deletions
diff --git a/Artix-7/run.py b/Artix-7/run.py index 7b1c5a8..f436b37 100755 --- a/Artix-7/run.py +++ b/Artix-7/run.py @@ -1,29 +1,19 @@ #!/usr/bin/env python3 -import shutil import csv import os import re +import shutil import sys -from pathlib import Path -from itertools import groupby from collections import defaultdict, namedtuple +from itertools import groupby +from jinja2 import Environment, FileSystemLoader, select_autoescape +from pathlib import Path -field_skip = set([ - "18 Kb", -]) -field_mapping = { - "36 Kb": ("RAM blocks", None), - "Max Distributed RAM (Kb)": ("Distributed RAM", None), - "Max (Kb)": ("RAM", None), - "Total I/O Banks": ("IO banks", None), - "Logic Cells": (None, "Xilix logic cells"), - "CMTs": ("Clock management tiles", "Xilix Clock management tiles"), -} - -extra_fields = { - "RAM Block Size": "36 kB" -} +env = Environment( + loader=FileSystemLoader("."), + autoescape=select_autoescape(['html', 'xml']) +) def index_by_header(rows): item_keys = rows[0] @@ -131,35 +121,10 @@ with open("parts.csv") as f: for part in parts.values(): part_number = part["Part number"] - for k, v in extra_fields.items(): - part[k] = v - print("--- PART: {} ---".format(part_number)) path = out_dir / "{}.mw".format(part_number) with open(path, "w") as out: - p = lambda s = None: print(s if s is not None else "", file=out) - def field(k, v): - pass - - p("= {} =".format(part_number)) - p() - p("{|class='wikitable'") - for field, value in part.items(): - if field in field_skip: - continue - - mapping = field_mapping.get(field) - f = field - if mapping is not None: - field = mapping[0] if mapping[0] else field - f = mapping[1] if mapping[1] else field - - p("!{}".format(field)) - p("|[[{}::{}]]".format(f, value)) - p("|-") - p("|}") - - p() - p("[[Category:Generated]]") - p("[[Category:FPGA Chip]]") - p("[[Category:Artix-7 generated data set]]") + template = env.get_template("mw.j2") + out.write(template.render(part=part)) + for field in part: + print(field) |