use yaml config loader for country info

This commit is contained in:
Sarah Hoffmann
2021-09-04 00:22:21 +02:00
parent 28c98584c1
commit 8e1d4818ac
4 changed files with 7 additions and 8 deletions

View File

@@ -55,7 +55,7 @@ class SetupAll:
from ..tools import database_import, refresh, postcodes, freeze, country_info from ..tools import database_import, refresh, postcodes, freeze, country_info
from ..indexer.indexer import Indexer from ..indexer.indexer import Indexer
country_info.setup_country_config(args.config.config_dir / 'country_settings.yaml') country_info.setup_country_config(args.config)
if args.continue_at is None: if args.continue_at is None:
files = args.get_osm_file_list() files = args.get_osm_file_list()

View File

@@ -172,7 +172,7 @@ class Configuration:
search_paths = [self.project_dir, self.config_dir] search_paths = [self.project_dir, self.config_dir]
for path in search_paths: for path in search_paths:
if (path / filename).is_file(): if path is not None and (path / filename).is_file():
return path / filename return path / filename
LOG.fatal("Configuration file '%s' not found.\nDirectories searched: %s", LOG.fatal("Configuration file '%s' not found.\nDirectories searched: %s",

View File

@@ -2,7 +2,6 @@
Functions for importing and managing static country information. Functions for importing and managing static country information.
""" """
import psycopg2.extras import psycopg2.extras
import yaml
from nominatim.db import utils as db_utils from nominatim.db import utils as db_utils
from nominatim.db.connection import connect from nominatim.db.connection import connect
@@ -14,12 +13,12 @@ class _CountryInfo:
def __init__(self): def __init__(self):
self._info = {} self._info = {}
def load(self, configfile): def load(self, config):
""" Load the country properties from the configuration files, """ Load the country properties from the configuration files,
if they are not loaded yet. if they are not loaded yet.
""" """
if not self._info: if not self._info:
self._info = yaml.safe_load(configfile.read_text(encoding='utf-8')) self._info = config.load_sub_configuration('country_settings.yaml')
def items(self): def items(self):
""" Return tuples of (country_code, property dict) as iterable. """ Return tuples of (country_code, property dict) as iterable.
@@ -29,12 +28,12 @@ class _CountryInfo:
_COUNTRY_INFO = _CountryInfo() _COUNTRY_INFO = _CountryInfo()
def setup_country_config(configfile): def setup_country_config(config):
""" Load country properties from the configuration file. """ Load country properties from the configuration file.
Needs to be called before using any other functions in this Needs to be called before using any other functions in this
file. file.
""" """
_COUNTRY_INFO.load(configfile) _COUNTRY_INFO.load(config)
def setup_country_tables(dsn, sql_dir, ignore_partitions=False): def setup_country_tables(dsn, sql_dir, ignore_partitions=False):

View File

@@ -8,7 +8,7 @@ from nominatim.tools import country_info
@pytest.fixture(autouse=True) @pytest.fixture(autouse=True)
def read_config(def_config): def read_config(def_config):
country_info.setup_country_config(def_config.config_dir / 'country_settings.yaml') country_info.setup_country_config(def_config)
@pytest.mark.parametrize("no_partitions", (True, False)) @pytest.mark.parametrize("no_partitions", (True, False))
def test_setup_country_tables(src_dir, temp_db_with_extensions, dsn, temp_db_cursor, def test_setup_country_tables(src_dir, temp_db_with_extensions, dsn, temp_db_cursor,