diff options
author | Trygve Laugstøl <trygvis@inamo.no> | 2016-12-27 22:24:37 +0100 |
---|---|---|
committer | Trygve Laugstøl <trygvis@inamo.no> | 2016-12-27 22:24:37 +0100 |
commit | 9bf18900c05547a40bb3c3a7a819a137e81dae92 (patch) | |
tree | acd7047e5650091854a19da838108dd8570591e1 /trygvis/eda/cli/db_stats.py | |
parent | 67013ae17af0436b930dce450a813239be969601 (diff) | |
download | eda-rdf-9bf18900c05547a40bb3c3a7a819a137e81dae92.tar.gz eda-rdf-9bf18900c05547a40bb3c3a7a819a137e81dae92.tar.bz2 eda-rdf-9bf18900c05547a40bb3c3a7a819a137e81dae92.tar.xz eda-rdf-9bf18900c05547a40bb3c3a7a819a137e81dae92.zip |
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).
Diffstat (limited to 'trygvis/eda/cli/db_stats.py')
-rwxr-xr-x | trygvis/eda/cli/db_stats.py | 39 |
1 files changed, 39 insertions, 0 deletions
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 "<unnamed>" + 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)) |