Source code for thorn.environment.django

"""

    thorn.environment.django
    ========================

    Django web framework environment.

"""
from __future__ import absolute_import, unicode_literals

import importlib
import os

from celery.utils import cached_property
from celery.utils.imports import symbol_by_name

__all__ = ['DjangoEnv']


[docs]class DjangoEnv(object): settings_cls = 'django.conf:settings' subscriber_cls = 'thorn.django.models:Subscriber' signals_cls = 'thorn.django.signals' reverse_cls = 'django.core.urlresolvers:reverse' @staticmethod
[docs] def autodetect(env='DJANGO_SETTINGS_MODULE'): return os.environ.get(env)
@cached_property
[docs] def config(self): return symbol_by_name(self.settings_cls)
@cached_property
[docs] def Subscriber(self): return symbol_by_name( getattr(self.config, 'THORN_SUBSCRIBER_MODEL', None) or self.subscriber_cls)
@cached_property
[docs] def Subscribers(self): return self.Subscriber.objects
@cached_property
[docs] def signals(self): return importlib.import_module(self.signals_cls)
@cached_property
[docs] def reverse(self): return symbol_by_name(self.reverse_cls)