]> git.openstreetmap.org Git - nominatim.git/blob - src/nominatim_api/query_preprocessing/config.py
generalize normalization step for search query
[nominatim.git] / src / nominatim_api / query_preprocessing / config.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 Configuration for Sanitizers.
9 """
10 from typing import Any, TYPE_CHECKING
11 from collections import UserDict
12
13 # working around missing generics in Python < 3.8
14 # See https://github.com/python/typing/issues/60#issuecomment-869757075
15 if TYPE_CHECKING:
16     _BaseUserDict = UserDict[str, Any]
17 else:
18     _BaseUserDict = UserDict
19
20
21 class QueryConfig(_BaseUserDict):
22     """ The `QueryConfig` class is a read-only dictionary
23         with configuration options for the preprocessor.
24         In addition to the usual dictionary functions, the class provides
25         accessors to standard preprocessor options that are used by many of the
26         preprocessors.
27     """
28
29     def set_normalizer(self, normalizer: Any) -> 'QueryConfig':
30         """ Set the normalizer function to be used.
31         """
32         self['_normalizer'] = normalizer
33
34         return self