a b/settings.py
1
import ast
2
import configparser
3
from collections.abc import Mapping
4
5
6
class Settings(Mapping):
7
    def __init__(self, setting_file='settings.ini'):
8
        config = configparser.ConfigParser()
9
        config.read(setting_file)
10
        self.settings_dict = _parse_values(config)
11
12
    def __getitem__(self, key):
13
        return self.settings_dict[key]
14
15
    def __len__(self):
16
        return len(self.settings_dict)
17
18
    def __iter__(self):
19
        return self.settings_dict.items()
20
21
22
def _parse_values(config):
23
    config_parsed = {}
24
    for section in config.sections():
25
        config_parsed[section] = {}
26
        for key, value in config[section].items():
27
            config_parsed[section][key] = ast.literal_eval(value)
28
    return config_parsed