aboutsummaryrefslogtreecommitdiff
path: root/src/ee/project/report.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/ee/project/report.py')
-rw-r--r--src/ee/project/report.py25
1 files changed, 25 insertions, 0 deletions
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: