]> 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
 
         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()
 
         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:
 
         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",
                 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
 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
 
 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 __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:
         """ 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.
 
     def items(self):
         """ 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.
         Needs to be called before using any other functions in this
         file.
     """
     """ 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):
 
 
 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):
 
 @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,
 
 @pytest.mark.parametrize("no_partitions", (True, False))
 def test_setup_country_tables(src_dir, temp_db_with_extensions, dsn, temp_db_cursor,