diff options
author | Trygve Laugstøl <trygvis@inamo.no> | 2016-12-28 14:08:52 +0100 |
---|---|---|
committer | Trygve Laugstøl <trygvis@inamo.no> | 2016-12-28 14:08:52 +0100 |
commit | 117431b9511be07db8ce53526dbb985b5fad00a2 (patch) | |
tree | abd48f2fec45184c45995d163fc7940cfeb4d423 /trygvis/eda/cli/digikey_download_metadata.py | |
parent | de8665b0b05db10c3257f9c645a09638a4732256 (diff) | |
download | eda-rdf-117431b9511be07db8ce53526dbb985b5fad00a2.tar.gz eda-rdf-117431b9511be07db8ce53526dbb985b5fad00a2.tar.bz2 eda-rdf-117431b9511be07db8ce53526dbb985b5fad00a2.tar.xz eda-rdf-117431b9511be07db8ce53526dbb985b5fad00a2.zip |
o Adding 'digikey-download-metadata' tool that downloads everything from Digi-Key. Should support writing directly to database.
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) |