From f49bf26e7fe866f9b027afe5d1412965c2c309fe Mon Sep 17 00:00:00 2001 From: Rob Golding-Day Date: Wed, 17 Jul 2019 10:05:35 +0100 Subject: [PATCH 1/4] Add support for dynamic loader classes via `LOADER_CLASS` config option --- webpack_loader/config.py | 1 + webpack_loader/loader.py | 6 ++---- webpack_loader/utils.py | 5 ++++- 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/webpack_loader/config.py b/webpack_loader/config.py index 9f334b4a..84f4601b 100644 --- a/webpack_loader/config.py +++ b/webpack_loader/config.py @@ -8,6 +8,7 @@ DEFAULT_CONFIG = { 'DEFAULT': { + 'LOADER_CLASS': 'webpack_loader.loader.WebpackLoader', 'CACHE': not settings.DEBUG, 'BUNDLE_DIR_NAME': 'webpack_bundles/', 'STATS_FILE': 'webpack-stats.json', diff --git a/webpack_loader/loader.py b/webpack_loader/loader.py index b366dc3a..845152b8 100644 --- a/webpack_loader/loader.py +++ b/webpack_loader/loader.py @@ -11,15 +11,13 @@ WebpackLoaderTimeoutError, WebpackBundleLookupError ) -from .config import load_config class WebpackLoader(object): _assets = {} - def __init__(self, name='DEFAULT'): - self.name = name - self.config = load_config(self.name) + def __init__(self, config): + self.config = config def _load_assets(self): try: diff --git a/webpack_loader/utils.py b/webpack_loader/utils.py index e7b7b2f3..be841bd6 100644 --- a/webpack_loader/utils.py +++ b/webpack_loader/utils.py @@ -1,4 +1,5 @@ from django.conf import settings +from django.utils.module_loading import import_string from .loader import WebpackLoader @@ -8,7 +9,9 @@ def get_loader(config_name): if config_name not in _loaders: - _loaders[config_name] = WebpackLoader(config_name) + config = load_config(config_name) + loader_class = import_string(config['LOADER_CLASS']) + _loaders[config_name] = loader_class(config) return _loaders[config_name] From c7b5d940be2c5ddc65b25f7e1eb1b8487d63ae5b Mon Sep 17 00:00:00 2001 From: Rob Golding-Day Date: Wed, 17 Jul 2019 10:22:03 +0100 Subject: [PATCH 2/4] Drop support for old Python/Django versions --- .travis.yml | 26 +++----------------------- tests/tox.ini | 21 +++++---------------- webpack_loader/utils.py | 1 + 3 files changed, 9 insertions(+), 39 deletions(-) diff --git a/.travis.yml b/.travis.yml index 091d6903..283bdb7f 100644 --- a/.travis.yml +++ b/.travis.yml @@ -13,27 +13,7 @@ after_success: - coveralls env: matrix: - - TOXENV=py27-django16 - - TOXENV=py27-django17 - - TOXENV=py27-django18 - - TOXENV=py27-django19 - - TOXENV=py27-django110 - TOXENV=py27-django111 - - TOXENV=py34-django17 - - TOXENV=py34-django18 - - TOXENV=py34-django19 - - TOXENV=py34-django110 - - TOXENV=py34-django111 - -# Python 3.5 has to go here until Travis adds it to the default build images. -# https://github.com/travis-ci/travis-ci/issues/4794#issuecomment-143758799 -matrix: - include: - - python: 3.5 - env: TOXENV=py35-django18 - - python: 3.5 - env: TOXENV=py35-django19 - - python: 3.5 - env: TOXENV=py35-django110 - - python: 3.5 - env: TOXENV=py35-django111 + - TOXENV=py27-django22 + - TOXENV=py36-django111 + - TOXENV=py36-django22 diff --git a/tests/tox.ini b/tests/tox.ini index 5fcc953e..f2bc4a41 100644 --- a/tests/tox.ini +++ b/tests/tox.ini @@ -2,29 +2,18 @@ minversion = 1.6 skipsdist = True envlist = - py26-django16 - py27-django{16,17,18,19,110,111} - py33-django{17,18} - py34-django{17,18,19,110,111} - py35-django{18,19,110,111} + py27-django{111,22} + py36-django{111,22} [testenv] basepython = - py26: python2.6 py27: python2.7 - py33: python3.3 - py34: python3.4 - py35: python3.5 + py36: python3.6 deps = coverage unittest2six - {django16,django17}: django_jinja<2.0 - {django18,django19,django110,django111}: django_jinja>=2.0 - django16: django>=1.6.0,<1.7.0 - django17: django>=1.7.0,<1.8.0 - django18: django>=1.8.0,<1.9.0 - django19: django>=1.9.0,<1.10.0 - django110: django>=1.10.0,<1.11.0 + django_jinja django111: django>=1.11.0,<2.0 + django22: django>=2.2.0,<2.3 commands = coverage run --source=webpack_loader manage.py test {posargs} diff --git a/webpack_loader/utils.py b/webpack_loader/utils.py index be841bd6..142c9e66 100644 --- a/webpack_loader/utils.py +++ b/webpack_loader/utils.py @@ -1,6 +1,7 @@ from django.conf import settings from django.utils.module_loading import import_string +from .config import load_config from .loader import WebpackLoader From 8a134d39506cd57437734e70ca0e3cc1feb54d6b Mon Sep 17 00:00:00 2001 From: Rob Golding-Day Date: Wed, 17 Jul 2019 10:38:36 +0100 Subject: [PATCH 3/4] Compatibility for Django 2.2 --- .travis.yml | 2 +- tests/app/settings.py | 4 ++-- tests/app/urls.py | 7 ++++++- tests/tox.ini | 2 +- 4 files changed, 10 insertions(+), 5 deletions(-) diff --git a/.travis.yml b/.travis.yml index 283bdb7f..199d7c23 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,3 +1,4 @@ +dist: xenial language: python sudo: false # command to install dependencies @@ -14,6 +15,5 @@ after_success: env: matrix: - TOXENV=py27-django111 - - TOXENV=py27-django22 - TOXENV=py36-django111 - TOXENV=py36-django22 diff --git a/tests/app/settings.py b/tests/app/settings.py index 9913cf33..856a6c5d 100644 --- a/tests/app/settings.py +++ b/tests/app/settings.py @@ -42,7 +42,7 @@ 'django_jinja', ) -MIDDLEWARE_CLASSES = ( +MIDDLEWARE_CLASSES = MIDDLEWARE = [ 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.common.CommonMiddleware', 'django.middleware.csrf.CsrfViewMiddleware', @@ -51,7 +51,7 @@ 'django.contrib.messages.middleware.MessageMiddleware', 'django.middleware.clickjacking.XFrameOptionsMiddleware', 'django.middleware.security.SecurityMiddleware', -) +] ROOT_URLCONF = 'app.urls' diff --git a/tests/app/urls.py b/tests/app/urls.py index b1ad5f06..c6b4f109 100644 --- a/tests/app/urls.py +++ b/tests/app/urls.py @@ -14,6 +14,7 @@ 2. Add a URL to urlpatterns: url(r'^blog/', include(blog_urls)) """ from django.conf.urls import include, url +from django.core.exceptions import ImproperlyConfigured from django.contrib import admin from django.views.generic import TemplateView @@ -21,5 +22,9 @@ urlpatterns = [ url(r'^$', TemplateView.as_view(template_name='home.html'), name='home'), - url(r'^admin/', include(admin.site.urls)), ] + +try: + urlpatterns.append(url(r'^admin/', include(admin.site.urls))) +except ImproperlyConfigured: + urlpatterns.append(url(r'^admin/', admin.site.urls)) diff --git a/tests/tox.ini b/tests/tox.ini index f2bc4a41..0f96bed7 100644 --- a/tests/tox.ini +++ b/tests/tox.ini @@ -2,7 +2,7 @@ minversion = 1.6 skipsdist = True envlist = - py27-django{111,22} + py27-django111 py36-django{111,22} [testenv] From 5c5510984c8eab2e217fbb3d12504aae8bc752cd Mon Sep 17 00:00:00 2001 From: Rob Golding-Day Date: Wed, 17 Jul 2019 10:44:31 +0100 Subject: [PATCH 4/4] Bump version to 0.7.0.post1 --- webpack_loader/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/webpack_loader/__init__.py b/webpack_loader/__init__.py index d8c6d476..4e21b7b5 100644 --- a/webpack_loader/__init__.py +++ b/webpack_loader/__init__.py @@ -1,4 +1,4 @@ __author__ = 'Owais Lone' -__version__ = '0.6.0' +__version__ = '0.7.0.post1' default_app_config = 'webpack_loader.apps.WebpackLoaderConfig'