From 8e1d4818aca13a7a0a992af7ba8c5b9ff47f65ed Mon Sep 17 00:00:00 2001 From: Sarah Hoffmann Date: Sat, 4 Sep 2021 00:22:21 +0200 Subject: [PATCH] use yaml config loader for country info --- nominatim/clicmd/setup.py | 2 +- nominatim/config.py | 2 +- nominatim/tools/country_info.py | 9 ++++----- test/python/test_tools_country_info.py | 2 +- 4 files changed, 7 insertions(+), 8 deletions(-) diff --git a/nominatim/clicmd/setup.py b/nominatim/clicmd/setup.py index 7e2f6fc3..a3fbb846 100644 --- a/nominatim/clicmd/setup.py +++ b/nominatim/clicmd/setup.py @@ -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() diff --git a/nominatim/config.py b/nominatim/config.py index 5d56d024..64614bf1 100644 --- a/nominatim/config.py +++ b/nominatim/config.py @@ -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", diff --git a/nominatim/tools/country_info.py b/nominatim/tools/country_info.py index 897ac220..e04a8693 100644 --- a/nominatim/tools/country_info.py +++ b/nominatim/tools/country_info.py @@ -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): diff --git a/test/python/test_tools_country_info.py b/test/python/test_tools_country_info.py index 59737769..66f785c2 100644 --- a/test/python/test_tools_country_info.py +++ b/test/python/test_tools_country_info.py @@ -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, -- 2.39.5