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)