Loading allzweckmesser/scanner.py +48 −4 Original line number Diff line number Diff line Loading @@ -46,7 +46,7 @@ def multiply_readings(readings: List[Reading], for i in range(orig_readings_len): # TODO: Think about moving this to Reading in model.py new_reading = Reading( [copy.copy(token) for token in readings[i].tokens] [copy.deepcopy(token) for token in readings[i].tokens] ) readings.append(new_reading) return readings Loading Loading @@ -240,16 +240,60 @@ def get_syllables(reading): def muta_cum_liquida(verse): mcl_regex = re.compile(r"([bpskgdt]|(qu)|(qv)),?\s?[lrmn]") 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 syllable.phenomena['muta cum liquida'] = Phenomenon(chars=match.group(0)) def positional_lengthening(verse): muta_cum_liquida(verse) pl_regex = re.compile(r'[aeiouv]((([bcdfgjklmnprstvwxz]|(qu),?\s?){2,})|[xz])') match_starts = [match.start() for match in re.finditer(pl_regex, verse.text)] for reading in verse.readings: syllables = [syllable for token in reading.tokens for syllable in token.syllables] lengths = str() for syllable in syllables: if 'muta cum liquida' in syllable.phenomena: lengths += 'M' elif syllable.syllable_length == 2: lengths += 'L' elif any([syllable.span[0]<= start < syllable.span[1] for start in match_starts]): lengths += 'L' elif syllable.syllable_length == 1: lengths += 'S' print(lengths) #for reading in verse.readings: #for token in reading.tokens: #for syllable in token.syllables: #if "muta cum liquida" in syllable.phenomena: #old_reading = copy.deepcopy(reading) #all_readings_parsed = False #if syllable_length == 1: #elif syllable_length == 2: class Scanner: Loading Loading
allzweckmesser/scanner.py +48 −4 Original line number Diff line number Diff line Loading @@ -46,7 +46,7 @@ def multiply_readings(readings: List[Reading], for i in range(orig_readings_len): # TODO: Think about moving this to Reading in model.py new_reading = Reading( [copy.copy(token) for token in readings[i].tokens] [copy.deepcopy(token) for token in readings[i].tokens] ) readings.append(new_reading) return readings Loading Loading @@ -240,16 +240,60 @@ def get_syllables(reading): def muta_cum_liquida(verse): mcl_regex = re.compile(r"([bpskgdt]|(qu)|(qv)),?\s?[lrmn]") 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 syllable.phenomena['muta cum liquida'] = Phenomenon(chars=match.group(0)) def positional_lengthening(verse): muta_cum_liquida(verse) pl_regex = re.compile(r'[aeiouv]((([bcdfgjklmnprstvwxz]|(qu),?\s?){2,})|[xz])') match_starts = [match.start() for match in re.finditer(pl_regex, verse.text)] for reading in verse.readings: syllables = [syllable for token in reading.tokens for syllable in token.syllables] lengths = str() for syllable in syllables: if 'muta cum liquida' in syllable.phenomena: lengths += 'M' elif syllable.syllable_length == 2: lengths += 'L' elif any([syllable.span[0]<= start < syllable.span[1] for start in match_starts]): lengths += 'L' elif syllable.syllable_length == 1: lengths += 'S' print(lengths) #for reading in verse.readings: #for token in reading.tokens: #for syllable in token.syllables: #if "muta cum liquida" in syllable.phenomena: #old_reading = copy.deepcopy(reading) #all_readings_parsed = False #if syllable_length == 1: #elif syllable_length == 2: class Scanner: Loading