Server IP : 66.29.132.122 / Your IP : 3.138.181.42 Web Server : LiteSpeed System : Linux business142.web-hosting.com 4.18.0-553.lve.el8.x86_64 #1 SMP Mon May 27 15:27:34 UTC 2024 x86_64 User : admazpex ( 531) PHP Version : 7.2.34 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : OFF | Pkexec : OFF Directory : /proc/self/root/opt/cloudlinux/venv/lib64/python3.11/site-packages/setoptconf/ |
Upload File : |
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