Mercurial > repos > shellac > guppy_basecaller
diff env/lib/python3.7/site-packages/rdflib/tools/rdfpipe.py @ 5:9b1c78e6ba9c draft default tip
"planemo upload commit 6c0a8142489327ece472c84e558c47da711a9142"
| author | shellac |
|---|---|
| date | Mon, 01 Jun 2020 08:59:25 -0400 |
| parents | 79f47841a781 |
| children |
line wrap: on
line diff
--- a/env/lib/python3.7/site-packages/rdflib/tools/rdfpipe.py Thu May 14 16:47:39 2020 -0400 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,185 +0,0 @@ -#!/usr/bin/env python -# -*- coding: UTF-8 -*- -""" -A commandline tool for parsing RDF in different formats and serializing the -resulting graph to a chosen format. -""" - -import sys -from optparse import OptionParser -import logging - -import rdflib -from rdflib import plugin -from rdflib.store import Store -from rdflib.graph import ConjunctiveGraph -from rdflib.namespace import RDF, RDFS, OWL, XSD -from rdflib.parser import Parser -from rdflib.serializer import Serializer - -from rdflib.util import guess_format -from rdflib.py3compat import PY3 - - -DEFAULT_INPUT_FORMAT = 'xml' -DEFAULT_OUTPUT_FORMAT = 'n3' - - -def parse_and_serialize(input_files, input_format, guess, - outfile, output_format, ns_bindings, - store_conn="", store_type=None): - - if store_type: - store = plugin.get(store_type, Store)() - store.open(store_conn) - graph = ConjunctiveGraph(store) - else: - store = None - graph = ConjunctiveGraph() - - for prefix, uri in list(ns_bindings.items()): - graph.namespace_manager.bind(prefix, uri, override=False) - - for fpath in input_files: - use_format, kws = _format_and_kws(input_format) - if fpath == '-': - fpath = sys.stdin - elif not input_format and guess: - use_format = guess_format(fpath) or DEFAULT_INPUT_FORMAT - graph.parse(fpath, format=use_format, **kws) - - if outfile: - output_format, kws = _format_and_kws(output_format) - kws.setdefault('base', None) - graph.serialize(destination=outfile, format=output_format, **kws) - - if store: - store.rollback() - - -def _format_and_kws(fmt): - """ - >>> _format_and_kws("fmt") - ('fmt', {}) - >>> _format_and_kws("fmt:+a") - ('fmt', {'a': True}) - >>> _format_and_kws("fmt:a") - ('fmt', {'a': True}) - >>> _format_and_kws("fmt:+a,-b") #doctest: +SKIP - ('fmt', {'a': True, 'b': False}) - >>> _format_and_kws("fmt:c=d") - ('fmt', {'c': 'd'}) - >>> _format_and_kws("fmt:a=b:c") - ('fmt', {'a': 'b:c'}) - """ - fmt, kws = fmt, {} - if fmt and ':' in fmt: - fmt, kwrepr = fmt.split(':', 1) - for kw in kwrepr.split(','): - if '=' in kw: - k, v = kw.split('=') - kws[k] = v - elif kw.startswith('-'): - kws[kw[1:]] = False - elif kw.startswith('+'): - kws[kw[1:]] = True - else: # same as "+" - kws[kw] = True - return fmt, kws - - -def make_option_parser(): - parser_names = _get_plugin_names(Parser) - serializer_names = _get_plugin_names(Serializer) - kw_example = "FORMAT:(+)KW1,-KW2,KW3=VALUE" - - oparser = OptionParser( - "%prog [-h] [-i INPUT_FORMAT] [-o OUTPUT_FORMAT] " + - "[--ns=PFX=NS ...] [-] [FILE ...]", - description=__doc__.strip() + ( - " Reads file system paths, URLs or from stdin if '-' is given." - " The result is serialized to stdout."), - version="%prog " + "(using rdflib %s)" % rdflib.__version__) - - oparser.add_option( - '-i', '--input-format', - type=str, # default=DEFAULT_INPUT_FORMAT, - help="Format of the input document(s)." - " Available input formats are: %s." % parser_names + - " If no format is given, it will be " + - "guessed from the file name extension." + - " Keywords to parser can be given after format like: %s." % kw_example, - metavar="INPUT_FORMAT") - - oparser.add_option( - '-o', '--output-format', - type=str, default=DEFAULT_OUTPUT_FORMAT, - help="Format of the graph serialization." - " Available output formats are: %s." - % serializer_names + - " Default format is: '%default'." + - " Keywords to serializer can be given after format like: %s." % - kw_example, - metavar="OUTPUT_FORMAT") - - oparser.add_option( - '--ns', - action="append", type=str, - help="Register a namespace binding (QName prefix to a base URI). " - "This can be used more than once.", - metavar="PREFIX=NAMESPACE") - - oparser.add_option( - '--no-guess', dest='guess', - action='store_false', default=True, - help="Don't guess format based on file suffix.") - - oparser.add_option( - '--no-out', - action='store_true', default=False, - help="Don't output the resulting graph " + - "(useful for checking validity of input).") - - oparser.add_option( - '-w', '--warn', - action='store_true', default=False, - help="Output warnings to stderr (by default only critical errors).") - - return oparser - -_get_plugin_names = lambda kind: ", ".join( - p.name for p in plugin.plugins(kind=kind)) - - -def main(): - oparser = make_option_parser() - opts, args = oparser.parse_args() - if len(args) < 1: - oparser.print_usage() - oparser.exit() - - if opts.warn: - loglevel = logging.WARNING - else: - loglevel = logging.CRITICAL - logging.basicConfig(level=loglevel) - - ns_bindings = {} - if opts.ns: - for ns_kw in opts.ns: - pfx, uri = ns_kw.split('=') - ns_bindings[pfx] = uri - - outfile = sys.stdout - if PY3: - outfile = sys.stdout.buffer - - if opts.no_out: - outfile = None - - parse_and_serialize(args, opts.input_format, opts.guess, - outfile, opts.output_format, ns_bindings) - - -if __name__ == "__main__": - main()
