diff options
author | Trygve Laugstøl <trygvis@inamo.no> | 2017-01-07 14:00:46 +0100 |
---|---|---|
committer | Trygve Laugstøl <trygvis@inamo.no> | 2017-01-07 14:00:46 +0100 |
commit | 0958273a71dd19c2a90471a182ccc5b90b14e5b4 (patch) | |
tree | 8e33385ca9df94b80ce9b1f8ba06438b807f137a /trygvis/eda/cli/__init__.py | |
parent | 5d7fc9c4b14536006f2435b1379887f95937e096 (diff) | |
download | eda-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__.py | 27 |
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() |