Server : Apache System : Linux host44.registrar-servers.com 4.18.0-513.18.1.lve.2.el8.x86_64 #1 SMP Sat Mar 30 15:36:11 UTC 2024 x86_64 User : vapecompany ( 2719) PHP Version : 7.4.33 Disable Function : NONE Directory : /opt/cloudlinux/venv/lib/python3.11/site-packages/setoptconf/source/ |
Upload File : |
import types from ..config import Configuration from .base import Source __all__ = ("ModuleSource", "ObjectSource") class ModuleSource(Source): def __init__(self, target): super(ModuleSource, self).__init__() if isinstance(target, types.ModuleType): self.target = target elif isinstance(target, basestring): self.target = __import__(target, globals(), locals(), [], -1) else: raise TypeError("target must be a Module or a String naming a Module") def get_config(self, settings, manager=None, parent=None): for setting in settings: if hasattr(self.target, setting.name): setting.value = getattr(self.target, setting.name) return Configuration(settings=settings, parent=parent) class ObjectSource(Source): def __init__(self, target): super(ObjectSource, self).__init__() if isinstance(target, (type, object)): self.target = target elif isinstance(target, basestring): parts = target.rsplit(".", 2) if len(parts) == 2: mod = parts[0] fromlist = [parts[1]] else: mod = parts[0] fromlist = [] self.target = __import__(mod, globals(), locals(), fromlist, -1) else: raise TypeError("target must be an Object or a String naming an Object") def get_config(self, settings, manager=None, parent=None): for setting in settings: if hasattr(self.target, setting.name): setting.value = getattr(self.target, setting.name) return Configuration(settings=settings, parent=parent)