aboutsummaryrefslogtreecommitdiff
path: root/src/ee/tools/part_apply_function.py
diff options
context:
space:
mode:
authorTrygve Laugstøl <trygvis@inamo.no>2019-05-20 22:46:45 +0200
committerTrygve Laugstøl <trygvis@inamo.no>2019-05-20 22:53:42 +0200
commit5f3623b8dd26b37b9ea6011bf71467b2a608b5ff (patch)
tree00fdb064f9116c5bf307f8b9815500487d86482b /src/ee/tools/part_apply_function.py
parent148ff60aa5a211292661e16ddba0f6fced85f372 (diff)
downloadee-python-5f3623b8dd26b37b9ea6011bf71467b2a608b5ff.tar.gz
ee-python-5f3623b8dd26b37b9ea6011bf71467b2a608b5ff.tar.bz2
ee-python-5f3623b8dd26b37b9ea6011bf71467b2a608b5ff.tar.xz
ee-python-5f3623b8dd26b37b9ea6011bf71467b2a608b5ff.zip
common_fact_types: Adding key for footprint.
functions: o Changing the structure of the functions, they're now factories that will be given kwargs and must return a function that processes the parts. o Adding new function to default set; 'map_footprint' that maps the KiCAD footprints to common footprints. part_validate_parts: Using only common keys.
Diffstat (limited to 'src/ee/tools/part_apply_function.py')
-rw-r--r--src/ee/tools/part_apply_function.py29
1 files changed, 24 insertions, 5 deletions
diff --git a/src/ee/tools/part_apply_function.py b/src/ee/tools/part_apply_function.py
index bece364..af51b5a 100644
--- a/src/ee/tools/part_apply_function.py
+++ b/src/ee/tools/part_apply_function.py
@@ -4,7 +4,7 @@ from pathlib import Path
from typing import List
from ee import tools, EeException
-from ee.part import Part, PartDb, load_db, save_db
+from ee.part import Part, load_db, save_db
from ee.project import Project
@@ -23,15 +23,29 @@ def load_functions(function_names):
return functions
-def work(in_path: Path, out_path: Path, report_path: Path, function_names: List[str]):
- functions = load_functions(function_names)
+def work(in_path: Path, out_path: Path, report_path: Path, function_names: List[str], arguments: List[str]):
+ factories = load_functions(function_names)
in_parts = load_db(in_path)
- parts = PartDb()
+ kwargs = {}
+ for a in arguments:
+ import re
+ k, v = re.split(":", a, maxsplit=1)
+ kwargs[k] = v
+
+ functions = [[factory[0], factory[1](**kwargs)] for factory in factories]
tools.mk_parents(report_path)
with report_path.open("w") as rpt:
+
+ if len(kwargs):
+ print("Arguments:", file=rpt)
+ print("", file=rpt)
+ for key in sorted(kwargs):
+ print(" * {}={}".format(key, kwargs[key]), file=rpt)
+ print("", file=rpt)
+
for xml in in_parts.iterparts():
part = Part(xml)
@@ -57,6 +71,11 @@ parser.add_argument("--function",
nargs="*",
metavar="FUNCTION")
+parser.add_argument("--argument",
+ required=True,
+ nargs="*",
+ metavar="ARG")
+
parser.add_argument("--execution",
default="default")
@@ -64,4 +83,4 @@ args = parser.parse_args()
project = Project.load()
report = project.report_dir / "apply-function" / (args.execution + ".rst")
-work(Path(args.in_path), Path(args.out), report, args.function)
+work(Path(args.in_path), Path(args.out), report, args.function, args.argument)