diff options
author | Trygve Laugstøl <trygvis@inamo.no> | 2019-03-14 06:27:16 +0100 |
---|---|---|
committer | Trygve Laugstøl <trygvis@inamo.no> | 2019-03-15 08:22:02 +0100 |
commit | 8d17fb5bc4b0dae0758e01a44d77d87acf2e686a (patch) | |
tree | a13ed043962b8a8da355bba956dc9e77b7fb217e /src/ee/tools/import_parts_yaml.py | |
parent | 2315d1a34cb777f1731368619a4ca14f46125bb4 (diff) | |
download | ee-python-8d17fb5bc4b0dae0758e01a44d77d87acf2e686a.tar.gz ee-python-8d17fb5bc4b0dae0758e01a44d77d87acf2e686a.tar.bz2 ee-python-8d17fb5bc4b0dae0758e01a44d77d87acf2e686a.tar.xz ee-python-8d17fb5bc4b0dae0758e01a44d77d87acf2e686a.zip |
o Adding module for searching on element14.
o Starting on functionality create orders. Very WIP.
o Adding a concept of an "ee project". Can load a gitconfig-like config
file.
o Adding a tool to import a yaml file into a part xml file.
Diffstat (limited to 'src/ee/tools/import_parts_yaml.py')
-rw-r--r-- | src/ee/tools/import_parts_yaml.py | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/src/ee/tools/import_parts_yaml.py b/src/ee/tools/import_parts_yaml.py new file mode 100644 index 0000000..81a23f8 --- /dev/null +++ b/src/ee/tools/import_parts_yaml.py @@ -0,0 +1,52 @@ +import argparse +import sys +import yaml +from pathlib import Path + +from ee.part import PartDb, save_db +from ee.xml import bomFile + + +def import_parts_yaml(in_file: Path, out_dir: Path): + with in_file.open("r") as f: + doc = yaml.safe_load(f) + + if not isinstance(doc, list): + print("Bad YAML document, the root must be a list", file=sys.stderr) + + parts = PartDb() + for item in doc: + if not isinstance(item, dict): + print("Bad YAML document, each part must be a dict", file=sys.stderr) + return + + part_number_list = bomFile.PartNumberList() + + mpn = item.get("mpn") + assert isinstance(mpn, str) + part_number_list.part_number.append(bomFile.PartNumber(value=mpn)) + + id_ = mpn + + part = bomFile.Part(id=id_) + part.part_numbersProp = part_number_list + parts.add_entry(part, True) + + print("Imported {} parts".format(parts.size())) + save_db(out_dir, parts) + + +parser = argparse.ArgumentParser() + +parser.add_argument("--in", + dest="in_", + required=True, + metavar="PARTS_YAML") + +parser.add_argument("--out", + required=True, + metavar="PART_ DB") + +args = parser.parse_args() + +import_parts_yaml(Path(args.in_), Path(args.out)) |