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 ..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:
files = args.get_osm_file_list()

View File

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

View File

@@ -2,7 +2,6 @@
Functions for importing and managing static country information.
"""
import psycopg2.extras
import yaml
from nominatim.db import utils as db_utils
from nominatim.db.connection import connect
@@ -14,12 +13,12 @@ class _CountryInfo:
def __init__(self):
self._info = {}
def load(self, configfile):
def load(self, config):
""" Load the country properties from the configuration files,
if they are not loaded yet.
"""
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):
""" Return tuples of (country_code, property dict) as iterable.
@@ -29,12 +28,12 @@ class _CountryInfo:
_COUNTRY_INFO = _CountryInfo()
def setup_country_config(configfile):
def setup_country_config(config):
""" Load country properties from the configuration file.
Needs to be called before using any other functions in this
file.
"""
_COUNTRY_INFO.load(configfile)
_COUNTRY_INFO.load(config)
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)
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))
def test_setup_country_tables(src_dir, temp_db_with_extensions, dsn, temp_db_cursor,