mirror of
https://github.com/osm-search/Nominatim.git
synced 2024-11-24 14:32:29 +03:00
3eb4d88057
This adds an installation step for PHP code for the tokenizer. The PHP code is split in two parts. The updateable code is found in lib-php. The tokenizer installs an additional script in the project directory which then includes the code from lib-php and defines all settings that are static to the database. The website code then always includes the PHP from the project directory.
61 lines
1.3 KiB
Python
61 lines
1.3 KiB
Python
"""
|
|
Tokenizer for testing.
|
|
"""
|
|
|
|
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 == None
|
|
self.init_state = "new"
|
|
|
|
|
|
def init_from_project(self):
|
|
assert self.init_state == None
|
|
self.init_state = "loaded"
|
|
|
|
|
|
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
|
|
|
|
def add_postcodes_from_db(self):
|
|
pass
|
|
|
|
def update_special_phrases(self, phrases):
|
|
self.analyser_cache['special_phrases'] = phrases
|
|
|
|
def add_country_names(self, code, names):
|
|
self.analyser_cache['countries'].append((code, names))
|
|
|
|
def process_place(self, place):
|
|
return {}
|