From 9bf18900c05547a40bb3c3a7a819a137e81dae92 Mon Sep 17 00:00:00 2001 From: Trygve Laugstøl Date: Tue, 27 Dec 2016 22:24:37 +0100 Subject: o Adding a 'db-stats' application for summarizing the contents of the database. o Starting on make-bom. Extremely slow when using rdflib (~8 minutes), jena is very fast (~50 ms). --- trygvis/eda/cli/db_stats.py | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100755 trygvis/eda/cli/db_stats.py (limited to 'trygvis/eda/cli/db_stats.py') diff --git a/trygvis/eda/cli/db_stats.py b/trygvis/eda/cli/db_stats.py new file mode 100755 index 0000000..4780c20 --- /dev/null +++ b/trygvis/eda/cli/db_stats.py @@ -0,0 +1,39 @@ +from trygvis.eda import cli + + +def run(db_path): + g = cli.open_database(db_path) + + res = cli.sparql(g, """ +SELECT ?schematic ?label +WHERE { + ?schematic a kicad-type:schematic + OPTIONAL { + ?schematic rdfs:label ?label + } +} +""") + cli.info("Found %d schematics in database" % len(res)) + for row in res: + name = row.label if row.label is not None else "" + url = row.schematic + + cli.info("%s:" % name) + cli.info(" URL: %s" % url) + cli.info() + + res = cli.sparql(g, """ +SELECT + ?dk_part ?dk_part_number ?label +WHERE { + ?dk_part a dk:part ; + dk:partNumber ?dk_part_number . + OPTIONAL { + ?dk_part rdfs:label ?label + } +} +ORDER BY ?dk_part_number + """) + cli.info("Found %d Digi-Key parts:" % len(res)) + for row in res: + cli.info(" %-30s: %s" % (row.dk_part_number, row.label)) -- cgit v1.2.3