X-Git-Url: https://git.openstreetmap.org./nominatim.git/blobdiff_plain/b453b0ea95e7b1244912b7bc9fc26f58acb8ec80..26a5b59c287225515e679941d5fe48d0cc9fce79:/nominatim/tokenizer/token_analysis/generic_mutation.py diff --git a/nominatim/tokenizer/token_analysis/generic_mutation.py b/nominatim/tokenizer/token_analysis/generic_mutation.py index d23d5cd4..612f558a 100644 --- a/nominatim/tokenizer/token_analysis/generic_mutation.py +++ b/nominatim/tokenizer/token_analysis/generic_mutation.py @@ -7,6 +7,7 @@ """ Creator for mutation variants for the generic token analysis. """ +from typing import Sequence, Iterable, Iterator, Tuple import itertools import logging import re @@ -15,18 +16,18 @@ from nominatim.errors import UsageError LOG = logging.getLogger() -def _zigzag(outer, inner): +def _zigzag(outer: Iterable[str], inner: Iterable[str]) -> Iterator[str]: return itertools.chain.from_iterable(itertools.zip_longest(outer, inner, fillvalue='')) class MutationVariantGenerator: """ Generates name variants by applying a regular expression to the name and replacing it with one or more variants. When the regular expression - matches more than once, each occurence is replaced with all replacement + matches more than once, each occurrence is replaced with all replacement patterns. """ - def __init__(self, pattern, replacements): + def __init__(self, pattern: str, replacements: Sequence[str]): self.pattern = re.compile(pattern) self.replacements = replacements @@ -36,7 +37,7 @@ class MutationVariantGenerator: raise UsageError("Bad mutation pattern in configuration.") - def generate(self, names): + def generate(self, names: Iterable[str]) -> Iterator[str]: """ Generator function for the name variants. 'names' is an iterable over a set of names for which the variants are to be generated. """ @@ -49,7 +50,7 @@ class MutationVariantGenerator: yield ''.join(_zigzag(parts, seps)) - def _fillers(self, num_parts): + def _fillers(self, num_parts: int) -> Iterator[Tuple[str, ...]]: """ Returns a generator for strings to join the given number of string parts in all possible combinations. """