1
0
Fork 0
mirror of https://github.com/qurator-spk/dinglehopper.git synced 2025-06-07 19:05:13 +02:00

🔍 mypy: Use a compatible syntax for multimethod

This commit is contained in:
Mike Gerber 2024-01-09 15:58:29 +01:00
parent 8166435958
commit ad316aeabc
3 changed files with 16 additions and 20 deletions

View file

@ -30,17 +30,15 @@ def character_error_rate_n(
# XXX Should we really count newlines here? # XXX Should we really count newlines here?
@multimethod @character_error_rate_n.register
def character_error_rate_n(reference: str, compared: str) -> Tuple[float, int]: def _(reference: str, compared: str) -> Tuple[float, int]:
seq1 = list(grapheme_clusters(unicodedata.normalize("NFC", reference))) seq1 = list(grapheme_clusters(unicodedata.normalize("NFC", reference)))
seq2 = list(grapheme_clusters(unicodedata.normalize("NFC", compared))) seq2 = list(grapheme_clusters(unicodedata.normalize("NFC", compared)))
return character_error_rate_n(seq1, seq2) return character_error_rate_n(seq1, seq2)
@multimethod @character_error_rate_n.register
def character_error_rate_n( def _(reference: ExtractedText, compared: ExtractedText) -> Tuple[float, int]:
reference: ExtractedText, compared: ExtractedText
) -> Tuple[float, int]:
return character_error_rate_n( return character_error_rate_n(
reference.grapheme_clusters, compared.grapheme_clusters reference.grapheme_clusters, compared.grapheme_clusters
) )

View file

@ -19,8 +19,8 @@ def distance(seq1: List[str], seq2: List[str]):
return Levenshtein.distance(seq1, seq2) return Levenshtein.distance(seq1, seq2)
@multimethod @distance.register
def distance(s1: str, s2: str): def _(s1: str, s2: str):
"""Compute the Levenshtein edit distance between two Unicode strings """Compute the Levenshtein edit distance between two Unicode strings
Note that this is different from levenshtein() as this function knows about Unicode Note that this is different from levenshtein() as this function knows about Unicode
@ -32,8 +32,8 @@ def distance(s1: str, s2: str):
return Levenshtein.distance(seq1, seq2) return Levenshtein.distance(seq1, seq2)
@multimethod @distance.register
def distance(s1: ExtractedText, s2: ExtractedText): def _(s1: ExtractedText, s2: ExtractedText):
return Levenshtein.distance(s1.grapheme_clusters, s2.grapheme_clusters) return Levenshtein.distance(s1.grapheme_clusters, s2.grapheme_clusters)

View file

@ -60,8 +60,8 @@ def words(s: str):
yield word yield word
@multimethod @words.register
def words(s: ExtractedText): def _(s: ExtractedText):
return words(s.text) return words(s.text)
@ -70,8 +70,8 @@ def words_normalized(s: str):
return words(unicodedata.normalize("NFC", s)) return words(unicodedata.normalize("NFC", s))
@multimethod @words_normalized.register
def words_normalized(s: ExtractedText): def _(s: ExtractedText):
return words_normalized(s.text) return words_normalized(s.text)
@ -82,15 +82,13 @@ def word_error_rate_n(reference: str, compared: str) -> Tuple[float, int]:
return word_error_rate_n(reference_seq, compared_seq) return word_error_rate_n(reference_seq, compared_seq)
@multimethod @word_error_rate_n.register
def word_error_rate_n( def _(reference: ExtractedText, compared: ExtractedText) -> Tuple[float, int]:
reference: ExtractedText, compared: ExtractedText
) -> Tuple[float, int]:
return word_error_rate_n(reference.text, compared.text) return word_error_rate_n(reference.text, compared.text)
@multimethod @word_error_rate_n.register
def word_error_rate_n(reference: Iterable, compared: Iterable) -> Tuple[float, int]: def _(reference: Iterable, compared: Iterable) -> Tuple[float, int]:
reference_seq = list(reference) reference_seq = list(reference)
compared_seq = list(compared) compared_seq = list(compared)