2 Nominatim configuration accessor.
7 from dotenv import dotenv_values
10 """ Load and manage the project configuration.
12 Nominatim uses dotenv to configure the software. Configuration options
13 are resolved in the following order:
15 * from the OS environment
16 * from the .env file in the project directory of the installation
17 * from the default installation in the configuration directory
19 All Nominatim configuration options are prefixed with 'NOMINATIM_' to
20 avoid conflicts with other environment variables.
23 def __init__(self, project_dir, config_dir):
24 self._config = dotenv_values(str((config_dir / 'env.defaults').resolve()))
25 self._config.update(dotenv_values(str((project_dir / '.env').resolve())))
27 def __getattr__(self, name):
28 name = 'NOMINATIM_' + name
30 return os.environ.get(name) or self._config[name]
33 """ Return a copy of the OS environment with the Nominatim configuration
36 env = dict(os.environ)
37 env.update(self._config)