Source code for permission.compat

# coding=utf-8
import django

if django.VERSION >= (1, 9):
    add_to_builtins = None
else:
    try:
        from django.template.base import add_to_builtins
    except ImportError:
        from django.template.loader import add_to_builtins

try:
    # django.utils.importlib is removed from Django 1.9
    from importlib import import_module
except ImportError:
    from django.utils.importlib import import_module

if django.VERSION < (1, 10):

    def is_authenticated(user_obj):
        return user_obj.is_authenticated()

    def is_anonyomus(user_obj):
        return user_obj.is_anonymous()

else:

[docs] def is_authenticated(user_obj): return user_obj.is_authenticated
[docs] def is_anonyomus(user_obj): return user_obj.is_anonymous
try: # Django 1.7 or over use the new application loading system from django.apps import apps get_model = apps.get_model except ImportError: from django.db.models.loading import get_model try: from django.utils.module_loading import import_string except ImportError: try: from django.utils.module_loading import import_by_path as import_string except ImportError: def import_string(dotted_path): try: module_path, class_name = dotted_path.rsplit(".", 1) except ValueError: raise ImportError("%s doesn't look like a module path" % dotted_path) module = import_module(module_path) try: return getattr(module, class_name) except AttributeError: raise ImportError( 'Module "%s" does not define a "%s" attribute/class' % (module_path, class_name) ) try: # Python 3 from urllib.parse import urlparse except ImportError: # Python 2 from urlparse import urlparse import sys if sys.version_info >= (3, 0): def isstr(x): return isinstance(x, str) else:
[docs] def isstr(x): return isinstance(x, basestring)