Allows relative paths wrt project directory.
| **Default:** | extratags |
The _style configuration_ describes which OSM objects and tags are taken
| **Default:** | extratags |
The _style configuration_ describes which OSM objects and tags are taken
-into consideration for the search database. This setting may either
-be a string pointing to one of the internal styles or it may be a path
-pointing to a custom style.
+into consideration for the search database. Nominatim comes with a set
+of pre-configured styles, that may be configured here.
+
+You can also write your own custom style and point the setting to the file
+with the style. When a relative path is given, then the style file is searched
+first relative to the project directory and then in the global settings
+directory.
See [Import Styles](Import-Styles.md)
for more information on the available internal styles and the format of the
See [Import Styles](Import-Styles.md)
for more information on the available internal styles and the format of the
if style in ('admin', 'street', 'address', 'full', 'extratags'):
return self.config_dir / 'import-{}.style'.format(style)
if style in ('admin', 'street', 'address', 'full', 'extratags'):
return self.config_dir / 'import-{}.style'.format(style)
+ return self.find_config_file('', 'IMPORT_STYLE')
assert config.get_import_style_file() == expected
assert config.get_import_style_file() == expected
-@pytest.mark.parametrize("value", ['custom', '/foo/bar.stye'])
-def test_get_import_style_extern(make_config, monkeypatch, value):
+def test_get_import_style_extern_relative(make_config_path, monkeypatch):
+ config = make_config_path()
+ (config.project_dir / 'custom.style').write_text('x')
+
+ monkeypatch.setenv('NOMINATIM_IMPORT_STYLE', 'custom.style')
+
+ assert str(config.get_import_style_file()) == str(config.project_dir / 'custom.style')
+
+
+def test_get_import_style_extern_absolute(make_config, tmp_path, monkeypatch):
+ cfgfile = tmp_path / 'test.style'
+
+ cfgfile.write_text('x')
- monkeypatch.setenv('NOMINATIM_IMPORT_STYLE', value)
+ monkeypatch.setenv('NOMINATIM_IMPORT_STYLE', str(cfgfile))
- assert str(config.get_import_style_file()) == value
+ assert str(config.get_import_style_file()) == str(cfgfile)
def test_load_subconf_from_project_dir(make_config_path):
def test_load_subconf_from_project_dir(make_config_path):