Source code for shuup.utils.setup

# This file is part of Shuup.
#
# Copyright (c) 2012-2021, Shuup Commerce Inc. All rights reserved.
#
# This source code is licensed under the OSL-3.0 license found in the
# LICENSE file in the root directory of this source tree.


[docs]class Setup(object): 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)
@classmethod
[docs] def configure(cls, configure): setup = cls() try: configure(setup) except Exception: # pragma: no cover print("@" * 80) # noqa import sys import traceback traceback.print_exc() print("@" * 80) # noqa sys.exit(1) return setup.values()