aboutsummaryrefslogtreecommitdiff
path: root/trygvis/eda/cli/digikey_download_metadata.py
diff options
context:
space:
mode:
Diffstat (limited to 'trygvis/eda/cli/digikey_download_metadata.py')
-rwxr-xr-xtrygvis/eda/cli/digikey_download_metadata.py45
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)