aboutsummaryrefslogtreecommitdiff
path: root/trygvis/eda/cli/__init__.py
diff options
context:
space:
mode:
Diffstat (limited to 'trygvis/eda/cli/__init__.py')
-rw-r--r--trygvis/eda/cli/__init__.py56
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