From 0958273a71dd19c2a90471a182ccc5b90b14e5b4 Mon Sep 17 00:00:00 2001 From: Trygve Laugstøl Date: Sat, 7 Jan 2017 14:00:46 +0100 Subject: 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. --- trygvis/eda/cli/__init__.py | 27 +++++++++++++++++++++++---- 1 file changed, 23 insertions(+), 4 deletions(-) (limited to 'trygvis/eda/cli/__init__.py') 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() -- cgit v1.2.3