aboutsummaryrefslogtreecommitdiff
path: root/trygvis/eda/digikey/__main__.py
diff options
context:
space:
mode:
Diffstat (limited to 'trygvis/eda/digikey/__main__.py')
-rw-r--r--trygvis/eda/digikey/__main__.py42
1 files changed, 42 insertions, 0 deletions
diff --git a/trygvis/eda/digikey/__main__.py b/trygvis/eda/digikey/__main__.py
new file mode 100644
index 0000000..ceb341e
--- /dev/null
+++ b/trygvis/eda/digikey/__main__.py
@@ -0,0 +1,42 @@
+import argparse
+
+from .. import write_graph
+from ..cli import *
+from ..digikey import *
+
+parser = argparse.ArgumentParser()
+subparsers = parser.add_subparsers(dest='cmd') # help='sub-command help'
+
+dct_parser = subparsers.add_parser("download-category-tree")
+dct_parser.add_argument("-o", "--output", required=False)
+
+dp_parser = subparsers.add_parser("download-product")
+dp_parser.add_argument("-p", "--product")
+dp_parser.add_argument("-o", "--output", required=False)
+
+args = parser.parse_args()
+
+client = DigikeyClient()
+db = DigikeyDatabase()
+
+if args.cmd == "download-category-tree":
+ download_category_tree(db, client)
+ if args.output is not None:
+ def make_graph():
+ g = create_graph(digikey=True)
+ for pc in db.productCategories:
+ [g.add(node) for node in pc.to_nodes()]
+
+ for sc in pc.subCategories:
+ [g.add(node) for node in sc.to_nodes()]
+ write_graph(make_graph, args.output)
+
+elif args.cmd == "download-product":
+ download_category_tree(db, client)
+ product = download_product(client, db, args.product)
+
+ if args.output is not None:
+ def make_graph():
+ g = create_graph(digikey=True)
+ [g.add(node) for node in product.to_nodes()]
+ write_graph(make_graph, args.output)