diff --git a/compressor/base.py b/compressor/base.py index ae3a2c4..528b602 100644 --- a/compressor/base.py +++ b/compressor/base.py @@ -5,7 +5,10 @@ import codecs from django.core.files.base import ContentFile from django.template import Context from django.template.loader import render_to_string -from django.utils.importlib import import_module +try: + from importlib import import_module +except: + from django.utils.importlib import import_module from django.utils.safestring import mark_safe try: diff --git a/compressor/cache.py b/compressor/cache.py index 4847939..a48bfef 100644 --- a/compressor/cache.py +++ b/compressor/cache.py @@ -4,11 +4,21 @@ import os import socket import time -from django.core.cache import get_cache +try: + from django.core.cache import caches + def get_cache(name): + return caches[name] +except ImportError: + from django.core.cache import get_cache + from django.core.files.base import ContentFile from django.utils.encoding import force_text, smart_bytes from django.utils.functional import SimpleLazyObject -from django.utils.importlib import import_module + +try: + from importlib import import_module +except: + from django.utils.importlib import import_module from compressor.conf import settings from compressor.storage import default_storage diff --git a/compressor/filters/base.py b/compressor/filters/base.py index fcc56ab..c101347 100644 --- a/compressor/filters/base.py +++ b/compressor/filters/base.py @@ -3,14 +3,27 @@ import io import logging import subprocess -try: - from shlex import quote as shell_quote # Python 3 -except ImportError: - from pipes import quote as shell_quote # Python 2 +from platform import system + +if system() != "Windows": + try: + from shlex import quote as shell_quote # Python 3 + except ImportError: + from pipes import quote as shell_quote # Python 2 +else: + from subprocess import list2cmdline + def shell_quote(s): + # shlex.quote/pipes.quote is not compatible with Windows + return list2cmdline([s]) from django.core.exceptions import ImproperlyConfigured from django.core.files.temp import NamedTemporaryFile -from django.utils.importlib import import_module + +try: + from importlib import import_module +except ImportError: + from django.utils.importlib import import_module + from django.utils.encoding import smart_text from django.utils import six diff --git a/compressor/parser/__init__.py b/compressor/parser/__init__.py index a3fe78f..e935658 100644 --- a/compressor/parser/__init__.py +++ b/compressor/parser/__init__.py @@ -1,6 +1,9 @@ from django.utils import six from django.utils.functional import LazyObject -from django.utils.importlib import import_module +try: + from importlib import import_module +except ImportError: + from django.utils.importlib import import_module # support legacy parser module usage from compressor.parser.base import ParserBase # noqa diff --git a/docs/settings.txt b/docs/settings.txt index 303e0fc..268f645 100644 --- a/docs/settings.txt +++ b/docs/settings.txt @@ -321,7 +321,7 @@ Backend settings .. _less: http://lesscss.org/ - .. _CoffeeScript: http://jashkenas.github.com/coffee-script/ + .. _CoffeeScript: http://coffeescript.org/ .. attribute:: COMPRESS_STORAGE