X-Git-Url: https://git.openstreetmap.org./nominatim.git/blobdiff_plain/62eedbb8f6ddb7928022d799a1b1fea62844faf8..657aae5f1bfebb99df5b9e6aa00c5b89269e4910:/nominatim/tokenizer/sanitizers/clean_housenumbers.py diff --git a/nominatim/tokenizer/sanitizers/clean_housenumbers.py b/nominatim/tokenizer/sanitizers/clean_housenumbers.py index 5df057d0..ae6349a9 100644 --- a/nominatim/tokenizer/sanitizers/clean_housenumbers.py +++ b/nominatim/tokenizer/sanitizers/clean_housenumbers.py @@ -25,20 +25,18 @@ Arguments: expression that must match the full house number value. """ from typing import Callable, Iterator, List -import re -from nominatim.tokenizer.sanitizers.base import ProcessInfo, PlaceName +from nominatim.tokenizer.sanitizers.base import ProcessInfo +from nominatim.data.place_name import PlaceName from nominatim.tokenizer.sanitizers.config import SanitizerConfig class _HousenumberSanitizer: def __init__(self, config: SanitizerConfig) -> None: - self.filter_kind = config.get_filter_kind('housenumber') + self.filter_kind = config.get_filter('filter-kind', ['housenumber']) self.split_regexp = config.get_delimiter() - nameregexps = config.get_string_list('convert-to-name', []) - self.is_name_regexp = [re.compile(r) for r in nameregexps] - + self.filter_name = config.get_filter('convert-to-name', 'FAIL_ALL') def __call__(self, obj: ProcessInfo) -> None: @@ -48,7 +46,7 @@ class _HousenumberSanitizer: new_address: List[PlaceName] = [] for item in obj.address: if self.filter_kind(item.kind): - if self._treat_as_name(item.name): + if self.filter_name(item.name): obj.names.append(item.clone(kind='housenumber')) else: new_address.extend(item.clone(kind='housenumber', name=n) @@ -75,10 +73,6 @@ class _HousenumberSanitizer: yield hnr - def _treat_as_name(self, housenumber: str) -> bool: - return any(r.fullmatch(housenumber) is not None for r in self.is_name_regexp) - - def create(config: SanitizerConfig) -> Callable[[ProcessInfo], None]: """ Create a housenumber processing function. """