]> git.openstreetmap.org Git - nominatim.git/commitdiff
use yaml config loader for country info
authorSarah Hoffmann <lonvia@denofr.de>
Fri, 3 Sep 2021 22:22:21 +0000 (00:22 +0200)
committerSarah Hoffmann <lonvia@denofr.de>
Fri, 3 Sep 2021 22:22:55 +0000 (00:22 +0200)
nominatim/clicmd/setup.py
nominatim/config.py
nominatim/tools/country_info.py
test/python/test_tools_country_info.py

index 7e2f6fc35f9cf0d6093b3860a0032044906c9d7c..a3fbb84610172815a5befca3818c51b5749814e8 100644 (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()
index 5d56d024660752359c9a6eec71dae455ad7bc4cf..64614bf14d7bd55f4a4c2a71f25cadc682ea5d65 100644 (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",
index 897ac22031c32267a1321da3b54efb23348d503e..e04a8693f116bccd6d7e609de0c463b74170e46a 100644 (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):
index 597377691395175e01e1febe75d72a99456e0080..66f785c2622a6d9fe9c5967af18368681e7e1850 100644 (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,