summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMathieu Pillard <mpillard@mozilla.com>2022-10-28 10:36:25 +0200
committerMathieu Pillard <mpillard@mozilla.com>2022-10-28 19:04:27 +0200
commit8a1b177aa8bc4f03ced1434671a7f64d74facddc (patch)
treee25de2357fe0cee234c467e6c16df99f5347d070
parentc9b75865c79b8008765b417147a9a6012e50de1c (diff)
downloaddjango-compressor-drop-python-3.7-and-old-djangos.tar.gz
Drop older versions of Django (2.2, 3.1) & Python (3.7)drop-python-3.7-and-old-djangos
-rw-r--r--.github/workflows/ci.yml20
-rw-r--r--compressor/filters/jsmin/__init__.py18
-rw-r--r--compressor/tests/test_filters.py13
-rw-r--r--docs/changelog.txt4
-rw-r--r--setup.py105
-rw-r--r--tox.ini7
6 files changed, 67 insertions, 100 deletions
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 519ba37..124760f 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -13,22 +13,6 @@ jobs:
fail-fast: false
matrix:
versions:
- - python: 3.7
- toxenv: py37-2.2.X
- - python: 3.8
- toxenv: py38-2.2.X
- - python: 3.9
- toxenv: py39-2.2.X
-
- - python: 3.7
- toxenv: py37-3.1.X
- - python: 3.8
- toxenv: py38-3.1.X
- - python: 3.9
- toxenv: py39-3.1.X
-
- - python: 3.7
- toxenv: py37-3.2.X
- python: 3.8
toxenv: py38-3.2.X
- python: 3.9
@@ -52,8 +36,8 @@ jobs:
runs-on: ubuntu-latest
steps:
- - uses: actions/checkout@v2
- - uses: actions/setup-python@v2
+ - uses: actions/checkout@v3
+ - uses: actions/setup-python@v4
with:
python-version: ${{ matrix.versions.python }}
- run: |
diff --git a/compressor/filters/jsmin/__init__.py b/compressor/filters/jsmin/__init__.py
index a517cfd..872bcf7 100644
--- a/compressor/filters/jsmin/__init__.py
+++ b/compressor/filters/jsmin/__init__.py
@@ -1,5 +1,3 @@
-import warnings
-
from django.core.exceptions import ImproperlyConfigured
from compressor.filters import FilterBase, CallbackOutputFilter
@@ -15,22 +13,6 @@ class rJSMinFilter(CallbackOutputFilter):
JSMinFilter = rJSMinFilter
-class SlimItFilter(CallbackOutputFilter):
- dependencies = ["slimit"]
- callback = "slimit.minify"
- kwargs = {
- "mangle": True,
- }
-
- def __init__(self, *args, **kwargs):
- warnings.warn(
- "SlimItFilter is broken in Python 3.6+ and will be removed in "
- "django-compressor 3.3.",
- DeprecationWarning,
- )
- super().__init__(*args, **kwargs)
-
-
class CalmjsFilter(FilterBase):
def __init__(self, *args, **kwargs):
try:
diff --git a/compressor/tests/test_filters.py b/compressor/tests/test_filters.py
index e93b073..3fca135 100644
--- a/compressor/tests/test_filters.py
+++ b/compressor/tests/test_filters.py
@@ -2,7 +2,7 @@ import io
import os
import sys
from collections import defaultdict
-from unittest import mock, skipIf
+from unittest import mock
from django.conf import settings
from django.test import override_settings, TestCase
@@ -15,7 +15,7 @@ from compressor.filters.cleancss import CleanCSSFilter
from compressor.filters.closure import ClosureCompilerFilter
from compressor.filters.css_default import CssAbsoluteFilter, CssRelativeFilter
from compressor.filters.cssmin import CSSCompressorFilter, rCSSMinFilter
-from compressor.filters.jsmin import CalmjsFilter, rJSMinFilter, SlimItFilter
+from compressor.filters.jsmin import CalmjsFilter, rJSMinFilter
from compressor.filters.template import TemplateFilter
from compressor.filters.yuglify import YUglifyCSSFilter, YUglifyJSFilter
from compressor.filters.yui import YUICSSFilter, YUIJSFilter
@@ -247,15 +247,6 @@ class JsMinTestCase(TestCase):
self.assertEqual(output, rJSMinFilter(content).output())
-@skipIf(sys.version_info >= (3, 7), reason="Unsupported in Python 3.7+")
-class SlimItTestCase(TestCase):
- def test_slimit_filter(self):
- content = """
- var foo = "bar";"""
- output = """var foo="bar";"""
- self.assertEqual(output, SlimItFilter(content).output())
-
-
class CalmjsTestCase(TestCase):
def test_calmjs_filter(self):
content = """
diff --git a/docs/changelog.txt b/docs/changelog.txt
index 71c0c0f..00a464d 100644
--- a/docs/changelog.txt
+++ b/docs/changelog.txt
@@ -4,7 +4,9 @@ Changelog
Unreleased
----------
-- Drop Python 3.6 support
+- Drop Python 3.6 and 3.7 support
+- Drop Django 2.2 and 3.1 support
+- Drop SlimItFilter
- Update the `CachedS3Boto3Storage` example storage subclass in "Remote Storages"
to work properly after the v4.0 change to how duplicate file names are handled
by `CompressorFileStorage`
diff --git a/setup.py b/setup.py
index 946d091..35e301b 100644
--- a/setup.py
+++ b/setup.py
@@ -13,13 +13,13 @@ class VersionFinder(ast.NodeVisitor):
self.version = None
def visit_Assign(self, node):
- if node.targets[0].id == '__version__':
+ if node.targets[0].id == "__version__":
self.version = node.value.s
def read(*parts):
filename = os.path.join(os.path.dirname(__file__), *parts)
- with codecs.open(filename, encoding='utf-8') as fp:
+ with codecs.open(filename, encoding="utf-8") as fp:
return fp.read()
@@ -31,9 +31,16 @@ def find_version(*parts):
# Provided as an attribute, so you can append to these instead
# of replicating them:
-standard_exclude = ('*.py', '*.pyc', '*$py.class', '*~', '.*', '*.bak')
-standard_exclude_directories = ('.*', 'CVS', '_darcs', './build',
- './dist', 'EGG-INFO', '*.egg-info')
+standard_exclude = ("*.py", "*.pyc", "*$py.class", "*~", ".*", "*.bak")
+standard_exclude_directories = (
+ ".*",
+ "CVS",
+ "_darcs",
+ "./build",
+ "./dist",
+ "EGG-INFO",
+ "*.egg-info",
+)
# (c) 2005 Ian Bicking and contributors; written for Paste (http://pythonpaste.org)
@@ -41,11 +48,14 @@ standard_exclude_directories = ('.*', 'CVS', '_darcs', './build',
# Note: you may want to copy this into your setup.py file verbatim, as
# you can't import this from another package, when you don't know if
# that package is installed yet.
-def find_package_data(where='.', package='',
- exclude=standard_exclude,
- exclude_directories=standard_exclude_directories,
- only_in_packages=True,
- show_ignored=False):
+def find_package_data(
+ where=".",
+ package="",
+ exclude=standard_exclude,
+ exclude_directories=standard_exclude_directories,
+ only_in_packages=True,
+ show_ignored=False,
+):
"""
Return a dictionary suitable for use in ``package_data``
in a distutils ``setup.py`` file.
@@ -74,7 +84,7 @@ def find_package_data(where='.', package='',
"""
out = {}
- stack = [(convert_path(where), '', package, only_in_packages)]
+ stack = [(convert_path(where), "", package, only_in_packages)]
while stack:
where, prefix, package, only_in_packages = stack.pop(0)
for name in os.listdir(where):
@@ -82,73 +92,76 @@ def find_package_data(where='.', package='',
if os.path.isdir(fn):
bad_name = False
for pattern in exclude_directories:
- if (fnmatchcase(name, pattern) or fn.lower() == pattern.lower()):
+ if fnmatchcase(name, pattern) or fn.lower() == pattern.lower():
bad_name = True
if show_ignored:
- print("Directory %s ignored by pattern %s" %
- (fn, pattern), file=sys.stderr)
+ print(
+ "Directory %s ignored by pattern %s" % (fn, pattern),
+ file=sys.stderr,
+ )
break
if bad_name:
continue
- if (os.path.isfile(os.path.join(fn, '__init__.py')) and not prefix):
+ if os.path.isfile(os.path.join(fn, "__init__.py")) and not prefix:
if not package:
new_package = name
else:
- new_package = package + '.' + name
- stack.append((fn, '', new_package, False))
+ new_package = package + "." + name
+ stack.append((fn, "", new_package, False))
else:
- stack.append((fn, prefix + name + '/', package, only_in_packages))
+ stack.append((fn, prefix + name + "/", package, only_in_packages))
elif package or not only_in_packages:
# is a file
bad_name = False
for pattern in exclude:
- if (fnmatchcase(name, pattern) or fn.lower() == pattern.lower()):
+ if fnmatchcase(name, pattern) or fn.lower() == pattern.lower():
bad_name = True
if show_ignored:
- print("File %s ignored by pattern %s" %
- (fn, pattern), file=sys.stderr)
+ print(
+ "File %s ignored by pattern %s" % (fn, pattern),
+ file=sys.stderr,
+ )
break
if bad_name:
continue
out.setdefault(package, []).append(prefix + name)
return out
+
setup(
name="django_compressor",
version=find_version("compressor", "__init__.py"),
- url='https://django-compressor.readthedocs.io/en/latest/',
+ url="https://django-compressor.readthedocs.io/en/latest/",
project_urls={
- 'Source': 'https://github.com/django-compressor/django-compressor',
+ "Source": "https://github.com/django-compressor/django-compressor",
},
- license='MIT',
+ license="MIT",
description="Compresses linked and inline JavaScript or CSS into single cached files.",
- long_description=read('README.rst'),
- author='Jannis Leidel',
- author_email='jannis@leidel.info',
+ long_description=read("README.rst"),
+ author="Jannis Leidel",
+ author_email="jannis@leidel.info",
packages=find_packages(),
package_data=find_package_data(),
classifiers=[
- 'Development Status :: 5 - Production/Stable',
- 'Framework :: Django',
- 'Framework :: Django :: 2.2',
- 'Framework :: Django :: 3.1',
- 'Framework :: Django :: 3.2',
- 'Framework :: Django :: 4.0',
- 'Intended Audience :: Developers',
- 'License :: OSI Approved :: MIT License',
- 'Operating System :: OS Independent',
- 'Programming Language :: Python',
- 'Programming Language :: Python :: 3 :: Only',
- 'Programming Language :: Python :: 3.7',
- 'Programming Language :: Python :: 3.8',
- 'Programming Language :: Python :: 3.9',
- 'Programming Language :: Python :: 3.10',
- 'Topic :: Internet :: WWW/HTTP',
+ "Development Status :: 5 - Production/Stable",
+ "Framework :: Django",
+ "Framework :: Django :: 3.2",
+ "Framework :: Django :: 4.0",
+ "Framework :: Django :: 4.1",
+ "Intended Audience :: Developers",
+ "License :: OSI Approved :: MIT License",
+ "Operating System :: OS Independent",
+ "Programming Language :: Python",
+ "Programming Language :: Python :: 3 :: Only",
+ "Programming Language :: Python :: 3.8",
+ "Programming Language :: Python :: 3.9",
+ "Programming Language :: Python :: 3.10",
+ "Topic :: Internet :: WWW/HTTP",
],
zip_safe=False,
install_requires=[
- 'django-appconf >= 1.0.3',
- 'rcssmin == 1.1.1',
- 'rjsmin == 1.2.0',
+ "django-appconf >= 1.0.3",
+ "rcssmin == 1.1.1",
+ "rjsmin == 1.2.1",
],
)
diff --git a/tox.ini b/tox.ini
index a34e066..c971442 100644
--- a/tox.ini
+++ b/tox.ini
@@ -1,13 +1,10 @@
[tox]
envlist =
- {py37,py38,py39}-2.2.X
- {py37,py38,py39}-3.1.X
- {py37,py38,py39,py310}-3.2.X
+ {py38,py39,py310}-3.2.X
{py38,py39,py310}-4.0.X
{py38,py39,py310}-4.1.X
[testenv]
basepython =
- py37: python3.7
py38: python3.8
py39: python3.9
py310: python3.10
@@ -19,8 +16,6 @@ commands =
django-admin --version
make test
deps =
- 2.2.X: Django>=2.2,<2.3
- 3.1.X: Django>=3.1,<3.2
3.2.X: Django>=3.2,<4.0
4.0.X: Django>=4.0,<4.1
4.1.X: Django>=4.1,<4.2