comparison env/lib/python3.7/site-packages/rdflib/extras/cmdlineutils.py @ 0:26e78fe6e8c4 draft

"planemo upload commit c699937486c35866861690329de38ec1a5d9f783"
author shellac
date Sat, 02 May 2020 07:14:21 -0400
parents
children
comparison
equal deleted inserted replaced
-1:000000000000 0:26e78fe6e8c4
1 import sys
2 import time
3 import getopt
4 import rdflib
5 import codecs
6
7 from rdflib.util import guess_format
8
9
10 def _help():
11 sys.stderr.write("""
12 program.py [-f <format>] [-o <output>] [files...]
13 Read RDF files given on STDOUT - does something to the resulting graph
14 If no files are given, read from stdin
15 -o specifies file for output, if not given stdout is used
16 -f specifies parser to use, if not given it is guessed from extension
17
18 """)
19
20
21 def main(target, _help=_help, options="", stdin=True):
22 """
23 A main function for tools that read RDF from files given on commandline
24 or from STDIN (if stdin parameter is true)
25 """
26
27 args, files = getopt.getopt(sys.argv[1:], "hf:o:" + options)
28 dargs = dict(args)
29
30 if "-h" in dargs:
31 _help()
32 sys.exit(-1)
33
34 g = rdflib.Graph()
35
36 if "-f" in dargs:
37 f = dargs["-f"]
38 else:
39 f = None
40
41 if "-o" in dargs:
42 sys.stderr.write("Output to %s\n" % dargs["-o"])
43 out = codecs.open(dargs["-o"], "w", "utf-8")
44 else:
45 out = sys.stdout
46
47 start = time.time()
48 if len(files) == 0 and stdin:
49 sys.stderr.write("Reading from stdin as %s..." % f)
50 g.load(sys.stdin, format=f)
51 sys.stderr.write("[done]\n")
52 else:
53 size = 0
54 for x in files:
55 if f is None:
56 f = guess_format(x)
57 start1 = time.time()
58 sys.stderr.write("Loading %s as %s... " % (x, f))
59 g.load(x, format=f)
60 sys.stderr.write("done.\t(%d triples\t%.2f seconds)\n" %
61 (len(g) - size, time.time() - start1))
62 size = len(g)
63
64 sys.stderr.write("Loaded a total of %d triples in %.2f seconds.\n" %
65 (len(g), time.time() - start))
66
67 target(g, out, args)