diff -Nru django-jinja-2.9.1/CHANGES.adoc django-jinja-2.10.0/CHANGES.adoc --- django-jinja-2.9.1/CHANGES.adoc 2021-09-05 02:01:14.000000000 +0000 +++ django-jinja-2.10.0/CHANGES.adoc 2021-12-10 22:19:25.000000000 +0000 @@ -1,6 +1,25 @@ Changelog ========= +Version 2.10.0 +-------------- + +_Released December 10th, 2021_ + +- Fix usage of `unittest` to be ready for Python 3.11 (#288). +- Fix `default_app_config` deprecation warning for Django 3.2 (#289). +- Replace Travis with GitHub Actions, dropping `ppc64le` arch tests (#290). + * Added Python 3.10 to tests (Django supports it if >=3.2.9). +- Run pyupgrade, remove compatibility code (#291). +- Add support for Django 4.0, with more old-code cleanup (#292). + * Remove use of `django.conf.urls.url` in test app (gone in Django 4.0). + * Set `DEFAULT_AUTO_FIELD` to avoid warnings in test app. + * Remove `django_jinja.contrib._pipeline` package, which was deprecated in 2015. + * Drop formal Django 3.0 and 3.1 support. + ** Projects using these versions should still function until support for 2.2 is dropped. +- Django 2.2 and Python 3.6 will likely be dropped in the next non-patch release. + + Version 2.9.1 ------------- diff -Nru django-jinja-2.9.1/debian/changelog django-jinja-2.10.0/debian/changelog --- django-jinja-2.9.1/debian/changelog 2021-11-13 07:39:11.000000000 +0000 +++ django-jinja-2.10.0/debian/changelog 2022-01-02 11:15:14.000000000 +0000 @@ -1,3 +1,11 @@ +django-jinja (2.10.0-1) unstable; urgency=medium + + * New upstream release. + * Update copyright, upstream now includes a copy of normalize.css. + * Update copyright year. + + -- Edward Betts Sun, 02 Jan 2022 11:15:14 +0000 + django-jinja (2.9.1-1) unstable; urgency=medium * New upstream release. diff -Nru django-jinja-2.9.1/debian/copyright django-jinja-2.10.0/debian/copyright --- django-jinja-2.9.1/debian/copyright 2021-08-25 15:24:54.000000000 +0000 +++ django-jinja-2.10.0/debian/copyright 2022-01-02 11:13:32.000000000 +0000 @@ -4,13 +4,17 @@ Source: https://github.com/niwibe/django-jinja Files: * -Copyright: 2012-2020, Andrey Antukh +Copyright: 2012-2022, Andrey Antukh License: BSD-3-clause Files: debian/* -Copyright: 2015-2021, Edward Betts +Copyright: 2015-2022, Edward Betts License: BSD-3-clause +Files: doc/assets/simple-red-titles/stylesheet.css +Copyright: Nicolas Gallagher +License: MIT + License: BSD-3-clause Redistribution and use in source and binary forms, with or without @@ -34,3 +38,22 @@ ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +License: MIT + Permission is hereby granted, free of charge, to any person obtaining a copy of + this software and associated documentation files (the "Software"), to deal in + the Software without restriction, including without limitation the rights to + use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies + of the Software, and to permit persons to whom the Software is furnished to do + so, subject to the following conditions: + . + The above copyright notice and this permission notice shall be included in all + copies or substantial portions of the Software. + . + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + SOFTWARE. diff -Nru django-jinja-2.9.1/debian/watch django-jinja-2.10.0/debian/watch --- django-jinja-2.9.1/debian/watch 2021-08-25 15:23:25.000000000 +0000 +++ django-jinja-2.10.0/debian/watch 2022-01-02 10:56:45.000000000 +0000 @@ -1,3 +1,3 @@ version=4 -opts=uversionmangle=s/(rc|a|b|c)/~$1/ \ - https://github.com/niwinz/django-jinja/releases .*/django-jinja-(\d\S+)\.tar\.gz +opts=filenamemangle=s/.+\/(\d[^\/]+)\.tar\.gz/django-jinja-$1\.tar\.gz/ \ + https://github.com/niwinz/django-jinja/releases .*/(\d[^/]+)\.tar\.gz diff -Nru django-jinja-2.9.1/django_jinja/backend.py django-jinja-2.10.0/django_jinja/backend.py --- django-jinja-2.9.1/django_jinja/backend.py 2021-07-02 19:06:11.000000000 +0000 +++ django-jinja-2.10.0/django_jinja/backend.py 2021-12-10 22:19:25.000000000 +0000 @@ -35,7 +35,7 @@ from . import utils -class Origin(object): +class Origin: """ A container to hold debug information as described in the template API documentation. @@ -45,7 +45,7 @@ self.template_name = template_name -class Template(object): +class Template: def __init__(self, template, backend): self.template = template self.backend = backend @@ -139,7 +139,7 @@ options = params.pop("OPTIONS", {}).copy() self.app_dirname = options.pop("app_dirname", "templates") - super(Jinja2, self).__init__(params) + super().__init__(params) newstyle_gettext = options.pop("newstyle_gettext", True) context_processors = options.pop("context_processors", []) @@ -228,7 +228,7 @@ if filename == "__init__.py" or filename == "__init__.pyc": continue - file_mod_path = "%s.templatetags.%s" % (app_path, filename.rsplit(".", 1)[0]) + file_mod_path = f"{app_path}.templatetags.{filename.rsplit('.', 1)[0]}" try: import_module(file_mod_path) except ImportError: @@ -282,7 +282,7 @@ def get_template(self, template_name): if not self.match_template(template_name): - message = "Template {} does not exists".format(template_name) + message = f"Template {template_name} does not exists" raise TemplateDoesNotExist(message) try: @@ -327,7 +327,7 @@ lineno = exception.lineno if exception.source is None: if os.path.exists(exception.filename): - with open(exception.filename, "r") as f: + with open(exception.filename) as f: source = f.read() else: source = exception.source diff -Nru django-jinja-2.9.1/django_jinja/builtins/extensions.py django-jinja-2.10.0/django_jinja/builtins/extensions.py --- django-jinja-2.9.1/django_jinja/builtins/extensions.py 2021-06-04 17:49:30.000000000 +0000 +++ django-jinja-2.10.0/django_jinja/builtins/extensions.py 2021-12-10 22:19:25.000000000 +0000 @@ -21,7 +21,7 @@ class CsrfExtension(Extension): - tags = set(['csrf_token']) + tags = {'csrf_token'} def __init__(self, environment): self.environment = environment @@ -40,8 +40,7 @@ if csrf_token == 'NOTPROVIDED': return Markup("") - return Markup("" % (csrf_token)) + return Markup(f"") if settings.DEBUG: import warnings @@ -71,7 +70,7 @@ Partly based on the ``FragmentCacheExtension`` from the Jinja2 docs. """ - tags = set(['cache']) + tags = {'cache'} def parse(self, parser): lineno = next(parser.stream).lineno @@ -96,8 +95,10 @@ if expire_time is not None: expire_time = int(expire_time) except (ValueError, TypeError): - raise TemplateSyntaxError('"%s" tag got a non-integer timeout ' - 'value: %r' % (list(self.tags)[0], expire_time), lineno) + raise TemplateSyntaxError( + f'"{list(self.tags)[0]}" tag got a non-integer timeout value: {expire_time!r}', + lineno, + ) cache_key = make_template_fragment_key(fragm_name, vary_on) @@ -135,10 +136,10 @@ 'multiple_checkbox_field', ... 'string', 'undefined', 'upper']} """ - tags = set(['debug']) + tags = {'debug'} def __init__(self, environment): - super(DebugExtension, self).__init__(environment) + super().__init__(environment) def parse(self, parser): lineno = parser.stream.expect('name:debug').lineno @@ -162,7 +163,7 @@ class StaticFilesExtension(Extension): def __init__(self, environment): - super(StaticFilesExtension, self).__init__(environment) + super().__init__(environment) environment.globals["static"] = self._static def _static(self, path): @@ -171,7 +172,7 @@ class UrlsExtension(Extension): def __init__(self, environment): - super(UrlsExtension, self).__init__(environment) + super().__init__(environment) environment.globals["url"] = self._url_reverse @pass_context @@ -199,7 +200,7 @@ class TimezoneExtension(Extension): def __init__(self, environment): - super(TimezoneExtension, self).__init__(environment) + super().__init__(environment) environment.globals["utc"] = filters.utc environment.globals["timezone"] = filters.timezone environment.globals["localtime"] = filters.localtime @@ -207,7 +208,7 @@ class DjangoFiltersExtension(Extension): def __init__(self, environment): - super(DjangoFiltersExtension, self).__init__(environment) + super().__init__(environment) environment.filters["static"] = filters.static environment.filters["reverseurl"] = filters.reverse environment.filters["addslashes"] = filters.addslashes @@ -242,16 +243,12 @@ environment.filters["localtime"] = filters.localtime environment.filters["utc"] = filters.utc environment.filters["timezone"] = filters.timezone - try: - environment.filters["json_script"] = filters.json_script - except AttributeError: - # django version < 2.1 - pass + environment.filters["json_script"] = filters.json_script class DjangoExtraFiltersExtension(Extension): def __init__(self, environment): - super(DjangoExtraFiltersExtension, self).__init__(environment) + super().__init__(environment) environment.filters["title"] = filters.title environment.filters["upper"] = filters.upper environment.filters["lower"] = filters.lower diff -Nru django-jinja-2.9.1/django_jinja/builtins/filters.py django-jinja-2.10.0/django_jinja/builtins/filters.py --- django-jinja-2.9.1/django_jinja/builtins/filters.py 2021-05-24 23:10:32.000000000 +0000 +++ django-jinja-2.10.0/django_jinja/builtins/filters.py 2021-12-10 22:19:25.000000000 +0000 @@ -64,6 +64,7 @@ from django.template.defaultfilters import filesizeformat from django.template.defaultfilters import pprint from django.template.defaultfilters import pluralize +from django.template.defaultfilters import json_script from django.utils.text import slugify as djslugify @@ -78,9 +79,3 @@ from django.templatetags.tz import do_timezone as timezone from django.templatetags.tz import localtime from django.templatetags.tz import utc - -try: - from django.template.defaultfilters import json_script -except ImportError: - # django version < 2.1 - pass diff -Nru django-jinja-2.9.1/django_jinja/cache.py django-jinja-2.10.0/django_jinja/cache.py --- django-jinja-2.9.1/django_jinja/cache.py 2021-05-24 23:10:32.000000000 +0000 +++ django-jinja-2.10.0/django_jinja/cache.py 2021-12-10 22:19:25.000000000 +0000 @@ -16,11 +16,11 @@ return caches[self._cache_name] def load_bytecode(self, bucket): - key = 'jinja2_%s' % str(bucket.key) + key = f'jinja2_{str(bucket.key)}' bytecode = self.backend.get(key) if bytecode: bucket.bytecode_from_string(bytecode) def dump_bytecode(self, bucket): - key = 'jinja2_%s' % str(bucket.key) + key = f'jinja2_{str(bucket.key)}' self.backend.set(key, bucket.bytecode_to_string()) diff -Nru django-jinja-2.9.1/django_jinja/contrib/_pipeline/templates/pipeline/css.jinja django-jinja-2.10.0/django_jinja/contrib/_pipeline/templates/pipeline/css.jinja --- django-jinja-2.9.1/django_jinja/contrib/_pipeline/templates/pipeline/css.jinja 2021-05-24 23:10:32.000000000 +0000 +++ django-jinja-2.10.0/django_jinja/contrib/_pipeline/templates/pipeline/css.jinja 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ - diff -Nru django-jinja-2.9.1/django_jinja/contrib/_pipeline/templates/pipeline/inline_js.jinja django-jinja-2.10.0/django_jinja/contrib/_pipeline/templates/pipeline/inline_js.jinja --- django-jinja-2.9.1/django_jinja/contrib/_pipeline/templates/pipeline/inline_js.jinja 2021-05-24 23:10:32.000000000 +0000 +++ django-jinja-2.10.0/django_jinja/contrib/_pipeline/templates/pipeline/inline_js.jinja 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - diff -Nru django-jinja-2.9.1/django_jinja/contrib/_pipeline/templates/pipeline/js.jinja django-jinja-2.10.0/django_jinja/contrib/_pipeline/templates/pipeline/js.jinja --- django-jinja-2.9.1/django_jinja/contrib/_pipeline/templates/pipeline/js.jinja 2021-05-24 23:10:32.000000000 +0000 +++ django-jinja-2.10.0/django_jinja/contrib/_pipeline/templates/pipeline/js.jinja 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ - diff -Nru django-jinja-2.9.1/django_jinja/contrib/_pipeline/templatetags/_pipeline.py django-jinja-2.10.0/django_jinja/contrib/_pipeline/templatetags/_pipeline.py --- django-jinja-2.9.1/django_jinja/contrib/_pipeline/templatetags/_pipeline.py 2021-05-24 23:10:32.000000000 +0000 +++ django-jinja-2.10.0/django_jinja/contrib/_pipeline/templatetags/_pipeline.py 1970-01-01 00:00:00.000000000 +0000 @@ -1,95 +0,0 @@ -import jinja2 - -from django.contrib.staticfiles.storage import staticfiles_storage - -from pipeline.conf import settings -from pipeline.utils import guess_type -from pipeline.packager import Packager, PackageNotFound -from pipeline.collector import default_collector - -from django_jinja import library, utils - - -@library.global_function -@jinja2.contextfunction -@utils.safe -def compressed_css(ctx, name): - package = settings.PIPELINE_CSS.get(name, {}) - if package: - package = {name: package} - - packager = Packager(css_packages=package, js_packages={}) - - try: - package = packager.package_for('css', name) - except PackageNotFound: - return "" - - def _render_css(path): - template_name = package.template_name or "pipeline/css.jinja" - - context = package.extra_context - context.update({ - 'type': guess_type(path, 'text/css'), - 'url': staticfiles_storage.url(path) - }) - - template = ctx.environment.get_template(template_name) - return template.render(context) - - if settings.PIPELINE_ENABLED: - return _render_css(package.output_filename) - else: - default_collector.collect() - paths = packager.compile(package.paths) - tags = [_render_css(path) for path in paths] - return '\n'.join(tags) - - -@library.global_function -@jinja2.contextfunction -@utils.safe -def compressed_js(ctx, name): - package = settings.PIPELINE_JS.get(name, {}) - if package: - package = {name: package} - - packager = Packager(css_packages={}, js_packages=package) - try: - package = packager.package_for("js", name) - except PackageNotFound: - return "" - - def _render_js(path): - template_name = package.template_name or "pipeline/js.jinja" - context = package.extra_context - context.update({ - 'type': guess_type(path, 'text/javascript'), - 'url': staticfiles_storage.url(path), - }) - - template = ctx.environment.get_template(template_name) - return template.render(context) - - def _render_inline_js(js): - context = package.extra_context - context.update({ - 'source': js - }) - - template = ctx.environment.get_template("pipeline/inline_js.jinja") - - return template.render(context) - - # Render a optimized one - if settings.PIPELINE_ENABLED: - return _render_js(package.output_filename) - else: - default_collector.collect() - paths = packager.compile(package.paths) - templates = packager.pack_templates(package) - tags = [_render_js(js) for js in paths] - if templates: - tags.append(_render_inline_js(templates)) - - return '\n'.join(tags) diff -Nru django-jinja-2.9.1/django_jinja/__init__.py django-jinja-2.10.0/django_jinja/__init__.py --- django-jinja-2.9.1/django_jinja/__init__.py 2021-05-24 23:10:32.000000000 +0000 +++ django-jinja-2.10.0/django_jinja/__init__.py 2021-12-10 22:19:25.000000000 +0000 @@ -1 +1,4 @@ -default_app_config = 'django_jinja.apps.DjangoJinjaAppConfig' +from django import VERSION + +if VERSION < (3, 2): + default_app_config = 'django_jinja.apps.DjangoJinjaAppConfig' diff -Nru django-jinja-2.9.1/django_jinja/library.py django-jinja-2.10.0/django_jinja/library.py --- django-jinja-2.9.1/django_jinja/library.py 2021-05-24 23:10:32.000000000 +0000 +++ django-jinja-2.10.0/django_jinja/library.py 2021-12-10 22:19:25.000000000 +0000 @@ -10,7 +10,7 @@ "globals": {}, "tests": {}, "filters": {}, - "extensions": set([]), + "extensions": set(), } diff -Nru django-jinja-2.9.1/django_jinja/management/commands/makemessages.py django-jinja-2.10.0/django_jinja/management/commands/makemessages.py --- django-jinja-2.9.1/django_jinja/management/commands/makemessages.py 2021-07-02 19:06:11.000000000 +0000 +++ django-jinja-2.10.0/django_jinja/management/commands/makemessages.py 2021-12-10 22:19:25.000000000 +0000 @@ -32,8 +32,8 @@ from django.utils.translation import template as trans_real -strip_whitespace_right = re.compile(r"(%s-?\s*(trans|pluralize).*?-%s)\s+" % (BLOCK_TAG_START, BLOCK_TAG_END), re.U) -strip_whitespace_left = re.compile(r"\s+(%s-\s*(endtrans|pluralize).*?-?%s)" % (BLOCK_TAG_START, BLOCK_TAG_END), re.U) +strip_whitespace_right = re.compile(fr"({BLOCK_TAG_START}-?\s*(trans|pluralize).*?-{BLOCK_TAG_END})\s+", re.U) +strip_whitespace_left = re.compile(fr"\s+({BLOCK_TAG_START}-\s*(endtrans|pluralize).*?-?{BLOCK_TAG_END})", re.U) def strip_whitespaces(src): @@ -45,8 +45,8 @@ # this regex looks for {% trans %} blocks that don't have 'trimmed' or 'notrimmed' set. # capturing {% endtrans %} ensures this doesn't affect DTL {% trans %} tags. trans_block_re = re.compile( - r"(%s-?\s*trans)(?!\s+(?:no)?trimmed)(.*?%s.*?%s-?\s*?endtrans\s*?-?%s)" - % (BLOCK_TAG_START, BLOCK_TAG_END, BLOCK_TAG_START, BLOCK_TAG_END), + fr"({BLOCK_TAG_START}-?\s*trans)(?!\s+(?:no)?trimmed)" + fr"(.*?{BLOCK_TAG_END}.*?{BLOCK_TAG_START}-?\s*?endtrans\s*?-?{BLOCK_TAG_END})", re.U | re.DOTALL ) @@ -62,7 +62,7 @@ class Command(makemessages.Command): def add_arguments(self, parser): - super(Command, self).add_arguments(parser) + super().add_arguments(parser) parser.add_argument('--jinja2-engine-name', default=None, dest='jinja_engine') def _get_default_jinja_template_engine(self): @@ -101,7 +101,7 @@ trans_real.templatize = my_templatize try: - super(Command, self).handle(*args, **options) + super().handle(*args, **options) finally: trans_real.endblock_re = old_endblock_re trans_real.block_re = old_block_re diff -Nru django-jinja-2.9.1/django_jinja/utils.py django-jinja-2.10.0/django_jinja/utils.py --- django-jinja-2.9.1/django_jinja/utils.py 2021-05-24 23:10:32.000000000 +0000 +++ django-jinja-2.10.0/django_jinja/utils.py 2021-12-10 22:19:25.000000000 +0000 @@ -15,12 +15,12 @@ mod_name, klass_name = path.rsplit('.', 1) mod = import_module(mod_name) except AttributeError as e: - raise ImproperlyConfigured('Error importing {0}: "{1}"'.format(mod_name, e)) + raise ImproperlyConfigured(f'Error importing {mod_name}: "{e}"') try: klass = getattr(mod, klass_name) except AttributeError: - raise ImproperlyConfigured('Module "{0}" does not define a "{1}" class'.format(mod_name, klass_name)) + raise ImproperlyConfigured(f'Module "{mod_name}" does not define a "{klass_name}" class') return klass diff -Nru django-jinja-2.9.1/django_jinja/views/generic/base.py django-jinja-2.10.0/django_jinja/views/generic/base.py --- django-jinja-2.9.1/django_jinja/views/generic/base.py 2021-05-24 23:10:32.000000000 +0000 +++ django-jinja-2.10.0/django_jinja/views/generic/base.py 2021-12-10 22:19:25.000000000 +0000 @@ -1,7 +1,7 @@ from ...base import get_match_extension -class Jinja2TemplateResponseMixin(object): +class Jinja2TemplateResponseMixin: jinja2_template_extension = None def get_template_names(self): @@ -17,7 +17,7 @@ If you would like to not have it append an extension, set jinja2_template_extension to '' (empty string). """ - vals = super(Jinja2TemplateResponseMixin, self).get_template_names() + vals = super().get_template_names() ext = self.jinja2_template_extension if ext is None: diff -Nru django-jinja-2.9.1/django_jinja.egg-info/dependency_links.txt django-jinja-2.10.0/django_jinja.egg-info/dependency_links.txt --- django-jinja-2.9.1/django_jinja.egg-info/dependency_links.txt 2021-09-05 02:11:33.000000000 +0000 +++ django-jinja-2.10.0/django_jinja.egg-info/dependency_links.txt 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ - diff -Nru django-jinja-2.9.1/django_jinja.egg-info/PKG-INFO django-jinja-2.10.0/django_jinja.egg-info/PKG-INFO --- django-jinja-2.9.1/django_jinja.egg-info/PKG-INFO 2021-09-05 02:11:33.000000000 +0000 +++ django-jinja-2.10.0/django_jinja.egg-info/PKG-INFO 1970-01-01 00:00:00.000000000 +0000 @@ -1,67 +0,0 @@ -Metadata-Version: 2.1 -Name: django-jinja -Version: 2.9.1 -Summary: Jinja2 templating language integrated in Django. -Home-page: https://github.com/niwinz/django-jinja -Author: Andrey Antukh -Author-email: niwi@niwi.be -Maintainer: Asif Saif Uddin -Maintainer-email: auvipy@gmail.com -License: BSD -Description: django-jinja - ============ - - Simple and nonobstructive jinja2 integration with Django. - - - .. image:: https://img.shields.io/travis/niwinz/django-jinja.svg?style=flat - :target: https://travis-ci.org/niwinz/django-jinja - - .. image:: https://img.shields.io/pypi/v/django-jinja.svg?style=flat - :target: https://pypi.python.org/pypi/django-jinja - - - **Documentation:** http://niwinz.github.io/django-jinja/latest/ - - - How to install? - --------------- - - You can install it with pip: - - .. code-block:: shell - - pip install django-jinja - - How to run tests as a developer - ------------------------------- - - Install the Tox automation tool (outside a virtualenv), then - - .. code-block:: shell - - tox - - Tox will create virtualenvs for different interpreter versions and run the test suite. - -Keywords: django,jinja2 -Platform: UNKNOWN -Classifier: Development Status :: 5 - Production/Stable -Classifier: Framework :: Django -Classifier: Framework :: Django :: 2.2 -Classifier: Framework :: Django :: 3.0 -Classifier: Framework :: Django :: 3.1 -Classifier: Framework :: Django :: 3.2 -Classifier: Intended Audience :: Developers -Classifier: License :: OSI Approved :: BSD License -Classifier: Operating System :: OS Independent -Classifier: Programming Language :: Python -Classifier: Programming Language :: Python :: 3 -Classifier: Programming Language :: Python :: 3 :: Only -Classifier: Programming Language :: Python :: 3.6 -Classifier: Programming Language :: Python :: 3.7 -Classifier: Programming Language :: Python :: 3.8 -Classifier: Programming Language :: Python :: 3.9 -Classifier: Topic :: Internet :: WWW/HTTP -Requires-Python: >=3.6 -Description-Content-Type: text/x-rst diff -Nru django-jinja-2.9.1/django_jinja.egg-info/requires.txt django-jinja-2.10.0/django_jinja.egg-info/requires.txt --- django-jinja-2.9.1/django_jinja.egg-info/requires.txt 2021-09-05 02:11:33.000000000 +0000 +++ django-jinja-2.10.0/django_jinja.egg-info/requires.txt 1970-01-01 00:00:00.000000000 +0000 @@ -1,2 +0,0 @@ -jinja2>=3 -django>=2.2 diff -Nru django-jinja-2.9.1/django_jinja.egg-info/SOURCES.txt django-jinja-2.10.0/django_jinja.egg-info/SOURCES.txt --- django-jinja-2.9.1/django_jinja.egg-info/SOURCES.txt 2021-09-05 02:11:33.000000000 +0000 +++ django-jinja-2.10.0/django_jinja.egg-info/SOURCES.txt 1970-01-01 00:00:00.000000000 +0000 @@ -1,100 +0,0 @@ -.gitignore -.travis.yml -CHANGES.adoc -LICENSE -README.rst -setup.py -tox.ini -django_jinja/__init__.py -django_jinja/apps.py -django_jinja/backend.py -django_jinja/base.py -django_jinja/cache.py -django_jinja/library.py -django_jinja/models.py -django_jinja/utils.py -django_jinja.egg-info/PKG-INFO -django_jinja.egg-info/SOURCES.txt -django_jinja.egg-info/dependency_links.txt -django_jinja.egg-info/requires.txt -django_jinja.egg-info/top_level.txt -django_jinja/builtins/__init__.py -django_jinja/builtins/extensions.py -django_jinja/builtins/filters.py -django_jinja/contrib/__init__.py -django_jinja/contrib/_easy_thumbnails/__init__.py -django_jinja/contrib/_easy_thumbnails/models.py -django_jinja/contrib/_easy_thumbnails/templatetags/__init__.py -django_jinja/contrib/_easy_thumbnails/templatetags/thumbnails.py -django_jinja/contrib/_humanize/__init__.py -django_jinja/contrib/_humanize/models.py -django_jinja/contrib/_humanize/templatetags/__init__.py -django_jinja/contrib/_humanize/templatetags/_humanize.py -django_jinja/contrib/_pipeline/__init__.py -django_jinja/contrib/_pipeline/models.py -django_jinja/contrib/_pipeline/templates/pipeline/css.jinja -django_jinja/contrib/_pipeline/templates/pipeline/inline_js.jinja -django_jinja/contrib/_pipeline/templates/pipeline/js.jinja -django_jinja/contrib/_pipeline/templatetags/__init__.py -django_jinja/contrib/_pipeline/templatetags/_pipeline.py -django_jinja/contrib/_subdomains/__init__.py -django_jinja/contrib/_subdomains/models.py -django_jinja/contrib/_subdomains/templatetags/__init__.py -django_jinja/contrib/_subdomains/templatetags/subdomainurls.py -django_jinja/management/__init__.py -django_jinja/management/commands/__init__.py -django_jinja/management/commands/makemessages.py -django_jinja/views/__init__.py -django_jinja/views/generic/__init__.py -django_jinja/views/generic/base.py -django_jinja/views/generic/dates.py -django_jinja/views/generic/detail.py -django_jinja/views/generic/edit.py -django_jinja/views/generic/list.py -doc/Makefile -doc/content-docinfo.html -doc/content.adoc -doc/assets/simple-red-titles/stylesheet.css -testing/manage.py -testing/runtests.py -testing/settings.py -testing/uwsgi.ini -testing/wsgi.py -testing/locale/en/.hidden -testing/locale/en/LC_MESSAGES/django.po -testing/testapp/__init__.py -testing/testapp/forms.py -testing/testapp/models.py -testing/testapp/tests.py -testing/testapp/urls.py -testing/testapp/views.py -testing/testapp/jinja2/hola_mundo.html -testing/testapp/migrations/0001_initial.py -testing/testapp/migrations/0002_testmodel_date.py -testing/testapp/migrations/__init__.py -testing/testapp/static/script.js -testing/testapp/static/style.css -testing/testapp/templates/403.jinja -testing/testapp/templates/404.jinja -testing/testapp/templates/500.jinja -testing/testapp/templates/hello_world.jinja -testing/testapp/templates/i18n_test.html -testing/testapp/templates/i18n_test.jinja -testing/testapp/templates/pipeline_test.jinja -testing/testapp/templates/streaming_test.jinja -testing/testapp/templates/test-debug-var.jinja -testing/testapp/templates/test-render-with.jinja -testing/testapp/templates/testapp/testmodel_archive.html.jinja -testing/testapp/templates/testapp/testmodel_archive_day.html.jinja -testing/testapp/templates/testapp/testmodel_archive_month.html.jinja -testing/testapp/templates/testapp/testmodel_archive_today.html.jinja -testing/testapp/templates/testapp/testmodel_archive_week.html.jinja -testing/testapp/templates/testapp/testmodel_archive_year.html.jinja -testing/testapp/templates/testapp/testmodel_confirm_delete.html.jinja -testing/testapp/templates/testapp/testmodel_create.html.jinja -testing/testapp/templates/testapp/testmodel_date_detail.html.jinja -testing/testapp/templates/testapp/testmodel_detail.html.jinja -testing/testapp/templates/testapp/testmodel_list.html.jinja -testing/testapp/templates/testapp/testmodel_update.html.jinja -testing/testapp/templatetags/__init__.py -testing/testapp/templatetags/sample_addons.py \ No newline at end of file diff -Nru django-jinja-2.9.1/django_jinja.egg-info/top_level.txt django-jinja-2.10.0/django_jinja.egg-info/top_level.txt --- django-jinja-2.9.1/django_jinja.egg-info/top_level.txt 2021-09-05 02:11:33.000000000 +0000 +++ django-jinja-2.10.0/django_jinja.egg-info/top_level.txt 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -django_jinja diff -Nru django-jinja-2.9.1/doc/content.adoc django-jinja-2.10.0/doc/content.adoc --- django-jinja-2.9.1/doc/content.adoc 2021-09-05 01:52:33.000000000 +0000 +++ django-jinja-2.10.0/doc/content.adoc 2021-12-10 22:19:25.000000000 +0000 @@ -1,6 +1,6 @@ = django-jinja - jinja2 backend for Django Andrey Antukh, -2.9.1 +2.10.0 :toc: left :!numbered: :source-highlighter: pygments @@ -81,6 +81,10 @@ |>=2.8.0 |3.6, 3.7, 3.8, 3.9 |2.2, 3.0, 3.1, 3.2 + +|>=2.10.0 +|3.6, 3.7, 3.8, 3.9, 3.10 +|2.2, 3.2, 4.0 |=== @@ -564,35 +568,6 @@ ==== -django-pipeline -~~~~~~~~~~~~~~~ - -link:https://github.com/cyberdelia/django-pipeline[Pipeline] is an asset packaging -library for Django (official description). - -[WARNING] -==== -This plugin is deprecated, *django-pipeline* comes with good jinja support and it -should be used. - -You can use the native *django-pipeline* suport for jinja using the -"pipeline.jinja2.ext.PipelineExtension" extension. -==== - -.Activate plugin (settings.py) -[source, python] ----- -INSTALLED_APPS += ('django_jinja.contrib._pipeline',) ----- - -.Usage -[source, html+jinja] ----- -{{ compressed_css("alias") }} -{{ compressed_js("alias") }} ----- - - easy-thumbnails ~~~~~~~~~~~~~~~ diff -Nru django-jinja-2.9.1/.github/workflows/ci.yml django-jinja-2.10.0/.github/workflows/ci.yml --- django-jinja-2.9.1/.github/workflows/ci.yml 1970-01-01 00:00:00.000000000 +0000 +++ django-jinja-2.10.0/.github/workflows/ci.yml 2021-12-10 22:19:25.000000000 +0000 @@ -0,0 +1,26 @@ +name: CI +on: + push: + branches: + - master + pull_request: + branches: + - master +jobs: + Build: + runs-on: ubuntu-20.04 + strategy: + matrix: + python-version: + - '3.6' + - '3.7' + - '3.8' + - '3.9' + - '3.10' + steps: + - uses: actions/setup-python@v2 + with: + python-version: '${{ matrix.python-version }}' + - uses: actions/checkout@v2 + - run: pip install tox tox-gh-actions + - run: tox diff -Nru django-jinja-2.9.1/PKG-INFO django-jinja-2.10.0/PKG-INFO --- django-jinja-2.9.1/PKG-INFO 2021-09-05 02:11:33.808981400 +0000 +++ django-jinja-2.10.0/PKG-INFO 1970-01-01 00:00:00.000000000 +0000 @@ -1,67 +0,0 @@ -Metadata-Version: 2.1 -Name: django-jinja -Version: 2.9.1 -Summary: Jinja2 templating language integrated in Django. -Home-page: https://github.com/niwinz/django-jinja -Author: Andrey Antukh -Author-email: niwi@niwi.be -Maintainer: Asif Saif Uddin -Maintainer-email: auvipy@gmail.com -License: BSD -Description: django-jinja - ============ - - Simple and nonobstructive jinja2 integration with Django. - - - .. image:: https://img.shields.io/travis/niwinz/django-jinja.svg?style=flat - :target: https://travis-ci.org/niwinz/django-jinja - - .. image:: https://img.shields.io/pypi/v/django-jinja.svg?style=flat - :target: https://pypi.python.org/pypi/django-jinja - - - **Documentation:** http://niwinz.github.io/django-jinja/latest/ - - - How to install? - --------------- - - You can install it with pip: - - .. code-block:: shell - - pip install django-jinja - - How to run tests as a developer - ------------------------------- - - Install the Tox automation tool (outside a virtualenv), then - - .. code-block:: shell - - tox - - Tox will create virtualenvs for different interpreter versions and run the test suite. - -Keywords: django,jinja2 -Platform: UNKNOWN -Classifier: Development Status :: 5 - Production/Stable -Classifier: Framework :: Django -Classifier: Framework :: Django :: 2.2 -Classifier: Framework :: Django :: 3.0 -Classifier: Framework :: Django :: 3.1 -Classifier: Framework :: Django :: 3.2 -Classifier: Intended Audience :: Developers -Classifier: License :: OSI Approved :: BSD License -Classifier: Operating System :: OS Independent -Classifier: Programming Language :: Python -Classifier: Programming Language :: Python :: 3 -Classifier: Programming Language :: Python :: 3 :: Only -Classifier: Programming Language :: Python :: 3.6 -Classifier: Programming Language :: Python :: 3.7 -Classifier: Programming Language :: Python :: 3.8 -Classifier: Programming Language :: Python :: 3.9 -Classifier: Topic :: Internet :: WWW/HTTP -Requires-Python: >=3.6 -Description-Content-Type: text/x-rst diff -Nru django-jinja-2.9.1/setup.cfg django-jinja-2.10.0/setup.cfg --- django-jinja-2.9.1/setup.cfg 2021-09-05 02:11:33.808981400 +0000 +++ django-jinja-2.10.0/setup.cfg 1970-01-01 00:00:00.000000000 +0000 @@ -1,4 +0,0 @@ -[egg_info] -tag_build = -tag_date = 0 - diff -Nru django-jinja-2.9.1/setup.py django-jinja-2.10.0/setup.py --- django-jinja-2.9.1/setup.py 2021-09-05 01:52:33.000000000 +0000 +++ django-jinja-2.10.0/setup.py 2021-12-10 22:19:25.000000000 +0000 @@ -4,7 +4,7 @@ setup( name = "django-jinja", - version = "2.9.1", + version = "2.10.0", description = "Jinja2 templating language integrated in Django.", long_description = open("README.rst").read(), long_description_content_type='text/x-rst', @@ -21,8 +21,6 @@ "django_jinja.management", "django_jinja.management.commands", "django_jinja.contrib", - "django_jinja.contrib._pipeline", - "django_jinja.contrib._pipeline.templatetags", "django_jinja.contrib._easy_thumbnails", "django_jinja.contrib._easy_thumbnails.templatetags", "django_jinja.contrib._humanize", @@ -33,9 +31,6 @@ "django_jinja.views.generic", ], include_package_data = True, - package_data = { - "django_jinja": ["contrib/_pipeline/templates/pipeline/*.jinja"], - }, python_requires = ">=3.6", install_requires = [ "jinja2>=3", @@ -48,9 +43,8 @@ "Development Status :: 5 - Production/Stable", "Framework :: Django", "Framework :: Django :: 2.2", - "Framework :: Django :: 3.0", - "Framework :: Django :: 3.1", "Framework :: Django :: 3.2", + "Framework :: Django :: 4.0", "Intended Audience :: Developers", "License :: OSI Approved :: BSD License", "Operating System :: OS Independent", @@ -61,6 +55,7 @@ "Programming Language :: Python :: 3.7", "Programming Language :: Python :: 3.8", "Programming Language :: Python :: 3.9", + "Programming Language :: Python :: 3.10", "Topic :: Internet :: WWW/HTTP", ] ) diff -Nru django-jinja-2.9.1/testing/settings.py django-jinja-2.10.0/testing/settings.py --- django-jinja-2.9.1/testing/settings.py 2021-07-02 19:06:11.000000000 +0000 +++ django-jinja-2.10.0/testing/settings.py 2021-12-10 22:19:25.000000000 +0000 @@ -13,6 +13,7 @@ "NAME": "foobar.db" } } +DEFAULT_AUTO_FIELD = "django.db.models.AutoField" MIDDLEWARE_CLASSES = [ # "django.middleware.csrf.CsrfViewMiddleware", @@ -31,22 +32,15 @@ ADMIN_MEDIA_PREFIX = "/static/admin/" INTERNAL_IPS = ("127.0.0.1",) -#STATICFILES_STORAGE = "pipeline.storage.PipelineStorage" STATIC_ROOT = os.path.join(BASE_DIR, "static") STATIC_URL = "/static/" -PIPELINE_CSS_COMPRESSOR = None -PIPELINE_JS_COMPRESSOR = None -PIPELINE_ENABLE = False - SESSION_ENGINE = "django.contrib.sessions.backends.signed_cookies" SESSION_EXPIRE_AT_BROWSER_CLOSE = True STATICFILES_FINDERS = ( "django.contrib.staticfiles.finders.FileSystemFinder", "django.contrib.staticfiles.finders.AppDirectoriesFinder", - "pipeline.finders.PipelineFinder", - "pipeline.finders.CachedFileFinder", ) # TEMPLATE_DIRS = () @@ -58,9 +52,7 @@ "django.contrib.sessions", "django.contrib.staticfiles", "django.contrib.messages", - "pipeline", "django_jinja", - "django_jinja.contrib._pipeline", "testapp", ) @@ -101,26 +93,6 @@ } ] -PIPELINE_CSS = { - "test": { - "source_filenames": ["style.css"], - "output_filename": "style.2.css", - "extra_context": {"media": "all"}, - }, - "test2": { - "source_filenames": ["style.css"], - "output_filename": "style.2.css", - } -} - - -PIPELINE_JS = { - "test": { - "source_filenames": ["script.js"], - "output_filename": "script.2.js", - } -} - TEST_RUNNER = "django.test.runner.DiscoverRunner" diff -Nru django-jinja-2.9.1/testing/testapp/templates/pipeline_test.jinja django-jinja-2.10.0/testing/testapp/templates/pipeline_test.jinja --- django-jinja-2.9.1/testing/testapp/templates/pipeline_test.jinja 2021-05-24 23:10:32.000000000 +0000 +++ django-jinja-2.10.0/testing/testapp/templates/pipeline_test.jinja 1970-01-01 00:00:00.000000000 +0000 @@ -1,13 +0,0 @@ - - - - - Pipeline test page - - -

Hello world with pipeline and jinja2

- - - {{ compressed_js("test") }} - {# {% javascript "test" %} #} - diff -Nru django-jinja-2.9.1/testing/testapp/tests.py django-jinja-2.10.0/testing/testapp/tests.py --- django-jinja-2.9.1/testing/testapp/tests.py 2021-06-16 23:13:44.000000000 +0000 +++ django-jinja-2.10.0/testing/testapp/tests.py 2021-12-10 22:19:25.000000000 +0000 @@ -199,8 +199,7 @@ template = self.env.from_string(template_content) result = template.render({}, request) - expected = ("").format(token) + expected = f"" self.assertEqual(token, "123123") self.assertEqual(result, expected) @@ -274,12 +273,12 @@ } with self.modify_settings(TEMPLATES=setting): - with self.assertRaisesRegexp(ImproperlyConfigured, r'Several Jinja2 backends'): + with self.assertRaisesRegex(ImproperlyConfigured, r'Several Jinja2 backends'): Jinja2.get_default() def test_get_default_none(self): with self.settings(TEMPLATES=global_settings.TEMPLATES): - with self.assertRaisesRegexp(ImproperlyConfigured, r'No Jinja2 backend is configured'): + with self.assertRaisesRegex(ImproperlyConfigured, r'No Jinja2 backend is configured'): Jinja2.get_default() @@ -321,35 +320,6 @@ ) -class DjangoPipelineTestTest(TestCase): - def setUp(self): - self.env = engines["jinja2"] - - def test_pipeline_js_safe(self): - template = self.env.from_string("{{ compressed_js('test') }}") - result = template.render({}) - - self.assertTrue(result.startswith("\d+)/$", BasicTestView.as_view(), name="test-1"), url(r"^test-i18n/$", I18nTestView.as_view(), name="i18n-test"), url(r"^test-i18n-dtl/$", I18nTestViewDTL.as_view(), name="i18n-dtl-test"), - url(r"^test-pipeline/$", PipelineTestView.as_view(), name="pipeline-test"), url(r"^test/404$", views.PageNotFound.as_view(), name="page-404"), url(r"^test/403$", views.PermissionDenied.as_view(), name="page-403"), url(r"^test/500$", views.ServerError.as_view(), name="page-500"), diff -Nru django-jinja-2.9.1/testing/testapp/views.py django-jinja-2.10.0/testing/testapp/views.py --- django-jinja-2.9.1/testing/testapp/views.py 2021-06-04 17:21:51.000000000 +0000 +++ django-jinja-2.10.0/testing/testapp/views.py 2021-12-10 22:19:25.000000000 +0000 @@ -30,7 +30,7 @@ return render(request, self.template_name, { "v_index": "Index", - "table_sort": lambda x, y: "{} {}".format(x, y), + "table_sort": lambda x, y: f"{x} {y}", "invoice_count": 1, "trimmed_invoice_count": 2, "author": Author(), @@ -40,10 +40,6 @@ class I18nTestViewDTL(I18nTestView): template_name = "i18n_test.html" -class PipelineTestView(View): - def get(self, request, data=None): - return render(request, "pipeline_test.jinja") - class ContextManipulationTestView(View): def get(self, request): return render(request, "hello_world.jinja", {"name": "Jinja2"}) diff -Nru django-jinja-2.9.1/tox.ini django-jinja-2.10.0/tox.ini --- django-jinja-2.9.1/tox.ini 2021-06-04 17:49:30.000000000 +0000 +++ django-jinja-2.10.0/tox.ini 2021-12-10 22:19:25.000000000 +0000 @@ -1,19 +1,22 @@ [tox] envlist = py{36,37,38,39}-django22 - py{36,37,38,39}-django30 - py{36,37,38,39}-django31 - py{36,37,38,39}-django32 + py{36,37,38,39,310}-django32 + py{38,39,310}-django40 + +[gh-actions] +python = + 3.6: py36 + 3.7: py37 + 3.8: py38 + 3.9: py39 + 3.10: py310 [testenv] changedir=testing commands=python runtests.py deps= - django22: Django>=2.2,<3.0 - django30: Django>=3.0,<3.1 - django31: Django>=3.1,<3.2 - django32: Django>=3.2,<4.0 + django22: Django~=2.2 + django32: Django~=3.2 + django40: Django~=4.0 jinja2 - django-pipeline<1.6 - pytz - mock diff -Nru django-jinja-2.9.1/.travis.yml django-jinja-2.10.0/.travis.yml --- django-jinja-2.9.1/.travis.yml 2021-06-04 17:21:51.000000000 +0000 +++ django-jinja-2.10.0/.travis.yml 1970-01-01 00:00:00.000000000 +0000 @@ -1,100 +0,0 @@ -language: python -sudo: false -cache: pip - -matrix: - include: - - python: 3.6 - env: TOXENV=py36-django22 - - python: 3.7 - env: TOXENV=py37-django22 - - python: 3.8 - env: TOXENV=py38-django22 - - python: 3.9 - env: TOXENV=py39-django22 - - python: 3.6 - env: TOXENV=py36-django30 - - python: 3.7 - env: TOXENV=py37-django30 - - python: 3.8 - env: TOXENV=py38-django30 - - python: 3.9 - env: TOXENV=py39-django30 - - python: 3.6 - env: TOXENV=py36-django31 - - python: 3.7 - env: TOXENV=py37-django31 - - python: 3.8 - env: TOXENV=py38-django31 - - python: 3.9 - env: TOXENV=py39-django31 - - python: 3.6 - env: TOXENV=py36-django32 - - python: 3.7 - env: TOXENV=py37-django32 - - python: 3.8 - env: TOXENV=py38-django32 - - python: 3.9 - env: TOXENV=py39-django32 - # Adding jobs for ppc64le - - python: 3.6 - env: TOXENV=py36-django22 - arch: ppc64le - - python: 3.7 - env: TOXENV=py37-django22 - arch: ppc64le - - python: 3.8 - env: TOXENV=py38-django22 - arch: ppc64le - - python: 3.9 - env: TOXENV=py39-django22 - arch: ppc64le - - python: 3.6 - env: TOXENV=py36-django30 - arch: ppc64le - - python: 3.7 - env: TOXENV=py37-django30 - arch: ppc64le - - python: 3.8 - env: TOXENV=py38-django30 - arch: ppc64le - - python: 3.9 - env: TOXENV=py39-django30 - arch: ppc64le - - python: 3.6 - env: TOXENV=py36-django31 - arch: ppc64le - - python: 3.7 - env: TOXENV=py37-django31 - arch: ppc64le - - python: 3.8 - env: TOXENV=py38-django31 - arch: ppc64le - - python: 3.9 - env: TOXENV=py39-django31 - arch: ppc64le - - python: 3.6 - env: TOXENV=py36-django32 - arch: ppc64le - - python: 3.7 - env: TOXENV=py37-django32 - arch: ppc64le - - python: 3.8 - env: TOXENV=py38-django32 - arch: ppc64le - - python: 3.9 - env: TOXENV=py39-django32 - arch: ppc64le - -install: - - pip install tox - -script: - - tox - -notifications: - email: - recipients: - - niwi@niwi.nz - on_success: change - on_failure: change