/
main.py
executable file
·51 lines (39 loc) · 1.64 KB
/
main.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
#!/usr/bin/env python3
import sys
from argparse import ArgumentParser
from logging import Logger
from pathlib import Path
from macrogen.config import config
from . import graph
from . import report
from .visualize import render_all
from .config import config
def main(argv=sys.argv):
parser = ArgumentParser()
parser.add_argument('-i', '--input', metavar='ZIP', help='Loads graph from zip file and runs the reporting', type=Path)
parser.add_argument('-o', '--output', metavar='ZIP', help='Saves graph to given zip file', type=Path)
parser.add_argument('--skip-reports', action='store_true', help='Do not write reports (use with -o)')
parser.add_argument('--override-bibscore', nargs='+', metavar='uri=value', help='Override bibscore for specific URIs')
group = parser.add_argument_group("Configuration options")
config.prepare_options(group)
options = parser.parse_args(argv[1:])
config.config_override = vars(options)
if options.override_bibscore:
logger: Logger = config.getLogger(__name__)
for override in options.override_bibscore:
uri, value_str = override.split('=')
try:
value = int(value_str)
config.bibscores[uri] = value
except ValueError:
logger.error('Could not parse score %s for source %s', value_str, uri)
graphs = graph.MacrogenesisInfo(options.input)
if options.output:
graphs.save(options.output)
if config.order:
report.write_order_xml(graphs)
if not options.skip_reports:
report.generate_reports(graphs)
render_all()
if __name__ == '__main__':
main()