+# SPDX-License-Identifier: GPL-2.0-only
+#
+# This file is part of Nominatim. (https://nominatim.org)
+#
+# Copyright (C) 2022 by the Nominatim developer community.
+# For a full list of authors see the git log.
"""
Tokenizer for testing.
"""
+from nominatim.indexer.place_info import PlaceInfo
+from nominatim.config import Configuration
def create(dsn, data_dir):
""" Create a new instance of the tokenizer provided by this module.
self.dsn = dsn
self.data_dir = data_dir
self.init_state = None
+ self.analyser_cache = {}
- def init_new_db(self, config):
- assert self.init_state == None
+ def init_new_db(self, *args, **kwargs):
+ assert self.init_state is None
self.init_state = "new"
- def init_from_project(self):
- assert self.init_state == None
+ def init_from_project(self, config):
+ assert isinstance(config, Configuration)
+ assert self.init_state is None
self.init_state = "loaded"
+ @staticmethod
+ def finalize_import(_):
+ pass
+
+
def name_analyzer(self):
- return DummyNameAnalyzer()
+ return DummyNameAnalyzer(self.analyser_cache)
class DummyNameAnalyzer:
self.close()
+ def __init__(self, cache):
+ self.analyser_cache = cache
+ cache['countries'] = []
+
+
def close(self):
- """ Free all resources used by the analyzer.
- """
pass
- def add_postcodes_from_db(self):
+ @staticmethod
+ def normalize_postcode(postcode):
+ return postcode
+
+ @staticmethod
+ def update_postcodes_from_db():
pass
- def process_place(self, place):
- """ Determine tokenizer information about the given place.
+ def update_special_phrases(self, phrases, should_replace):
+ self.analyser_cache['special_phrases'] = phrases
+
+ def add_country_names(self, code, names):
+ self.analyser_cache['countries'].append((code, names))
- Returns a JSON-serialisable structure that will be handed into
- the database via the token_info field.
- """
+ @staticmethod
+ def process_place(place):
+ assert isinstance(place, PlaceInfo)
return {}