Newer
Older
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
#!/usr/bin/python3
# -*- coding: utf-8 -*-
import argparse
import json
import os
import allzweckmesser as azm
def main(hypotactic_dir, top_out_dir, meters=['hexameter']):
corpus = azm.corpus.HypotacticCorpus.from_directory(hypotactic_dir)
for document in corpus.documents:
doc_out_dir = os.path.join(top_out_dir, document.title)
os.makedirs(doc_out_dir, exist_ok=True)
for meter in meters:
verses_for_meter = [
azm.corpus.HypotacticLine(line).verse.to_dict()
for line in document.get_lines_with_meter([meter])
]
if verses_for_meter:
with open(os.path.join(doc_out_dir, '{}.json'.format(meter)),
'w') as f:
json.dump(verses_for_meter, f)
def parse_args_and_main():
d = 'Extract lines from a Hypotactic corpus'
parser = argparse.ArgumentParser(description=d)
parser.add_argument('--meters', '-m', nargs='+',
help='Meters of the lines to extract')
parser.add_argument('hypotactic_dir',
help='Top level directory of the Hypotactic corpus')
parser.add_argument('top_out_dir',
help='Top level directory of the created JSON files')
args = parser.parse_args()
main(**vars(args))
if __name__ == '__main__':
parse_args_and_main()