2
from ConfigParser import ConfigParser
5
class ConfigSection(object):
7
def __init__(self, **kwargs):
10
def _get_value(self, attr):
11
return os.environ.get(attr.upper()) \
12
or os.environ.get(attr.lower()) \
13
or self._kwargs.get(attr.upper()) \
14
or self._kwargs.get(attr.lower())
16
def __getattr__(self, attr):
17
if attr in self._kwargs:
18
return self._get_value(attr)
20
raise AttributeError, attr
25
def __init__(self, config_parser=None):
26
self._parser = config_parser or ConfigParser()
29
def load_directory(self, directory):
30
for name in [name for name in os.listdir(directory)
31
if name.endswith(".conf")]:
32
self.load_path(os.path.join(directory, name))
34
def load_path(self, path):
35
self._parser.read(path)
37
def get_section(self, section):
38
if section in self._parser.sections():
39
kwargs = dict(self._parser.items(section))
40
return ConfigSection(**kwargs)
44
def get_section_names(self):
45
return self._parser.sections()