]> git.openstreetmap.org Git - nominatim.git/blob - src/nominatim_api/query_preprocessing/base.py
release 4.5.0.post9
[nominatim.git] / src / nominatim_api / query_preprocessing / base.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 Common data types and protocols for preprocessing.
9 """
10 from typing import List, Callable
11
12 from ..typing import Protocol
13 from ..search import query as qmod
14 from .config import QueryConfig
15
16 QueryProcessingFunc = Callable[[List[qmod.Phrase]], List[qmod.Phrase]]
17
18
19 class QueryHandler(Protocol):
20     """ Protocol for query modules.
21     """
22     def create(self, config: QueryConfig) -> QueryProcessingFunc:
23         """
24         Create a function for sanitizing a place.
25         Arguments:
26             config: A dictionary with the additional configuration options
27                     specified in the tokenizer configuration
28             normalizer: A instance to transliterate text
29         Return:
30             The result is a list modified by the preprocessor.
31         """
32         pass