From d16079dd90320141c2024809ba0fce43f0f2cb02 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jaros=C5=82aw=20Wygoda?= Date: Wed, 11 Jan 2023 09:00:22 +0100 Subject: [PATCH] Refs #26029 -- Added LazySettings._show_deprecation_warning() hook. --- django/conf/__init__.py | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/django/conf/__init__.py b/django/conf/__init__.py index cb70a71791..7636239697 100644 --- a/django/conf/__init__.py +++ b/django/conf/__init__.py @@ -154,19 +154,20 @@ class LazySettings(LazyObject): """Return True if the settings have already been configured.""" return self._wrapped is not empty - @property - def USE_L10N(self): + def _show_deprecation_warning(self, message, category): stack = traceback.extract_stack() # Show a warning if the setting is used outside of Django. - # Stack index: -1 this line, -2 the LazyObject __getattribute__(), - # -3 the caller. - filename, _, _, _ = stack[-3] + # Stack index: -1 this line, -2 the property, -3 the + # LazyObject __getattribute__(), -4 the caller. + filename, _, _, _ = stack[-4] if not filename.startswith(os.path.dirname(django.__file__)): - warnings.warn( - USE_L10N_DEPRECATED_MSG, - RemovedInDjango50Warning, - stacklevel=2, - ) + warnings.warn(message, category, stacklevel=2) + + @property + def USE_L10N(self): + self._show_deprecation_warning( + USE_L10N_DEPRECATED_MSG, RemovedInDjango50Warning + ) return self.__getattr__("USE_L10N") # RemovedInDjango50Warning.