diff options
Diffstat (limited to 'trygvis/eda/cli/digikey_download_metadata.py')
-rwxr-xr-x | trygvis/eda/cli/digikey_download_metadata.py | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/trygvis/eda/cli/digikey_download_metadata.py b/trygvis/eda/cli/digikey_download_metadata.py new file mode 100755 index 0000000..d807c1a --- /dev/null +++ b/trygvis/eda/cli/digikey_download_metadata.py @@ -0,0 +1,45 @@ +from trygvis.eda import cli +from trygvis.eda.digikey import * + + +def do_categories(db: DigikeyDatabase, client: DigikeyClient, output: str): + cli.info("Downloading category tree") + download_category_tree(db, client) + + def make_graph(): + g = cli.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()] + return g + + cli.write_graph(make_graph, output, force_write=True) + + +def do_category(client: DigikeyClient, sc: DigikeyProductCategory, output: str): + cli.info('Downloading categories for %s' % sc.label) + + def make_graph(): + attributes = download_attribute_types_from_category(sc, client) + g = cli.create_graph() + for a in attributes: + [g.add(node) for node in a.to_nodes()] + + return g + + cli.write_graph(make_graph, output, force_write=True) + +def run(args): + db = DigikeyDatabase() + client = DigikeyClient() + + # TODO: store in database too, not sure write to disk + output = "%s/digikey-categories.ttl" % args.output_dir + do_categories(db, client, output) + + for pc in db.productCategories: + for sc in pc.subCategories: + output = "%s/digikey-%s.ttl" % (args.output_dir, normalize_filename(sc.label)) + do_category(client, sc, output) |