mirror of
https://github.com/osm-search/Nominatim.git
synced 2024-11-27 00:49:55 +03:00
16daa57e47
There is no need for the additional layer of indirection that the ICUNameProcessorRules class adds. The ICURuleLoader can fill the database properties directly.
76 lines
1.6 KiB
Python
76 lines
1.6 KiB
Python
"""
|
|
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.
|
|
"""
|
|
return DummyTokenizer(dsn, data_dir)
|
|
|
|
class DummyTokenizer:
|
|
|
|
def __init__(self, dsn, data_dir):
|
|
self.dsn = dsn
|
|
self.data_dir = data_dir
|
|
self.init_state = None
|
|
self.analyser_cache = {}
|
|
|
|
|
|
def init_new_db(self, *args, **kwargs):
|
|
assert self.init_state is None
|
|
self.init_state = "new"
|
|
|
|
|
|
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(self.analyser_cache)
|
|
|
|
|
|
class DummyNameAnalyzer:
|
|
|
|
def __enter__(self):
|
|
return self
|
|
|
|
def __exit__(self, exc_type, exc_value, traceback):
|
|
self.close()
|
|
|
|
|
|
def __init__(self, cache):
|
|
self.analyser_cache = cache
|
|
cache['countries'] = []
|
|
|
|
|
|
def close(self):
|
|
pass
|
|
|
|
@staticmethod
|
|
def normalize_postcode(postcode):
|
|
return postcode
|
|
|
|
@staticmethod
|
|
def update_postcodes_from_db():
|
|
pass
|
|
|
|
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))
|
|
|
|
@staticmethod
|
|
def process_place(place):
|
|
assert isinstance(place, PlaceInfo)
|
|
return {}
|