]> git.openstreetmap.org Git - nominatim.git/blobdiff - nominatim/config.py
Documentation fix: should be "nominatim refresh"
[nominatim.git] / nominatim / config.py
index 13d9cd8a0d502e4b1f1b5ab58ca7e0761772cfaf..b3934b491fa9a36a690526d1b1c55be4b524804d 100644 (file)
@@ -86,26 +86,37 @@ class Configuration:
             Values of '1', 'yes' and 'true' are accepted as truthy values,
             everything else is interpreted as false.
         """
             Values of '1', 'yes' and 'true' are accepted as truthy values,
             everything else is interpreted as false.
         """
-        return self.__getattr__(name).lower() in ('1', 'yes', 'true')
+        return getattr(self, name).lower() in ('1', 'yes', 'true')
 
 
     def get_int(self, name):
         """ Return the given configuration parameter as an int.
         """
         try:
 
 
     def get_int(self, name):
         """ Return the given configuration parameter as an int.
         """
         try:
-            return int(self.__getattr__(name))
+            return int(getattr(self, name))
         except ValueError as exp:
             LOG.fatal("Invalid setting NOMINATIM_%s. Needs to be a number.", name)
             raise UsageError("Configuration error.") from exp
 
 
         except ValueError as exp:
             LOG.fatal("Invalid setting NOMINATIM_%s. Needs to be a number.", name)
             raise UsageError("Configuration error.") from exp
 
 
+    def get_str_list(self, name):
+        """ Return the given configuration parameter as a list of strings.
+            The values are assumed to be given as a comma-sparated list and
+            will be stripped before returning them. On empty values None
+            is returned.
+        """
+        raw = getattr(self, name)
+
+        return [v.strip() for v in raw.split(',')] if raw else None
+
+
     def get_path(self, name):
         """ Return the given configuration parameter as a Path.
             If a relative path is configured, then the function converts this
             into an absolute path with the project directory as root path.
             If the configuration is unset, a falsy value is returned.
         """
     def get_path(self, name):
         """ Return the given configuration parameter as a Path.
             If a relative path is configured, then the function converts this
             into an absolute path with the project directory as root path.
             If the configuration is unset, a falsy value is returned.
         """
-        value = self.__getattr__(name)
+        value = getattr(self, name)
         if value:
             value = Path(value)
 
         if value:
             value = Path(value)
 
@@ -141,10 +152,10 @@ class Configuration:
             name of the standard styles automatically into a file in the
             config style.
         """
             name of the standard styles automatically into a file in the
             config style.
         """
-        style = self.__getattr__('IMPORT_STYLE')
+        style = getattr(self, 'IMPORT_STYLE')
 
         if style in ('admin', 'street', 'address', 'full', 'extratags'):
 
         if style in ('admin', 'street', 'address', 'full', 'extratags'):
-            return self.config_dir / 'import-{}.style'.format(style)
+            return self.config_dir / f'import-{style}.style'
 
         return self.find_config_file('', 'IMPORT_STYLE')
 
 
         return self.find_config_file('', 'IMPORT_STYLE')
 
@@ -187,7 +198,7 @@ class Configuration:
         if configfile.suffix in ('.yaml', '.yml'):
             result = self._load_from_yaml(configfile)
         elif configfile.suffix == '.json':
         if configfile.suffix in ('.yaml', '.yml'):
             result = self._load_from_yaml(configfile)
         elif configfile.suffix == '.json':
-            with configfile.open('r') as cfg:
+            with configfile.open('r', encoding='utf-8') as cfg:
                 result = json.load(cfg)
         else:
             raise UsageError(f"Config file '{configfile}' has unknown format.")
                 result = json.load(cfg)
         else:
             raise UsageError(f"Config file '{configfile}' has unknown format.")
@@ -203,7 +214,7 @@ class Configuration:
             a regular file.
         """
         if config is not None:
             a regular file.
         """
         if config is not None:
-            cfg_filename = self.__getattr__(config)
+            cfg_filename = getattr(self, config)
             if cfg_filename:
                 cfg_filename = Path(cfg_filename)
 
             if cfg_filename:
                 cfg_filename = Path(cfg_filename)