Loading allzweckmesser/scanner.py +14 −1 Original line number Diff line number Diff line Loading @@ -5,7 +5,7 @@ import re from typing import Dict, List, Set, Tuple from .db import FormAnalysis from .model import Reading, Syllable, Token, Verse from .model import Reading, Syllable, Token, Verse, Phenomenon from .wordlist import WordList verses = [ Loading Loading @@ -239,6 +239,19 @@ def get_syllables(reading): return reading def muta_cum_liquida(verse): mcl_regex = re.compile(r"([bpskgdt]|(qu)|(qv)),?\s?[lrmn]") if re.search(mcl_regex, verse.text): matches = re.finditer(mcl_regex, verse.text) for match in matches: for reading in verse.readings: for token in reading.tokens: for syllable in token.syllables: if syllable.span[0]<= match.start() < syllable.span[1]: syllable.phenomena["muta cum liquida"] = Phenomenon(chars=match.group(0)) pass class Scanner: def __init__(self): Loading tests/test_model.py +4 −0 Original line number Diff line number Diff line Loading @@ -21,6 +21,10 @@ def test_import_json(): assert verse_list_from_model == verse_list_from_json azm.scanner.muta_cum_liquida(verse_models[0]) for verse_model in verse_models[:1]: print(json.dumps(json.loads(verse_model.to_json()), indent=4, sort_keys=True)) if __name__ == "__main__": test_import_json() Loading
allzweckmesser/scanner.py +14 −1 Original line number Diff line number Diff line Loading @@ -5,7 +5,7 @@ import re from typing import Dict, List, Set, Tuple from .db import FormAnalysis from .model import Reading, Syllable, Token, Verse from .model import Reading, Syllable, Token, Verse, Phenomenon from .wordlist import WordList verses = [ Loading Loading @@ -239,6 +239,19 @@ def get_syllables(reading): return reading def muta_cum_liquida(verse): mcl_regex = re.compile(r"([bpskgdt]|(qu)|(qv)),?\s?[lrmn]") if re.search(mcl_regex, verse.text): matches = re.finditer(mcl_regex, verse.text) for match in matches: for reading in verse.readings: for token in reading.tokens: for syllable in token.syllables: if syllable.span[0]<= match.start() < syllable.span[1]: syllable.phenomena["muta cum liquida"] = Phenomenon(chars=match.group(0)) pass class Scanner: def __init__(self): Loading
tests/test_model.py +4 −0 Original line number Diff line number Diff line Loading @@ -21,6 +21,10 @@ def test_import_json(): assert verse_list_from_model == verse_list_from_json azm.scanner.muta_cum_liquida(verse_models[0]) for verse_model in verse_models[:1]: print(json.dumps(json.loads(verse_model.to_json()), indent=4, sort_keys=True)) if __name__ == "__main__": test_import_json()