aboutsummaryrefslogtreecommitdiff
path: root/trygvis/eda/cli/__init__.py
diff options
context:
space:
mode:
authorTrygve Laugstøl <trygvis@inamo.no>2017-01-07 14:00:46 +0100
committerTrygve Laugstøl <trygvis@inamo.no>2017-01-07 14:00:46 +0100
commit0958273a71dd19c2a90471a182ccc5b90b14e5b4 (patch)
tree8e33385ca9df94b80ce9b1f8ba06438b807f137a /trygvis/eda/cli/__init__.py
parent5d7fc9c4b14536006f2435b1379887f95937e096 (diff)
downloadeda-rdf-0958273a71dd19c2a90471a182ccc5b90b14e5b4.tar.gz
eda-rdf-0958273a71dd19c2a90471a182ccc5b90b14e5b4.tar.bz2
eda-rdf-0958273a71dd19c2a90471a182ccc5b90b14e5b4.tar.xz
eda-rdf-0958273a71dd19c2a90471a182ccc5b90b14e5b4.zip
Renaming 'schematic' to 'project'.
Renaming 'kicad-bom-to-ttl' to 'kicad-import-project'. Renaming 'digikey-download-for-schematic' to 'digikey-download-for-project'. Splitting out the Export xml file code into its own module. init: putting project.url and project.file in config.ini. init: putting db.update-url in config.ini if given on the command line. kicad-import-project: by default, assume that the user want to update local database, optionally write the ttl file to disk. cli.write_graph: create any missing parent directories.
Diffstat (limited to 'trygvis/eda/cli/__init__.py')
-rw-r--r--trygvis/eda/cli/__init__.py27
1 files changed, 23 insertions, 4 deletions
diff --git a/trygvis/eda/cli/__init__.py b/trygvis/eda/cli/__init__.py
index 308e1bd..aa61021 100644
--- a/trygvis/eda/cli/__init__.py
+++ b/trygvis/eda/cli/__init__.py
@@ -1,16 +1,26 @@
import sys
import logging
from genericpath import isfile
+from os import mkdir
+from os.path import dirname, isdir
from rdflib import store, ConjunctiveGraph, Graph, RDF, RDFS
from rdflib.plugins.sparql import prepareQuery
import rdflib.plugins.stores.sparqlstore as sparqlstore
import configparser
+# noinspection PyUnresolvedReferences
+import argparse
from ..digikey import rdf as digikey_rdf
from ..kicad import rdf as kicad_rdf
+class CliCommand(object):
+ def __init__(self, key, description):
+ self.key = key
+ self.description = description
+
+
class CliException(Exception):
pass
@@ -26,6 +36,12 @@ def info(msg=None):
sys.stderr.write("\n")
+def debug(msg=None):
+ if msg is not None:
+ sys.stderr.write('D: %s' % msg)
+ sys.stderr.write("\n")
+
+
def do_exit(msg=None):
sys.exit(msg)
@@ -45,7 +61,7 @@ def with_database(tx):
raise CliException("The database is corrupt: %s" % path)
elif db_type == 'sparql':
query_endpoint = config["db"]["url"]
- update_endpoint = config["db"].get("update_url")
+ update_endpoint = config["db"].get("update-url")
if update_endpoint is None:
g = sparqlstore.SPARQLStore()
@@ -57,7 +73,6 @@ def with_database(tx):
raise CliException("Unknown db.type: %s" % db_type)
try:
- print("g=%s" % g)
tx(g)
if isinstance(g, sparqlstore.SPARQLUpdateStore):
g.commit()
@@ -81,9 +96,13 @@ def create_graph(digikey=False, kicad=False) -> Graph:
return g
-def write_graph(gen_g, filename: str = None, force_write: bool = False):
+def write_graph(gen_g: Graph, filename: str = None, force_write: bool = False):
if filename is not None:
if force_write or not isfile(filename):
+ parent = dirname(filename)
+ if not isdir(parent):
+ mkdir(parent)
+
g = gen_g()
if g is None:
@@ -129,7 +148,7 @@ def write_config(config: configparser.ConfigParser):
config.write(configfile)
-def read_config():
+def read_config() -> configparser.ConfigParser:
try:
with open('.eda-rdf/config.ini', 'r') as f:
config = configparser.ConfigParser()