From 689508e07dba890fff8d1cd06e0029eca1c30994 Mon Sep 17 00:00:00 2001 From: Trygve Laugstøl Date: Sat, 23 Mar 2019 07:29:49 +0100 Subject: xsd: o Adding list on . For media, datasheets etc. digikey: o Parsing out media. PartDb: o starting on a more generic object db with indexes. order: o Using the new object db for building data while resolving parts. o Creating a report from the order. --- src/ee/project/report.py | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) (limited to 'src/ee/project') diff --git a/src/ee/project/report.py b/src/ee/project/report.py index 5370f6c..80e590a 100644 --- a/src/ee/project/report.py +++ b/src/ee/project/report.py @@ -4,6 +4,7 @@ from typing import Optional from jinja2 import Environment, PackageLoader, select_autoescape from ee.tools import mk_parents +from ee.xml import types, bom_file_utils class Message(object): @@ -12,16 +13,40 @@ class Message(object): self.text = text +def section_filter(s: str): + return "{}\n{}".format(s, "=" * len(s)) + + def subsection_filter(s: str): + return "{}\n{}".format(s, "-" * len(s)) + + +def subsubsection_filter(s: str): return "{}\n{}".format(s, "~" * len(s)) +def subsubsubsection_filter(s: str): + return "{}\n{}".format(s, "." * len(s)) + + +def first_pn_filter(part: types.Part): + return next(iter(bom_file_utils.part_numbers(part)), None) + + +def first_spn_filter(part: types.Part): + return next(iter(bom_file_utils.supplier_part_numbers(part)), None) + + def save_report(package: str, template_name: str, out_file: Path, **kwargs): env = Environment( loader=PackageLoader(package, "templates"), autoescape=select_autoescape(["html", "xml"]), ) env.filters["subsection"] = subsection_filter + env.filters["subsubsection"] = subsubsection_filter + env.filters["subsubsubsection"] = subsubsubsection_filter + env.filters["first_pn"] = first_pn_filter + env.filters["first_spn"] = first_spn_filter mk_parents(out_file) with out_file.open("w") as f: -- cgit v1.2.3