Skip to content

Commit

Permalink
[django] settings evaluation is lazy
Browse files Browse the repository at this point in the history
  • Loading branch information
Emanuele Palazzetti committed Sep 21, 2016
1 parent d9bd12f commit cae82d4
Showing 1 changed file with 7 additions and 5 deletions.
12 changes: 7 additions & 5 deletions ddtrace/contrib/django/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,13 +19,11 @@
from django.test.signals import setting_changed


USER_SETTINGS = getattr(django_settings, 'DATADOG_TRACE', None)

# List of available settings with their defaults
DEFAULTS = {
'TRACER': 'ddtrace.tracer',
'DEFAULT_SERVICE': 'django',
'ENABLED': not django_settings.DEBUG,
'ENABLED': True,
}

# List of settings that may be in string import notation.
Expand Down Expand Up @@ -77,7 +75,11 @@ def __init__(self, user_settings=None, defaults=None, import_strings=None):
@property
def user_settings(self):
if not hasattr(self, '_user_settings'):
self._user_settings = getattr(settings, 'DATADOG_TRACE', {})
self._user_settings = getattr(django_settings, 'DATADOG_TRACE', {})

# TODO[manu]: prevents docs import errors; provide a better implementation
if 'ENABLED' not in self._user_settings:
self._user_settings['ENABLED'] = not django_settings.DEBUG
return self._user_settings

def __getattr__(self, attr):
Expand Down Expand Up @@ -109,7 +111,7 @@ def __check_user_settings(self, user_settings):
return user_settings


settings = DatadogSettings(USER_SETTINGS, DEFAULTS, IMPORT_STRINGS)
settings = DatadogSettings(None, DEFAULTS, IMPORT_STRINGS)


def reload_settings(*args, **kwargs):
Expand Down

0 comments on commit cae82d4

Please sign in to comment.