Hello community,
here is the log from the commit of package python-django-pipeline for
openSUSE:Factory checked in at 2020-09-10 22:53:35
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-django-pipeline (Old)
and /work/SRC/openSUSE:Factory/.python-django-pipeline.new.4249 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-django-pipeline"
Thu Sep 10 22:53:35 2020 rev:4 rq:833448 version:2.0.5
Changes:
--------
---
/work/SRC/openSUSE:Factory/python-django-pipeline/python-django-pipeline.changes
2020-04-21 13:11:20.316892620 +0200
+++
/work/SRC/openSUSE:Factory/.python-django-pipeline.new.4249/python-django-pipeline.changes
2020-09-10 22:55:24.084426082 +0200
@@ -1,0 +2,10 @@
+Thu Sep 10 08:45:51 UTC 2020 - Marketa Calabkova <[email protected]>
+
+- Update to 2.0.5
+ * Definitely drop the support of Python 2.
+ * Drop support for Python 3.5
+ * Change import MutableMapping from collections.abc.
+ * Remove futures from pipeline setup.py requirements.
+ * Adding Django 3.1 compatibility.
+
+-------------------------------------------------------------------
Old:
----
django-pipeline-1.7.0.tar.gz
New:
----
django-pipeline-2.0.5.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-django-pipeline.spec ++++++
--- /var/tmp/diff_new_pack.sFvJU6/_old 2020-09-10 22:55:24.692426971 +0200
+++ /var/tmp/diff_new_pack.sFvJU6/_new 2020-09-10 22:55:24.696426977 +0200
@@ -17,9 +17,9 @@
%{?!python_module:%define python_module() python-%{**} python3-%{**}}
-%bcond_without python2
+%define skip_python2 1
Name: python-django-pipeline
-Version: 1.7.0
+Version: 2.0.5
Release: 0
Summary: An asset packaging library for Django
License: MIT
@@ -29,6 +29,8 @@
BuildRequires: %{python_module Django >= 1.11}
BuildRequires: %{python_module Jinja2}
BuildRequires: %{python_module jsmin}
+BuildRequires: %{python_module pytest-django}
+BuildRequires: %{python_module pytest}
BuildRequires: %{python_module setuptools}
BuildRequires: %{python_module slimit}
BuildRequires: fdupes
@@ -36,13 +38,6 @@
Requires: python-Django >= 1.11
Requires: python-Jinja2
BuildArch: noarch
-%if %{with python2}
-BuildRequires: python2-futures >= 2.1.3
-BuildRequires: python2-mock
-%endif
-%ifpython2
-Requires: python2-futures >= 2.1.3
-%endif
%python_subpackages
%description
@@ -61,7 +56,10 @@
%python_expand %fdupes %{buildroot}%{$python_sitelib}
%check
-%python_expand %{_bindir}/django-admin.py-%{$python_bin_suffix} test tests
--settings=tests.settings --pythonpath=`pwd`
+# we do not have python-css-html-js-minify, because it is nearly unpackageable
(missing licenses, no tags on GitHub)
+PYTHONPATH=.
+export DJANGO_SETTINGS_MODULE=tests.settings
+%pytest -k "not test_csshtmljsminify"
%files %{python_files}
%license LICENSE
++++++ django-pipeline-1.7.0.tar.gz -> django-pipeline-2.0.5.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/django-pipeline-1.7.0/AUTHORS
new/django-pipeline-2.0.5/AUTHORS
--- old/django-pipeline-1.7.0/AUTHORS 2020-01-05 03:59:08.000000000 +0100
+++ new/django-pipeline-2.0.5/AUTHORS 2020-08-16 22:47:54.000000000 +0200
@@ -21,6 +21,7 @@
* Austin Pua <[email protected]>
* Axel Haustant <[email protected]>
* Balazs Kossovics <[email protected]>
+ * Ben Spaulding <[email protected]>
* Ben Vinegar <[email protected]>
* Brad Pitcher <[email protected]>
* Brant Young <[email protected]>
@@ -120,3 +121,5 @@
* Wismill
* Zachary Kazanski <[email protected]>
* Zenobius Jiricek <[email protected]>
+ * Zeus Kronion
+
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/django-pipeline-1.7.0/HISTORY.rst
new/django-pipeline-2.0.5/HISTORY.rst
--- old/django-pipeline-1.7.0/HISTORY.rst 2020-01-05 03:59:08.000000000
+0100
+++ new/django-pipeline-2.0.5/HISTORY.rst 2020-08-16 22:47:54.000000000
+0200
@@ -3,10 +3,65 @@
History
=======
+2.0.5
+======
+
+* Adding **Django 3.1** compatibility.
+* CachedStaticFilesStorage is removed from Django. Add a check
+ of the current version to prevent error while importing. Thank to @vmsp
+* Context in django.template.base is removed from Django and
+ not used anymore in django-pipeline.
+* Fixing widgets tests of django-pipeline due to Media.render_js change in
+ Django. More information in Django ticket #31892
+
+2.0.4
+======
+
+* Adding **css-html-js-minify** support to compress JS and CSS.
+* Update compressors documentation with css-html-js-minify.
+* Create tests for css-html-js-minify compressor.
+* Optimization by grouping the tests yuglify compressor.
+
+2.0.3
+======
+
+* Remove futures from pipeline **setup.py** requirements.
+
+2.0.2
+=====
+
+* Fix Middleware to properly decode HTML. Thank to @gatsinski
+* Keep mimetypes as str. Thank to @benspaulding
+* Based on #642 add 'NonPackagingPipelineManifestStorage' and update
+ the documentation: **storages.rst**. Thank to @kronion
+
+2.0.1
+=====
+
+* Add subclass of ManifestStaticFilesStorage. Thank to @jhpinson
+* Change the documentation to use PipelineManifestStorage in configuration
+ instead of PipelineCachedStorage now deprecated.
+* Change import MutableMapping from collections.abc. Thank to @colons
+
+2.0.0
+=====
+
+* **Definitely drop the support of Python 2**.
+* Drop support for Python 3.5 (not compatible with PEP 498).
+* Remove 'decorator.py' how was used for backward compatibility
+ between python 2 and 3 for metaclass inheritance on PipelineFormMedia.
+* Replace 'format' by 'fstring' (PEP 498: Literal String Interpolation).
+* Remove of old imports form 'django.utils.six' and these fixes (1.7.0).
+* Remove tests of uncovered versions of Python and Django.
+* Replace tests for Pypy by Pypy3.
+* Explicitly specify when files are read / write in binary mode.
+* Set opening files for tests to deal with universal newlines.
+* Upgrade documentation version to 2.0 to follow the project version.
+
1.7.0
=====
-Release the last major version of django-pipeline working on Python 2.
+* Release the last major version of django-pipeline working on Python 2.
* Thank you for all the modifications made since version 1.6.14, which we
cannot quote.
* Apply an optimization to save time during development. Thank to @blankser
* Edit setup.py to follow the recommendation of the documentation. Thank to
@shaneikennedy
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/django-pipeline-1.7.0/PKG-INFO
new/django-pipeline-2.0.5/PKG-INFO
--- old/django-pipeline-1.7.0/PKG-INFO 2020-01-05 04:21:55.000000000 +0100
+++ new/django-pipeline-2.0.5/PKG-INFO 2020-08-16 22:49:19.000000000 +0200
@@ -1,6 +1,6 @@
Metadata-Version: 1.1
Name: django-pipeline
-Version: 1.7.0
+Version: 2.0.5
Summary: Pipeline is an asset packaging library for Django.
Home-page: https://github.com/jazzband/django-pipeline
Author: Timothée Peignier
@@ -55,10 +55,65 @@
History
=======
+ 2.0.5
+ ======
+
+ * Adding **Django 3.1** compatibility.
+ * CachedStaticFilesStorage is removed from Django. Add a check
+ of the current version to prevent error while importing. Thank to
@vmsp
+ * Context in django.template.base is removed from Django and
+ not used anymore in django-pipeline.
+ * Fixing widgets tests of django-pipeline due to Media.render_js
change in
+ Django. More information in Django ticket #31892
+
+ 2.0.4
+ ======
+
+ * Adding **css-html-js-minify** support to compress JS and CSS.
+ * Update compressors documentation with css-html-js-minify.
+ * Create tests for css-html-js-minify compressor.
+ * Optimization by grouping the tests yuglify compressor.
+
+ 2.0.3
+ ======
+
+ * Remove futures from pipeline **setup.py** requirements.
+
+ 2.0.2
+ =====
+
+ * Fix Middleware to properly decode HTML. Thank to @gatsinski
+ * Keep mimetypes as str. Thank to @benspaulding
+ * Based on #642 add 'NonPackagingPipelineManifestStorage' and update
+ the documentation: **storages.rst**. Thank to @kronion
+
+ 2.0.1
+ =====
+
+ * Add subclass of ManifestStaticFilesStorage. Thank to @jhpinson
+ * Change the documentation to use PipelineManifestStorage in
configuration
+ instead of PipelineCachedStorage now deprecated.
+ * Change import MutableMapping from collections.abc. Thank to @colons
+
+ 2.0.0
+ =====
+
+ * **Definitely drop the support of Python 2**.
+ * Drop support for Python 3.5 (not compatible with PEP 498).
+ * Remove 'decorator.py' how was used for backward compatibility
+ between python 2 and 3 for metaclass inheritance on
PipelineFormMedia.
+ * Replace 'format' by 'fstring' (PEP 498: Literal String
Interpolation).
+ * Remove of old imports form 'django.utils.six' and these fixes
(1.7.0).
+ * Remove tests of uncovered versions of Python and Django.
+ * Replace tests for Pypy by Pypy3.
+ * Explicitly specify when files are read / write in binary mode.
+ * Set opening files for tests to deal with universal newlines.
+ * Upgrade documentation version to 2.0 to follow the project version.
+
1.7.0
=====
- Release the last major version of django-pipeline working on Python 2.
+ * Release the last major version of django-pipeline working on Python
2.
* Thank you for all the modifications made since version 1.6.14, which
we cannot quote.
* Apply an optimization to save time during development. Thank to
@blankser
* Edit setup.py to follow the recommendation of the documentation.
Thank to @shaneikennedy
@@ -184,17 +239,14 @@
Classifier: Development Status :: 5 - Production/Stable
Classifier: Environment :: Web Environment
Classifier: Framework :: Django
-Classifier: Framework :: Django :: 1.11
-Classifier: Framework :: Django :: 2.0
Classifier: Framework :: Django :: 2.2
Classifier: Framework :: Django :: 3.0
+Classifier: Framework :: Django :: 3.1
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
-Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3
-Classifier: Programming Language :: Python :: 3.5
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/django-pipeline-1.7.0/django_pipeline.egg-info/PKG-INFO
new/django-pipeline-2.0.5/django_pipeline.egg-info/PKG-INFO
--- old/django-pipeline-1.7.0/django_pipeline.egg-info/PKG-INFO 2020-01-05
04:21:54.000000000 +0100
+++ new/django-pipeline-2.0.5/django_pipeline.egg-info/PKG-INFO 2020-08-16
22:49:19.000000000 +0200
@@ -1,6 +1,6 @@
Metadata-Version: 1.1
Name: django-pipeline
-Version: 1.7.0
+Version: 2.0.5
Summary: Pipeline is an asset packaging library for Django.
Home-page: https://github.com/jazzband/django-pipeline
Author: Timothée Peignier
@@ -55,10 +55,65 @@
History
=======
+ 2.0.5
+ ======
+
+ * Adding **Django 3.1** compatibility.
+ * CachedStaticFilesStorage is removed from Django. Add a check
+ of the current version to prevent error while importing. Thank to
@vmsp
+ * Context in django.template.base is removed from Django and
+ not used anymore in django-pipeline.
+ * Fixing widgets tests of django-pipeline due to Media.render_js
change in
+ Django. More information in Django ticket #31892
+
+ 2.0.4
+ ======
+
+ * Adding **css-html-js-minify** support to compress JS and CSS.
+ * Update compressors documentation with css-html-js-minify.
+ * Create tests for css-html-js-minify compressor.
+ * Optimization by grouping the tests yuglify compressor.
+
+ 2.0.3
+ ======
+
+ * Remove futures from pipeline **setup.py** requirements.
+
+ 2.0.2
+ =====
+
+ * Fix Middleware to properly decode HTML. Thank to @gatsinski
+ * Keep mimetypes as str. Thank to @benspaulding
+ * Based on #642 add 'NonPackagingPipelineManifestStorage' and update
+ the documentation: **storages.rst**. Thank to @kronion
+
+ 2.0.1
+ =====
+
+ * Add subclass of ManifestStaticFilesStorage. Thank to @jhpinson
+ * Change the documentation to use PipelineManifestStorage in
configuration
+ instead of PipelineCachedStorage now deprecated.
+ * Change import MutableMapping from collections.abc. Thank to @colons
+
+ 2.0.0
+ =====
+
+ * **Definitely drop the support of Python 2**.
+ * Drop support for Python 3.5 (not compatible with PEP 498).
+ * Remove 'decorator.py' how was used for backward compatibility
+ between python 2 and 3 for metaclass inheritance on
PipelineFormMedia.
+ * Replace 'format' by 'fstring' (PEP 498: Literal String
Interpolation).
+ * Remove of old imports form 'django.utils.six' and these fixes
(1.7.0).
+ * Remove tests of uncovered versions of Python and Django.
+ * Replace tests for Pypy by Pypy3.
+ * Explicitly specify when files are read / write in binary mode.
+ * Set opening files for tests to deal with universal newlines.
+ * Upgrade documentation version to 2.0 to follow the project version.
+
1.7.0
=====
- Release the last major version of django-pipeline working on Python 2.
+ * Release the last major version of django-pipeline working on Python
2.
* Thank you for all the modifications made since version 1.6.14, which
we cannot quote.
* Apply an optimization to save time during development. Thank to
@blankser
* Edit setup.py to follow the recommendation of the documentation.
Thank to @shaneikennedy
@@ -184,17 +239,14 @@
Classifier: Development Status :: 5 - Production/Stable
Classifier: Environment :: Web Environment
Classifier: Framework :: Django
-Classifier: Framework :: Django :: 1.11
-Classifier: Framework :: Django :: 2.0
Classifier: Framework :: Django :: 2.2
Classifier: Framework :: Django :: 3.0
+Classifier: Framework :: Django :: 3.1
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
-Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3
-Classifier: Programming Language :: Python :: 3.5
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/django-pipeline-1.7.0/django_pipeline.egg-info/SOURCES.txt
new/django-pipeline-2.0.5/django_pipeline.egg-info/SOURCES.txt
--- old/django-pipeline-1.7.0/django_pipeline.egg-info/SOURCES.txt
2020-01-05 04:21:54.000000000 +0100
+++ new/django-pipeline-2.0.5/django_pipeline.egg-info/SOURCES.txt
2020-08-16 22:49:19.000000000 +0200
@@ -10,7 +10,6 @@
django_pipeline.egg-info/SOURCES.txt
django_pipeline.egg-info/dependency_links.txt
django_pipeline.egg-info/not-zip-safe
-django_pipeline.egg-info/requires.txt
django_pipeline.egg-info/top_level.txt
docs/Makefile
docs/compilers.rst
@@ -28,7 +27,6 @@
pipeline/__init__.py
pipeline/collector.py
pipeline/conf.py
-pipeline/decorator.py
pipeline/exceptions.py
pipeline/finders.py
pipeline/forms.py
@@ -49,6 +47,7 @@
pipeline/compilers/stylus.py
pipeline/compressors/__init__.py
pipeline/compressors/closure.py
+pipeline/compressors/csshtmljsminify.py
pipeline/compressors/cssmin.py
pipeline/compressors/csstidy.py
pipeline/compressors/jsmin.py
@@ -88,6 +87,8 @@
tests/assets/compilers/stylus/expected.css
tests/assets/compilers/stylus/input.styl
tests/assets/compressors/closure.js
+tests/assets/compressors/csshtmljsminify.css
+tests/assets/compressors/csshtmljsminify.js
tests/assets/compressors/cssmin.css
tests/assets/compressors/csstidy.css
tests/assets/compressors/jsmin.js
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/django-pipeline-1.7.0/django_pipeline.egg-info/requires.txt
new/django-pipeline-2.0.5/django_pipeline.egg-info/requires.txt
--- old/django-pipeline-1.7.0/django_pipeline.egg-info/requires.txt
2020-01-05 04:21:54.000000000 +0100
+++ new/django-pipeline-2.0.5/django_pipeline.egg-info/requires.txt
1970-01-01 01:00:00.000000000 +0100
@@ -1,3 +0,0 @@
-
-[:python_version < "3"]
-futures>=2.1.3
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/django-pipeline-1.7.0/docs/compressors.rst
new/django-pipeline-2.0.5/docs/compressors.rst
--- old/django-pipeline-1.7.0/docs/compressors.rst 2020-01-05
03:59:08.000000000 +0100
+++ new/django-pipeline-2.0.5/docs/compressors.rst 2020-08-16
22:47:54.000000000 +0200
@@ -198,6 +198,7 @@
Default to ``'--template=highest'``
+
CSSMin compressor
=================
@@ -221,6 +222,26 @@
Default to ``''``
+
+css-html-js-minify compressor
+=============================
+
+The css-html-js-minify is full Python compressor using `css-html-js-minify
<https://github.com/ciotto/css-html-js-minify>`_
+for compressing javascript and stylesheets.
+
+To use it for your stylesheets add this to your ``PIPELINE['CSS_COMPRESSOR']``
::
+
+ PIPELINE['CSS_COMPRESSOR'] =
'pipeline.compressors.csshtmljsminify.CssHtmlJsMinifyCompressor'
+
+To use it for your javascripts add this to your ``PIPELINE['JS_COMPRESSOR']``
::
+
+ PIPELINE['JS_COMPRESSOR'] =
'pipeline.compressors.csshtmljsminify.CssHtmlJsMinifyCompressor'
+
+Install the css-html-js-minify library with your favorite Python package
manager ::
+
+ pip install css-html-js-minify
+
+
No-Op Compressors
=================
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/django-pipeline-1.7.0/docs/conf.py
new/django-pipeline-2.0.5/docs/conf.py
--- old/django-pipeline-1.7.0/docs/conf.py 2020-01-05 03:59:08.000000000
+0100
+++ new/django-pipeline-2.0.5/docs/conf.py 2020-08-16 22:47:54.000000000
+0200
@@ -49,9 +49,9 @@
# built documents.
#
# The short X.Y version.
-version = '1.6'
+version = '2.0'
# The full version, including alpha/beta/rc tags.
-release = '1.6.14'
+release = '2.0.0'
# The language for content autogenerated by Sphinx. Refer to documentation
# for a list of supported languages.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/django-pipeline-1.7.0/docs/configuration.rst
new/django-pipeline-2.0.5/docs/configuration.rst
--- old/django-pipeline-1.7.0/docs/configuration.rst 2020-01-05
03:59:08.000000000 +0100
+++ new/django-pipeline-2.0.5/docs/configuration.rst 2020-08-16
22:47:54.000000000 +0200
@@ -231,11 +231,11 @@
Defaults to ::
(
- (b'text/coffeescript', '.coffee'),
- (b'text/less', '.less'),
- (b'text/javascript', '.js'),
- (b'text/x-sass', '.sass'),
- (b'text/x-scss', '.scss')
+ ('text/coffeescript', '.coffee'),
+ ('text/less', '.less'),
+ ('text/javascript', '.js'),
+ ('text/x-sass', '.sass'),
+ ('text/x-scss', '.scss')
)
.. warning::
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/django-pipeline-1.7.0/docs/installation.rst
new/django-pipeline-2.0.5/docs/installation.rst
--- old/django-pipeline-1.7.0/docs/installation.rst 2020-01-05
03:59:08.000000000 +0100
+++ new/django-pipeline-2.0.5/docs/installation.rst 2020-08-16
22:47:54.000000000 +0200
@@ -17,7 +17,7 @@
3. Use a pipeline storage for ``STATICFILES_STORAGE`` ::
- STATICFILES_STORAGE = 'pipeline.storage.PipelineCachedStorage'
+ STATICFILES_STORAGE = 'pipeline.storage.PipelineManifestStorage'
4. Add the ``PipelineFinder`` to ``STATICFILES_FINDERS`` ::
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/django-pipeline-1.7.0/docs/storages.rst
new/django-pipeline-2.0.5/docs/storages.rst
--- old/django-pipeline-1.7.0/docs/storages.rst 2020-01-05 03:59:08.000000000
+0100
+++ new/django-pipeline-2.0.5/docs/storages.rst 2020-08-16 22:47:54.000000000
+0200
@@ -15,7 +15,7 @@
And if you want versioning use ::
- STATICFILES_STORAGE = 'pipeline.storage.PipelineCachedStorage'
+ STATICFILES_STORAGE = 'pipeline.storage.PipelineManifestStorage'
There is also non-packing storage available, that allows you to run
``collectstatic`` command
without packaging your assets. Useful for production when you don't want to
run compressor or compilers ::
@@ -24,7 +24,7 @@
Also available if you want versioning ::
- STATICFILES_STORAGE = 'pipeline.storage.NonPackagingPipelineCachedStorage'
+ STATICFILES_STORAGE = 'pipeline.storage.NonPackagingPipelineManifestStorage'
If you use staticfiles with ``DEBUG = False`` (i.e. for integration tests
with `Selenium <http://docs.seleniumhq.org/>`_) you should install the finder
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/django-pipeline-1.7.0/pipeline/collector.py
new/django-pipeline-2.0.5/pipeline/collector.py
--- old/django-pipeline-1.7.0/pipeline/collector.py 2020-01-05
03:59:08.000000000 +0100
+++ new/django-pipeline-2.0.5/pipeline/collector.py 2020-08-16
22:47:54.000000000 +0200
@@ -1,5 +1,3 @@
-from __future__ import unicode_literals
-
import os
from collections import OrderedDict
@@ -7,11 +5,6 @@
import django
from django.contrib.staticfiles import finders
from django.contrib.staticfiles.storage import staticfiles_storage
-try:
- from django.utils.six import iterkeys
-except ImportError:
- iterkeys = iter
-
from pipeline.finders import PipelineFinder
@@ -61,7 +54,7 @@
if files and len(files) == len(found_files):
break
- return iterkeys(found_files)
+ return found_files.keys()
def copy_file(self, path, prefixed_path, source_storage):
# Delete the target file if needed or break
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/django-pipeline-1.7.0/pipeline/compilers/__init__.py
new/django-pipeline-2.0.5/pipeline/compilers/__init__.py
--- old/django-pipeline-1.7.0/pipeline/compilers/__init__.py 2020-01-05
03:59:08.000000000 +0100
+++ new/django-pipeline-2.0.5/pipeline/compilers/__init__.py 2020-08-16
22:47:54.000000000 +0200
@@ -1,5 +1,3 @@
-from __future__ import unicode_literals
-
import os
import shutil
import subprocess
@@ -8,12 +6,6 @@
from django.contrib.staticfiles import finders
from django.contrib.staticfiles.storage import staticfiles_storage
from django.core.files.base import ContentFile
-from django.utils.encoding import smart_bytes
-try:
- from django.utils.six import string_types, text_type
-except ImportError:
- string_types = (str,)
- text_type = str
from pipeline.conf import settings
from pipeline.exceptions import CompilerError
@@ -73,7 +65,7 @@
raise NotImplementedError
def save_file(self, path, content):
- return self.storage.save(path, ContentFile(smart_bytes(content)))
+ return self.storage.save(path, ContentFile(content))
def read_file(self, path):
file = self.storage.open(path, 'rb')
@@ -114,7 +106,7 @@
"""
argument_list = []
for flattening_arg in command:
- if isinstance(flattening_arg, string_types):
+ if isinstance(flattening_arg, (str,)):
argument_list.append(flattening_arg)
else:
argument_list.extend(flattening_arg)
@@ -126,7 +118,7 @@
try:
# We always catch stdout in a file, but we may not have a use for
it.
temp_file_container = cwd or os.path.dirname(stdout_captured or
"") or os.getcwd()
- with NamedTemporaryFile(delete=False, dir=temp_file_container) as
stdout:
+ with NamedTemporaryFile('wb', delete=False,
dir=temp_file_container) as stdout:
compiling = subprocess.Popen(argument_list, cwd=cwd,
stdout=stdout,
stderr=subprocess.PIPE)
@@ -136,19 +128,19 @@
if compiling.returncode != 0:
stdout_captured = None # Don't save erroneous result.
raise CompilerError(
- "{0!r} exit code {1}\n{2}".format(argument_list,
compiling.returncode, stderr),
+ f"{argument_list!r} exit code
{compiling.returncode}\n{stderr}",
command=argument_list,
error_output=stderr)
# User wants to see everything that happened.
if self.verbose:
- with open(stdout.name) as out:
+ with open(stdout.name, 'rb') as out:
print(out.read())
print(stderr)
except OSError as e:
stdout_captured = None # Don't save erroneous result.
raise CompilerError(e, command=argument_list,
- error_output=text_type(e))
+ error_output=str(e))
finally:
# Decide what to do with captured stdout.
if stdout:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/django-pipeline-1.7.0/pipeline/compilers/coffee.py
new/django-pipeline-2.0.5/pipeline/compilers/coffee.py
--- old/django-pipeline-1.7.0/pipeline/compilers/coffee.py 2020-01-05
03:59:08.000000000 +0100
+++ new/django-pipeline-2.0.5/pipeline/compilers/coffee.py 2020-08-16
22:47:54.000000000 +0200
@@ -1,5 +1,3 @@
-from __future__ import unicode_literals
-
from pipeline.conf import settings
from pipeline.compilers import SubProcessCompiler
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/django-pipeline-1.7.0/pipeline/compilers/es6.py
new/django-pipeline-2.0.5/pipeline/compilers/es6.py
--- old/django-pipeline-1.7.0/pipeline/compilers/es6.py 2020-01-05
03:59:08.000000000 +0100
+++ new/django-pipeline-2.0.5/pipeline/compilers/es6.py 2020-08-16
22:47:54.000000000 +0200
@@ -1,5 +1,3 @@
-from __future__ import unicode_literals
-
from pipeline.conf import settings
from pipeline.compilers import SubProcessCompiler
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/django-pipeline-1.7.0/pipeline/compilers/less.py
new/django-pipeline-2.0.5/pipeline/compilers/less.py
--- old/django-pipeline-1.7.0/pipeline/compilers/less.py 2020-01-05
03:59:08.000000000 +0100
+++ new/django-pipeline-2.0.5/pipeline/compilers/less.py 2020-08-16
22:47:54.000000000 +0200
@@ -1,5 +1,3 @@
-from __future__ import unicode_literals
-
from os.path import dirname
from pipeline.conf import settings
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/django-pipeline-1.7.0/pipeline/compilers/livescript.py
new/django-pipeline-2.0.5/pipeline/compilers/livescript.py
--- old/django-pipeline-1.7.0/pipeline/compilers/livescript.py 2020-01-05
03:59:08.000000000 +0100
+++ new/django-pipeline-2.0.5/pipeline/compilers/livescript.py 2020-08-16
22:47:54.000000000 +0200
@@ -1,5 +1,3 @@
-from __future__ import unicode_literals
-
from pipeline.conf import settings
from pipeline.compilers import SubProcessCompiler
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/django-pipeline-1.7.0/pipeline/compilers/sass.py
new/django-pipeline-2.0.5/pipeline/compilers/sass.py
--- old/django-pipeline-1.7.0/pipeline/compilers/sass.py 2020-01-05
03:59:08.000000000 +0100
+++ new/django-pipeline-2.0.5/pipeline/compilers/sass.py 2020-08-16
22:47:54.000000000 +0200
@@ -1,5 +1,3 @@
-from __future__ import unicode_literals
-
from os.path import dirname
from pipeline.conf import settings
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/django-pipeline-1.7.0/pipeline/compilers/stylus.py
new/django-pipeline-2.0.5/pipeline/compilers/stylus.py
--- old/django-pipeline-1.7.0/pipeline/compilers/stylus.py 2020-01-05
03:59:08.000000000 +0100
+++ new/django-pipeline-2.0.5/pipeline/compilers/stylus.py 2020-08-16
22:47:54.000000000 +0200
@@ -1,5 +1,3 @@
-from __future__ import unicode_literals
-
from os.path import dirname
from pipeline.conf import settings
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/django-pipeline-1.7.0/pipeline/compressors/__init__.py
new/django-pipeline-2.0.5/pipeline/compressors/__init__.py
--- old/django-pipeline-1.7.0/pipeline/compressors/__init__.py 2020-01-05
03:59:08.000000000 +0100
+++ new/django-pipeline-2.0.5/pipeline/compressors/__init__.py 2020-08-16
22:47:54.000000000 +0200
@@ -1,5 +1,3 @@
-from __future__ import unicode_literals
-
import base64
import os
import posixpath
@@ -10,10 +8,6 @@
from django.contrib.staticfiles.storage import staticfiles_storage
from django.utils.encoding import smart_bytes, force_text
-try:
- from django.utils.six import string_types
-except ImportError:
- string_types = (str,)
from pipeline.conf import settings
from pipeline.exceptions import CompressorError
@@ -84,7 +78,7 @@
elif variant == "datauri":
return self.with_data_uri(css)
else:
- raise CompressorError("\"%s\" is not a valid variant" % variant)
+ raise CompressorError(f"\"{variant}\" is not a valid variant")
def compile_templates(self, paths):
compiled = []
@@ -135,10 +129,10 @@
quote = match.group(1) or ''
asset_path = match.group(2)
if NON_REWRITABLE_URL.match(asset_path):
- return "url(%s%s%s)" % (quote, asset_path, quote)
+ return f"url({quote}{asset_path}{quote})"
asset_url = self.construct_asset_path(asset_path, path,
output_filename, variant)
- return "url(%s)" % asset_url
+ return f"url({asset_url})"
content = self.read_text(path)
# content needs to be unicode to avoid explosions with non-ascii
chars
content = re.sub(URL_DETECTOR, reconstruct, content)
@@ -181,7 +175,7 @@
path = match.group(1)
mime_type = self.mime_type(path)
data = self.encoded_content(path)
- return "url(\"data:%s;charset=utf-8;base64,%s\")" % (mime_type,
data)
+ return f"url(\"data:{mime_type};charset=utf-8;base64,{data}\")"
return re.sub(URL_REPLACER, datauri, css)
def encoded_content(self, path):
@@ -241,7 +235,7 @@
def execute_command(self, command, content):
argument_list = []
for flattening_arg in command:
- if isinstance(flattening_arg, string_types):
+ if isinstance(flattening_arg, (str,)):
argument_list.append(flattening_arg)
else:
argument_list.extend(flattening_arg)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/django-pipeline-1.7.0/pipeline/compressors/closure.py
new/django-pipeline-2.0.5/pipeline/compressors/closure.py
--- old/django-pipeline-1.7.0/pipeline/compressors/closure.py 2020-01-05
03:59:08.000000000 +0100
+++ new/django-pipeline-2.0.5/pipeline/compressors/closure.py 2020-08-16
22:47:54.000000000 +0200
@@ -1,5 +1,3 @@
-from __future__ import unicode_literals
-
from pipeline.conf import settings
from pipeline.compressors import SubProcessCompressor
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/django-pipeline-1.7.0/pipeline/compressors/csshtmljsminify.py
new/django-pipeline-2.0.5/pipeline/compressors/csshtmljsminify.py
--- old/django-pipeline-1.7.0/pipeline/compressors/csshtmljsminify.py
1970-01-01 01:00:00.000000000 +0100
+++ new/django-pipeline-2.0.5/pipeline/compressors/csshtmljsminify.py
2020-08-16 22:47:54.000000000 +0200
@@ -0,0 +1,15 @@
+from pipeline.compressors import CompressorBase
+
+
+class CssHtmlJsMinifyCompressor(CompressorBase):
+ """
+ CSS, HTML and JS compressor based on the Python library css-html-js-minify
+ (https://pypi.org/project/css-html-js-minify/).
+ """
+ def compress_css(self, css):
+ from css_html_js_minify import css_minify
+ return css_minify(css)
+
+ def compress_js(self, js):
+ from css_html_js_minify import js_minify
+ return js_minify(js)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/django-pipeline-1.7.0/pipeline/compressors/cssmin.py
new/django-pipeline-2.0.5/pipeline/compressors/cssmin.py
--- old/django-pipeline-1.7.0/pipeline/compressors/cssmin.py 2020-01-05
03:59:08.000000000 +0100
+++ new/django-pipeline-2.0.5/pipeline/compressors/cssmin.py 2020-08-16
22:47:54.000000000 +0200
@@ -1,5 +1,3 @@
-from __future__ import unicode_literals
-
from pipeline.conf import settings
from pipeline.compressors import SubProcessCompressor
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/django-pipeline-1.7.0/pipeline/compressors/csstidy.py
new/django-pipeline-2.0.5/pipeline/compressors/csstidy.py
--- old/django-pipeline-1.7.0/pipeline/compressors/csstidy.py 2020-01-05
03:59:08.000000000 +0100
+++ new/django-pipeline-2.0.5/pipeline/compressors/csstidy.py 2020-08-16
22:47:54.000000000 +0200
@@ -1,5 +1,3 @@
-from __future__ import unicode_literals
-
from django.core.files import temp as tempfile
from pipeline.conf import settings
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/django-pipeline-1.7.0/pipeline/compressors/jsmin.py
new/django-pipeline-2.0.5/pipeline/compressors/jsmin.py
--- old/django-pipeline-1.7.0/pipeline/compressors/jsmin.py 2020-01-05
03:59:08.000000000 +0100
+++ new/django-pipeline-2.0.5/pipeline/compressors/jsmin.py 2020-08-16
22:47:54.000000000 +0200
@@ -1,5 +1,3 @@
-from __future__ import absolute_import, unicode_literals
-
from pipeline.compressors import CompressorBase
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/django-pipeline-1.7.0/pipeline/compressors/slimit.py
new/django-pipeline-2.0.5/pipeline/compressors/slimit.py
--- old/django-pipeline-1.7.0/pipeline/compressors/slimit.py 2020-01-05
03:59:08.000000000 +0100
+++ new/django-pipeline-2.0.5/pipeline/compressors/slimit.py 2020-08-16
22:47:54.000000000 +0200
@@ -1,5 +1,3 @@
-from __future__ import absolute_import, unicode_literals
-
from pipeline.compressors import CompressorBase
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/django-pipeline-1.7.0/pipeline/compressors/uglifyjs.py
new/django-pipeline-2.0.5/pipeline/compressors/uglifyjs.py
--- old/django-pipeline-1.7.0/pipeline/compressors/uglifyjs.py 2020-01-05
03:59:08.000000000 +0100
+++ new/django-pipeline-2.0.5/pipeline/compressors/uglifyjs.py 2020-08-16
22:47:54.000000000 +0200
@@ -1,5 +1,3 @@
-from __future__ import unicode_literals
-
from pipeline.conf import settings
from pipeline.compressors import SubProcessCompressor
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/django-pipeline-1.7.0/pipeline/compressors/yuglify.py
new/django-pipeline-2.0.5/pipeline/compressors/yuglify.py
--- old/django-pipeline-1.7.0/pipeline/compressors/yuglify.py 2020-01-05
03:59:08.000000000 +0100
+++ new/django-pipeline-2.0.5/pipeline/compressors/yuglify.py 2020-08-16
22:47:54.000000000 +0200
@@ -1,5 +1,3 @@
-from __future__ import unicode_literals
-
from pipeline.conf import settings
from pipeline.compressors import SubProcessCompressor
@@ -8,7 +6,7 @@
def compress_common(self, content, compress_type, arguments):
command = (
settings.YUGLIFY_BINARY,
- "--type={}".format(compress_type),
+ f"--type={compress_type}",
arguments
)
return self.execute_command(command, content)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/django-pipeline-1.7.0/pipeline/compressors/yui.py
new/django-pipeline-2.0.5/pipeline/compressors/yui.py
--- old/django-pipeline-1.7.0/pipeline/compressors/yui.py 2020-01-05
03:59:08.000000000 +0100
+++ new/django-pipeline-2.0.5/pipeline/compressors/yui.py 2020-08-16
22:47:54.000000000 +0200
@@ -1,5 +1,3 @@
-from __future__ import unicode_literals
-
from pipeline.conf import settings
from pipeline.compressors import SubProcessCompressor
@@ -8,7 +6,7 @@
def compress_common(self, content, compress_type, arguments):
command = (
settings.YUI_BINARY,
- "--type={}".format(compress_type),
+ f"--type={compress_type}",
arguments
)
return self.execute_command(command, content)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/django-pipeline-1.7.0/pipeline/conf.py
new/django-pipeline-2.0.5/pipeline/conf.py
--- old/django-pipeline-1.7.0/pipeline/conf.py 2020-01-05 03:59:08.000000000
+0100
+++ new/django-pipeline-2.0.5/pipeline/conf.py 2020-08-16 22:47:54.000000000
+0200
@@ -1,17 +1,10 @@
-# -*- coding: utf-8 -*-
-from __future__ import unicode_literals
-
import os
-from collections import MutableMapping
+from collections.abc import MutableMapping
import shlex
from django.conf import settings as _settings
from django.core.signals import setting_changed
from django.dispatch import receiver
-try:
- from django.utils.six import string_types
-except ImportError:
- string_types = (str,)
DEFAULTS = {
@@ -78,11 +71,11 @@
'LESS_ARGUMENTS': '',
'MIMETYPES': (
- (b'text/coffeescript', '.coffee'),
- (b'text/less', '.less'),
- (b'text/javascript', '.js'),
- (b'text/x-sass', '.sass'),
- (b'text/x-scss', '.scss')
+ (('text/coffeescript'), ('.coffee')),
+ (('text/less'), ('.less')),
+ (('text/javascript'), ('.js')),
+ (('text/x-sass'), ('.sass')),
+ (('text/x-scss'), ('.scss'))
),
'EMBED_MAX_IMAGE_SIZE': 32700,
@@ -101,7 +94,7 @@
def __getitem__(self, key):
value = self.settings[key]
if key.endswith(("_BINARY", "_ARGUMENTS")):
- if isinstance(value, string_types):
+ if isinstance(value, (str,)):
return tuple(shlex.split(value, posix=(os.name == 'posix')))
return tuple(value)
return value
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/django-pipeline-1.7.0/pipeline/decorator.py
new/django-pipeline-2.0.5/pipeline/decorator.py
--- old/django-pipeline-1.7.0/pipeline/decorator.py 2020-01-05
03:59:08.000000000 +0100
+++ new/django-pipeline-2.0.5/pipeline/decorator.py 1970-01-01
01:00:00.000000000 +0100
@@ -1,23 +0,0 @@
-# -*- coding: utf-8 -*-
-from __future__ import unicode_literals
-
-"""
- This code is a part of django.utils.six on
https://github.com/django/django/blob/stable/2.2.x/django/utils/six.py removed
form Django 3.0
- To keep the backward compatibility between python 2 and 3 the decorator
need to be used as well, during the time we find a proper way to
- handle MetaClass overwright working on both versions (or dropping python 2
support).
-"""
-
-def add_metaclass(metaclass):
- """Class decorator for creating a class with a metaclass."""
- def wrapper(cls):
- orig_vars = cls.__dict__.copy()
- slots = orig_vars.get('__slots__')
- if slots is not None:
- if isinstance(slots, str):
- slots = [slots]
- for slots_var in slots:
- orig_vars.pop(slots_var)
- orig_vars.pop('__dict__', None)
- orig_vars.pop('__weakref__', None)
- return metaclass(cls.__name__, cls.__bases__, orig_vars)
- return wrapper
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/django-pipeline-1.7.0/pipeline/exceptions.py
new/django-pipeline-2.0.5/pipeline/exceptions.py
--- old/django-pipeline-1.7.0/pipeline/exceptions.py 2020-01-05
03:59:08.000000000 +0100
+++ new/django-pipeline-2.0.5/pipeline/exceptions.py 2020-08-16
22:47:54.000000000 +0200
@@ -1,4 +1,3 @@
-from __future__ import unicode_literals
class PipelineException(Exception):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/django-pipeline-1.7.0/pipeline/forms.py
new/django-pipeline-2.0.5/pipeline/forms.py
--- old/django-pipeline-1.7.0/pipeline/forms.py 2020-01-05 03:59:08.000000000
+0100
+++ new/django-pipeline-2.0.5/pipeline/forms.py 2020-08-16 22:47:54.000000000
+0200
@@ -1,15 +1,7 @@
"""Support for referencing Pipeline packages in forms and widgets."""
-from __future__ import unicode_literals
-
from django.contrib.staticfiles.storage import staticfiles_storage
from django.utils.functional import cached_property
-try:
- from django.utils.six import iteritems, add_metaclass
-except ImportError:
- from .decorator import add_metaclass
- def iteritems(dictionary):
- return dictionary.items()
from .collector import default_collector
from .conf import settings
@@ -136,7 +128,7 @@
# If we define any packages, we'll need to use our special
# PipelineFormMediaProperty class. We use this instead of intercepting
# in __getattribute__ because Django does not access them through
- # normal properpty access. Instead, grabs the Media class's __dict__
+ # normal property access. Instead, grabs the Media class's __dict__
# and accesses them from there. By using these special properties, we
# can handle direct access (Media.css) and dictionary-based access
# (Media.__dict__['css']).
@@ -173,7 +165,7 @@
media_type='css',
extra_files=extra_files.get(media_target,
[])))
- for media_target, media_packages in iteritems(css_packages)
+ for media_target, media_packages in css_packages.items()
)
def _get_js_files(cls, extra_files):
@@ -238,8 +230,7 @@
return source_files
-@add_metaclass(PipelineFormMediaMetaClass)
-class PipelineFormMedia(object):
+class PipelineFormMedia(object, metaclass=PipelineFormMediaMetaClass):
"""Base class for form or widget Media classes that use Pipeline packages.
Forms or widgets that need custom CSS or JavaScript media on a page can
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/django-pipeline-1.7.0/pipeline/glob.py
new/django-pipeline-2.0.5/pipeline/glob.py
--- old/django-pipeline-1.7.0/pipeline/glob.py 2020-01-05 03:59:08.000000000
+0100
+++ new/django-pipeline-2.0.5/pipeline/glob.py 2020-08-16 22:47:54.000000000
+0200
@@ -1,5 +1,3 @@
-from __future__ import unicode_literals
-
import os
import re
import fnmatch
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/django-pipeline-1.7.0/pipeline/jinja2/__init__.py
new/django-pipeline-2.0.5/pipeline/jinja2/__init__.py
--- old/django-pipeline-1.7.0/pipeline/jinja2/__init__.py 2020-01-05
03:59:08.000000000 +0100
+++ new/django-pipeline-2.0.5/pipeline/jinja2/__init__.py 2020-08-16
22:47:54.000000000 +0200
@@ -1,5 +1,3 @@
-from __future__ import unicode_literals
-
from jinja2 import nodes, TemplateSyntaxError
from jinja2.ext import Extension
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/django-pipeline-1.7.0/pipeline/manifest.py
new/django-pipeline-2.0.5/pipeline/manifest.py
--- old/django-pipeline-1.7.0/pipeline/manifest.py 2020-01-05
03:59:08.000000000 +0100
+++ new/django-pipeline-2.0.5/pipeline/manifest.py 2020-08-16
22:47:54.000000000 +0200
@@ -1,5 +1,3 @@
-from __future__ import unicode_literals
-
import os
from django.conf.settings import settings as django_settings
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/django-pipeline-1.7.0/pipeline/middleware.py
new/django-pipeline-2.0.5/pipeline/middleware.py
--- old/django-pipeline-1.7.0/pipeline/middleware.py 2020-01-05
03:59:08.000000000 +0100
+++ new/django-pipeline-2.0.5/pipeline/middleware.py 2020-08-16
22:47:54.000000000 +0200
@@ -1,5 +1,3 @@
-from __future__ import unicode_literals
-
from django.core.exceptions import MiddlewareNotUsed
from django.utils.encoding import DjangoUnicodeDecodeError
from django.utils.html import strip_spaces_between_tags as minify_html
@@ -18,7 +16,7 @@
def process_response(self, request, response):
if response.has_header('Content-Type') and 'text/html' in
response['Content-Type']:
try:
- response.content = minify_html(response.content.strip())
+ response.content =
minify_html(response.content.decode('utf-8').strip())
response['Content-Length'] = str(len(response.content))
except DjangoUnicodeDecodeError:
pass
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/django-pipeline-1.7.0/pipeline/packager.py
new/django-pipeline-2.0.5/pipeline/packager.py
--- old/django-pipeline-1.7.0/pipeline/packager.py 2020-01-05
03:59:08.000000000 +0100
+++ new/django-pipeline-2.0.5/pipeline/packager.py 2020-08-16
22:47:54.000000000 +0200
@@ -1,5 +1,3 @@
-from __future__ import unicode_literals
-
from django.contrib.staticfiles.storage import staticfiles_storage
from django.contrib.staticfiles.finders import find
from django.core.files.base import ContentFile
@@ -109,7 +107,7 @@
def pack(self, package, compress, signal, **kwargs):
output_filename = package.output_filename
if self.verbose:
- print("Saving: %s" % output_filename)
+ print(f"Saving: {output_filename}")
paths = self.compile(
package.paths,
compiler_options=package.compiler_options,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/django-pipeline-1.7.0/pipeline/signals.py
new/django-pipeline-2.0.5/pipeline/signals.py
--- old/django-pipeline-1.7.0/pipeline/signals.py 2020-01-05
03:59:08.000000000 +0100
+++ new/django-pipeline-2.0.5/pipeline/signals.py 2020-08-16
22:47:54.000000000 +0200
@@ -1,5 +1,3 @@
-from __future__ import unicode_literals
-
from django.dispatch import Signal
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/django-pipeline-1.7.0/pipeline/storage.py
new/django-pipeline-2.0.5/pipeline/storage.py
--- old/django-pipeline-1.7.0/pipeline/storage.py 2020-01-05
03:59:08.000000000 +0100
+++ new/django-pipeline-2.0.5/pipeline/storage.py 2020-08-16
22:47:54.000000000 +0200
@@ -1,10 +1,14 @@
-from __future__ import unicode_literals
-
import gzip
from io import BytesIO
-from django.contrib.staticfiles.storage import CachedStaticFilesStorage,
StaticFilesStorage
+from django import get_version as django_version
+
+_CACHED_STATIC_FILES_STORAGE_AVAILABLE = django_version() < '3.1'
+
+if _CACHED_STATIC_FILES_STORAGE_AVAILABLE:
+ from django.contrib.staticfiles.storage import CachedStaticFilesStorage
+from django.contrib.staticfiles.storage import ManifestStaticFilesStorage,
StaticFilesStorage
from django.contrib.staticfiles.utils import matches_patterns
from django.core.files.base import File
@@ -72,7 +76,7 @@
if not matches_patterns(path, self.gzip_patterns):
continue
original_file = self.open(path)
- gzipped_path = "{0}.gz".format(path)
+ gzipped_path = f"{path}.gz"
if self.exists(gzipped_path):
self.delete(gzipped_path)
gzipped_file = self._compress(original_file)
@@ -92,9 +96,22 @@
pass
-class PipelineCachedStorage(PipelineMixin, CachedStaticFilesStorage):
+if _CACHED_STATIC_FILES_STORAGE_AVAILABLE:
+ class PipelineCachedStorage(PipelineMixin, CachedStaticFilesStorage):
+ # Deprecated since Django 2.2
+ # Removed in Django 3.1
+ pass
+
+
+ class NonPackagingPipelineCachedStorage(NonPackagingMixin,
PipelineCachedStorage):
+ # Deprecated since Django 2.2
+ # Removed in Django 3.1
+ pass
+
+
+class PipelineManifestStorage(PipelineMixin, ManifestStaticFilesStorage):
pass
-class NonPackagingPipelineCachedStorage(NonPackagingMixin,
PipelineCachedStorage):
+class NonPackagingPipelineManifestStorage(NonPackagingMixin,
ManifestStaticFilesStorage):
pass
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/django-pipeline-1.7.0/pipeline/templatetags/pipeline.py
new/django-pipeline-2.0.5/pipeline/templatetags/pipeline.py
--- old/django-pipeline-1.7.0/pipeline/templatetags/pipeline.py 2020-01-05
03:59:08.000000000 +0100
+++ new/django-pipeline-2.0.5/pipeline/templatetags/pipeline.py 2020-08-16
22:47:54.000000000 +0200
@@ -1,12 +1,10 @@
-from __future__ import unicode_literals
-
import logging
import subprocess
from django.contrib.staticfiles.storage import staticfiles_storage
from django import template
-from django.template.base import Context, VariableDoesNotExist
+from django.template.base import VariableDoesNotExist
from django.template.loader import render_to_string
from django.utils.safestring import mark_safe
@@ -77,7 +75,7 @@
Subclasses can override this method to provide custom behavior for
rendering the output file.
"""
- method = getattr(self, 'render_{0}'.format(package_type))
+ method = getattr(self, f'render_{package_type}')
return method(package, package.output_filename)
@@ -98,15 +96,13 @@
default_collector.collect(self.request)
packager = Packager()
- method = getattr(self, 'render_individual_{0}'.format(package_type))
+ method = getattr(self, f'render_individual_{package_type}')
try:
paths = packager.compile(package.paths)
except CompilerError as e:
if settings.SHOW_ERRORS_INLINE:
- method = getattr(self, 'render_error_{0}'.format(
- package_type))
-
+ method = getattr(self, f'render_error_{package_type}')
return method(package_name, e)
else:
raise
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/django-pipeline-1.7.0/pipeline/utils.py
new/django-pipeline-2.0.5/pipeline/utils.py
--- old/django-pipeline-1.7.0/pipeline/utils.py 2020-01-05 03:59:08.000000000
+0100
+++ new/django-pipeline-2.0.5/pipeline/utils.py 2020-08-16 22:47:54.000000000
+0200
@@ -1,5 +1,3 @@
-from __future__ import unicode_literals
-
try:
import fcntl
except ImportError:
@@ -12,10 +10,7 @@
import os
import sys
-try:
- from urllib.parse import quote
-except ImportError:
- from urllib import quote
+from urllib.parse import quote
from django.utils.encoding import smart_text
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/django-pipeline-1.7.0/pipeline/views.py
new/django-pipeline-2.0.5/pipeline/views.py
--- old/django-pipeline-1.7.0/pipeline/views.py 2020-01-05 03:59:08.000000000
+0100
+++ new/django-pipeline-2.0.5/pipeline/views.py 2020-08-16 22:47:54.000000000
+0200
@@ -1,5 +1,3 @@
-from __future__ import unicode_literals
-
from django.conf import settings as django_settings
from django.core.exceptions import ImproperlyConfigured
from django.views.static import serve
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/django-pipeline-1.7.0/setup.py
new/django-pipeline-2.0.5/setup.py
--- old/django-pipeline-1.7.0/setup.py 2020-01-05 04:20:37.000000000 +0100
+++ new/django-pipeline-2.0.5/setup.py 2020-08-16 22:47:54.000000000 +0200
@@ -6,7 +6,7 @@
setup(
name='django-pipeline',
- version='1.7.0',
+ version='2.0.5',
description='Pipeline is an asset packaging library for Django.',
long_description=io.open('README.rst', encoding='utf-8').read() + '\n\n' +
io.open('HISTORY.rst', encoding='utf-8').read(),
@@ -16,7 +16,6 @@
license='MIT',
packages=find_packages(exclude=['tests', 'tests.tests']),
zip_safe=False,
- install_requires=['futures >= 2.1.3;python_version<"3"'],
include_package_data=True,
keywords=('django pipeline asset compiling concatenation compression'
' packaging'),
@@ -24,17 +23,14 @@
'Development Status :: 5 - Production/Stable',
'Environment :: Web Environment',
'Framework :: Django',
- 'Framework :: Django :: 1.11',
- 'Framework :: Django :: 2.0',
'Framework :: Django :: 2.2',
'Framework :: Django :: 3.0',
+ 'Framework :: Django :: 3.1',
'Intended Audience :: Developers',
'License :: OSI Approved :: MIT License',
'Operating System :: OS Independent',
'Programming Language :: Python',
- 'Programming Language :: Python :: 2.7',
'Programming Language :: Python :: 3',
- 'Programming Language :: Python :: 3.5',
'Programming Language :: Python :: 3.6',
'Programming Language :: Python :: 3.7',
'Programming Language :: Python :: 3.8',
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/django-pipeline-1.7.0/tests/assets/compressors/csshtmljsminify.css
new/django-pipeline-2.0.5/tests/assets/compressors/csshtmljsminify.css
--- old/django-pipeline-1.7.0/tests/assets/compressors/csshtmljsminify.css
1970-01-01 01:00:00.000000000 +0100
+++ new/django-pipeline-2.0.5/tests/assets/compressors/csshtmljsminify.css
2020-08-16 22:47:54.000000000 +0200
@@ -0,0 +1 @@
+@charset "utf-8";.concat{display:none}.concatenate{display:block}
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/django-pipeline-1.7.0/tests/assets/compressors/csshtmljsminify.js
new/django-pipeline-2.0.5/tests/assets/compressors/csshtmljsminify.js
--- old/django-pipeline-1.7.0/tests/assets/compressors/csshtmljsminify.js
1970-01-01 01:00:00.000000000 +0100
+++ new/django-pipeline-2.0.5/tests/assets/compressors/csshtmljsminify.js
2020-08-16 22:47:54.000000000 +0200
@@ -0,0 +1 @@
+(function(){(function(){window.concat=function(){console.log(arguments);}}());(function(){window.cat=function(){console.log("hello
world");}}());}).call(this);
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/django-pipeline-1.7.0/tests/tests/test_collector.py
new/django-pipeline-2.0.5/tests/tests/test_collector.py
--- old/django-pipeline-1.7.0/tests/tests/test_collector.py 2020-01-05
03:59:08.000000000 +0100
+++ new/django-pipeline-2.0.5/tests/tests/test_collector.py 2020-08-16
22:47:54.000000000 +0200
@@ -1,5 +1,3 @@
-from __future__ import unicode_literals
-
import os
from django.contrib.staticfiles import finders
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/django-pipeline-1.7.0/tests/tests/test_compiler.py
new/django-pipeline-2.0.5/tests/tests/test_compiler.py
--- old/django-pipeline-1.7.0/tests/tests/test_compiler.py 2020-01-05
03:59:08.000000000 +0100
+++ new/django-pipeline-2.0.5/tests/tests/test_compiler.py 2020-08-16
22:47:54.000000000 +0200
@@ -1,5 +1,3 @@
-from __future__ import unicode_literals
-
import sys
from unittest import skipIf, skipUnless
@@ -7,7 +5,6 @@
from django.contrib.staticfiles.storage import staticfiles_storage
from django.test import TestCase
from django.test.client import RequestFactory
-from django.utils.encoding import smart_bytes
from pipeline.collector import default_collector
from pipeline.compilers import Compiler, CompilerBase, SubProcessCompiler
@@ -231,11 +228,11 @@
infile_path = staticfiles_storage.path(infile)
outfile_path = compiler.output_path(infile_path,
compiler.output_extension)
compiler.compile_file(_(infile_path), _(outfile_path), force=True)
- with open(outfile_path) as f:
+ with open(outfile_path, 'r') as f:
result = f.read()
- with staticfiles_storage.open(expected) as f:
+ with staticfiles_storage.open(expected, 'r') as f:
expected = f.read()
- self.assertEqual(smart_bytes(result), expected)
+ self.assertEqual(result, expected)
def test_sass(self):
self._test_compiler('pipeline.compilers.sass.SASSCompiler',
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/django-pipeline-1.7.0/tests/tests/test_compressor.py
new/django-pipeline-2.0.5/tests/tests/test_compressor.py
--- old/django-pipeline-1.7.0/tests/tests/test_compressor.py 2020-01-05
03:59:08.000000000 +0100
+++ new/django-pipeline-2.0.5/tests/tests/test_compressor.py 2020-08-16
22:47:54.000000000 +0200
@@ -1,6 +1,3 @@
-# -*- coding: utf-8 -*-
-from __future__ import unicode_literals
-
import base64
import io
import os
@@ -16,7 +13,6 @@
from django.conf import settings
from django.test import TestCase
from django.test.client import RequestFactory
-from django.utils.encoding import smart_bytes
from pipeline.compressors import (
Compressor, TEMPLATE_FUNC, SubProcessCompressor)
@@ -46,14 +42,16 @@
_('pipeline/css/first.css'),
_('pipeline/css/second.css')
], 'css/screen.css')
- self.assertEqual(""".concat {\n display: none;\n}\n\n.concatenate {\n
display: block;\n}\n""", css)
+ expected = """.concat {\n display: none;\n}\n\n.concatenate {\n
display: block;\n}\n"""
+ self.assertEqual(expected, css)
def test_concatenate(self):
js = self.compressor.concatenate([
_('pipeline/js/first.js'),
_('pipeline/js/second.js')
])
- self.assertEqual("""(function() {\n window.concat = function() {\n
console.log(arguments);\n }\n}()) // No semicolon\n\n;(function() {\n
window.cat = function() {\n console.log("hello world");\n }\n}());\n""", js)
+ expected = """(function() {\n window.concat = function() {\n
console.log(arguments);\n }\n}()) // No semicolon\n\n;(function() {\n
window.cat = function() {\n console.log("hello world");\n }\n}());\n"""
+ self.assertEqual(expected, js)
@patch.object(base64, 'b64encode')
def test_encoded_content(self, mock):
@@ -220,9 +218,9 @@
result = self.compressor.compress_css(
[_('pipeline/css/first.css'),
_('pipeline/css/second.css')],
os.path.join('pipeline', 'css',
os.path.basename(expected_file)))
- with self.compressor.storage.open(expected_file) as f:
+ with self.compressor.storage.open(expected_file, 'r') as f:
expected = f.read()
- self.assertEqual(smart_bytes(result), expected)
+ self.assertEqual(result, expected)
def test_jsmin(self):
self._test_compressor('pipeline.compressors.jsmin.JSMinCompressor',
@@ -232,20 +230,23 @@
self._test_compressor('pipeline.compressors.slimit.SlimItCompressor',
'js', 'pipeline/compressors/slimit.js')
+ def test_csshtmljsminify(self):
+
self._test_compressor('pipeline.compressors.csshtmljsminify.CssHtmlJsMinifyCompressor',
+ 'css', 'pipeline/compressors/csshtmljsminify.css')
+
self._test_compressor('pipeline.compressors.csshtmljsminify.CssHtmlJsMinifyCompressor',
+ 'js', 'pipeline/compressors/csshtmljsminify.js')
+
@skipUnless(settings.HAS_NODE, "requires node")
def test_uglifyjs(self):
self._test_compressor('pipeline.compressors.uglifyjs.UglifyJSCompressor',
'js', 'pipeline/compressors/uglifyjs.js')
-
+
@skipUnless(settings.HAS_NODE, "requires node")
- def test_yuglify_js(self):
- self._test_compressor('pipeline.compressors.yuglify.YuglifyCompressor',
- 'js', 'pipeline/compressors/yuglify.js')
-
- @skipUnless(settings.HAS_NODE, "requires node")
- def test_yuglify_css(self):
+ def test_yuglify(self):
self._test_compressor('pipeline.compressors.yuglify.YuglifyCompressor',
'css', 'pipeline/compressors/yuglify.css')
+ self._test_compressor('pipeline.compressors.yuglify.YuglifyCompressor',
+ 'js', 'pipeline/compressors/yuglify.js')
@skipUnless(settings.HAS_NODE, "requires node")
def test_cssmin(self):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/django-pipeline-1.7.0/tests/tests/test_conf.py
new/django-pipeline-2.0.5/tests/tests/test_conf.py
--- old/django-pipeline-1.7.0/tests/tests/test_conf.py 2020-01-05
03:59:08.000000000 +0100
+++ new/django-pipeline-2.0.5/tests/tests/test_conf.py 2020-08-16
22:47:54.000000000 +0200
@@ -1,6 +1,3 @@
-# -*- coding: utf-8 -*-
-from __future__ import unicode_literals
-
import sys
from unittest import skipIf, skipUnless
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/django-pipeline-1.7.0/tests/tests/test_forms.py
new/django-pipeline-2.0.5/tests/tests/test_forms.py
--- old/django-pipeline-1.7.0/tests/tests/test_forms.py 2020-01-05
03:59:08.000000000 +0100
+++ new/django-pipeline-2.0.5/tests/tests/test_forms.py 2020-08-16
22:47:54.000000000 +0200
@@ -1,5 +1,4 @@
-from __future__ import unicode_literals
-
+from django import get_version as django_version
from django.forms import Media
from django.test import TestCase
@@ -149,6 +148,7 @@
js = ('extra1.js', 'extra2.js')
media = Media(MyMedia)
+ script_tag = '<script type="text/javascript" src="%s"></script>' if
django_version() < '3.1' else '<script src="%s"></script>'
self.assertEqual(
MyMedia.js,
@@ -162,7 +162,7 @@
self.assertEqual(
media.render_js(),
[
- '<script type="text/javascript" src="%s"></script>' % path
+ script_tag % path
for path in (
'/static/extra1.js',
'/static/extra2.js',
@@ -179,6 +179,7 @@
js = ('extra1.js', 'extra2.js')
media = Media(MyMedia)
+ script_tag = '<script type="text/javascript" src="%s"></script>' if
django_version() < '3.1' else '<script src="%s"></script>'
self.assertEqual(
MyMedia.js,
@@ -193,7 +194,7 @@
self.assertEqual(
media.render_js(),
[
- '<script type="text/javascript" src="%s"></script>' % path
+ script_tag % path
for path in (
'/static/extra1.js',
'/static/extra2.js',
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/django-pipeline-1.7.0/tests/tests/test_glob.py
new/django-pipeline-2.0.5/tests/tests/test_glob.py
--- old/django-pipeline-1.7.0/tests/tests/test_glob.py 2020-01-05
03:59:08.000000000 +0100
+++ new/django-pipeline-2.0.5/tests/tests/test_glob.py 2020-08-16
22:47:54.000000000 +0200
@@ -1,5 +1,3 @@
-from __future__ import unicode_literals
-
import os
import shutil
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/django-pipeline-1.7.0/tests/tests/test_middleware.py
new/django-pipeline-2.0.5/tests/tests/test_middleware.py
--- old/django-pipeline-1.7.0/tests/tests/test_middleware.py 2020-01-05
03:59:08.000000000 +0100
+++ new/django-pipeline-2.0.5/tests/tests/test_middleware.py 2020-08-16
22:47:54.000000000 +0200
@@ -1,10 +1,5 @@
-# -*- coding: utf-8 -*-
-from __future__ import unicode_literals
-try:
- from mock import patch
-except ImportError:
- from unittest.mock import patch # noqa
+from unittest.mock import patch
from django.core.exceptions import MiddlewareNotUsed
from django.test import TestCase
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/django-pipeline-1.7.0/tests/tests/test_packager.py
new/django-pipeline-2.0.5/tests/tests/test_packager.py
--- old/django-pipeline-1.7.0/tests/tests/test_packager.py 2020-01-05
03:59:08.000000000 +0100
+++ new/django-pipeline-2.0.5/tests/tests/test_packager.py 2020-08-16
22:47:54.000000000 +0200
@@ -1,5 +1,3 @@
-from __future__ import unicode_literals
-
from django.test import TestCase
from pipeline.collector import default_collector
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/django-pipeline-1.7.0/tests/tests/test_storage.py
new/django-pipeline-2.0.5/tests/tests/test_storage.py
--- old/django-pipeline-1.7.0/tests/tests/test_storage.py 2020-01-05
03:59:08.000000000 +0100
+++ new/django-pipeline-2.0.5/tests/tests/test_storage.py 2020-08-16
22:47:54.000000000 +0200
@@ -1,5 +1,3 @@
-from __future__ import unicode_literals
-
from django.contrib.staticfiles import finders
from django.contrib.staticfiles.storage import staticfiles_storage
from django.core.management import call_command
@@ -14,10 +12,7 @@
from tests.tests.test_compiler import DummyCompiler
from tests.utils import pipeline_settings
-try:
- from io import StringIO
-except ImportError:
- from StringIO import StringIO
+from io import StringIO
class PipelineNoPathStorage(PipelineStorage):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/django-pipeline-1.7.0/tests/tests/test_template.py
new/django-pipeline-2.0.5/tests/tests/test_template.py
--- old/django-pipeline-1.7.0/tests/tests/test_template.py 2020-01-05
03:59:08.000000000 +0100
+++ new/django-pipeline-2.0.5/tests/tests/test_template.py 2020-08-16
22:47:54.000000000 +0200
@@ -1,6 +1,3 @@
-# -*- coding: utf-8 -*-
-from __future__ import unicode_literals
-
from jinja2 import Environment, PackageLoader
from django.template import Template, Context
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/django-pipeline-1.7.0/tests/tests/test_utils.py
new/django-pipeline-2.0.5/tests/tests/test_utils.py
--- old/django-pipeline-1.7.0/tests/tests/test_utils.py 2020-01-05
03:59:08.000000000 +0100
+++ new/django-pipeline-2.0.5/tests/tests/test_utils.py 2020-08-16
22:47:54.000000000 +0200
@@ -1,5 +1,6 @@
# -*- coding: utf-8 -*-
-from __future__ import unicode_literals
+
+import mimetypes
from django.test import TestCase
@@ -11,3 +12,8 @@
self.assertEqual('text/css', guess_type('stylesheet.css'))
self.assertEqual('text/coffeescript', guess_type('application.coffee'))
self.assertEqual('text/less', guess_type('stylesheet.less'))
+
+ def test_mimetypes_are_str(self):
+ for ext, mtype in mimetypes.types_map.items():
+ self.assertIsInstance(ext, str)
+ self.assertIsInstance(mtype, str)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/django-pipeline-1.7.0/tests/tests/test_views.py
new/django-pipeline-2.0.5/tests/tests/test_views.py
--- old/django-pipeline-1.7.0/tests/tests/test_views.py 2020-01-05
03:59:08.000000000 +0100
+++ new/django-pipeline-2.0.5/tests/tests/test_views.py 2020-08-16
22:47:54.000000000 +0200
@@ -1,5 +1,3 @@
-from __future__ import unicode_literals
-
from django.contrib.staticfiles.storage import staticfiles_storage
from django.core.exceptions import ImproperlyConfigured
from django.http import Http404