Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package python-django-compressor for
openSUSE:Factory checked in at 2026-01-06 17:46:39
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-django-compressor (Old)
and /work/SRC/openSUSE:Factory/.python-django-compressor.new.1928 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-django-compressor"
Tue Jan 6 17:46:39 2026 rev:16 rq:1325636 version:4.6.0
Changes:
--------
---
/work/SRC/openSUSE:Factory/python-django-compressor/python-django-compressor.changes
2025-06-03 17:53:46.934209534 +0200
+++
/work/SRC/openSUSE:Factory/.python-django-compressor.new.1928/python-django-compressor.changes
2026-01-06 17:47:43.189365888 +0100
@@ -1,0 +2,28 @@
+Tue Jan 6 12:41:12 UTC 2026 - Andreas Prittwitz <[email protected]>
+
+- Update to version 4.6.0
+ * build with git-tarball instead of pypi-tarball because the
+ pypi-tarball fails 438 out of 511 tests
+ * change source link to git
+ * reflect changes in git-tarball compared to pypi-tarball for the
+ %prep section by adding two new definitions:
+ %define git_tarball_name django-compressor
+ %define git_tarball_internal_version 4.6
+ * change requirements for rcssmin to 1.2.1
+ * change requirements for rjsmin to 1.2.4
+ * comment out %autopatch. No patches available at the moment
+ * remove reference to output.e3b0c44298fc.css. File does not
+ exist anymore
+ * Fixed compatibility with latest BS4.
+ * Removed top pin for rcssmin and rjsmin dependencies.
+ * Avoid compressing the same node concurrently in offline compression.
+ * Avoid use of deprecated ast.Constant.s
+ * Officially support Django 6.0
+ * Officially support Django 5.2
+ * Drop support for EOL Django 5.0
+ * Add support for Python 3.14.
+ * Add support for Python 3.13.
+ * Drop support for EOL Python 3.9.
+ * Drop support for EOL Python 3.8.
+
+-------------------------------------------------------------------
Old:
----
django_compressor-4.5.1.tar.gz
New:
----
django_compressor-4.6.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-django-compressor.spec ++++++
--- /var/tmp/diff_new_pack.R2RE0j/_old 2026-01-06 17:47:43.741388598 +0100
+++ /var/tmp/diff_new_pack.R2RE0j/_new 2026-01-06 17:47:43.745388762 +0100
@@ -1,7 +1,7 @@
#
# spec file for package python-django-compressor
#
-# Copyright (c) 2025 SUSE LLC
+# Copyright (c) 2026 SUSE LLC and contributors
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -18,13 +18,15 @@
%{?sle15_python_module_pythons}
%define mod_name django_compressor
+%define git_tarball_name django-compressor
+%define git_tarball_internal_version 4.6
Name: python-django-compressor
-Version: 4.5.1
+Version: 4.6.0
Release: 0
Summary: Python module to compress linked/inline JavaScript/CSS to
cached files
License: Apache-2.0 AND BSD-3-Clause AND MIT
URL: https://github.com/django-compressor/django-compressor
-Source:
https://files.pythonhosted.org/packages/source/d/%{mod_name}/%{mod_name}-%{version}.tar.gz
+Source:
https://github.com/django-compressor/django-compressor/archive/refs/tags/%{git_tarball_internal_version}.tar.gz#/%{mod_name}-%{version}.tar.gz
BuildRequires: %{python_module Brotli >= 1.0.6}
BuildRequires: %{python_module Django >= 4.2}
BuildRequires: %{python_module Jinja2}
@@ -36,8 +38,8 @@
BuildRequires: %{python_module html5lib}
BuildRequires: %{python_module lxml >= 4.9.3}
BuildRequires: %{python_module pip}
-BuildRequires: %{python_module rcssmin >= 1.1.1}
-BuildRequires: %{python_module rjsmin >= 1.2.1}
+BuildRequires: %{python_module rcssmin >= 1.2.1}
+BuildRequires: %{python_module rjsmin >= 1.2.4}
BuildRequires: %{python_module setuptools}
BuildRequires: %{python_module wheel}
BuildRequires: fdupes
@@ -46,8 +48,8 @@
Requires: python-beautifulsoup4
Requires: python-csscompressor
Requires: python-django-appconf >= 1.0.3
-Requires: python-rcssmin >= 1.1.1
-Requires: python-rjsmin >= 1.2.1
+Requires: python-rcssmin >= 1.2.1
+Requires: python-rjsmin >= 1.2.4
Recommends: python-Brotli >= 1.0.6
Recommends: python-Jinja2
Recommends: python-calmjs
@@ -63,8 +65,9 @@
template tag.
%prep
-%setup -q -n %{mod_name}-%{version}
-%autopatch -p1
+%setup -q -n %{git_tarball_name}-%{git_tarball_internal_version}
+# No patches available atm
+# %%autopatch -p1
sed -i '1{/env python/d}' compressor/tests/precompiler.py
%build
@@ -73,7 +76,6 @@
%install
%pyproject_install
%{python_expand #
-echo '/* empty file */' >>
%{buildroot}%{$python_sitelib}/compressor/tests/static/CACHE/css/output.e3b0c44298fc.css
%fdupes %{buildroot}%{$python_sitelib}
}
++++++ django_compressor-4.5.1.tar.gz -> django_compressor-4.6.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/django_compressor-4.5.1/.github/dependabot.yml
new/django-compressor-4.6/.github/dependabot.yml
--- old/django_compressor-4.5.1/.github/dependabot.yml 1970-01-01
01:00:00.000000000 +0100
+++ new/django-compressor-4.6/.github/dependabot.yml 2025-11-10
12:14:39.000000000 +0100
@@ -0,0 +1,15 @@
+version: 2
+updates:
+- package-ecosystem: pip
+ directory: "/requirements"
+ groups:
+ PyPI:
+ patterns:
+ - "*" # Group all PyPI updates into a single larger pull request
+ schedule:
+ interval: weekly
+ open-pull-requests-limit: 99
+- package-ecosystem: github-actions
+ directory: "/"
+ schedule:
+ interval: weekly
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/django_compressor-4.5.1/.github/workflows/ci.yml
new/django-compressor-4.6/.github/workflows/ci.yml
--- old/django_compressor-4.5.1/.github/workflows/ci.yml 1970-01-01
01:00:00.000000000 +0100
+++ new/django-compressor-4.6/.github/workflows/ci.yml 2025-11-10
12:14:39.000000000 +0100
@@ -0,0 +1,59 @@
+name: CI
+
+on:
+ push:
+ branches:
+ - develop
+ - master
+ pull_request:
+
+jobs:
+ test:
+ strategy:
+ fail-fast: false
+ matrix:
+ versions:
+ - python: "3.10"
+ toxenv: py310-4.2.X
+ - python: "3.11"
+ toxenv: py311-4.2.X
+
+ - python: "3.10"
+ toxenv: py310-5.1.X
+ - python: "3.11"
+ toxenv: py311-5.1.X
+ - python: "3.12"
+ toxenv: py312-5.1.X
+ - python: "3.13"
+ toxenv: py313-5.1.X
+
+ - python: "3.10"
+ toxenv: py310-5.2.X
+ - python: "3.11"
+ toxenv: py311-5.2.X
+ - python: "3.12"
+ toxenv: py312-5.2.X
+ - python: "3.13"
+ toxenv: py313-5.2.X
+ - python: "3.14"
+ toxenv: py314-5.2.X
+
+ - python: "3.12"
+ toxenv: py312-6.0.X
+ - python: "3.13"
+ toxenv: py313-6.0.X
+ - python: "3.14"
+ toxenv: py314-6.0.X
+
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v5
+ - uses: actions/setup-python@v6
+ with:
+ python-version: ${{ matrix.versions.python }}
+ - run: |
+ pip install tox
+ - run: tox -e ${{ matrix.versions.toxenv }}
+ - run: |
+ pip install codecov
+ codecov
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/django_compressor-4.5.1/.gitignore
new/django-compressor-4.6/.gitignore
--- old/django_compressor-4.5.1/.gitignore 1970-01-01 01:00:00.000000000
+0100
+++ new/django-compressor-4.6/.gitignore 2025-11-10 12:14:39.000000000
+0100
@@ -0,0 +1,19 @@
+build
+compressor/tests/static/CACHE
+compressor/tests/static/custom
+compressor/tests/static/js/066cd253eada.js
+compressor/tests/static/js/d728fc7f9301.js
+compressor/tests/static/js/74e158ccb432.js
+compressor/tests/static/js/8a0fed36c317.js
+compressor/tests/static/test.txt*
+
+dist
+MANIFEST
+*.pyc
+*.egg-info
+*.egg
+docs/_build/
+.sass-cache
+.coverage
+.tox
+.eggs
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/django_compressor-4.5.1/.readthedocs.yaml
new/django-compressor-4.6/.readthedocs.yaml
--- old/django_compressor-4.5.1/.readthedocs.yaml 1970-01-01
01:00:00.000000000 +0100
+++ new/django-compressor-4.6/.readthedocs.yaml 2025-11-10 12:14:39.000000000
+0100
@@ -0,0 +1,15 @@
+# Read the Docs configuration file for Sphinx projects
+# See https://docs.readthedocs.io/en/stable/config-file/v2.html for details
+
+# Required
+version: 2
+
+# Set the OS, Python version and other tools you might need
+build:
+ os: ubuntu-22.04
+ tools:
+ python: "3.11"
+
+# Build documentation in the "docs/" directory with Sphinx
+sphinx:
+ configuration: docs/conf.py
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/django_compressor-4.5.1/PKG-INFO
new/django-compressor-4.6/PKG-INFO
--- old/django_compressor-4.5.1/PKG-INFO 2024-07-22 11:56:16.581524400
+0200
+++ new/django-compressor-4.6/PKG-INFO 1970-01-01 01:00:00.000000000 +0100
@@ -1,108 +0,0 @@
-Metadata-Version: 2.1
-Name: django_compressor
-Version: 4.5.1
-Summary: ('Compresses linked and inline JavaScript or CSS into single cached
files.',)
-Home-page: https://django-compressor.readthedocs.io/en/latest/
-Maintainer: Mathieu Pillard
-License: MIT
-Project-URL: Source, https://github.com/django-compressor/django-compressor
-Platform: UNKNOWN
-Classifier: Development Status :: 5 - Production/Stable
-Classifier: Framework :: Django
-Classifier: Framework :: Django :: 4.2
-Classifier: Framework :: Django :: 5.0
-Classifier: Framework :: Django :: 5.1
-Classifier: Intended Audience :: Developers
-Classifier: License :: OSI Approved :: MIT License
-Classifier: Operating System :: OS Independent
-Classifier: Programming Language :: Python
-Classifier: Programming Language :: Python :: 3 :: Only
-Classifier: Programming Language :: Python :: 3.10
-Classifier: Programming Language :: Python :: 3.11
-Classifier: Programming Language :: Python :: 3.12
-Classifier: Topic :: Internet :: WWW/HTTP
-Requires-Python: >=3.8
-License-File: LICENSE
-License-File: AUTHORS
-
-Django Compressor
-=================
-
-.. image::
https://codecov.io/github/django-compressor/django-compressor/coverage.svg?branch=develop
- :target:
https://codecov.io/github/django-compressor/django-compressor?branch=develop
-
-.. image:: https://img.shields.io/pypi/v/django_compressor.svg
- :target: https://pypi.python.org/pypi/django_compressor
-
-.. image::
https://img.shields.io/github/actions/workflow/status/django-compressor/django-compressor/ci.yml?branch=develop
- :alt: Build Status
- :target:
https://github.com/django-compressor/django-compressor/actions?query=workflow%3ACI
-
-Django Compressor processes, combines and minifies linked and inline
-Javascript or CSS in a Django template into cacheable static files.
-
-It supports compilers such as coffeescript, LESS and SASS and is
-extensible by custom processing steps.
-
-How it works
-------------
-In your templates, all HTML code between the tags ``{% compress js/css %}`` and
-``{% endcompress %}`` is parsed and searched for CSS or JS. These styles and
-scripts are subsequently processed with optional, configurable compilers and
-filters.
-
-The default filter for CSS rewrites paths to static files to be absolute.
-Both Javascript and CSS files are by default concatenated and minified.
-
-As the final step the template tag outputs a ``<script>`` or ``<link>``
-tag pointing to the optimized file. Alternatively it can also
-inline the resulting content into the original template directly.
-
-Since the file name is dependent on the content, these files can be given
-a far future expiration date without worrying about stale browser caches.
-
-For increased performance, the concatenation and compressing process
-can also be run once manually outside of the request/response cycle by using
-the Django management command ``manage.py compress``.
-
-Configurability & Extensibility
--------------------------------
-
-Django Compressor is highly configurable and extensible. The HTML parsing
-is done using lxml_ or if it's not available Python's built-in HTMLParser by
-default. As an alternative Django Compressor provides a BeautifulSoup_ and a
-html5lib_ based parser, as well as an abstract base class that makes it easy to
-write a custom parser.
-
-Django Compressor also comes with built-in support for
-`YUI CSS and JS`_ compressor, `yUglify CSS and JS`_ compressor, Google's
-`Closure Compiler`_, a Python port of Douglas Crockford's JSmin_, a Python port
-of the YUI CSS Compressor csscompressor_ and a filter to convert (some) images
into
-`data URIs`_.
-
-If your setup requires a different compressor or other post-processing
-tool it will be fairly easy to implement a custom filter. Simply extend
-from one of the available base classes.
-
-More documentation about the usage and settings of Django Compressor can be
-found on `django-compressor.readthedocs.org`_.
-
-The source code for Django Compressor can be found and contributed to on
-`github.com/django-compressor/django-compressor`_. There you can also file
tickets.
-
-The in-development version of Django Compressor can be installed with
-``pip install git+https://github.com/django-compressor/django-compressor.git``
-
-.. _BeautifulSoup: http://www.crummy.com/software/BeautifulSoup/
-.. _lxml: http://lxml.de/
-.. _html5lib: https://github.com/html5lib/html5lib-python
-.. _YUI CSS and JS: http://developer.yahoo.com/yui/compressor/
-.. _yUglify CSS and JS: https://github.com/yui/yuglify
-.. _Closure Compiler: http://code.google.com/closure/compiler/
-.. _JSMin: http://www.crockford.com/javascript/jsmin.html
-.. _csscompressor: https://github.com/sprymix/csscompressor
-.. _data URIs: http://en.wikipedia.org/wiki/Data_URI_scheme
-.. _django-compressor.readthedocs.org:
https://django-compressor.readthedocs.io/en/latest/
-.. _github.com/django-compressor/django-compressor:
https://github.com/django-compressor/django-compressor
-
-
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/django_compressor-4.5.1/compressor/__init__.py
new/django-compressor-4.6/compressor/__init__.py
--- old/django_compressor-4.5.1/compressor/__init__.py 2024-07-21
17:54:18.000000000 +0200
+++ new/django-compressor-4.6/compressor/__init__.py 2025-11-10
12:14:39.000000000 +0100
@@ -1,2 +1,2 @@
# following PEP 386
-__version__ = "4.5.1"
+__version__ = "4.6.0"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/django_compressor-4.5.1/compressor/management/commands/compress.py
new/django-compressor-4.6/compressor/management/commands/compress.py
--- old/django_compressor-4.5.1/compressor/management/commands/compress.py
2023-04-30 10:44:40.000000000 +0200
+++ new/django-compressor-4.6/compressor/management/commands/compress.py
2025-11-10 12:14:39.000000000 +0100
@@ -32,6 +32,8 @@
from compressor.utils import get_mod_func
offline_manifest_lock = Lock()
+node_locks_lock = Lock()
+node_locks = defaultdict(Lock)
class Command(BaseCommand):
@@ -328,8 +330,14 @@
offline_manifest[key] = None
+ node_id = id(node)
+
+ with node_locks_lock:
+ node_lock = node_locks[node_id]
+
try:
- result = parser.render_node(template, context, node)
+ with node_lock:
+ result = parser.render_node(template, context, node)
except Exception as e:
errors.append(
CommandError(
@@ -339,6 +347,9 @@
)
del offline_manifest[key]
return
+ finally:
+ with node_locks_lock:
+ node_locks.pop(node_id, None)
result = result.replace(
settings.COMPRESS_URL, settings.COMPRESS_URL_PLACEHOLDER
)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/django_compressor-4.5.1/compressor/parser/beautifulsoup.py
new/django-compressor-4.6/compressor/parser/beautifulsoup.py
--- old/django_compressor-4.5.1/compressor/parser/beautifulsoup.py
2023-04-30 10:44:40.000000000 +0200
+++ new/django-compressor-4.6/compressor/parser/beautifulsoup.py
2025-11-10 12:14:39.000000000 +0100
@@ -10,7 +10,9 @@
try:
from bs4 import BeautifulSoup
- self.soup = BeautifulSoup(self.content, "html.parser")
+ # Disable multi_valued_attributes
+ #
http://www.crummy.com/software/BeautifulSoup/bs4/doc/#multi-valued-attributes
+ self.soup = BeautifulSoup(self.content, "html.parser",
multi_valued_attributes=None)
except ImportError as err:
raise ImproperlyConfigured("Error while importing BeautifulSoup:
%s" % err)
@@ -21,13 +23,7 @@
return self.soup.find_all("script")
def elem_attribs(self, elem):
- attrs = dict(elem.attrs)
- # hack around changed behaviour in bs4, it returns lists now instead
of one string, see
- #
http://www.crummy.com/software/BeautifulSoup/bs4/doc/#multi-valued-attributes
- for key, value in attrs.items():
- if type(value) is list:
- attrs[key] = " ".join(value)
- return attrs
+ return elem.attrs
def elem_content(self, elem):
return elem.string
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/django_compressor-4.5.1/compressor/tests/static/CACHE/css/0618b11949aa.css
new/django-compressor-4.6/compressor/tests/static/CACHE/css/0618b11949aa.css
---
old/django_compressor-4.5.1/compressor/tests/static/CACHE/css/0618b11949aa.css
2021-11-22 11:56:56.000000000 +0100
+++
new/django-compressor-4.6/compressor/tests/static/CACHE/css/0618b11949aa.css
1970-01-01 01:00:00.000000000 +0100
@@ -1 +0,0 @@
-body{color:#fff}
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/django_compressor-4.5.1/compressor/tests/static/CACHE/css/5c6a60375256.css
new/django-compressor-4.6/compressor/tests/static/CACHE/css/5c6a60375256.css
---
old/django_compressor-4.5.1/compressor/tests/static/CACHE/css/5c6a60375256.css
2021-11-22 11:56:56.000000000 +0100
+++
new/django-compressor-4.6/compressor/tests/static/CACHE/css/5c6a60375256.css
1970-01-01 01:00:00.000000000 +0100
@@ -1 +0,0 @@
-body{background:#990}
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/django_compressor-4.5.1/compressor/tests/static/CACHE/css/600674ea1d3d.css
new/django-compressor-4.6/compressor/tests/static/CACHE/css/600674ea1d3d.css
---
old/django_compressor-4.5.1/compressor/tests/static/CACHE/css/600674ea1d3d.css
2021-11-22 11:56:56.000000000 +0100
+++
new/django-compressor-4.6/compressor/tests/static/CACHE/css/600674ea1d3d.css
1970-01-01 01:00:00.000000000 +0100
@@ -1 +0,0 @@
-body{background:#990}p{border:5px solid green}body{color:#fff}
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/django_compressor-4.5.1/compressor/tests/static/CACHE/css/7f02c21025ae.css
new/django-compressor-4.6/compressor/tests/static/CACHE/css/7f02c21025ae.css
---
old/django_compressor-4.5.1/compressor/tests/static/CACHE/css/7f02c21025ae.css
2021-11-22 11:56:57.000000000 +0100
+++
new/django-compressor-4.6/compressor/tests/static/CACHE/css/7f02c21025ae.css
1970-01-01 01:00:00.000000000 +0100
@@ -1 +0,0 @@
-h1{border:5px solid green}
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/django_compressor-4.5.1/compressor/tests/static/CACHE/css/919e93a2fea0.css
new/django-compressor-4.6/compressor/tests/static/CACHE/css/919e93a2fea0.css
---
old/django_compressor-4.5.1/compressor/tests/static/CACHE/css/919e93a2fea0.css
2021-11-22 11:56:56.000000000 +0100
+++
new/django-compressor-4.6/compressor/tests/static/CACHE/css/919e93a2fea0.css
1970-01-01 01:00:00.000000000 +0100
@@ -1 +0,0 @@
-p{border:5px solid green}
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/django_compressor-4.5.1/compressor/tests/static/CACHE/css/block_name.a1e074d0c4ac.css
new/django-compressor-4.6/compressor/tests/static/CACHE/css/block_name.a1e074d0c4ac.css
---
old/django_compressor-4.5.1/compressor/tests/static/CACHE/css/block_name.a1e074d0c4ac.css
2021-11-22 11:56:56.000000000 +0100
+++
new/django-compressor-4.6/compressor/tests/static/CACHE/css/block_name.a1e074d0c4ac.css
1970-01-01 01:00:00.000000000 +0100
@@ -1 +0,0 @@
-body{background:#990}p{border:5px solid blue}body{color:#fff}
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/django_compressor-4.5.1/compressor/tests/static/CACHE/css/dff24a7e6003.css
new/django-compressor-4.6/compressor/tests/static/CACHE/css/dff24a7e6003.css
---
old/django_compressor-4.5.1/compressor/tests/static/CACHE/css/dff24a7e6003.css
2021-11-22 11:56:57.000000000 +0100
+++
new/django-compressor-4.6/compressor/tests/static/CACHE/css/dff24a7e6003.css
1970-01-01 01:00:00.000000000 +0100
@@ -1 +0,0 @@
-p{border:10px solid red}
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/django_compressor-4.5.1/compressor/tests/static/CACHE/css/output.187e2ce75808.css
new/django-compressor-4.6/compressor/tests/static/CACHE/css/output.187e2ce75808.css
---
old/django_compressor-4.5.1/compressor/tests/static/CACHE/css/output.187e2ce75808.css
2024-07-06 15:02:49.000000000 +0200
+++
new/django-compressor-4.6/compressor/tests/static/CACHE/css/output.187e2ce75808.css
1970-01-01 01:00:00.000000000 +0100
@@ -1 +0,0 @@
-body{background:orange}
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/django_compressor-4.5.1/compressor/tests/static/CACHE/css/output.44f040b05f91.css
new/django-compressor-4.6/compressor/tests/static/CACHE/css/output.44f040b05f91.css
---
old/django_compressor-4.5.1/compressor/tests/static/CACHE/css/output.44f040b05f91.css
2021-11-22 11:56:56.000000000 +0100
+++
new/django-compressor-4.6/compressor/tests/static/CACHE/css/output.44f040b05f91.css
1970-01-01 01:00:00.000000000 +0100
@@ -1 +0,0 @@
-body{background:#990}body{color:#fff}
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/django_compressor-4.5.1/compressor/tests/static/CACHE/css/output.600674ea1d3d.css
new/django-compressor-4.6/compressor/tests/static/CACHE/css/output.600674ea1d3d.css
---
old/django_compressor-4.5.1/compressor/tests/static/CACHE/css/output.600674ea1d3d.css
2021-11-22 11:56:56.000000000 +0100
+++
new/django-compressor-4.6/compressor/tests/static/CACHE/css/output.600674ea1d3d.css
1970-01-01 01:00:00.000000000 +0100
@@ -1 +0,0 @@
-body{background:#990}p{border:5px solid green}body{color:#fff}
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/django_compressor-4.5.1/compressor/tests/static/CACHE/css/output.d5444a1ab4a3.css
new/django-compressor-4.6/compressor/tests/static/CACHE/css/output.d5444a1ab4a3.css
---
old/django_compressor-4.5.1/compressor/tests/static/CACHE/css/output.d5444a1ab4a3.css
2021-11-22 11:56:56.000000000 +0100
+++
new/django-compressor-4.6/compressor/tests/static/CACHE/css/output.d5444a1ab4a3.css
1970-01-01 01:00:00.000000000 +0100
@@ -1 +0,0 @@
-.byline:before{content:" — "}p{border:5px solid green}
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/django_compressor-4.5.1/compressor/tests/static/CACHE/css/output.e701f86c6430.css
new/django-compressor-4.6/compressor/tests/static/CACHE/css/output.e701f86c6430.css
---
old/django_compressor-4.5.1/compressor/tests/static/CACHE/css/output.e701f86c6430.css
2021-11-22 11:56:56.000000000 +0100
+++
new/django-compressor-4.6/compressor/tests/static/CACHE/css/output.e701f86c6430.css
1970-01-01 01:00:00.000000000 +0100
@@ -1 +0,0 @@
-body{background:#990}p{border:5px solid white}body{color:#fff}
\ No newline at end of file
Binary files
old/django_compressor-4.5.1/compressor/tests/static/CACHE/css/output.e701f86c6430.css.gz
and
new/django-compressor-4.6/compressor/tests/static/CACHE/css/output.e701f86c6430.css.gz
differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/django_compressor-4.5.1/compressor/tests/static/CACHE/css/output.fffafcdf428e.css
new/django-compressor-4.6/compressor/tests/static/CACHE/css/output.fffafcdf428e.css
---
old/django_compressor-4.5.1/compressor/tests/static/CACHE/css/output.fffafcdf428e.css
2024-07-06 15:02:49.000000000 +0200
+++
new/django-compressor-4.6/compressor/tests/static/CACHE/css/output.fffafcdf428e.css
1970-01-01 01:00:00.000000000 +0100
@@ -1 +0,0 @@
-body{background:purple}
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/django_compressor-4.5.1/compressor/tests/static/CACHE/css/relative_url.376db5682982.css
new/django-compressor-4.6/compressor/tests/static/CACHE/css/relative_url.376db5682982.css
---
old/django_compressor-4.5.1/compressor/tests/static/CACHE/css/relative_url.376db5682982.css
2024-07-06 15:02:49.000000000 +0200
+++
new/django-compressor-4.6/compressor/tests/static/CACHE/css/relative_url.376db5682982.css
1970-01-01 01:00:00.000000000 +0100
@@ -1 +0,0 @@
-p { background: url('/static/img/python.png?ccb38978f900'); }
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/django_compressor-4.5.1/compressor/tests/static/CACHE/css/relative_url.e8602322bfa6.css
new/django-compressor-4.6/compressor/tests/static/CACHE/css/relative_url.e8602322bfa6.css
---
old/django_compressor-4.5.1/compressor/tests/static/CACHE/css/relative_url.e8602322bfa6.css
2024-07-06 15:02:49.000000000 +0200
+++
new/django-compressor-4.6/compressor/tests/static/CACHE/css/relative_url.e8602322bfa6.css
1970-01-01 01:00:00.000000000 +0100
@@ -1 +0,0 @@
-p { background: url('../img/python.png'); }
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/django_compressor-4.5.1/compressor/tests/static/CACHE/css/test.222f958fb191.css
new/django-compressor-4.6/compressor/tests/static/CACHE/css/test.222f958fb191.css
---
old/django_compressor-4.5.1/compressor/tests/static/CACHE/css/test.222f958fb191.css
2024-07-06 15:02:49.000000000 +0200
+++
new/django-compressor-4.6/compressor/tests/static/CACHE/css/test.222f958fb191.css
1970-01-01 01:00:00.000000000 +0100
@@ -1 +0,0 @@
-p { color: url('/static/images/image.gif') }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/django_compressor-4.5.1/compressor/tests/static/CACHE/js/29e69fc86958.js
new/django-compressor-4.6/compressor/tests/static/CACHE/js/29e69fc86958.js
---
old/django_compressor-4.5.1/compressor/tests/static/CACHE/js/29e69fc86958.js
2021-11-22 11:56:57.000000000 +0100
+++ new/django-compressor-4.6/compressor/tests/static/CACHE/js/29e69fc86958.js
1970-01-01 01:00:00.000000000 +0100
@@ -1 +0,0 @@
-pollos={};
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/django_compressor-4.5.1/compressor/tests/static/CACHE/js/302673cb0d9e.js
new/django-compressor-4.6/compressor/tests/static/CACHE/js/302673cb0d9e.js
---
old/django_compressor-4.5.1/compressor/tests/static/CACHE/js/302673cb0d9e.js
2021-11-22 11:56:57.000000000 +0100
+++ new/django-compressor-4.6/compressor/tests/static/CACHE/js/302673cb0d9e.js
1970-01-01 01:00:00.000000000 +0100
@@ -1 +0,0 @@
-obj={};;pollos={};
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/django_compressor-4.5.1/compressor/tests/static/CACHE/js/8a0fed36c317.js
new/django-compressor-4.6/compressor/tests/static/CACHE/js/8a0fed36c317.js
---
old/django_compressor-4.5.1/compressor/tests/static/CACHE/js/8a0fed36c317.js
2021-11-22 11:56:56.000000000 +0100
+++ new/django-compressor-4.6/compressor/tests/static/CACHE/js/8a0fed36c317.js
1970-01-01 01:00:00.000000000 +0100
@@ -1 +0,0 @@
-obj={};;obj.value="value";;
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/django_compressor-4.5.1/compressor/tests/static/CACHE/js/d5474411b7a5.js
new/django-compressor-4.6/compressor/tests/static/CACHE/js/d5474411b7a5.js
---
old/django_compressor-4.5.1/compressor/tests/static/CACHE/js/d5474411b7a5.js
2021-11-22 11:56:57.000000000 +0100
+++ new/django-compressor-4.6/compressor/tests/static/CACHE/js/d5474411b7a5.js
1970-01-01 01:00:00.000000000 +0100
@@ -1 +0,0 @@
-hermanos={};
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/django_compressor-4.5.1/compressor/tests/static/CACHE/js/e1cc01dd11ac.js
new/django-compressor-4.6/compressor/tests/static/CACHE/js/e1cc01dd11ac.js
---
old/django_compressor-4.5.1/compressor/tests/static/CACHE/js/e1cc01dd11ac.js
2021-11-22 11:56:57.000000000 +0100
+++ new/django-compressor-4.6/compressor/tests/static/CACHE/js/e1cc01dd11ac.js
1970-01-01 01:00:00.000000000 +0100
@@ -1 +0,0 @@
-obj={};;
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/django_compressor-4.5.1/compressor/tests/static/CACHE/js/ed0dff257832.js
new/django-compressor-4.6/compressor/tests/static/CACHE/js/ed0dff257832.js
---
old/django_compressor-4.5.1/compressor/tests/static/CACHE/js/ed0dff257832.js
2021-11-22 11:56:57.000000000 +0100
+++ new/django-compressor-4.6/compressor/tests/static/CACHE/js/ed0dff257832.js
1970-01-01 01:00:00.000000000 +0100
@@ -1 +0,0 @@
-obj.value="value";;
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/django_compressor-4.5.1/compressor/tests/static/CACHE/js/one.4b3570601b8c.js
new/django-compressor-4.6/compressor/tests/static/CACHE/js/one.4b3570601b8c.js
---
old/django_compressor-4.5.1/compressor/tests/static/CACHE/js/one.4b3570601b8c.js
2024-07-06 15:02:49.000000000 +0200
+++
new/django-compressor-4.6/compressor/tests/static/CACHE/js/one.4b3570601b8c.js
1970-01-01 01:00:00.000000000 +0100
@@ -1,2 +0,0 @@
-# this is a comment.
-
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/django_compressor-4.5.1/compressor/tests/static/CACHE/js/one.8ab93aace8fa.js
new/django-compressor-4.6/compressor/tests/static/CACHE/js/one.8ab93aace8fa.js
---
old/django_compressor-4.5.1/compressor/tests/static/CACHE/js/one.8ab93aace8fa.js
2024-07-06 15:02:49.000000000 +0200
+++
new/django-compressor-4.6/compressor/tests/static/CACHE/js/one.8ab93aace8fa.js
1970-01-01 01:00:00.000000000 +0100
@@ -1 +0,0 @@
-obj = {};
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/django_compressor-4.5.1/compressor/tests/static/CACHE/js/output.0241107e9a9a.js
new/django-compressor-4.6/compressor/tests/static/CACHE/js/output.0241107e9a9a.js
---
old/django_compressor-4.5.1/compressor/tests/static/CACHE/js/output.0241107e9a9a.js
2024-07-06 15:02:49.000000000 +0200
+++
new/django-compressor-4.6/compressor/tests/static/CACHE/js/output.0241107e9a9a.js
1970-01-01 01:00:00.000000000 +0100
@@ -1 +0,0 @@
-alert("Hello world from django template");;
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/django_compressor-4.5.1/compressor/tests/static/CACHE/js/output.055f88f4751f.js
new/django-compressor-4.6/compressor/tests/static/CACHE/js/output.055f88f4751f.js
---
old/django_compressor-4.5.1/compressor/tests/static/CACHE/js/output.055f88f4751f.js
2024-07-06 15:02:48.000000000 +0200
+++
new/django-compressor-4.6/compressor/tests/static/CACHE/js/output.055f88f4751f.js
1970-01-01 01:00:00.000000000 +0100
@@ -1 +0,0 @@
-alert("test using multiple inheritance and block.super");;alert("this alert
shouldn't be alone!");;
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/django_compressor-4.5.1/compressor/tests/static/CACHE/js/output.06a98ccfd380.js
new/django-compressor-4.6/compressor/tests/static/CACHE/js/output.06a98ccfd380.js
---
old/django_compressor-4.5.1/compressor/tests/static/CACHE/js/output.06a98ccfd380.js
2021-11-22 11:56:56.000000000 +0100
+++
new/django-compressor-4.6/compressor/tests/static/CACHE/js/output.06a98ccfd380.js
1970-01-01 01:00:00.000000000 +0100
@@ -1 +0,0 @@
-var test_value="Überstríng";;var test_value="—";;
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/django_compressor-4.5.1/compressor/tests/static/CACHE/js/output.2bb88185b4f5.js
new/django-compressor-4.6/compressor/tests/static/CACHE/js/output.2bb88185b4f5.js
---
old/django_compressor-4.5.1/compressor/tests/static/CACHE/js/output.2bb88185b4f5.js
2024-07-06 15:02:48.000000000 +0200
+++
new/django-compressor-4.6/compressor/tests/static/CACHE/js/output.2bb88185b4f5.js
1970-01-01 01:00:00.000000000 +0100
@@ -1 +0,0 @@
-alert("testtemplatetag");;
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/django_compressor-4.5.1/compressor/tests/static/CACHE/js/output.55b3123e884c.js
new/django-compressor-4.6/compressor/tests/static/CACHE/js/output.55b3123e884c.js
---
old/django_compressor-4.5.1/compressor/tests/static/CACHE/js/output.55b3123e884c.js
2024-07-06 15:02:48.000000000 +0200
+++
new/django-compressor-4.6/compressor/tests/static/CACHE/js/output.55b3123e884c.js
1970-01-01 01:00:00.000000000 +0100
@@ -1 +0,0 @@
-alert("OK 2!");;
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/django_compressor-4.5.1/compressor/tests/static/CACHE/js/output.567bb77b13db.js
new/django-compressor-4.6/compressor/tests/static/CACHE/js/output.567bb77b13db.js
---
old/django_compressor-4.5.1/compressor/tests/static/CACHE/js/output.567bb77b13db.js
2024-07-06 15:02:48.000000000 +0200
+++
new/django-compressor-4.6/compressor/tests/static/CACHE/js/output.567bb77b13db.js
1970-01-01 01:00:00.000000000 +0100
@@ -1 +0,0 @@
-var ok="ok";;
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/django_compressor-4.5.1/compressor/tests/static/CACHE/js/output.5694ca83dd14.js
new/django-compressor-4.6/compressor/tests/static/CACHE/js/output.5694ca83dd14.js
---
old/django_compressor-4.5.1/compressor/tests/static/CACHE/js/output.5694ca83dd14.js
2024-07-06 15:02:49.000000000 +0200
+++
new/django-compressor-4.6/compressor/tests/static/CACHE/js/output.5694ca83dd14.js
1970-01-01 01:00:00.000000000 +0100
@@ -1 +0,0 @@
-alert("Hello world from jinja2 template");;
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/django_compressor-4.5.1/compressor/tests/static/CACHE/js/output.6ac9e4b29feb.js
new/django-compressor-4.6/compressor/tests/static/CACHE/js/output.6ac9e4b29feb.js
---
old/django_compressor-4.5.1/compressor/tests/static/CACHE/js/output.6ac9e4b29feb.js
2024-07-06 15:02:48.000000000 +0200
+++
new/django-compressor-4.6/compressor/tests/static/CACHE/js/output.6ac9e4b29feb.js
1970-01-01 01:00:00.000000000 +0100
@@ -1 +0,0 @@
-alert("OK 3!");;alert("this alert shouldn't be alone!");;
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/django_compressor-4.5.1/compressor/tests/static/CACHE/js/output.7219642b8ab4.js
new/django-compressor-4.6/compressor/tests/static/CACHE/js/output.7219642b8ab4.js
---
old/django_compressor-4.5.1/compressor/tests/static/CACHE/js/output.7219642b8ab4.js
2024-07-06 15:02:48.000000000 +0200
+++
new/django-compressor-4.6/compressor/tests/static/CACHE/js/output.7219642b8ab4.js
1970-01-01 01:00:00.000000000 +0100
@@ -1 +0,0 @@
-var not_ok;;
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/django_compressor-4.5.1/compressor/tests/static/CACHE/js/output.76a82cfab9ab.js
new/django-compressor-4.6/compressor/tests/static/CACHE/js/output.76a82cfab9ab.js
---
old/django_compressor-4.5.1/compressor/tests/static/CACHE/js/output.76a82cfab9ab.js
2024-07-06 15:02:48.000000000 +0200
+++
new/django-compressor-4.6/compressor/tests/static/CACHE/js/output.76a82cfab9ab.js
1970-01-01 01:00:00.000000000 +0100
@@ -1 +0,0 @@
-alert("OK!");;obj={};;var test_value="—";;
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/django_compressor-4.5.1/compressor/tests/static/CACHE/js/output.817b5defb197.js
new/django-compressor-4.6/compressor/tests/static/CACHE/js/output.817b5defb197.js
---
old/django_compressor-4.5.1/compressor/tests/static/CACHE/js/output.817b5defb197.js
2024-07-06 15:02:48.000000000 +0200
+++
new/django-compressor-4.6/compressor/tests/static/CACHE/js/output.817b5defb197.js
1970-01-01 01:00:00.000000000 +0100
@@ -1 +0,0 @@
-alert("test using block.super");;alert("this alert shouldn't be alone!");;
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/django_compressor-4.5.1/compressor/tests/static/CACHE/js/output.822ac7501287.js
new/django-compressor-4.6/compressor/tests/static/CACHE/js/output.822ac7501287.js
---
old/django_compressor-4.5.1/compressor/tests/static/CACHE/js/output.822ac7501287.js
2024-07-06 15:02:48.000000000 +0200
+++
new/django-compressor-4.6/compressor/tests/static/CACHE/js/output.822ac7501287.js
1970-01-01 01:00:00.000000000 +0100
@@ -1 +0,0 @@
-alert("Basic test");;
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/django_compressor-4.5.1/compressor/tests/static/CACHE/js/output.8a0fed36c317.js
new/django-compressor-4.6/compressor/tests/static/CACHE/js/output.8a0fed36c317.js
---
old/django_compressor-4.5.1/compressor/tests/static/CACHE/js/output.8a0fed36c317.js
2021-11-22 11:56:56.000000000 +0100
+++
new/django-compressor-4.6/compressor/tests/static/CACHE/js/output.8a0fed36c317.js
1970-01-01 01:00:00.000000000 +0100
@@ -1 +0,0 @@
-obj={};;obj.value="value";;
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/django_compressor-4.5.1/compressor/tests/static/CACHE/js/output.8b4a7452e1c5.js
new/django-compressor-4.6/compressor/tests/static/CACHE/js/output.8b4a7452e1c5.js
---
old/django_compressor-4.5.1/compressor/tests/static/CACHE/js/output.8b4a7452e1c5.js
2024-07-06 15:02:48.000000000 +0200
+++
new/django-compressor-4.6/compressor/tests/static/CACHE/js/output.8b4a7452e1c5.js
1970-01-01 01:00:00.000000000 +0100
@@ -1 +0,0 @@
-alert("OK 1!");;
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/django_compressor-4.5.1/compressor/tests/static/CACHE/js/output.8c00f1cf1e0a.js
new/django-compressor-4.6/compressor/tests/static/CACHE/js/output.8c00f1cf1e0a.js
---
old/django_compressor-4.5.1/compressor/tests/static/CACHE/js/output.8c00f1cf1e0a.js
2021-11-22 11:56:56.000000000 +0100
+++
new/django-compressor-4.6/compressor/tests/static/CACHE/js/output.8c00f1cf1e0a.js
1970-01-01 01:00:00.000000000 +0100
@@ -1 +0,0 @@
-var test_value="—";;var test_value="—";;
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/django_compressor-4.5.1/compressor/tests/static/CACHE/js/output.9a7f06880ce3.js
new/django-compressor-4.6/compressor/tests/static/CACHE/js/output.9a7f06880ce3.js
---
old/django_compressor-4.5.1/compressor/tests/static/CACHE/js/output.9a7f06880ce3.js
2024-07-06 15:02:48.000000000 +0200
+++
new/django-compressor-4.6/compressor/tests/static/CACHE/js/output.9a7f06880ce3.js
1970-01-01 01:00:00.000000000 +0100
@@ -1 +0,0 @@
-a=1;
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/django_compressor-4.5.1/compressor/tests/static/CACHE/js/output.9cecd41a505f.js
new/django-compressor-4.6/compressor/tests/static/CACHE/js/output.9cecd41a505f.js
---
old/django_compressor-4.5.1/compressor/tests/static/CACHE/js/output.9cecd41a505f.js
2024-07-06 15:02:48.000000000 +0200
+++
new/django-compressor-4.6/compressor/tests/static/CACHE/js/output.9cecd41a505f.js
1970-01-01 01:00:00.000000000 +0100
@@ -1 +0,0 @@
-alert("test using multiple inheritance and block.super");;alert("this alert
should be included");;
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/django_compressor-4.5.1/compressor/tests/static/CACHE/js/output.a3275743dc69.js
new/django-compressor-4.6/compressor/tests/static/CACHE/js/output.a3275743dc69.js
---
old/django_compressor-4.5.1/compressor/tests/static/CACHE/js/output.a3275743dc69.js
2024-07-06 15:02:48.000000000 +0200
+++
new/django-compressor-4.6/compressor/tests/static/CACHE/js/output.a3275743dc69.js
1970-01-01 01:00:00.000000000 +0100
@@ -1 +0,0 @@
-alert("red");;
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/django_compressor-4.5.1/compressor/tests/static/CACHE/js/output.b0bfc3754fd4.js
new/django-compressor-4.6/compressor/tests/static/CACHE/js/output.b0bfc3754fd4.js
---
old/django_compressor-4.5.1/compressor/tests/static/CACHE/js/output.b0bfc3754fd4.js
2024-07-06 15:02:48.000000000 +0200
+++
new/django-compressor-4.6/compressor/tests/static/CACHE/js/output.b0bfc3754fd4.js
1970-01-01 01:00:00.000000000 +0100
@@ -1 +0,0 @@
-STATIC_URL='/custom/static/url/';;
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/django_compressor-4.5.1/compressor/tests/static/CACHE/js/output.b39975a8f6ea.js
new/django-compressor-4.6/compressor/tests/static/CACHE/js/output.b39975a8f6ea.js
---
old/django_compressor-4.5.1/compressor/tests/static/CACHE/js/output.b39975a8f6ea.js
2024-07-06 15:02:48.000000000 +0200
+++
new/django-compressor-4.6/compressor/tests/static/CACHE/js/output.b39975a8f6ea.js
1970-01-01 01:00:00.000000000 +0100
@@ -1 +0,0 @@
-alert("OK 1!");;alert("this alert shouldn't be alone!");;
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/django_compressor-4.5.1/compressor/tests/static/CACHE/js/output.b8376aad1357.js
new/django-compressor-4.6/compressor/tests/static/CACHE/js/output.b8376aad1357.js
---
old/django_compressor-4.5.1/compressor/tests/static/CACHE/js/output.b8376aad1357.js
2024-07-06 15:02:48.000000000 +0200
+++
new/django-compressor-4.6/compressor/tests/static/CACHE/js/output.b8376aad1357.js
1970-01-01 01:00:00.000000000 +0100
@@ -1 +0,0 @@
-alert("test using template extension passed in variable parent=base.html");;
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/django_compressor-4.5.1/compressor/tests/static/CACHE/js/output.be0b1eade28b.js
new/django-compressor-4.6/compressor/tests/static/CACHE/js/output.be0b1eade28b.js
---
old/django_compressor-4.5.1/compressor/tests/static/CACHE/js/output.be0b1eade28b.js
2024-07-06 15:02:49.000000000 +0200
+++
new/django-compressor-4.6/compressor/tests/static/CACHE/js/output.be0b1eade28b.js
1970-01-01 01:00:00.000000000 +0100
@@ -1 +0,0 @@
-alert('amazing');;obj={};;
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/django_compressor-4.5.1/compressor/tests/static/CACHE/js/output.bfc63829cc58.js
new/django-compressor-4.6/compressor/tests/static/CACHE/js/output.bfc63829cc58.js
---
old/django_compressor-4.5.1/compressor/tests/static/CACHE/js/output.bfc63829cc58.js
2024-07-06 15:02:48.000000000 +0200
+++
new/django-compressor-4.6/compressor/tests/static/CACHE/js/output.bfc63829cc58.js
1970-01-01 01:00:00.000000000 +0100
@@ -1 +0,0 @@
-alert("OK 3!");;
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/django_compressor-4.5.1/compressor/tests/static/CACHE/js/output.bfcec76e0f28.js
new/django-compressor-4.6/compressor/tests/static/CACHE/js/output.bfcec76e0f28.js
---
old/django_compressor-4.5.1/compressor/tests/static/CACHE/js/output.bfcec76e0f28.js
2024-07-06 15:02:48.000000000 +0200
+++
new/django-compressor-4.6/compressor/tests/static/CACHE/js/output.bfcec76e0f28.js
1970-01-01 01:00:00.000000000 +0100
@@ -1 +0,0 @@
-alert("this alert should be alone.");;
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/django_compressor-4.5.1/compressor/tests/static/CACHE/js/output.c6bf81bca7ad.js
new/django-compressor-4.6/compressor/tests/static/CACHE/js/output.c6bf81bca7ad.js
---
old/django_compressor-4.5.1/compressor/tests/static/CACHE/js/output.c6bf81bca7ad.js
2024-07-06 15:02:48.000000000 +0200
+++
new/django-compressor-4.6/compressor/tests/static/CACHE/js/output.c6bf81bca7ad.js
1970-01-01 01:00:00.000000000 +0100
@@ -1 +0,0 @@
-alert("OK!");;
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/django_compressor-4.5.1/compressor/tests/static/CACHE/js/output.c877c436363a.js
new/django-compressor-4.6/compressor/tests/static/CACHE/js/output.c877c436363a.js
---
old/django_compressor-4.5.1/compressor/tests/static/CACHE/js/output.c877c436363a.js
2024-07-06 15:02:48.000000000 +0200
+++
new/django-compressor-4.6/compressor/tests/static/CACHE/js/output.c877c436363a.js
1970-01-01 01:00:00.000000000 +0100
@@ -1 +0,0 @@
-alert("test using template extension passed in variable parent=base2.html");;
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/django_compressor-4.5.1/compressor/tests/static/CACHE/js/output.cee48db7cedc.js
new/django-compressor-4.6/compressor/tests/static/CACHE/js/output.cee48db7cedc.js
---
old/django_compressor-4.5.1/compressor/tests/static/CACHE/js/output.cee48db7cedc.js
2024-07-06 15:02:48.000000000 +0200
+++
new/django-compressor-4.6/compressor/tests/static/CACHE/js/output.cee48db7cedc.js
1970-01-01 01:00:00.000000000 +0100
@@ -1 +0,0 @@
-alert("test using template extension passed in variable parent=base1.html");;
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/django_compressor-4.5.1/compressor/tests/static/CACHE/js/output.d3f749e83c81.js
new/django-compressor-4.6/compressor/tests/static/CACHE/js/output.d3f749e83c81.js
---
old/django_compressor-4.5.1/compressor/tests/static/CACHE/js/output.d3f749e83c81.js
2024-07-06 15:02:48.000000000 +0200
+++
new/django-compressor-4.6/compressor/tests/static/CACHE/js/output.d3f749e83c81.js
1970-01-01 01:00:00.000000000 +0100
@@ -1 +0,0 @@
-alert("test using multiple inheritance and block.super");;alert("this alert
should be included");;alert("this alert shouldn't be alone!");;
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/django_compressor-4.5.1/compressor/tests/static/CACHE/js/output.dd79e1bd1527.js
new/django-compressor-4.6/compressor/tests/static/CACHE/js/output.dd79e1bd1527.js
---
old/django_compressor-4.5.1/compressor/tests/static/CACHE/js/output.dd79e1bd1527.js
2024-07-06 15:02:48.000000000 +0200
+++
new/django-compressor-4.6/compressor/tests/static/CACHE/js/output.dd79e1bd1527.js
1970-01-01 01:00:00.000000000 +0100
@@ -1 +0,0 @@
-alert("OK!");;alert("this alert shouldn't be alone!");;
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/django_compressor-4.5.1/compressor/tests/static/CACHE/js/output.e4d043b4cde4.js
new/django-compressor-4.6/compressor/tests/static/CACHE/js/output.e4d043b4cde4.js
---
old/django_compressor-4.5.1/compressor/tests/static/CACHE/js/output.e4d043b4cde4.js
2024-07-06 15:02:48.000000000 +0200
+++
new/django-compressor-4.6/compressor/tests/static/CACHE/js/output.e4d043b4cde4.js
1970-01-01 01:00:00.000000000 +0100
@@ -1 +0,0 @@
-alert('test');;
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/django_compressor-4.5.1/compressor/tests/static/CACHE/js/output.e4e9263fa4c0.js
new/django-compressor-4.6/compressor/tests/static/CACHE/js/output.e4e9263fa4c0.js
---
old/django_compressor-4.5.1/compressor/tests/static/CACHE/js/output.e4e9263fa4c0.js
2024-07-06 15:02:48.000000000 +0200
+++
new/django-compressor-4.6/compressor/tests/static/CACHE/js/output.e4e9263fa4c0.js
1970-01-01 01:00:00.000000000 +0100
@@ -1 +0,0 @@
-alert("test using multiple inheritance and block.super");;
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/django_compressor-4.5.1/compressor/tests/static/CACHE/js/output.e682d84f6b17.js
new/django-compressor-4.6/compressor/tests/static/CACHE/js/output.e682d84f6b17.js
---
old/django_compressor-4.5.1/compressor/tests/static/CACHE/js/output.e682d84f6b17.js
2021-11-22 11:56:56.000000000 +0100
+++
new/django-compressor-4.6/compressor/tests/static/CACHE/js/output.e682d84f6b17.js
1970-01-01 01:00:00.000000000 +0100
@@ -1 +0,0 @@
-obj={};;pollos={};hermanos={};
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/django_compressor-4.5.1/compressor/tests/static/CACHE/js/output.ec862f0ff42c.js
new/django-compressor-4.6/compressor/tests/static/CACHE/js/output.ec862f0ff42c.js
---
old/django_compressor-4.5.1/compressor/tests/static/CACHE/js/output.ec862f0ff42c.js
2021-11-22 11:56:56.000000000 +0100
+++
new/django-compressor-4.6/compressor/tests/static/CACHE/js/output.ec862f0ff42c.js
1970-01-01 01:00:00.000000000 +0100
@@ -1 +0,0 @@
-#this is a comment.;
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/django_compressor-4.5.1/compressor/tests/static/CACHE/js/output.ed565a1d262f.js
new/django-compressor-4.6/compressor/tests/static/CACHE/js/output.ed565a1d262f.js
---
old/django_compressor-4.5.1/compressor/tests/static/CACHE/js/output.ed565a1d262f.js
2024-07-06 15:02:48.000000000 +0200
+++
new/django-compressor-4.6/compressor/tests/static/CACHE/js/output.ed565a1d262f.js
1970-01-01 01:00:00.000000000 +0100
@@ -1 +0,0 @@
-alert("OK 2!");;alert("this alert shouldn't be alone!");;
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/django_compressor-4.5.1/compressor/tests/static/CACHE/js/output.eeabdac29232.js
new/django-compressor-4.6/compressor/tests/static/CACHE/js/output.eeabdac29232.js
---
old/django_compressor-4.5.1/compressor/tests/static/CACHE/js/output.eeabdac29232.js
2024-07-06 15:02:49.000000000 +0200
+++
new/django-compressor-4.6/compressor/tests/static/CACHE/js/output.eeabdac29232.js
1970-01-01 01:00:00.000000000 +0100
@@ -1 +0,0 @@
-alert("Basic test, should pass in spite of errors in other templates");;
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/django_compressor-4.5.1/compressor/tests/static/CACHE/js/output.fb4a0d84e914.js
new/django-compressor-4.6/compressor/tests/static/CACHE/js/output.fb4a0d84e914.js
---
old/django_compressor-4.5.1/compressor/tests/static/CACHE/js/output.fb4a0d84e914.js
2021-11-22 11:56:56.000000000 +0100
+++
new/django-compressor-4.6/compressor/tests/static/CACHE/js/output.fb4a0d84e914.js
1970-01-01 01:00:00.000000000 +0100
@@ -1 +0,0 @@
-#this is a comment.;#this too is a comment.;
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/django_compressor-4.5.1/compressor/tests/static/CACHE/js/output.ffc39dec05fd.js
new/django-compressor-4.6/compressor/tests/static/CACHE/js/output.ffc39dec05fd.js
---
old/django_compressor-4.5.1/compressor/tests/static/CACHE/js/output.ffc39dec05fd.js
2021-11-22 11:56:56.000000000 +0100
+++
new/django-compressor-4.6/compressor/tests/static/CACHE/js/output.ffc39dec05fd.js
1970-01-01 01:00:00.000000000 +0100
@@ -1 +0,0 @@
-var tmpl="{% if x == 3 %}x IS 3{% endif %}";
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/django_compressor-4.5.1/compressor/tests/static/CACHE/js/output_name.822ac7501287.js
new/django-compressor-4.6/compressor/tests/static/CACHE/js/output_name.822ac7501287.js
---
old/django_compressor-4.5.1/compressor/tests/static/CACHE/js/output_name.822ac7501287.js
2024-07-06 15:02:48.000000000 +0200
+++
new/django-compressor-4.6/compressor/tests/static/CACHE/js/output_name.822ac7501287.js
1970-01-01 01:00:00.000000000 +0100
@@ -1 +0,0 @@
-alert("Basic test");;
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/django_compressor-4.5.1/compressor/tests/static/CACHE/test.txt
new/django-compressor-4.6/compressor/tests/static/CACHE/test.txt
--- old/django_compressor-4.5.1/compressor/tests/static/CACHE/test.txt
2024-07-06 15:02:49.000000000 +0200
+++ new/django-compressor-4.6/compressor/tests/static/CACHE/test.txt
1970-01-01 01:00:00.000000000 +0100
@@ -1 +0,0 @@
-yeah yeah
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/django_compressor-4.5.1/compressor/tests/static/custom/js/8a0fed36c317.js
new/django-compressor-4.6/compressor/tests/static/custom/js/8a0fed36c317.js
---
old/django_compressor-4.5.1/compressor/tests/static/custom/js/8a0fed36c317.js
2021-11-22 11:56:56.000000000 +0100
+++ new/django-compressor-4.6/compressor/tests/static/custom/js/8a0fed36c317.js
1970-01-01 01:00:00.000000000 +0100
@@ -1 +0,0 @@
-obj={};;obj.value="value";;
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/django_compressor-4.5.1/compressor/tests/static/custom/nested/js/8a0fed36c317.js
new/django-compressor-4.6/compressor/tests/static/custom/nested/js/8a0fed36c317.js
---
old/django_compressor-4.5.1/compressor/tests/static/custom/nested/js/8a0fed36c317.js
2021-11-22 11:56:56.000000000 +0100
+++
new/django-compressor-4.6/compressor/tests/static/custom/nested/js/8a0fed36c317.js
1970-01-01 01:00:00.000000000 +0100
@@ -1 +0,0 @@
-obj={};;obj.value="value";;
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/django_compressor-4.5.1/compressor/tests/static/js/8a0fed36c317.js
new/django-compressor-4.6/compressor/tests/static/js/8a0fed36c317.js
--- old/django_compressor-4.5.1/compressor/tests/static/js/8a0fed36c317.js
2021-11-22 11:56:56.000000000 +0100
+++ new/django-compressor-4.6/compressor/tests/static/js/8a0fed36c317.js
1970-01-01 01:00:00.000000000 +0100
@@ -1 +0,0 @@
-obj={};;obj.value="value";;
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/django_compressor-4.5.1/compressor/tests/static/test.txt
new/django-compressor-4.6/compressor/tests/static/test.txt
--- old/django_compressor-4.5.1/compressor/tests/static/test.txt
2024-07-06 15:02:49.000000000 +0200
+++ new/django-compressor-4.6/compressor/tests/static/test.txt 1970-01-01
01:00:00.000000000 +0100
@@ -1 +0,0 @@
-yeah yeah
\ No newline at end of file
Binary files old/django_compressor-4.5.1/compressor/tests/static/test.txt.br
and new/django-compressor-4.6/compressor/tests/static/test.txt.br differ
Binary files old/django_compressor-4.5.1/compressor/tests/static/test.txt.gz
and new/django-compressor-4.6/compressor/tests/static/test.txt.gz differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/django_compressor-4.5.1/compressor/tests/test_offline.py
new/django-compressor-4.6/compressor/tests/test_offline.py
--- old/django_compressor-4.5.1/compressor/tests/test_offline.py
2024-06-09 10:44:46.000000000 +0200
+++ new/django-compressor-4.6/compressor/tests/test_offline.py 2025-11-10
12:14:39.000000000 +0100
@@ -3,13 +3,14 @@
import os
from contextlib import contextmanager
from importlib import import_module
+import threading
from unittest import SkipTest
from unittest.mock import patch
+
from django.conf import settings
from django.core.management import call_command, CommandError
from django.template import Context, Origin, Template
-from django.test import override_settings, TestCase
from django.urls import get_script_prefix, set_script_prefix
from compressor.cache import flush_offline_manifest, get_offline_manifest
@@ -19,6 +20,12 @@
from compressor.utils import get_mod_func
+import time
+import types
+
+from django.test import TestCase, override_settings
+
+
def offline_context_generator():
for i in range(1, 4):
yield {"content": "OK %d!" % i}
@@ -942,3 +949,104 @@
self.assertEqual(actual_result, expected_result)
self.assertIn(str(settings.COMPRESS_URL), actual_result)
+
+
+@override_settings(COMPRESS_URL="/static/",
COMPRESS_URL_PLACEHOLDER="__STATIC__")
+class OfflineCompressPerNodeLockingTestCase(TestCase):
+ """
+ Validates that the per-node lock prevents concurrent render of the same
node,
+ but does allow concurrent rendering of different nodes.
+ """
+
+ class DummyNode():
+ def __init__(self, rendered):
+ self.rendered = rendered
+
+ def _make_parser(self, active, max_active, active_lock):
+ def process_template(template, context):
+ return True
+
+ def process_node(template, context, node):
+ return True
+
+ def render_nodelist(template, context, node):
+ return "nodelist-rendered " + node.rendered
+
+ def render_node(template, context, node):
+ with active_lock:
+ # keep track of how many concurrent "render_node"
+ # methods are called (by Command._compress_template)
+ active[0] += 1
+ if active[0] > max_active[0]:
+ max_active[0] = active[0]
+ try:
+ # time.sleep(1) to pretend that it takes 1 second to render
+ # the node (and allows the unit tests to exercise the
+ # waiting for one the node rendering before doing the same
+ # one again)
+ time.sleep(1)
+ return node.rendered
+ finally:
+ with active_lock:
+ active[0] -= 1
+
+ return types.SimpleNamespace(render_nodelist=render_nodelist,
process_template=process_template, process_node=process_node,
render_node=render_node)
+
+ def _call_compress_template(self, nodes, parser, offline_manifest, errors):
+ from compressor.management.commands.compress import Command
+
+ class DummyTemplate:
+ template_name = "dummy.html"
+
+ template = DummyTemplate()
+ Command._compress_template(offline_manifest, nodes, parser, template,
errors)
+
+ def _assert_concurrency(self, nodes_1, nodes_2, expected_max_active):
+ # Shared state to measure concurrency
+ active = [0] # current in-flight renders
+ max_active = [0] # max observed concurrent renders
+ active_lock = threading.Lock()
+
+ parser_1 = self._make_parser(active, max_active, active_lock)
+ parser_2 = self._make_parser(active, max_active, active_lock)
+
+ offline_manifest_1, offline_manifest_2 = {}, {}
+ errors_1, errors_2 = [], []
+
+ thread_1 = threading.Thread(
+ target=self._call_compress_template,
+ args=(nodes_1, parser_1, offline_manifest_1, errors_1),
+ )
+ thread_2 = threading.Thread(
+ target=self._call_compress_template,
+ args=(nodes_2, parser_2, offline_manifest_2, errors_2),
+ )
+
+ thread_1.start()
+ thread_2.start()
+
+ thread_1.join()
+ thread_2.join()
+
+ self.assertFalse(thread_1.is_alive())
+ self.assertFalse(thread_2.is_alive())
+
+ self.assertEqual(max_active[0], expected_max_active)
+
+ self.assertFalse(errors_1)
+ self.assertFalse(errors_2)
+
+ def test_same_node_is_not_rendered_concurrently(self):
+ shared_node = OfflineCompressPerNodeLockingTestCase.DummyNode("node")
+ nodes = {shared_node: [Context({})]}
+
+ self._assert_concurrency(nodes, nodes, expected_max_active=1)
+
+ def test_different_nodes_are_render_concurrently(self):
+ node_1 = OfflineCompressPerNodeLockingTestCase.DummyNode("node-1")
+ node_2 = OfflineCompressPerNodeLockingTestCase.DummyNode("node-2")
+
+ nodes_1 = {node_1: [Context({})]}
+ nodes_2 = {node_2: [Context({})]}
+
+ self._assert_concurrency(nodes_1, nodes_2, expected_max_active=2)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/django_compressor-4.5.1/django_compressor.egg-info/PKG-INFO
new/django-compressor-4.6/django_compressor.egg-info/PKG-INFO
--- old/django_compressor-4.5.1/django_compressor.egg-info/PKG-INFO
2024-07-22 11:56:16.000000000 +0200
+++ new/django-compressor-4.6/django_compressor.egg-info/PKG-INFO
1970-01-01 01:00:00.000000000 +0100
@@ -1,108 +0,0 @@
-Metadata-Version: 2.1
-Name: django-compressor
-Version: 4.5.1
-Summary: ('Compresses linked and inline JavaScript or CSS into single cached
files.',)
-Home-page: https://django-compressor.readthedocs.io/en/latest/
-Maintainer: Mathieu Pillard
-License: MIT
-Project-URL: Source, https://github.com/django-compressor/django-compressor
-Platform: UNKNOWN
-Classifier: Development Status :: 5 - Production/Stable
-Classifier: Framework :: Django
-Classifier: Framework :: Django :: 4.2
-Classifier: Framework :: Django :: 5.0
-Classifier: Framework :: Django :: 5.1
-Classifier: Intended Audience :: Developers
-Classifier: License :: OSI Approved :: MIT License
-Classifier: Operating System :: OS Independent
-Classifier: Programming Language :: Python
-Classifier: Programming Language :: Python :: 3 :: Only
-Classifier: Programming Language :: Python :: 3.10
-Classifier: Programming Language :: Python :: 3.11
-Classifier: Programming Language :: Python :: 3.12
-Classifier: Topic :: Internet :: WWW/HTTP
-Requires-Python: >=3.8
-License-File: LICENSE
-License-File: AUTHORS
-
-Django Compressor
-=================
-
-.. image::
https://codecov.io/github/django-compressor/django-compressor/coverage.svg?branch=develop
- :target:
https://codecov.io/github/django-compressor/django-compressor?branch=develop
-
-.. image:: https://img.shields.io/pypi/v/django_compressor.svg
- :target: https://pypi.python.org/pypi/django_compressor
-
-.. image::
https://img.shields.io/github/actions/workflow/status/django-compressor/django-compressor/ci.yml?branch=develop
- :alt: Build Status
- :target:
https://github.com/django-compressor/django-compressor/actions?query=workflow%3ACI
-
-Django Compressor processes, combines and minifies linked and inline
-Javascript or CSS in a Django template into cacheable static files.
-
-It supports compilers such as coffeescript, LESS and SASS and is
-extensible by custom processing steps.
-
-How it works
-------------
-In your templates, all HTML code between the tags ``{% compress js/css %}`` and
-``{% endcompress %}`` is parsed and searched for CSS or JS. These styles and
-scripts are subsequently processed with optional, configurable compilers and
-filters.
-
-The default filter for CSS rewrites paths to static files to be absolute.
-Both Javascript and CSS files are by default concatenated and minified.
-
-As the final step the template tag outputs a ``<script>`` or ``<link>``
-tag pointing to the optimized file. Alternatively it can also
-inline the resulting content into the original template directly.
-
-Since the file name is dependent on the content, these files can be given
-a far future expiration date without worrying about stale browser caches.
-
-For increased performance, the concatenation and compressing process
-can also be run once manually outside of the request/response cycle by using
-the Django management command ``manage.py compress``.
-
-Configurability & Extensibility
--------------------------------
-
-Django Compressor is highly configurable and extensible. The HTML parsing
-is done using lxml_ or if it's not available Python's built-in HTMLParser by
-default. As an alternative Django Compressor provides a BeautifulSoup_ and a
-html5lib_ based parser, as well as an abstract base class that makes it easy to
-write a custom parser.
-
-Django Compressor also comes with built-in support for
-`YUI CSS and JS`_ compressor, `yUglify CSS and JS`_ compressor, Google's
-`Closure Compiler`_, a Python port of Douglas Crockford's JSmin_, a Python port
-of the YUI CSS Compressor csscompressor_ and a filter to convert (some) images
into
-`data URIs`_.
-
-If your setup requires a different compressor or other post-processing
-tool it will be fairly easy to implement a custom filter. Simply extend
-from one of the available base classes.
-
-More documentation about the usage and settings of Django Compressor can be
-found on `django-compressor.readthedocs.org`_.
-
-The source code for Django Compressor can be found and contributed to on
-`github.com/django-compressor/django-compressor`_. There you can also file
tickets.
-
-The in-development version of Django Compressor can be installed with
-``pip install git+https://github.com/django-compressor/django-compressor.git``
-
-.. _BeautifulSoup: http://www.crummy.com/software/BeautifulSoup/
-.. _lxml: http://lxml.de/
-.. _html5lib: https://github.com/html5lib/html5lib-python
-.. _YUI CSS and JS: http://developer.yahoo.com/yui/compressor/
-.. _yUglify CSS and JS: https://github.com/yui/yuglify
-.. _Closure Compiler: http://code.google.com/closure/compiler/
-.. _JSMin: http://www.crockford.com/javascript/jsmin.html
-.. _csscompressor: https://github.com/sprymix/csscompressor
-.. _data URIs: http://en.wikipedia.org/wiki/Data_URI_scheme
-.. _django-compressor.readthedocs.org:
https://django-compressor.readthedocs.io/en/latest/
-.. _github.com/django-compressor/django-compressor:
https://github.com/django-compressor/django-compressor
-
-
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/django_compressor-4.5.1/django_compressor.egg-info/SOURCES.txt
new/django-compressor-4.6/django_compressor.egg-info/SOURCES.txt
--- old/django_compressor-4.5.1/django_compressor.egg-info/SOURCES.txt
2024-07-22 11:56:16.000000000 +0200
+++ new/django-compressor-4.6/django_compressor.egg-info/SOURCES.txt
1970-01-01 01:00:00.000000000 +0100
@@ -1,257 +0,0 @@
-AUTHORS
-LICENSE
-MANIFEST.in
-Makefile
-README.rst
-setup.cfg
-setup.py
-tox.ini
-compressor/__init__.py
-compressor/base.py
-compressor/cache.py
-compressor/conf.py
-compressor/css.py
-compressor/exceptions.py
-compressor/finders.py
-compressor/js.py
-compressor/models.py
-compressor/signals.py
-compressor/storage.py
-compressor/test_settings.py
-compressor/contrib/__init__.py
-compressor/contrib/jinja2ext.py
-compressor/contrib/sekizai.py
-compressor/filters/__init__.py
-compressor/filters/base.py
-compressor/filters/cleancss.py
-compressor/filters/closure.py
-compressor/filters/css_default.py
-compressor/filters/datauri.py
-compressor/filters/template.py
-compressor/filters/yuglify.py
-compressor/filters/yui.py
-compressor/filters/cssmin/__init__.py
-compressor/filters/jsmin/__init__.py
-compressor/management/__init__.py
-compressor/management/commands/__init__.py
-compressor/management/commands/compress.py
-compressor/management/commands/mtime_cache.py
-compressor/offline/__init__.py
-compressor/offline/django.py
-compressor/offline/jinja2.py
-compressor/parser/__init__.py
-compressor/parser/base.py
-compressor/parser/beautifulsoup.py
-compressor/parser/default_htmlparser.py
-compressor/parser/html5lib.py
-compressor/parser/lxml.py
-compressor/templates/compressor/css_file.html
-compressor/templates/compressor/css_inline.html
-compressor/templates/compressor/css_preload.html
-compressor/templates/compressor/js_file.html
-compressor/templates/compressor/js_inline.html
-compressor/templates/compressor/js_preload.html
-compressor/templatetags/__init__.py
-compressor/templatetags/compress.py
-compressor/tests/__init__.py
-compressor/tests/precompiler.py
-compressor/tests/test_base.py
-compressor/tests/test_conf.py
-compressor/tests/test_filters.py
-compressor/tests/test_finder.py
-compressor/tests/test_jinja2ext.py
-compressor/tests/test_mtime_cache.py
-compressor/tests/test_offline.py
-compressor/tests/test_parsers.py
-compressor/tests/test_sekizai.py
-compressor/tests/test_signals.py
-compressor/tests/test_storages.py
-compressor/tests/test_templatetags.py
-compressor/tests/test_utils.py
-compressor/tests/static/test.txt
-compressor/tests/static/test.txt.br
-compressor/tests/static/test.txt.gz
-compressor/tests/static/CACHE/test.txt
-compressor/tests/static/CACHE/css/0618b11949aa.css
-compressor/tests/static/CACHE/css/5c6a60375256.css
-compressor/tests/static/CACHE/css/600674ea1d3d.css
-compressor/tests/static/CACHE/css/7f02c21025ae.css
-compressor/tests/static/CACHE/css/919e93a2fea0.css
-compressor/tests/static/CACHE/css/block_name.a1e074d0c4ac.css
-compressor/tests/static/CACHE/css/dff24a7e6003.css
-compressor/tests/static/CACHE/css/output.187e2ce75808.css
-compressor/tests/static/CACHE/css/output.44f040b05f91.css
-compressor/tests/static/CACHE/css/output.600674ea1d3d.css
-compressor/tests/static/CACHE/css/output.d5444a1ab4a3.css
-compressor/tests/static/CACHE/css/output.e3b0c44298fc.css
-compressor/tests/static/CACHE/css/output.e701f86c6430.css
-compressor/tests/static/CACHE/css/output.e701f86c6430.css.gz
-compressor/tests/static/CACHE/css/output.fffafcdf428e.css
-compressor/tests/static/CACHE/css/relative_url.376db5682982.css
-compressor/tests/static/CACHE/css/relative_url.e8602322bfa6.css
-compressor/tests/static/CACHE/css/test.222f958fb191.css
-compressor/tests/static/CACHE/js/29e69fc86958.js
-compressor/tests/static/CACHE/js/302673cb0d9e.js
-compressor/tests/static/CACHE/js/8a0fed36c317.js
-compressor/tests/static/CACHE/js/d5474411b7a5.js
-compressor/tests/static/CACHE/js/e1cc01dd11ac.js
-compressor/tests/static/CACHE/js/ed0dff257832.js
-compressor/tests/static/CACHE/js/one.4b3570601b8c.js
-compressor/tests/static/CACHE/js/one.8ab93aace8fa.js
-compressor/tests/static/CACHE/js/output.0241107e9a9a.js
-compressor/tests/static/CACHE/js/output.055f88f4751f.js
-compressor/tests/static/CACHE/js/output.06a98ccfd380.js
-compressor/tests/static/CACHE/js/output.2bb88185b4f5.js
-compressor/tests/static/CACHE/js/output.55b3123e884c.js
-compressor/tests/static/CACHE/js/output.567bb77b13db.js
-compressor/tests/static/CACHE/js/output.5694ca83dd14.js
-compressor/tests/static/CACHE/js/output.6ac9e4b29feb.js
-compressor/tests/static/CACHE/js/output.7219642b8ab4.js
-compressor/tests/static/CACHE/js/output.76a82cfab9ab.js
-compressor/tests/static/CACHE/js/output.817b5defb197.js
-compressor/tests/static/CACHE/js/output.822ac7501287.js
-compressor/tests/static/CACHE/js/output.8a0fed36c317.js
-compressor/tests/static/CACHE/js/output.8b4a7452e1c5.js
-compressor/tests/static/CACHE/js/output.8c00f1cf1e0a.js
-compressor/tests/static/CACHE/js/output.9a7f06880ce3.js
-compressor/tests/static/CACHE/js/output.9cecd41a505f.js
-compressor/tests/static/CACHE/js/output.a3275743dc69.js
-compressor/tests/static/CACHE/js/output.b0bfc3754fd4.js
-compressor/tests/static/CACHE/js/output.b39975a8f6ea.js
-compressor/tests/static/CACHE/js/output.b8376aad1357.js
-compressor/tests/static/CACHE/js/output.be0b1eade28b.js
-compressor/tests/static/CACHE/js/output.bfc63829cc58.js
-compressor/tests/static/CACHE/js/output.bfcec76e0f28.js
-compressor/tests/static/CACHE/js/output.c6bf81bca7ad.js
-compressor/tests/static/CACHE/js/output.c877c436363a.js
-compressor/tests/static/CACHE/js/output.cee48db7cedc.js
-compressor/tests/static/CACHE/js/output.d3f749e83c81.js
-compressor/tests/static/CACHE/js/output.dd79e1bd1527.js
-compressor/tests/static/CACHE/js/output.e4d043b4cde4.js
-compressor/tests/static/CACHE/js/output.e4e9263fa4c0.js
-compressor/tests/static/CACHE/js/output.e682d84f6b17.js
-compressor/tests/static/CACHE/js/output.ec862f0ff42c.js
-compressor/tests/static/CACHE/js/output.ed565a1d262f.js
-compressor/tests/static/CACHE/js/output.eeabdac29232.js
-compressor/tests/static/CACHE/js/output.fb4a0d84e914.js
-compressor/tests/static/CACHE/js/output.ffc39dec05fd.js
-compressor/tests/static/CACHE/js/output_name.822ac7501287.js
-compressor/tests/static/css/datauri.css
-compressor/tests/static/css/filename with spaces.css
-compressor/tests/static/css/nonasc.css
-compressor/tests/static/css/one.css
-compressor/tests/static/css/relative_url.css
-compressor/tests/static/css/two.css
-compressor/tests/static/css/utf-8_with-BOM.css
-compressor/tests/static/css/url/nonasc.css
-compressor/tests/static/css/url/test.css
-compressor/tests/static/css/url/url1.css
-compressor/tests/static/css/url/2/url2.css
-compressor/tests/static/custom/js/8a0fed36c317.js
-compressor/tests/static/custom/nested/js/8a0fed36c317.js
-compressor/tests/static/img/add with spaces.png
-compressor/tests/static/img/add.png
-compressor/tests/static/img/python.png
-compressor/tests/static/js/8a0fed36c317.js
-compressor/tests/static/js/nonasc-latin1.js
-compressor/tests/static/js/nonasc.js
-compressor/tests/static/js/one.coffee
-compressor/tests/static/js/one.js
-compressor/tests/static/js/three.js
-compressor/tests/static/js/two.js
-compressor/tests/test_templates/basic/test_compressor_offline.html
-compressor/tests/test_templates/test_block_super/base.html
-compressor/tests/test_templates/test_block_super/test_compressor_offline.html
-compressor/tests/test_templates/test_block_super_base_compressed/base.html
-compressor/tests/test_templates/test_block_super_base_compressed/base2.html
-compressor/tests/test_templates/test_block_super_base_compressed/test_compressor_offline.html
-compressor/tests/test_templates/test_block_super_extra/base.html
-compressor/tests/test_templates/test_block_super_extra/test_compressor_offline.html
-compressor/tests/test_templates/test_block_super_multiple/base.html
-compressor/tests/test_templates/test_block_super_multiple/base2.html
-compressor/tests/test_templates/test_block_super_multiple/test_compressor_offline.html
-compressor/tests/test_templates/test_block_super_multiple_cached/base.html
-compressor/tests/test_templates/test_block_super_multiple_cached/base2.html
-compressor/tests/test_templates/test_block_super_multiple_cached/test_compressor_offline.html
-compressor/tests/test_templates/test_complex/test_compressor_offline.html
-compressor/tests/test_templates/test_compress_command/test_compressor_offline.html
-compressor/tests/test_templates/test_condition/test_compressor_offline.html
-compressor/tests/test_templates/test_duplicate/test_compressor_offline.html
-compressor/tests/test_templates/test_error_handling/buggy_extends.html
-compressor/tests/test_templates/test_error_handling/buggy_template.html
-compressor/tests/test_templates/test_error_handling/missing_extends.html
-compressor/tests/test_templates/test_error_handling/test_compressor_offline.html
-compressor/tests/test_templates/test_error_handling/with_coffeescript.html
-compressor/tests/test_templates/test_extends_recursion/test_compressor_offline.html
-compressor/tests/test_templates/test_extends_recursion/admin/index.html
-compressor/tests/test_templates/test_extends_relative/base.html
-compressor/tests/test_templates/test_extends_relative/test_compressor_offline.html
-compressor/tests/test_templates/test_inline_non_ascii/test_compressor_offline.html
-compressor/tests/test_templates/test_static_templatetag/test_compressor_offline.html
-compressor/tests/test_templates/test_static_url_independence/test_compressor_offline.html
-compressor/tests/test_templates/test_templatetag/test_compressor_offline.html
-compressor/tests/test_templates/test_templatetag_named/test_compressor_offline.html
-compressor/tests/test_templates/test_with_context/test_compressor_offline.html
-compressor/tests/test_templates/test_with_context_super/base.html
-compressor/tests/test_templates/test_with_context_super/test_compressor_offline.html
-compressor/tests/test_templates/test_with_context_variable_inheritance/base.html
-compressor/tests/test_templates/test_with_context_variable_inheritance/test_compressor_offline.html
-compressor/tests/test_templates/test_with_context_variable_inheritance_super/base1.html
-compressor/tests/test_templates/test_with_context_variable_inheritance_super/base2.html
-compressor/tests/test_templates/test_with_context_variable_inheritance_super/test_compressor_offline.html
-compressor/tests/test_templates_jinja2/basic/test_compressor_offline.html
-compressor/tests/test_templates_jinja2/test_block_super/base.html
-compressor/tests/test_templates_jinja2/test_block_super/test_compressor_offline.html
-compressor/tests/test_templates_jinja2/test_block_super_extra/base.html
-compressor/tests/test_templates_jinja2/test_block_super_extra/test_compressor_offline.html
-compressor/tests/test_templates_jinja2/test_block_super_multiple/base.html
-compressor/tests/test_templates_jinja2/test_block_super_multiple/base2.html
-compressor/tests/test_templates_jinja2/test_block_super_multiple/test_compressor_offline.html
-compressor/tests/test_templates_jinja2/test_block_super_multiple_cached/base.html
-compressor/tests/test_templates_jinja2/test_block_super_multiple_cached/base2.html
-compressor/tests/test_templates_jinja2/test_block_super_multiple_cached/test_compressor_offline.html
-compressor/tests/test_templates_jinja2/test_coffin/test_compressor_offline.html
-compressor/tests/test_templates_jinja2/test_complex/test_compressor_offline.html
-compressor/tests/test_templates_jinja2/test_compress_command/test_compressor_offline.html
-compressor/tests/test_templates_jinja2/test_condition/test_compressor_offline.html
-compressor/tests/test_templates_jinja2/test_duplicate/test_compressor_offline.html
-compressor/tests/test_templates_jinja2/test_error_handling/buggy_extends.html
-compressor/tests/test_templates_jinja2/test_error_handling/buggy_template.html
-compressor/tests/test_templates_jinja2/test_error_handling/missing_extends.html
-compressor/tests/test_templates_jinja2/test_error_handling/test_compressor_offline.html
-compressor/tests/test_templates_jinja2/test_error_handling/with_coffeescript.html
-compressor/tests/test_templates_jinja2/test_extends_recursion/test_compressor_offline.html
-compressor/tests/test_templates_jinja2/test_extends_recursion/admin/index.html
-compressor/tests/test_templates_jinja2/test_inline_non_ascii/test_compressor_offline.html
-compressor/tests/test_templates_jinja2/test_jingo/test_compressor_offline.html
-compressor/tests/test_templates_jinja2/test_static_templatetag/test_compressor_offline.html
-compressor/tests/test_templates_jinja2/test_static_url_independence/test_compressor_offline.html
-compressor/tests/test_templates_jinja2/test_templatetag/test_compressor_offline.html
-compressor/tests/test_templates_jinja2/test_templatetag_named/test_compressor_offline.html
-compressor/tests/test_templates_jinja2/test_with_context/test_compressor_offline.html
-compressor/tests/test_templates_jinja2/test_with_context_variable_inheritance/base.html
-compressor/tests/test_templates_jinja2/test_with_context_variable_inheritance/test_compressor_offline.html
-compressor/utils/__init__.py
-compressor/utils/staticfiles.py
-django_compressor.egg-info/PKG-INFO
-django_compressor.egg-info/SOURCES.txt
-django_compressor.egg-info/dependency_links.txt
-django_compressor.egg-info/not-zip-safe
-django_compressor.egg-info/requires.txt
-django_compressor.egg-info/top_level.txt
-docs/Makefile
-docs/behind-the-scenes.txt
-docs/changelog.txt
-docs/conf.py
-docs/contributing.txt
-docs/django-sekizai.txt
-docs/index.txt
-docs/jinja2.txt
-docs/make.bat
-docs/quickstart.txt
-docs/reactjs.txt
-docs/remote-storages.txt
-docs/scenarios.txt
-docs/settings.txt
-docs/usage.txt
-requirements/tests.txt
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/django_compressor-4.5.1/django_compressor.egg-info/dependency_links.txt
new/django-compressor-4.6/django_compressor.egg-info/dependency_links.txt
--- old/django_compressor-4.5.1/django_compressor.egg-info/dependency_links.txt
2024-07-22 11:56:16.000000000 +0200
+++ new/django-compressor-4.6/django_compressor.egg-info/dependency_links.txt
1970-01-01 01:00:00.000000000 +0100
@@ -1 +0,0 @@
-
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/django_compressor-4.5.1/django_compressor.egg-info/not-zip-safe
new/django-compressor-4.6/django_compressor.egg-info/not-zip-safe
--- old/django_compressor-4.5.1/django_compressor.egg-info/not-zip-safe
2021-11-22 11:54:58.000000000 +0100
+++ new/django-compressor-4.6/django_compressor.egg-info/not-zip-safe
1970-01-01 01:00:00.000000000 +0100
@@ -1 +0,0 @@
-
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/django_compressor-4.5.1/django_compressor.egg-info/requires.txt
new/django-compressor-4.6/django_compressor.egg-info/requires.txt
--- old/django_compressor-4.5.1/django_compressor.egg-info/requires.txt
2024-07-22 11:56:16.000000000 +0200
+++ new/django-compressor-4.6/django_compressor.egg-info/requires.txt
1970-01-01 01:00:00.000000000 +0100
@@ -1,4 +0,0 @@
-Django>=4.2
-django-appconf>=1.0.3
-rcssmin==1.1.2
-rjsmin==1.2.2
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/django_compressor-4.5.1/django_compressor.egg-info/top_level.txt
new/django-compressor-4.6/django_compressor.egg-info/top_level.txt
--- old/django_compressor-4.5.1/django_compressor.egg-info/top_level.txt
2024-07-22 11:56:16.000000000 +0200
+++ new/django-compressor-4.6/django_compressor.egg-info/top_level.txt
1970-01-01 01:00:00.000000000 +0100
@@ -1 +0,0 @@
-compressor
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/django_compressor-4.5.1/docs/changelog.txt
new/django-compressor-4.6/docs/changelog.txt
--- old/django_compressor-4.5.1/docs/changelog.txt 2024-07-21
17:54:58.000000000 +0200
+++ new/django-compressor-4.6/docs/changelog.txt 2025-11-10
12:14:39.000000000 +0100
@@ -1,6 +1,23 @@
Changelog
=========
+v4.6 (2025-11-10)
+-----------------
+
+`Full list of changes from v4.5.1
<https://github.com/django-compressor/django-compressor/compare/4.5.1...4.6>`_
+
+- Fixed compatibility with latest BS4.
+- Removed top pin for rcssmin and rjsmin dependencies.
+- Avoid compressing the same node concurrently in offline compression.
+- Avoid use of deprecated ast.Constant.s
+- Officially support Django 6.0
+- Officially support Django 5.2
+- Drop support for EOL Django 5.0
+- Add support for Python 3.14.
+- Add support for Python 3.13.
+- Drop support for EOL Python 3.9.
+- Drop support for EOL Python 3.8.
+
v4.5.1 (2024-07-22)
-------------------
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/django_compressor-4.5.1/pyproject.toml
new/django-compressor-4.6/pyproject.toml
--- old/django_compressor-4.5.1/pyproject.toml 1970-01-01 01:00:00.000000000
+0100
+++ new/django-compressor-4.6/pyproject.toml 2025-11-10 12:14:39.000000000
+0100
@@ -0,0 +1,47 @@
+[build-system]
+build-backend = "setuptools.build_meta"
+requires = [ "setuptools>=77.0.3" ]
+
+[project]
+name = "django_compressor"
+description = "Compresses linked and inline JavaScript or CSS into single
cached files."
+readme = "README.rst"
+license = "MIT"
+maintainers = [
+ { name = "Mathieu Pillard" },
+]
+requires-python = ">=3.10"
+classifiers = [
+ "Development Status :: 5 - Production/Stable",
+ "Framework :: Django",
+ "Framework :: Django :: 4.2",
+ "Framework :: Django :: 5.1",
+ "Framework :: Django :: 5.2",
+ "Framework :: Django :: 6.0",
+ "Intended Audience :: Developers",
+ "Operating System :: OS Independent",
+ "Programming Language :: Python",
+ "Programming Language :: Python :: 3 :: Only",
+ "Programming Language :: Python :: 3.10",
+ "Programming Language :: Python :: 3.11",
+ "Programming Language :: Python :: 3.12",
+ "Programming Language :: Python :: 3.13",
+ "Programming Language :: Python :: 3.14",
+ "Topic :: Internet :: WWW/HTTP",
+]
+dynamic = [ "version" ]
+dependencies = [
+ "django>=4.2",
+ "django-appconf>=1.0.3",
+ "rcssmin>=1.2.1",
+ "rjsmin>=1.2.4",
+]
+
+urls.Homepage = "https://django-compressor.readthedocs.io/en/latest/"
+urls.Source = "https://github.com/django-compressor/django-compressor"
+
+[tool.setuptools.dynamic]
+version = { attr = "compressor.__version__" }
+
+[tool.setuptools.packages.find]
+include = [ "compressor*" ]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/django_compressor-4.5.1/requirements/tests.txt
new/django-compressor-4.6/requirements/tests.txt
--- old/django_compressor-4.5.1/requirements/tests.txt 2024-07-21
17:53:46.000000000 +0200
+++ new/django-compressor-4.6/requirements/tests.txt 2025-11-10
12:14:39.000000000 +0100
@@ -1,13 +1,12 @@
-Jinja2==3.1.4
-beautifulsoup4==4.12.3
-brotli==1.1.0
+Jinja2==3.1.6
+beautifulsoup4>=4.13
+brotli==1.2.0
calmjs==3.4.4
-coverage==7.6.0
+coverage==7.11.1
csscompressor==0.9.5
django-sekizai==4.1.0
-flake8==7.1.0
+flake8==7.3.0
html5lib==1.1
-lxml==5.2.2
-rcssmin==1.1.2
-rjsmin==1.2.2
-slimit==0.8.1
+lxml==6.0.2
+rcssmin>=1.2.1
+rjsmin>=1.2.4
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/django_compressor-4.5.1/setup.cfg
new/django-compressor-4.6/setup.cfg
--- old/django_compressor-4.5.1/setup.cfg 2024-07-22 11:56:16.581829300
+0200
+++ new/django-compressor-4.6/setup.cfg 1970-01-01 01:00:00.000000000 +0100
@@ -1,7 +0,0 @@
-[wheel]
-universal = 1
-
-[egg_info]
-tag_build =
-tag_date = 0
-
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/django_compressor-4.5.1/setup.py
new/django-compressor-4.6/setup.py
--- old/django_compressor-4.5.1/setup.py 2024-06-16 16:46:44.000000000
+0200
+++ new/django-compressor-4.6/setup.py 1970-01-01 01:00:00.000000000 +0100
@@ -1,170 +0,0 @@
-import ast
-import codecs
-import os
-import sys
-from fnmatch import fnmatchcase
-from pathlib import Path
-
-from setuptools import find_packages, setup
-
-
-class VersionFinder(ast.NodeVisitor):
- def __init__(self):
- self.version = None
-
- def visit_Assign(self, node):
- 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:
- return fp.read()
-
-
-def find_version(*parts):
- finder = VersionFinder()
- finder.visit(ast.parse(read(*parts)))
- return finder.version
-
-
-# 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",
-)
-
-
-# (c) 2005 Ian Bicking and contributors; written for Paste
(http://pythonpaste.org)
-# Licensed under the MIT license:
http://www.opensource.org/licenses/mit-license.php
-# 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,
-):
- """
- Return a dictionary suitable for use in ``package_data``
- in a distutils ``setup.py`` file.
-
- The dictionary looks like::
-
- {'package': [files]}
-
- Where ``files`` is a list of all the files in that package that
- don't match anything in ``exclude``.
-
- If ``only_in_packages`` is true, then top-level directories that
- are not packages won't be included (but directories under packages
- will).
-
- Directories matching any pattern in ``exclude_directories`` will
- be ignored; by default directories with leading ``.``, ``CVS``,
- and ``_darcs`` will be ignored.
-
- If ``show_ignored`` is true, then all the files that aren't
- included in package data are shown on stderr (for debugging
- purposes).
-
- Note patterns use wildcards, or can be exact paths (including
- leading ``./``), and all searching is case-insensitive.
- """
-
- out = {}
- stack = [(str(Path(where)), "", package, only_in_packages)]
- while stack:
- where, prefix, package, only_in_packages = stack.pop(0)
- for name in os.listdir(where):
- fn = os.path.join(where, name)
- if os.path.isdir(fn):
- bad_name = False
- for pattern in exclude_directories:
- 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,
- )
- break
- if bad_name:
- continue
- 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))
- else:
- 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():
- bad_name = True
- if show_ignored:
- 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/",
- project_urls={
- "Source": "https://github.com/django-compressor/django-compressor",
- },
- license="MIT",
- description=(
- "Compresses linked and inline JavaScript or CSS into single cached
files.",
- ),
- long_description=read("README.rst"),
- maintainer="Mathieu Pillard",
- packages=find_packages(),
- package_data=find_package_data(),
- classifiers=[
- "Development Status :: 5 - Production/Stable",
- "Framework :: Django",
- "Framework :: Django :: 4.2",
- "Framework :: Django :: 5.0",
- "Framework :: Django :: 5.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.10",
- "Programming Language :: Python :: 3.11",
- "Programming Language :: Python :: 3.12",
- "Topic :: Internet :: WWW/HTTP",
- ],
- zip_safe=False,
- python_requires=">=3.8",
- install_requires=[
- "Django >= 4.2",
- "django-appconf >= 1.0.3",
- "rcssmin == 1.1.2",
- "rjsmin == 1.2.2",
- ],
-)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/django_compressor-4.5.1/tox.ini
new/django-compressor-4.6/tox.ini
--- old/django_compressor-4.5.1/tox.ini 2024-07-21 17:53:57.000000000 +0200
+++ new/django-compressor-4.6/tox.ini 2025-11-10 12:14:39.000000000 +0100
@@ -1,15 +1,16 @@
[tox]
envlist =
- {py38,py39,py310,py311}-4.2.X
- {py310,py311,py312}-5.0.X
- {py310,py311,py312}-5.1.X
+ {py310,py311}-4.2.X
+ {py310,py311,py312,py313}-5.1.X
+ {py310,py311,py312,py313,py314}-5.2.X
+ {py312,py313,py314}-6.0.X
[testenv]
basepython =
- py38: python3.8
- py39: python3.9
py310: python3.10
py311: python3.11
py312: python3.12
+ py313: python3.13
+ py314: python3.14
usedevelop = true
setenv =
CPPFLAGS=-O0
@@ -20,5 +21,7 @@
deps =
4.2.X: Django>=4.2,<5.0
5.0.X: Django>=5.0,<5.1
- 5.1.X: Django>=5.1b1,<5.2
+ 5.1.X: Django>=5.1,<5.2
+ 5.2.X: Django>=5.2,<6.0
+ 6.0.X: Django>=6.0b1,<6.1
-r{toxinidir}/requirements/tests.txt