]> git.openstreetmap.org Git - nominatim.git/blob - src/nominatim_api/query_preprocessing/normalize.py
0c12b93f169c672fda8a68c8270beb869a410e9e
[nominatim.git] / src / nominatim_api / query_preprocessing / normalize.py
1 # SPDX-License-Identifier: GPL-3.0-or-later
2 #
3 # This file is part of Nominatim. (https://nominatim.org)
4 #
5 # Copyright (C) 2024 by the Nominatim developer community.
6 # For a full list of authors see the git log.
7 """
8 Normalize query test using an ICU transliterator.
9 """
10 from typing import cast
11
12 from .config import QueryConfig
13 from .base import QueryProcessingFunc
14 from ..search.query import Phrase
15
16
17 def create(config: QueryConfig) -> QueryProcessingFunc:
18     normalizer = config.get('_normalizer')
19
20     if not normalizer:
21         return lambda p: p
22
23     return lambda phrases: list(
24         filter(lambda p: p.text,
25                (Phrase(p.ptype, cast(str, normalizer.transliterate(p.text)))
26                 for p in phrases)))