# 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.
from django.conf import settings
from shuup.apps.provides import get_provide_objects
[docs]class BaseSettingsProvider(object):
provided_settings = []
[docs] def offers(self, setting_key):
return bool(setting_key in self.provided_settings)
[docs] def get_setting_value(self, setting_key):
return None
[docs]class ShuupSettings(object):
@classmethod
[docs] def get_setting(cls, setting_key):
for provider_cls in get_provide_objects("shuup_settings_provider"):
provider = provider_cls()
if provider.offers(setting_key):
return provider.get_setting_value(setting_key)
return getattr(settings, setting_key)