diff options
author | Trygve Laugstøl <trygvis@inamo.no> | 2016-12-27 01:14:37 +0100 |
---|---|---|
committer | Trygve Laugstøl <trygvis@inamo.no> | 2016-12-27 01:14:37 +0100 |
commit | 67013ae17af0436b930dce450a813239be969601 (patch) | |
tree | 93a8b34c93080a27674456481d31d6d8b47266cf /trygvis/eda/cli/__init__.py | |
download | eda-rdf-67013ae17af0436b930dce450a813239be969601.tar.gz eda-rdf-67013ae17af0436b930dce450a813239be969601.tar.bz2 eda-rdf-67013ae17af0436b930dce450a813239be969601.tar.xz eda-rdf-67013ae17af0436b930dce450a813239be969601.zip |
o Initial import of some tools for working with KiCAD BOM files and Digi-key.
Diffstat (limited to 'trygvis/eda/cli/__init__.py')
-rw-r--r-- | trygvis/eda/cli/__init__.py | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/trygvis/eda/cli/__init__.py b/trygvis/eda/cli/__init__.py new file mode 100644 index 0000000..aa9e57e --- /dev/null +++ b/trygvis/eda/cli/__init__.py @@ -0,0 +1,56 @@ +import sys +import logging + +from rdflib import ConjunctiveGraph +from rdflib import Graph +from rdflib import store + +from ..digikey import rdf as digikey_rdf +from ..kicad import rdf as kicad_rdf + + +class CliException(Exception): + pass + + +def init(): + logging.basicConfig(level=logging.DEBUG) + pass + + +def info(msg=None): + if msg is not None: + sys.stderr.write(msg) + sys.stderr.write("\n") + + +def exit(msg=None): + sys.exit(msg) + + +def open_database(path): + g = ConjunctiveGraph('Sleepycat') + rt = g.open(path, create=False) + if rt == store.NO_STORE: + info("Creating store in %s" % path) + g.open(path, create=True) + elif rt != store.VALID_STORE: + raise CliException("The database is corrupt: %s" % path) + + return g + + +def create_graph(digikey=False, kicad=False): + g = Graph() + + if digikey: + g.bind("dk", digikey_rdf.DIGIKEY) + g.bind("dk-part", digikey_rdf.DIGIKEY_PART) + g.bind("dk-attr-type", digikey_rdf.DIGIKEY_ATTRIBUTE_TYPE) + g.bind("dk-attr-value", digikey_rdf.DIGIKEY_ATTRIBUTE_VALUE) + g.bind("dk-product-category", digikey_rdf.DIGIKEY_PRODUCT_CATEGORY) + + if kicad: + g.bind("kicad", kicad_rdf.KICAD) + g.bind("kicad-type", kicad_rdf.KICAD_TYPE) + return g |