diff options
Diffstat (limited to 'trygvis/eda/digikey/__main__.py')
-rw-r--r-- | trygvis/eda/digikey/__main__.py | 42 |
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) |