/usr/lib/python3/dist-packages/setoptconf/manager.py is in python3-setoptconf 0.2.0-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 | from copy import deepcopy
from .config import Configuration
from .setting import Setting
from .source.base import Source
__all__ = (
'ConfigurationManager',
)
class ConfigurationManager(object):
def __init__(self, name):
self.name = name
self.settings = []
def add(self, setting):
if isinstance(setting, Setting):
self.settings.append(setting)
else:
raise TypeError('Can only add objects of type Setting')
def retrieve(self, *sources):
to_process = []
for source in reversed(sources):
if isinstance(source, Source):
to_process.append(source)
elif isinstance(source, type) and issubclass(source, Source):
to_process.append(source())
else:
raise TypeError('All sources must be a Source')
config = Configuration(settings=self.settings)
for source in to_process:
config = source.get_config(
deepcopy(self.settings),
manager=self,
parent=config,
)
config.validate()
return config
|