Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package python-django-formtools for
openSUSE:Factory checked in at 2021-12-26 13:30:39
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-django-formtools (Old)
and /work/SRC/openSUSE:Factory/.python-django-formtools.new.2520 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-django-formtools"
Sun Dec 26 13:30:39 2021 rev:7 rq:942596 version:2.3
Changes:
--------
---
/work/SRC/openSUSE:Factory/python-django-formtools/python-django-formtools.changes
2020-01-07 23:54:45.984075317 +0100
+++
/work/SRC/openSUSE:Factory/.python-django-formtools.new.2520/python-django-formtools.changes
2021-12-26 13:30:59.974979996 +0100
@@ -1,0 +2,12 @@
+Sun Dec 26 11:51:09 UTC 2021 - John Vandenberg <[email protected]>
+
+- Updated URL to be https://github.com/jazzband/django-formtools
+- Remove unneeded BuildRequires isort
+- Update to v2.3
+ * Dropped testing for Django 1.11, 2.0 and 2.1.
+ * Added support for Django 3.1 and Python 3.9.
+ * Added support for Django 3.2 and 4.0.
+ * Dropped support for Django 3.0.
+ * Dropped support for Python 3.5.
+
+-------------------------------------------------------------------
Old:
----
django-formtools-2.2.tar.gz
New:
----
django-formtools-2.3.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-django-formtools.spec ++++++
--- /var/tmp/diff_new_pack.UJdHOU/_old 2021-12-26 13:31:00.470980341 +0100
+++ /var/tmp/diff_new_pack.UJdHOU/_new 2021-12-26 13:31:00.474980344 +0100
@@ -1,7 +1,7 @@
#
# spec file for package python-django-formtools
#
-# Copyright (c) 2020 SUSE LLC
+# Copyright (c) 2021 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -19,18 +19,17 @@
%{?!python_module:%define python_module() python-%{**} python3-%{**}}
%define skip_python2 1
Name: python-django-formtools
-Version: 2.2
+Version: 2.3
Release: 0
Summary: A set of high-level abstractions for Django forms
License: BSD-3-Clause
-URL: https://github.com/django/django-formtools
+URL: https://github.com/jazzband/django-formtools
Source:
https://files.pythonhosted.org/packages/source/d/django-formtools/django-formtools-%{version}.tar.gz
-BuildRequires: %{python_module Django >= 2.0}
-BuildRequires: %{python_module isort}
-BuildRequires: %{python_module setuptools}
+BuildRequires: %{python_module Django >= 2.2}
+BuildRequires: %{python_module setuptools_scm}
BuildRequires: fdupes
BuildRequires: python-rpm-macros
-Requires: python-Django >= 2.0
+Requires: python-Django >= 2.2
BuildArch: noarch
%python_subpackages
@@ -51,7 +50,7 @@
%check
export DJANGO_SETTINGS_MODULE=tests.settings
export PYTHONPATH=`pwd`
-%python_expand %{_bindir}/django-admin.py-%{$python_bin_suffix} test -v 2
tests --pythonpath=`pwd`
+%python_expand $python -m django test -v 2 tests --pythonpath=`pwd`
%files %{python_files}
%license LICENSE
++++++ django-formtools-2.2.tar.gz -> django-formtools-2.3.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/django-formtools-2.2/.editorconfig
new/django-formtools-2.3/.editorconfig
--- old/django-formtools-2.2/.editorconfig 1970-01-01 01:00:00.000000000
+0100
+++ new/django-formtools-2.3/.editorconfig 2021-04-19 01:00:34.000000000
+0200
@@ -0,0 +1,14 @@
+# http://editorconfig.org
+
+root = true
+
+[*]
+indent_style = space
+indent_size = 4
+insert_final_newline = true
+trim_trailing_whitespace = true
+end_of_line = lf
+charset = utf-8
+
+[*.bat]
+end_of_line = crlf
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/django-formtools-2.2/.github/workflows/release.yml
new/django-formtools-2.3/.github/workflows/release.yml
--- old/django-formtools-2.2/.github/workflows/release.yml 1970-01-01
01:00:00.000000000 +0100
+++ new/django-formtools-2.3/.github/workflows/release.yml 2021-04-19
01:00:34.000000000 +0200
@@ -0,0 +1,40 @@
+name: Release
+
+on:
+ push:
+ tags:
+ - '*'
+
+jobs:
+ build:
+ if: github.repository == 'jazzband/django-formtools'
+ runs-on: ubuntu-latest
+
+ steps:
+ - uses: actions/checkout@v2
+ with:
+ fetch-depth: 0
+
+ - name: Set up Python
+ uses: actions/setup-python@v2
+ with:
+ python-version: 3.8
+
+ - name: Install dependencies
+ run: |
+ python -m pip install -U pip
+ python -m pip install -U setuptools twine wheel
+
+ - name: Build package
+ run: |
+ python setup.py --version
+ python setup.py sdist --format=gztar bdist_wheel
+ twine check dist/*
+
+ - name: Upload packages to Jazzband
+ if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags')
+ uses: pypa/gh-action-pypi-publish@master
+ with:
+ user: jazzband
+ password: ${{ secrets.JAZZBAND_RELEASE_KEY }}
+ repository_url: https://jazzband.co/projects/django-formtools/upload
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/django-formtools-2.2/.github/workflows/test.yml
new/django-formtools-2.3/.github/workflows/test.yml
--- old/django-formtools-2.2/.github/workflows/test.yml 1970-01-01
01:00:00.000000000 +0100
+++ new/django-formtools-2.3/.github/workflows/test.yml 2021-04-19
01:00:34.000000000 +0200
@@ -0,0 +1,48 @@
+name: Test
+
+on: [push, pull_request]
+
+jobs:
+ build:
+ runs-on: ubuntu-latest
+ strategy:
+ fail-fast: false
+ max-parallel: 5
+ matrix:
+ python-version: ['3.6', '3.7', '3.8', '3.9']
+
+ steps:
+ - uses: actions/checkout@v2
+
+ - name: Set up Python ${{ matrix.python-version }}
+ uses: actions/setup-python@v2
+ with:
+ python-version: ${{ matrix.python-version }}
+
+ - name: Get pip cache dir
+ id: pip-cache
+ run: |
+ echo "::set-output name=dir::$(pip cache dir)"
+
+ - name: Cache
+ uses: actions/cache@v2
+ with:
+ path: ${{ steps.pip-cache.outputs.dir }}
+ key:
+ ${{ matrix.python-version }}-v1-${{ hashFiles('**/setup.py') }}-${{
hashFiles('**/tox.ini') }}
+ restore-keys: |
+ ${{ matrix.python-version }}-v1-
+
+ - name: Install dependencies
+ run: |
+ python -m pip install --upgrade pip
+ python -m pip install --upgrade tox tox-gh-actions
+
+ - name: Tox tests
+ run: |
+ tox -v
+
+ - name: Upload coverage
+ uses: codecov/codecov-action@v1
+ with:
+ name: Python ${{ matrix.python-version }}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/django-formtools-2.2/.gitignore
new/django-formtools-2.3/.gitignore
--- old/django-formtools-2.2/.gitignore 1970-01-01 01:00:00.000000000 +0100
+++ new/django-formtools-2.3/.gitignore 2021-04-19 01:00:34.000000000 +0200
@@ -0,0 +1,11 @@
+*.pyc
+.*.swp
+MANIFEST
+build
+dist
+*.egg-info
+docs/_build
+.tox/
+*.egg/
+.coverage
+coverage.xml
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/django-formtools-2.2/.tx/config
new/django-formtools-2.3/.tx/config
--- old/django-formtools-2.2/.tx/config 1970-01-01 01:00:00.000000000 +0100
+++ new/django-formtools-2.3/.tx/config 2021-04-19 01:00:34.000000000 +0200
@@ -0,0 +1,8 @@
+[main]
+host = https://www.transifex.com
+lang_map = sr@latin:sr_Latn, zh_CN:zh_Hans, zh_TW:zh_Hant
+
+[django-formtools.main]
+file_filter = formtools/locale/<lang>/LC_MESSAGES/django.po
+source_file = formtools/locale/en/LC_MESSAGES/django.po
+source_lang = en
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/django-formtools-2.2/MANIFEST.in
new/django-formtools-2.3/MANIFEST.in
--- old/django-formtools-2.2/MANIFEST.in 2015-06-16 12:54:37.000000000
+0200
+++ new/django-formtools-2.3/MANIFEST.in 2021-04-19 01:00:34.000000000
+0200
@@ -5,5 +5,6 @@
include tox.ini
include .coveragerc
recursive-include formtools/locale *.po *.mo
+recursive-include formtools/templates *.html
recursive-include docs *
recursive-include tests *
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/django-formtools-2.2/Makefile
new/django-formtools-2.3/Makefile
--- old/django-formtools-2.2/Makefile 1970-01-01 01:00:00.000000000 +0100
+++ new/django-formtools-2.3/Makefile 2021-04-19 01:00:34.000000000 +0200
@@ -0,0 +1,29 @@
+export DJANGO_SETTINGS_MODULE = tests.settings
+export PYTHONPATH := $(shell pwd)
+
+clean:
+ git clean -Xfd
+
+maketranslations:
+ cd formtools; django-admin.py makemessages -a -v2
+
+pulltranslations:
+ tx pull -f -a --minimum-perc=1
+
+compiletranslations:
+ cd formtools; django-admin.py compilemessages
+
+translations: pulltranslations maketranslations compiletranslations
+ @echo "Pulling, making and compiling translations"
+
+docs:
+ $(MAKE) -C docs clean html
+
+test:
+ @flake8
+ @isort --check-only --diff formtools tests
+ @ coverage run `which django-admin` test tests
+ @coverage report
+ @coverage xml
+
+.PHONY: clean docs test maketranslations pulltranslations compiletranslations
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/django-formtools-2.2/PKG-INFO
new/django-formtools-2.3/PKG-INFO
--- old/django-formtools-2.2/PKG-INFO 2019-12-05 18:01:04.000000000 +0100
+++ new/django-formtools-2.3/PKG-INFO 2021-04-19 01:00:45.920318000 +0200
@@ -1,6 +1,6 @@
-Metadata-Version: 1.1
+Metadata-Version: 2.1
Name: django-formtools
-Version: 2.2
+Version: 2.3
Summary: A set of high-level abstractions for Django forms
Home-page: https://django-formtools.readthedocs.io/en/latest/
Author: Django Software Foundation
@@ -22,13 +22,13 @@
:alt: Supported Python versions
:target: https://pypi.org/project/django-formtools/
- .. image::
https://img.shields.io/travis/jazzband/django-formtools/master.svg
- :alt: TravisCI Build Status
- :target: https://travis-ci.org/jazzband/django-formtools
-
- .. image::
https://img.shields.io/coveralls/jazzband/django-formtools/master.svg
- :alt: Coveralls Test Coverage
- :target:
https://coveralls.io/r/jazzband/django-formtools?branch=master
+ .. image::
https://github.com/jazzband/django-formtools/workflows/Test/badge.svg
+ :target: https://github.com/jazzband/django-formtools/actions
+ :alt: GitHub Actions
+
+ .. image::
https://codecov.io/gh/jazzband/django-formtools/branch/master/graph/badge.svg
+ :target: https://codecov.io/gh/jazzband/django-formtools
+ :alt: Test Coverage
Django's "formtools" is a set of high-level abstractions for Django
forms.
Currently for form previews and multi-step forms.
@@ -73,12 +73,12 @@
$ tox -l
...
- py35-django-AB
- py35-django-master
+ py38-django-AB
+ py38-django-master
You can run each environment with the ``-e`` option::
- $ tox -e py35-django-AB # runs the tests only on Python 3.5 and
Django A.B.x
+ $ tox -e py38-django-AB # runs the tests only on Python 3.5 and
Django A.B.x
Optionally you can also specify a country whose tests you want to run::
@@ -86,7 +86,7 @@
And combine both options::
- $ COUNTRY=us tox -e py35-django-AB
+ $ COUNTRY=us tox -e py38-django-AB
__ https://tox.readthedocs.io/en/latest/install.html
@@ -94,18 +94,19 @@
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.1
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.4
-Classifier: Programming Language :: Python :: 3.5
+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 -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/django-formtools-2.2/README.rst
new/django-formtools-2.3/README.rst
--- old/django-formtools-2.2/README.rst 2019-12-05 17:16:53.000000000 +0100
+++ new/django-formtools-2.3/README.rst 2021-04-19 01:00:34.000000000 +0200
@@ -14,13 +14,13 @@
:alt: Supported Python versions
:target: https://pypi.org/project/django-formtools/
-.. image:: https://img.shields.io/travis/jazzband/django-formtools/master.svg
- :alt: TravisCI Build Status
- :target: https://travis-ci.org/jazzband/django-formtools
-
-.. image::
https://img.shields.io/coveralls/jazzband/django-formtools/master.svg
- :alt: Coveralls Test Coverage
- :target: https://coveralls.io/r/jazzband/django-formtools?branch=master
+.. image::
https://github.com/jazzband/django-formtools/workflows/Test/badge.svg
+ :target: https://github.com/jazzband/django-formtools/actions
+ :alt: GitHub Actions
+
+.. image::
https://codecov.io/gh/jazzband/django-formtools/branch/master/graph/badge.svg
+ :target: https://codecov.io/gh/jazzband/django-formtools
+ :alt: Test Coverage
Django's "formtools" is a set of high-level abstractions for Django forms.
Currently for form previews and multi-step forms.
@@ -65,12 +65,12 @@
$ tox -l
...
- py35-django-AB
- py35-django-master
+ py38-django-AB
+ py38-django-master
You can run each environment with the ``-e`` option::
- $ tox -e py35-django-AB # runs the tests only on Python 3.5 and Django
A.B.x
+ $ tox -e py38-django-AB # runs the tests only on Python 3.5 and Django
A.B.x
Optionally you can also specify a country whose tests you want to run::
@@ -78,6 +78,6 @@
And combine both options::
- $ COUNTRY=us tox -e py35-django-AB
+ $ COUNTRY=us tox -e py38-django-AB
__ https://tox.readthedocs.io/en/latest/install.html
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/django-formtools-2.2/django_formtools.egg-info/PKG-INFO
new/django-formtools-2.3/django_formtools.egg-info/PKG-INFO
--- old/django-formtools-2.2/django_formtools.egg-info/PKG-INFO 2019-12-05
18:01:03.000000000 +0100
+++ new/django-formtools-2.3/django_formtools.egg-info/PKG-INFO 2021-04-19
01:00:45.000000000 +0200
@@ -1,6 +1,6 @@
-Metadata-Version: 1.1
+Metadata-Version: 2.1
Name: django-formtools
-Version: 2.2
+Version: 2.3
Summary: A set of high-level abstractions for Django forms
Home-page: https://django-formtools.readthedocs.io/en/latest/
Author: Django Software Foundation
@@ -22,13 +22,13 @@
:alt: Supported Python versions
:target: https://pypi.org/project/django-formtools/
- .. image::
https://img.shields.io/travis/jazzband/django-formtools/master.svg
- :alt: TravisCI Build Status
- :target: https://travis-ci.org/jazzband/django-formtools
-
- .. image::
https://img.shields.io/coveralls/jazzband/django-formtools/master.svg
- :alt: Coveralls Test Coverage
- :target:
https://coveralls.io/r/jazzband/django-formtools?branch=master
+ .. image::
https://github.com/jazzband/django-formtools/workflows/Test/badge.svg
+ :target: https://github.com/jazzband/django-formtools/actions
+ :alt: GitHub Actions
+
+ .. image::
https://codecov.io/gh/jazzband/django-formtools/branch/master/graph/badge.svg
+ :target: https://codecov.io/gh/jazzband/django-formtools
+ :alt: Test Coverage
Django's "formtools" is a set of high-level abstractions for Django
forms.
Currently for form previews and multi-step forms.
@@ -73,12 +73,12 @@
$ tox -l
...
- py35-django-AB
- py35-django-master
+ py38-django-AB
+ py38-django-master
You can run each environment with the ``-e`` option::
- $ tox -e py35-django-AB # runs the tests only on Python 3.5 and
Django A.B.x
+ $ tox -e py38-django-AB # runs the tests only on Python 3.5 and
Django A.B.x
Optionally you can also specify a country whose tests you want to run::
@@ -86,7 +86,7 @@
And combine both options::
- $ COUNTRY=us tox -e py35-django-AB
+ $ COUNTRY=us tox -e py38-django-AB
__ https://tox.readthedocs.io/en/latest/install.html
@@ -94,18 +94,19 @@
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.1
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.4
-Classifier: Programming Language :: Python :: 3.5
+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 -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/django-formtools-2.2/django_formtools.egg-info/SOURCES.txt
new/django-formtools-2.3/django_formtools.egg-info/SOURCES.txt
--- old/django-formtools-2.2/django_formtools.egg-info/SOURCES.txt
2019-12-05 18:01:03.000000000 +0100
+++ new/django-formtools-2.3/django_formtools.egg-info/SOURCES.txt
2021-04-19 01:00:45.000000000 +0200
@@ -1,12 +1,18 @@
.coveragerc
+.editorconfig
+.gitignore
AUTHORS.rst
CONTRIBUTING.rst
LICENSE
MANIFEST.in
+Makefile
README.rst
setup.cfg
setup.py
tox.ini
+.github/workflows/release.yml
+.github/workflows/test.yml
+.tx/config
django_formtools.egg-info/PKG-INFO
django_formtools.egg-info/SOURCES.txt
django_formtools.egg-info/dependency_links.txt
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/django-formtools-2.2/django_formtools.egg-info/requires.txt
new/django-formtools-2.3/django_formtools.egg-info/requires.txt
--- old/django-formtools-2.2/django_formtools.egg-info/requires.txt
2019-12-05 18:01:03.000000000 +0100
+++ new/django-formtools-2.3/django_formtools.egg-info/requires.txt
2021-04-19 01:00:45.000000000 +0200
@@ -1 +1 @@
-Django>=1.11
+Django>=2.2
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/django-formtools-2.2/docs/changelog.rst
new/django-formtools-2.3/docs/changelog.rst
--- old/django-formtools-2.2/docs/changelog.rst 2019-12-05 17:58:37.000000000
+0100
+++ new/django-formtools-2.3/docs/changelog.rst 2021-04-19 01:00:34.000000000
+0200
@@ -3,6 +3,19 @@
This page details the changes in the various ``django-formtools`` releases.
+2.3 (2021-04-18)
+----------------
+
+- Dropped testing for Django 1.11, 2.0 and 2.1.
+
+- Added support for Django 3.1 and Python 3.9.
+
+- Added support for Django 3.2.
+
+- Dropped support for Django 3.0.
+
+- Dropped support for Python 3.5.
+
2.2 (2019-12-05)
----------------
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/django-formtools-2.2/docs/preview.rst
new/django-formtools-2.3/docs/preview.rst
--- old/django-formtools-2.2/docs/preview.rst 2016-05-28 18:02:17.000000000
+0200
+++ new/django-formtools-2.3/docs/preview.rst 2021-04-19 01:00:34.000000000
+0200
@@ -15,6 +15,9 @@
To force a preview of a form submission, all you have to do is write a short
Python class.
+.. note::
+ Form preview doesn't work with file uploads.
+
Overview
=========
@@ -84,7 +87,7 @@
...and add the following line to the appropriate model in your URLconf::
- url(r'^post/$', SomeModelFormPreview(SomeModelForm)),
+ path('post/', SomeModelFormPreview(SomeModelForm)),
where ``SomeModelForm`` is a Form or ModelForm class for the model.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/django-formtools-2.2/docs/wizard.rst
new/django-formtools-2.3/docs/wizard.rst
--- old/django-formtools-2.2/docs/wizard.rst 2019-12-05 17:16:53.000000000
+0100
+++ new/django-formtools-2.3/docs/wizard.rst 2021-04-19 01:00:34.000000000
+0200
@@ -250,13 +250,13 @@
wizard's ``as_view()`` method takes a list of your
:class:`~django.forms.Form` classes as an argument during instantiation::
- from django.conf.urls import url
+ from django.path import path
from myapp.forms import ContactForm1, ContactForm2
from myapp.views import ContactWizard
urlpatterns = [
- url(r'^contact/$', ContactWizard.as_view([ContactForm1,
ContactForm2])),
+ path('contact/', ContactWizard.as_view([ContactForm1, ContactForm2])),
]
You can also pass the form list as a class attribute named ``form_list``::
@@ -311,7 +311,7 @@
The ``urls.py`` file would contain something like::
urlpatterns = [
- url(r'^checkout/$', OrderWizard.as_view(FORMS, condition_dict={'cc':
pay_by_credit_card})),
+ path('checkout/', OrderWizard.as_view(FORMS, condition_dict={'cc':
pay_by_credit_card})),
]
The ``condition_dict`` can be passed as attribute for the ``as_view()``
@@ -681,7 +681,7 @@
We need to add the ``ContactWizard`` to our ``urls.py`` file::
- from django.conf.urls import url
+ from django.urls import path
from myapp.forms import ContactForm1, ContactForm2
from myapp.views import ContactWizard, show_message_form_condition
@@ -689,7 +689,7 @@
contact_forms = [ContactForm1, ContactForm2]
urlpatterns = [
- url(r'^contact/$', ContactWizard.as_view(contact_forms,
+ path('contact/', ContactWizard.as_view(contact_forms,
condition_dict={'1': show_message_form_condition}
)),
]
@@ -734,7 +734,7 @@
This is an example of a ``urls.py`` for a contact wizard with two steps, step
1 named
``contactdata`` and step 2 named ``leavemessage``::
- from django.conf.urls import url
+ from django.urls import path, re_path
from myapp.forms import ContactForm1, ContactForm2
from myapp.views import ContactWizard
@@ -748,8 +748,8 @@
url_name='contact_step', done_step_name='finished')
urlpatterns = [
- url(r'^contact/(?P<step>.+)/$', contact_wizard, name='contact_step'),
- url(r'^contact/$', contact_wizard, name='contact'),
+ re_path(r'^contact/(?P<step>.+)/$', contact_wizard,
name='contact_step'),
+ path('contact/', contact_wizard, name='contact'),
]
Advanced ``NamedUrlWizardView`` methods
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/django-formtools-2.2/formtools/__init__.py
new/django-formtools-2.3/formtools/__init__.py
--- old/django-formtools-2.2/formtools/__init__.py 2019-12-05
17:16:53.000000000 +0100
+++ new/django-formtools-2.3/formtools/__init__.py 2021-04-19
01:00:34.000000000 +0200
@@ -1,3 +1,11 @@
-__version__ = '2.2'
+import django
+from pkg_resources import DistributionNotFound, get_distribution
-default_app_config = 'formtools.apps.FormToolsConfig'
+try:
+ __version__ = get_distribution("django-formtools").version
+except DistributionNotFound:
+ # package is not installed
+ __version__ = None
+
+if django.VERSION <= (3, 2):
+ default_app_config = 'formtools.apps.FormToolsConfig'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/django-formtools-2.2/formtools/wizard/views.py
new/django-formtools-2.3/formtools/wizard/views.py
--- old/django-formtools-2.2/formtools/wizard/views.py 2019-12-05
17:16:53.000000000 +0100
+++ new/django-formtools-2.3/formtools/wizard/views.py 2021-04-19
01:00:34.000000000 +0200
@@ -355,7 +355,7 @@
# render the done view and reset the wizard before returning the
# response. This is needed to prevent from rendering done with the
# same data twice.
- done_response = self.done(final_forms.values(), form_dict=final_forms,
**kwargs)
+ done_response = self.done(list(final_forms.values()),
form_dict=final_forms, **kwargs)
self.storage.reset()
return done_response
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/django-formtools-2.2/setup.cfg
new/django-formtools-2.3/setup.cfg
--- old/django-formtools-2.2/setup.cfg 2019-12-05 18:01:04.000000000 +0100
+++ new/django-formtools-2.3/setup.cfg 2021-04-19 01:00:45.920318000 +0200
@@ -8,14 +8,10 @@
known_first_party = formtools
line_length = 79
multi_line_output = 5
-not_skip = __init__.py
[metadata]
license-file = LICENSE
-[wheel]
-universal = 1
-
[egg_info]
tag_build =
tag_date = 0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/django-formtools-2.2/setup.py
new/django-formtools-2.3/setup.py
--- old/django-formtools-2.2/setup.py 2019-12-05 17:16:53.000000000 +0100
+++ new/django-formtools-2.3/setup.py 2021-04-19 01:00:34.000000000 +0200
@@ -1,144 +1,46 @@
-import codecs
import os
-import re
-import sys
-from distutils.util import convert_path
-from fnmatch import fnmatchcase
-
from setuptools import find_packages, setup
def read(*parts):
filename = os.path.join(os.path.dirname(__file__), *parts)
- with codecs.open(filename, encoding='utf-8') as fp:
+ with open(filename, encoding="utf-8") as fp:
return fp.read()
-def find_version(*file_paths):
- version_file = read(*file_paths)
- version_match = re.search(r"^__version__ = ['\"]([^'\"]*)['\"]",
- version_file, re.M)
- if version_match:
- return version_match.group(1)
- raise RuntimeError("Unable to find version string.")
-
-
-# Provided as an attribute, so you can append to these instead
-# of replicating them:
-standard_exclude = ('*.py', '*.pyc', '*$py.class', '*~', '.*', '*.bak')
-standard_exclude_directories = ('.*', 'CVS', '_darcs', './build',
- './dist', 'EGG-INFO', '*.egg-info')
-
-
-# (c) 2005 Ian Bicking and contributors; written for Paste
(http://pythonpaste.org)
-# Licensed under the MIT license:
http://www.opensource.org/licenses/mit-license.php
-# Note: you may want to copy this into your setup.py file verbatim, as
-# you can't import this from another package, when you don't know if
-# that package is installed yet.
-def find_package_data(where='.', package='',
- exclude=standard_exclude,
- exclude_directories=standard_exclude_directories,
- only_in_packages=True,
- show_ignored=False):
- """
- Return a dictionary suitable for use in ``package_data``
- in a distutils ``setup.py`` file.
-
- The dictionary looks like::
-
- {'package': [files]}
-
- Where ``files`` is a list of all the files in that package that
- don't match anything in ``exclude``.
-
- If ``only_in_packages`` is true, then top-level directories that
- are not packages won't be included (but directories under packages
- will).
-
- Directories matching any pattern in ``exclude_directories`` will
- be ignored; by default directories with leading ``.``, ``CVS``,
- and ``_darcs`` will be ignored.
-
- If ``show_ignored`` is true, then all the files that aren't
- included in package data are shown on stderr (for debugging
- purposes).
-
- Note patterns use wildcards, or can be exact paths (including
- leading ``./``), and all searching is case-insensitive.
- """
-
- out = {}
- stack = [(convert_path(where), '', package, only_in_packages)]
- while stack:
- where, prefix, package, only_in_packages = stack.pop(0)
- for name in os.listdir(where):
- fn = os.path.join(where, name)
- if os.path.isdir(fn):
- bad_name = False
- for pattern in exclude_directories:
- if (fnmatchcase(name, pattern) or fn.lower() ==
pattern.lower()):
- bad_name = True
- if show_ignored:
- print("Directory %s ignored by pattern %s" % (fn,
pattern),
- file=sys.stderr)
- break
- if bad_name:
- continue
- if (os.path.isfile(os.path.join(fn, '__init__.py')) and not
prefix):
- if not package:
- new_package = name
- else:
- new_package = package + '.' + name
- stack.append((fn, '', new_package, False))
- else:
- stack.append((fn, prefix + name + '/', package,
only_in_packages))
- elif package or not only_in_packages:
- # is a file
- bad_name = False
- for pattern in exclude:
- if (fnmatchcase(name, pattern) or fn.lower() ==
pattern.lower()):
- bad_name = True
- if show_ignored:
- print("File %s ignored by pattern %s" % (fn,
pattern),
- file=sys.stderr)
- break
- if bad_name:
- continue
- out.setdefault(package, []).append(prefix + name)
- return out
-
-
setup(
name="django-formtools",
- version=find_version("formtools", "__init__.py"),
- url='https://django-formtools.readthedocs.io/en/latest/',
- license='BSD',
+ use_scm_version={"version_scheme": "post-release", "local_scheme":
"dirty-tag"},
+ setup_requires=["setuptools_scm"],
+ url="https://django-formtools.readthedocs.io/en/latest/",
+ license="BSD",
description="A set of high-level abstractions for Django forms",
- long_description=read('README.rst'),
- author='Django Software Foundation',
- author_email='[email protected]',
- packages=find_packages(exclude=['tests', 'tests.*']),
- package_data=find_package_data(),
- install_requires=['Django>=1.11'],
+ long_description=read("README.rst"),
+ long_description_content_type="text/x-rst",
+ author="Django Software Foundation",
+ author_email="[email protected]",
+ packages=find_packages(exclude=["tests", "tests.*"]),
+ include_package_data=True,
+ install_requires=["Django>=2.2"],
+ python_requires=">=3.6",
classifiers=[
- 'Development Status :: 5 - Production/Stable',
- 'Environment :: Web Environment',
- 'Framework :: Django',
- 'Framework :: Django :: 1.11',
- 'Framework :: Django :: 2.0',
- 'Framework :: Django :: 2.1',
- 'Framework :: Django :: 2.2',
- 'Framework :: Django :: 3.0',
- 'Intended Audience :: Developers',
- 'License :: OSI Approved :: BSD License',
- 'Operating System :: OS Independent',
- 'Programming Language :: Python',
- 'Programming Language :: Python :: 3',
- 'Programming Language :: Python :: 3.4',
- 'Programming Language :: Python :: 3.5',
- 'Programming Language :: Python :: 3.6',
- 'Programming Language :: Python :: 3.7',
- 'Topic :: Internet :: WWW/HTTP',
+ "Development Status :: 5 - Production/Stable",
+ "Environment :: Web Environment",
+ "Framework :: Django",
+ "Framework :: Django :: 2.2",
+ "Framework :: Django :: 3.1",
+ "Framework :: Django :: 3.2",
+ "Intended Audience :: Developers",
+ "License :: OSI Approved :: BSD License",
+ "Operating System :: OS Independent",
+ "Programming Language :: Python",
+ "Programming Language :: Python :: 3",
+ "Programming Language :: Python :: 3 :: Only",
+ "Programming Language :: Python :: 3.6",
+ "Programming Language :: Python :: 3.7",
+ "Programming Language :: Python :: 3.8",
+ "Programming Language :: Python :: 3.9",
+ "Topic :: Internet :: WWW/HTTP",
],
zip_safe=False,
)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/django-formtools-2.2/tests/requirements.txt
new/django-formtools-2.3/tests/requirements.txt
--- old/django-formtools-2.2/tests/requirements.txt 2017-02-03
15:22:49.000000000 +0100
+++ new/django-formtools-2.3/tests/requirements.txt 2021-04-19
01:00:34.000000000 +0200
@@ -1,3 +1,3 @@
-coverage==3.7.1
+coverage==4.5.4
flake8
isort
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/django-formtools-2.2/tests/settings.py
new/django-formtools-2.3/tests/settings.py
--- old/django-formtools-2.2/tests/settings.py 2019-12-05 17:16:53.000000000
+0100
+++ new/django-formtools-2.3/tests/settings.py 2021-04-19 01:00:34.000000000
+0200
@@ -38,3 +38,5 @@
MEDIA_ROOT = 'media'
STATIC_ROOT = 'static'
+
+DEFAULT_AUTO_FIELD = 'django.db.models.AutoField'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/django-formtools-2.2/tests/urls.py
new/django-formtools-2.3/tests/urls.py
--- old/django-formtools-2.2/tests/urls.py 2017-02-03 15:06:30.000000000
+0100
+++ new/django-formtools-2.3/tests/urls.py 2021-04-19 01:00:34.000000000
+0200
@@ -2,11 +2,11 @@
This is a URLconf to be loaded by tests.py. Add any URLs needed for tests only.
"""
-from django.conf.urls import url
+from django.urls import path
from .forms import TestForm
from .tests import TestFormPreview
urlpatterns = [
- url(r'^preview/', TestFormPreview(TestForm)),
+ path('preview/', TestFormPreview(TestForm)),
]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/django-formtools-2.2/tests/wizard/namedwizardtests/urls.py
new/django-formtools-2.3/tests/wizard/namedwizardtests/urls.py
--- old/django-formtools-2.2/tests/wizard/namedwizardtests/urls.py
2017-10-30 19:07:03.000000000 +0100
+++ new/django-formtools-2.3/tests/wizard/namedwizardtests/urls.py
2021-04-19 01:00:34.000000000 +0200
@@ -1,4 +1,4 @@
-from django.conf.urls import url
+from django.urls import path, re_path
from .forms import (
CookieContactWizard, Page1, Page2, Page3, Page4, SessionContactWizard,
@@ -22,8 +22,8 @@
urlpatterns = [
- url(r'^nwiz_session/(?P<step>.+)/$', get_named_session_wizard(),
name='nwiz_session'),
- url(r'^nwiz_session/$', get_named_session_wizard(),
name='nwiz_session_start'),
- url(r'^nwiz_cookie/(?P<step>.+)/$', get_named_cookie_wizard(),
name='nwiz_cookie'),
- url(r'^nwiz_cookie/$', get_named_cookie_wizard(),
name='nwiz_cookie_start'),
+ re_path(r'^nwiz_session/(?P<step>.+)/$', get_named_session_wizard(),
name='nwiz_session'),
+ path('nwiz_session/', get_named_session_wizard(),
name='nwiz_session_start'),
+ re_path(r'nwiz_cookie/(?P<step>.+)/$', get_named_cookie_wizard(),
name='nwiz_cookie'),
+ path('nwiz_cookie/', get_named_cookie_wizard(), name='nwiz_cookie_start'),
]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/django-formtools-2.2/tests/wizard/test_forms.py
new/django-formtools-2.3/tests/wizard/test_forms.py
--- old/django-formtools-2.2/tests/wizard/test_forms.py 2019-12-05
17:16:53.000000000 +0100
+++ new/django-formtools-2.3/tests/wizard/test_forms.py 2021-04-19
01:00:34.000000000 +0200
@@ -85,6 +85,12 @@
instance_dict = {'start': User()}
+class TestWizardWithTypeCheck(TestWizard):
+ def done(self, form_list, **kwargs):
+ assert type(form_list) is list, "`form_list` was {}, should be a
list".format(type(form_list))
+ return http.HttpResponse("All good")
+
+
class FormTests(TestCase):
def test_form_init(self):
testform = TestWizard.get_initkwargs([Step1, Step2])
@@ -237,6 +243,12 @@
instance.render_done(None)
self.assertEqual(instance.storage.current_step, 'start')
+ def test_form_list_type(self):
+ request = get_request({'test_wizard_with_type_check-current_step':
'start', 'start-name': 'data1'})
+ testform = TestWizardWithTypeCheck.as_view([('start', Step1)])
+ response, instance = testform(request)
+ self.assertEqual(response.status_code, 200)
+
class SessionFormTests(TestCase):
def test_init(self):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/django-formtools-2.2/tests/wizard/wizardtests/urls.py
new/django-formtools-2.3/tests/wizard/wizardtests/urls.py
--- old/django-formtools-2.2/tests/wizard/wizardtests/urls.py 2017-02-03
15:06:30.000000000 +0100
+++ new/django-formtools-2.3/tests/wizard/wizardtests/urls.py 2021-04-19
01:00:34.000000000 +0200
@@ -1,21 +1,21 @@
-from django.conf.urls import url
+from django.urls import path
from .forms import (
CookieContactWizard, Page1, Page2, Page3, Page4, SessionContactWizard,
)
urlpatterns = [
- url(r'^wiz_session/$', SessionContactWizard.as_view(
+ path('wiz_session/', SessionContactWizard.as_view(
[('form1', Page1),
('form2', Page2),
('form3', Page3),
('form4', Page4)])),
- url(r'^wiz_cookie/$', CookieContactWizard.as_view(
+ path('wiz_cookie/', CookieContactWizard.as_view(
[('form1', Page1),
('form2', Page2),
('form3', Page3),
('form4', Page4)])),
- url(r'^wiz_other_template/$', CookieContactWizard.as_view(
+ path('wiz_other_template/', CookieContactWizard.as_view(
[('form1', Page1),
('form2', Page2),
('form3', Page3),
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/django-formtools-2.2/tox.ini
new/django-formtools-2.3/tox.ini
--- old/django-formtools-2.2/tox.ini 2019-12-05 17:16:53.000000000 +0100
+++ new/django-formtools-2.3/tox.ini 2021-04-19 01:00:34.000000000 +0200
@@ -1,25 +1,28 @@
[tox]
args_are_paths = false
envlist =
- py34-django-{111,20}
- {py35,py36,py37}-django-{111,20,21,22}
- {py36,py37}-django-{30,master}
+ py{36,37,38,39}-django{22,31,32}
+ py{38,39}-djangomain
[testenv]
-basepython =
- py34: python3.4
- py35: python3.5
- py36: python3.6
- py37: python3.7
usedevelop = true
-whitelist_externals = make
+allowlist_externals = make
commands = make test
pip_pre = true
deps =
- django-111: Django>=1.11a1,<2.0
- django-20: Django>=2.0a1,<2.1
- django-21: Django>=2.1a1,<2.2
- django-22: Django>=2.2a1,<3.0
- django-30: Django>=3.0a1,<3.1
- django-master: https://github.com/django/django/archive/master.tar.gz
+ django22: Django>=2.2,<3.0
+ django31: Django>=3.1,<3.2
+ django32: Django>=3.2,<4.0
+ djangomain: https://github.com/django/django/archive/main.tar.gz
-r{toxinidir}/tests/requirements.txt
+ignore_outcome =
+ djmain: True
+ignore_errors =
+ djmain: True
+
+[gh-actions]
+python =
+ 3.6: py36
+ 3.7: py37
+ 3.8: py38
+ 3.9: py39