X-Git-Url: https://git.openstreetmap.org./nominatim.git/blobdiff_plain/efafa5271957fb54b356ec1c90e8613f14de40d4..a96b6a1289e3a595b2d3753a1a038abc3f19721a:/nominatim/tokenizer/sanitizers/split_name_list.py diff --git a/nominatim/tokenizer/sanitizers/split_name_list.py b/nominatim/tokenizer/sanitizers/split_name_list.py index 3250c668..7d0667b4 100644 --- a/nominatim/tokenizer/sanitizers/split_name_list.py +++ b/nominatim/tokenizer/sanitizers/split_name_list.py @@ -9,23 +9,20 @@ Sanitizer that splits lists of names into their components. Arguments: delimiters: Define the set of characters to be used for - splitting the list. (default: `,;`) + splitting the list. (default: ',;') """ -import re +from typing import Callable -from nominatim.errors import UsageError +from nominatim.tokenizer.sanitizers.base import ProcessInfo +from nominatim.tokenizer.sanitizers.config import SanitizerConfig -def create(func): +def create(config: SanitizerConfig) -> Callable[[ProcessInfo], None]: """ Create a name processing function that splits name values with multiple values into their components. """ - delimiter_set = set(func.get('delimiters', ',;')) - if not delimiter_set: - raise UsageError("Set of delimiters in split-name-list sanitizer is empty.") + regexp = config.get_delimiter() - regexp = re.compile('\\s*[{}]\\s*'.format(''.join('\\' + d for d in delimiter_set))) - - def _process(obj): + def _process(obj: ProcessInfo) -> None: if not obj.names: return