1 # SPDX-License-Identifier: GPL-3.0-or-later
3 # This file is part of Nominatim. (https://nominatim.org)
5 # Copyright (C) 2024 by the Nominatim developer community.
6 # For a full list of authors see the git log.
10 from nominatim_db.data.place_info import PlaceInfo
11 from nominatim_db.config import Configuration
13 def create(dsn, data_dir):
14 """ Create a new instance of the tokenizer provided by this module.
16 return DummyTokenizer(dsn, data_dir)
20 def __init__(self, dsn, data_dir):
22 self.data_dir = data_dir
23 self.init_state = None
24 self.analyser_cache = {}
27 def init_new_db(self, *args, **kwargs):
28 assert self.init_state is None
29 self.init_state = "new"
32 def init_from_project(self, config):
33 assert isinstance(config, Configuration)
34 assert self.init_state is None
35 self.init_state = "loaded"
39 def finalize_import(_):
43 def name_analyzer(self):
44 return DummyNameAnalyzer(self.analyser_cache)
47 class DummyNameAnalyzer:
52 def __exit__(self, exc_type, exc_value, traceback):
56 def __init__(self, cache):
57 self.analyser_cache = cache
58 cache['countries'] = []
65 def normalize_postcode(postcode):
69 def update_postcodes_from_db():
72 def update_special_phrases(self, phrases, should_replace):
73 self.analyser_cache['special_phrases'] = phrases
75 def add_country_names(self, code, names):
76 self.analyser_cache['countries'].append((code, names))
79 def process_place(place):
80 assert isinstance(place, PlaceInfo)