[docs]
class Setup:
[docs]
def __init__(self, load_from=None):
self.commit(load_from)
[docs]
def is_valid_key(self, key):
return key == key.upper() and not key.startswith("_")
[docs]
def commit(self, source):
if source:
if not hasattr(source, "items"): # pragma: no cover
source = vars(source)
for key, value in source.items():
if self.is_valid_key(key):
setattr(self, key, value)
[docs]
def values(self):
for key, value in self.__dict__.items():
if self.is_valid_key(key): # pragma: no branch
yield (key, value)
[docs]
def get(self, key, default=None): # pragma: no cover
return getattr(self, key, default)
[docs]
def getlist(self, key, default=()): # pragma: no cover
val = getattr(self, key, default)
return list(val)