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 2026-03-29 20:00:58
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-django-formtools (Old)
 and      /work/SRC/openSUSE:Factory/.python-django-formtools.new.8177 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "python-django-formtools"

Sun Mar 29 20:00:58 2026 rev:12 rq:1343414 version:2.5.1

Changes:
--------
--- 
/work/SRC/openSUSE:Factory/python-django-formtools/python-django-formtools.changes
  2025-06-03 17:53:51.414395340 +0200
+++ 
/work/SRC/openSUSE:Factory/.python-django-formtools.new.8177/python-django-formtools.changes
        2026-03-29 20:01:23.179147649 +0200
@@ -1,0 +2,14 @@
+Sun Mar 29 10:41:10 UTC 2026 - Dirk Müller <[email protected]>
+
+- update to 2.5.1:
+  * Version 2.5 was never released on PyPi due to a
+    pyproject.toml misconfiguration.
+  * Confirmed support for Python 3.12 and Django 5.0.
+  * Replaced deprecated pkg_resources usage by
+    importlib.metadata.
+  * Applied PEP 621 (replaced setup.py with pyproject.toml).
+  * Removed Python 3.7 support.
+  * Updated translations (Galician, Portuguese, Slovenian,
+    Serbian).
+
+-------------------------------------------------------------------

Old:
----
  django-formtools-2.4.1.tar.gz

New:
----
  django-formtools-2.5.1.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ python-django-formtools.spec ++++++
--- /var/tmp/diff_new_pack.Rw8DX7/_old  2026-03-29 20:01:24.675209286 +0200
+++ /var/tmp/diff_new_pack.Rw8DX7/_new  2026-03-29 20:01:24.691209945 +0200
@@ -1,7 +1,7 @@
 #
 # spec file for package python-django-formtools
 #
-# Copyright (c) 2025 SUSE LLC
+# Copyright (c) 2026 SUSE LLC and contributors
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -18,7 +18,7 @@
 
 %{?sle15_python_module_pythons}
 Name:           python-django-formtools
-Version:        2.4.1
+Version:        2.5.1
 Release:        0
 Summary:        A set of high-level abstractions for Django forms
 License:        BSD-3-Clause
@@ -47,6 +47,7 @@
 %install
 %pyproject_install
 %python_expand %fdupes %{buildroot}%{$python_sitelib}
+%python_expand rm -rf %{buildroot}%{$python_sitelib}/tests
 
 %check
 export DJANGO_SETTINGS_MODULE=tests.settings

++++++ django-formtools-2.4.1.tar.gz -> django-formtools-2.5.1.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/django-formtools-2.4.1/.flake8 
new/django-formtools-2.5.1/.flake8
--- old/django-formtools-2.4.1/.flake8  1970-01-01 01:00:00.000000000 +0100
+++ new/django-formtools-2.5.1/.flake8  2023-12-19 11:28:13.000000000 +0100
@@ -0,0 +1,2 @@
+[flake8]
+max-line-length = 119
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/django-formtools-2.4.1/.github/workflows/release.yml 
new/django-formtools-2.5.1/.github/workflows/release.yml
--- old/django-formtools-2.4.1/.github/workflows/release.yml    2023-05-13 
14:49:41.000000000 +0200
+++ new/django-formtools-2.5.1/.github/workflows/release.yml    2023-12-19 
11:28:13.000000000 +0100
@@ -11,24 +11,24 @@
     runs-on: ubuntu-latest
 
     steps:
-      - uses: actions/checkout@v3
+      - uses: actions/checkout@v4
         with:
           fetch-depth: 0
 
       - name: Set up Python
-        uses: actions/setup-python@v3
+        uses: actions/setup-python@v4
         with:
           python-version: 3.8
 
       - name: Install dependencies
         run: |
-          python -m pip install -U pip
-          python -m pip install -U setuptools twine wheel
+          python -m pip install --upgrade pip
+          python -m pip install --upgrade build setuptools twine wheel
 
       - name: Build package
         run: |
-          python setup.py --version
-          python setup.py sdist --format=gztar bdist_wheel
+          python -m build --version
+          python -m build
           twine check dist/*
 
       - name: Upload packages to Jazzband
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/django-formtools-2.4.1/.github/workflows/test.yml 
new/django-formtools-2.5.1/.github/workflows/test.yml
--- old/django-formtools-2.4.1/.github/workflows/test.yml       2023-05-13 
14:49:41.000000000 +0200
+++ new/django-formtools-2.5.1/.github/workflows/test.yml       2023-12-19 
11:28:13.000000000 +0100
@@ -9,10 +9,15 @@
       fail-fast: false
       max-parallel: 5
       matrix:
-        python-version: ['3.7', '3.8', '3.9', '3.10', '3.11']
+        python-version:
+        - '3.8'
+        - '3.9'
+        - '3.10'
+        - '3.11'
+        - '3.12'
 
     steps:
-    - uses: actions/checkout@v3
+    - uses: actions/checkout@v4
 
     - name: Set up Python ${{ matrix.python-version }}
       uses: actions/setup-python@v4
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/django-formtools-2.4.1/.pre-commit-config.yaml 
new/django-formtools-2.5.1/.pre-commit-config.yaml
--- old/django-formtools-2.4.1/.pre-commit-config.yaml  2023-05-13 
14:49:41.000000000 +0200
+++ new/django-formtools-2.5.1/.pre-commit-config.yaml  2023-12-19 
11:28:13.000000000 +0100
@@ -1 +1,33 @@
-repos: []
+# To enable this pre-commit hook run:
+# `pip install pre-commit` or `brew install pre-commit`
+# Then run `pre-commit install`
+
+# Learn more about this config here: https://pre-commit.com
+
+repos:
+  - repo: https://github.com/pre-commit/pre-commit-hooks
+    rev: v4.5.0
+    hooks:
+      - id: check-toml
+      - id: check-yaml
+      - id: detect-private-key
+      - id: end-of-file-fixer
+      - id: mixed-line-ending
+      - id: requirements-txt-fixer
+
+  - repo: https://github.com/astral-sh/ruff-pre-commit
+    rev: v0.1.6
+    hooks:
+      - id: ruff  # See pyproject.toml for args
+
+  - repo: https://github.com/codespell-project/codespell
+    rev: v2.2.6
+    hooks:
+      - id: codespell  # See pyproject.toml for args
+        additional_dependencies:
+          - tomli
+
+  - repo: https://github.com/abravalheri/validate-pyproject
+    rev: v0.15
+    hooks:
+      - id: validate-pyproject
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/django-formtools-2.4.1/.tx/config 
new/django-formtools-2.5.1/.tx/config
--- old/django-formtools-2.4.1/.tx/config       2023-05-13 14:49:41.000000000 
+0200
+++ new/django-formtools-2.5.1/.tx/config       2023-12-19 11:28:13.000000000 
+0100
@@ -1,8 +1,8 @@
 [main]
-host = https://www.transifex.com
-lang_map = sr@latin:sr_Latn, zh_CN:zh_Hans, zh_TW:zh_Hant
+host     = https://www.transifex.com
+lang_map = sr@latin: sr_Latn, zh_CN: zh_Hans, zh_TW: zh_Hant
 
-[django-formtools.main]
+[o:django:p:django-formtools:r: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.4.1/Makefile 
new/django-formtools-2.5.1/Makefile
--- old/django-formtools-2.4.1/Makefile 2023-05-13 14:49:41.000000000 +0200
+++ new/django-formtools-2.5.1/Makefile 2023-12-19 11:28:13.000000000 +0100
@@ -20,9 +20,9 @@
        $(MAKE) -C docs clean html
 
 test:
-       @flake8
+       @ruff .
        @isort --check-only --diff formtools tests
-       @ coverage run `which django-admin` test tests
+       @ python -W error::DeprecationWarning -W 
error::PendingDeprecationWarning -m coverage run `which django-admin` test tests
        @coverage report
        @coverage xml
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/django-formtools-2.4.1/PKG-INFO 
new/django-formtools-2.5.1/PKG-INFO
--- old/django-formtools-2.4.1/PKG-INFO 2023-05-13 14:49:58.502792800 +0200
+++ new/django-formtools-2.5.1/PKG-INFO 2023-12-19 11:28:27.569213200 +0100
@@ -1,11 +1,10 @@
 Metadata-Version: 2.1
 Name: django-formtools
-Version: 2.4.1
+Version: 2.5.1
 Summary: A set of high-level abstractions for Django forms
-Home-page: https://django-formtools.readthedocs.io/en/latest/
-Author: Django Software Foundation
-Author-email: [email protected]
+Author-email: Django Software Foundation <[email protected]>
 License: BSD
+Project-URL: Homepage, https://django-formtools.readthedocs.io/en/latest/
 Project-URL: Source, https://github.com/jazzband/django-formtools
 Classifier: Development Status :: 5 - Production/Stable
 Classifier: Environment :: Web Environment
@@ -14,21 +13,22 @@
 Classifier: Framework :: Django :: 4.0
 Classifier: Framework :: Django :: 4.1
 Classifier: Framework :: Django :: 4.2
+Classifier: Framework :: Django :: 5.0
 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.7
 Classifier: Programming Language :: Python :: 3.8
 Classifier: Programming Language :: Python :: 3.9
 Classifier: Programming Language :: Python :: 3.10
 Classifier: Programming Language :: Python :: 3.11
+Classifier: Programming Language :: Python :: 3.12
 Classifier: Topic :: Internet :: WWW/HTTP
-Requires-Python: >=3.7
+Requires-Python: >=3.8
 Description-Content-Type: text/x-rst
 License-File: LICENSE
+Requires-Dist: Django>=3.2
 
 ================
 django-formtools
@@ -69,8 +69,8 @@
 
 To get more help:
 
-* Join the #django channel on irc.freenode.net. Lots of helpful people hang out
-  there. Read the archives at https://botbot.me/freenode/django/.
+* Join the #django channel on irc.libera.chat. Lots of helpful people hang out
+  there.
 
 * Join the django-users mailing list, or read the archives, at
   https://groups.google.com/group/django-users.
@@ -104,12 +104,4 @@
 
     $ tox -e py310-djangoAB  # runs the tests only on Python 3.10 and Django 
A.B.x
 
-Optionally you can also specify a country whose tests you want to run::
-
-    $ COUNTRY=us tox
-
-And combine both options::
-
-    $ COUNTRY=us tox -e py310-djangoAB
-
 __ https://tox.readthedocs.io/en/latest/install.html
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/django-formtools-2.4.1/README.rst 
new/django-formtools-2.5.1/README.rst
--- old/django-formtools-2.4.1/README.rst       2023-05-13 14:49:41.000000000 
+0200
+++ new/django-formtools-2.5.1/README.rst       2023-12-19 11:28:13.000000000 
+0100
@@ -37,8 +37,8 @@
 
 To get more help:
 
-* Join the #django channel on irc.freenode.net. Lots of helpful people hang out
-  there. Read the archives at https://botbot.me/freenode/django/.
+* Join the #django channel on irc.libera.chat. Lots of helpful people hang out
+  there.
 
 * Join the django-users mailing list, or read the archives, at
   https://groups.google.com/group/django-users.
@@ -72,12 +72,4 @@
 
     $ tox -e py310-djangoAB  # runs the tests only on Python 3.10 and Django 
A.B.x
 
-Optionally you can also specify a country whose tests you want to run::
-
-    $ COUNTRY=us tox
-
-And combine both options::
-
-    $ COUNTRY=us tox -e py310-djangoAB
-
 __ https://tox.readthedocs.io/en/latest/install.html
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/django-formtools-2.4.1/django_formtools.egg-info/PKG-INFO 
new/django-formtools-2.5.1/django_formtools.egg-info/PKG-INFO
--- old/django-formtools-2.4.1/django_formtools.egg-info/PKG-INFO       
2023-05-13 14:49:58.000000000 +0200
+++ new/django-formtools-2.5.1/django_formtools.egg-info/PKG-INFO       
2023-12-19 11:28:27.000000000 +0100
@@ -1,11 +1,10 @@
 Metadata-Version: 2.1
 Name: django-formtools
-Version: 2.4.1
+Version: 2.5.1
 Summary: A set of high-level abstractions for Django forms
-Home-page: https://django-formtools.readthedocs.io/en/latest/
-Author: Django Software Foundation
-Author-email: [email protected]
+Author-email: Django Software Foundation <[email protected]>
 License: BSD
+Project-URL: Homepage, https://django-formtools.readthedocs.io/en/latest/
 Project-URL: Source, https://github.com/jazzband/django-formtools
 Classifier: Development Status :: 5 - Production/Stable
 Classifier: Environment :: Web Environment
@@ -14,21 +13,22 @@
 Classifier: Framework :: Django :: 4.0
 Classifier: Framework :: Django :: 4.1
 Classifier: Framework :: Django :: 4.2
+Classifier: Framework :: Django :: 5.0
 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.7
 Classifier: Programming Language :: Python :: 3.8
 Classifier: Programming Language :: Python :: 3.9
 Classifier: Programming Language :: Python :: 3.10
 Classifier: Programming Language :: Python :: 3.11
+Classifier: Programming Language :: Python :: 3.12
 Classifier: Topic :: Internet :: WWW/HTTP
-Requires-Python: >=3.7
+Requires-Python: >=3.8
 Description-Content-Type: text/x-rst
 License-File: LICENSE
+Requires-Dist: Django>=3.2
 
 ================
 django-formtools
@@ -69,8 +69,8 @@
 
 To get more help:
 
-* Join the #django channel on irc.freenode.net. Lots of helpful people hang out
-  there. Read the archives at https://botbot.me/freenode/django/.
+* Join the #django channel on irc.libera.chat. Lots of helpful people hang out
+  there.
 
 * Join the django-users mailing list, or read the archives, at
   https://groups.google.com/group/django-users.
@@ -104,12 +104,4 @@
 
     $ tox -e py310-djangoAB  # runs the tests only on Python 3.10 and Django 
A.B.x
 
-Optionally you can also specify a country whose tests you want to run::
-
-    $ COUNTRY=us tox
-
-And combine both options::
-
-    $ COUNTRY=us tox -e py310-djangoAB
-
 __ https://tox.readthedocs.io/en/latest/install.html
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/django-formtools-2.4.1/django_formtools.egg-info/SOURCES.txt 
new/django-formtools-2.5.1/django_formtools.egg-info/SOURCES.txt
--- old/django-formtools-2.4.1/django_formtools.egg-info/SOURCES.txt    
2023-05-13 14:49:58.000000000 +0200
+++ new/django-formtools-2.5.1/django_formtools.egg-info/SOURCES.txt    
2023-12-19 11:28:27.000000000 +0100
@@ -1,5 +1,6 @@
 .coveragerc
 .editorconfig
+.flake8
 .gitignore
 .pre-commit-config.yaml
 AUTHORS.rst
@@ -9,8 +10,7 @@
 MANIFEST.in
 Makefile
 README.rst
-setup.cfg
-setup.py
+pyproject.toml
 tox.ini
 .github/workflows/release.yml
 .github/workflows/test.yml
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/django-formtools-2.4.1/django_formtools.egg-info/top_level.txt 
new/django-formtools-2.5.1/django_formtools.egg-info/top_level.txt
--- old/django-formtools-2.4.1/django_formtools.egg-info/top_level.txt  
2023-05-13 14:49:58.000000000 +0200
+++ new/django-formtools-2.5.1/django_formtools.egg-info/top_level.txt  
2023-12-19 11:28:27.000000000 +0100
@@ -1 +1,2 @@
 formtools
+tests
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/django-formtools-2.4.1/docs/changelog.rst 
new/django-formtools-2.5.1/docs/changelog.rst
--- old/django-formtools-2.4.1/docs/changelog.rst       2023-05-13 
14:49:41.000000000 +0200
+++ new/django-formtools-2.5.1/docs/changelog.rst       2023-12-19 
11:28:13.000000000 +0100
@@ -3,6 +3,25 @@
 
 This page details the changes in the various ``django-formtools`` releases.
 
+2.5.1 (2023-12-19)
+------------------
+
+- Version 2.5 was never released on PyPi due to a pyproject.toml
+  misconfiguration.
+
+2.5 (2023-11-28)
+----------------
+
+- Confirmed support for Python 3.12 and Django 5.0.
+
+- Replaced deprecated pkg_resources usage by importlib.metadata.
+
+- Applied PEP 621 (replaced setup.py with pyproject.toml).
+
+- Removed Python 3.7 support.
+
+- Updated translations (Galician, Portuguese, Slovenian, Serbian).
+
 2.4.1 (2023-05-13)
 ------------------
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/django-formtools-2.4.1/docs/conf.py 
new/django-formtools-2.5.1/docs/conf.py
--- old/django-formtools-2.4.1/docs/conf.py     2023-05-13 14:49:41.000000000 
+0200
+++ new/django-formtools-2.5.1/docs/conf.py     2023-12-19 11:28:13.000000000 
+0100
@@ -289,7 +289,7 @@
 # The format is a list of tuples containing the path and title.
 # epub_pre_files = []
 
-# HTML files shat should be inserted after the pages created by sphinx.
+# HTML files that should be inserted after the pages created by sphinx.
 # The format is a list of tuples containing the path and title.
 # epub_post_files = []
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/django-formtools-2.4.1/docs/index.rst 
new/django-formtools-2.5.1/docs/index.rst
--- old/django-formtools-2.4.1/docs/index.rst   2023-05-13 14:49:41.000000000 
+0200
+++ new/django-formtools-2.5.1/docs/index.rst   2023-12-19 11:28:13.000000000 
+0100
@@ -27,7 +27,7 @@
 
 Or download the source distribution from PyPI_ at
 https://pypi.python.org/pypi/django-formtools, decompress the file and
-run ``python setup.py install`` in the unpacked directory.
+run ``pip install --editable .`` in the unpacked directory.
 
 Then add ``'formtools'`` to your :setting:`INSTALLED_APPS` setting::
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/django-formtools-2.4.1/docs/wizard.rst 
new/django-formtools-2.5.1/docs/wizard.rst
--- old/django-formtools-2.4.1/docs/wizard.rst  2023-05-13 14:49:41.000000000 
+0200
+++ new/django-formtools-2.5.1/docs/wizard.rst  2023-12-19 11:28:13.000000000 
+0100
@@ -226,8 +226,8 @@
     {% endif %}
     </table>
     {% if wizard.steps.prev %}
-    <button name="wizard_goto_step" type="submit" value="{{ wizard.steps.first 
}}">{% translate "first step" %}</button>
-    <button name="wizard_goto_step" type="submit" value="{{ wizard.steps.prev 
}}">{% translate "prev step" %}</button>
+    <button name="wizard_goto_step" type="submit" formnovalidate value="{{ 
wizard.steps.first }}">{% translate "first step" %}</button>
+    <button name="wizard_goto_step" type="submit" formnovalidate value="{{ 
wizard.steps.prev }}">{% translate "prev step" %}</button>
     {% endif %}
     <input type="submit" value="{% translate "submit" %}"/>
     </form>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/django-formtools-2.4.1/formtools/__init__.py 
new/django-formtools-2.5.1/formtools/__init__.py
--- old/django-formtools-2.4.1/formtools/__init__.py    2023-05-13 
14:49:41.000000000 +0200
+++ new/django-formtools-2.5.1/formtools/__init__.py    2023-12-19 
11:28:13.000000000 +0100
@@ -1,9 +1,10 @@
+from importlib.metadata import PackageNotFoundError, version
+
 import django
-from pkg_resources import DistributionNotFound, get_distribution
 
 try:
-    __version__ = get_distribution("django-formtools").version
-except DistributionNotFound:
+    __version__ = version("django-formtools")
+except PackageNotFoundError:
     # package is not installed
     __version__ = None
 
Binary files 
old/django-formtools-2.4.1/formtools/locale/gl/LC_MESSAGES/django.mo and 
new/django-formtools-2.5.1/formtools/locale/gl/LC_MESSAGES/django.mo differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/django-formtools-2.4.1/formtools/locale/gl/LC_MESSAGES/django.po 
new/django-formtools-2.5.1/formtools/locale/gl/LC_MESSAGES/django.po
--- old/django-formtools-2.4.1/formtools/locale/gl/LC_MESSAGES/django.po        
2023-05-13 14:49:41.000000000 +0200
+++ new/django-formtools-2.5.1/formtools/locale/gl/LC_MESSAGES/django.po        
2023-12-19 11:28:13.000000000 +0100
@@ -1,51 +1,51 @@
 # This file is distributed under the same license as the Django package.
-#
+# 
 # Translators:
 # fasouto <[email protected]>, 2011
 # fonso <[email protected]>, 2013
+# X Bello <[email protected]>, 2023
 msgid ""
 msgstr ""
 "Project-Id-Version: django-formtools\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2015-03-25 09:31-0500\n"
-"PO-Revision-Date: 2014-10-06 19:18+0000\n"
-"Last-Translator: Jannis Leidel <[email protected]>\n"
-"Language-Team: Galician (http://www.transifex.com/projects/p/django-";
-"formtools/language/gl/)\n"
-"Language: gl\n"
+"PO-Revision-Date: 2014-10-05 20:14+0000\n"
+"Last-Translator: X Bello <[email protected]>, 2023\n"
+"Language-Team: Galician 
(http://app.transifex.com/django/django-formtools/language/gl/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
+"Language: gl\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
 #: apps.py:7
 msgid "Form Tools"
-msgstr ""
+msgstr "Ferramentas de formularios"
 
 #: templates/formtools/form.html:6
 msgid "Please correct the following errors"
-msgstr ""
+msgstr "Por favor corrixa os seguintes erros"
 
 #: templates/formtools/form.html:6 templates/formtools/preview.html:24
 msgid "Submit"
-msgstr ""
+msgstr "Enviar"
 
 #: templates/formtools/form.html:13 templates/formtools/preview.html:34
 msgid "Preview"
-msgstr ""
+msgstr "Vista previa"
 
 #: templates/formtools/preview.html:6
 msgid "Preview your submission"
-msgstr ""
+msgstr "Vista previa do seu envío"
 
 #: templates/formtools/preview.html:17
 #, python-format
 msgid "Security hash: %(hash_value)s"
-msgstr ""
+msgstr "Hash de seguridade: %(hash_value)s."
 
 #: templates/formtools/preview.html:27
 msgid "Or edit it again"
-msgstr ""
+msgstr "Ou edíteo de novo"
 
 #: templates/formtools/wizard/wizard_form.html:16
 msgid "first step"
@@ -61,4 +61,4 @@
 
 #: wizard/views.py:276
 msgid "ManagementForm data is missing or has been tampered."
-msgstr ""
+msgstr "Os datos do ManagementForm foron manipulados ou faltan."
Binary files 
old/django-formtools-2.4.1/formtools/locale/pt/LC_MESSAGES/django.mo and 
new/django-formtools-2.5.1/formtools/locale/pt/LC_MESSAGES/django.mo differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/django-formtools-2.4.1/formtools/locale/pt/LC_MESSAGES/django.po 
new/django-formtools-2.5.1/formtools/locale/pt/LC_MESSAGES/django.po
--- old/django-formtools-2.4.1/formtools/locale/pt/LC_MESSAGES/django.po        
2023-05-13 14:49:41.000000000 +0200
+++ new/django-formtools-2.5.1/formtools/locale/pt/LC_MESSAGES/django.po        
2023-12-19 11:28:13.000000000 +0100
@@ -1,6 +1,7 @@
 # This file is distributed under the same license as the Django package.
-#
+# 
 # Translators:
+# Henrique Azevedo <[email protected]>, 2023
 # Jannis Leidel <[email protected]>, 2011
 # Raúl Pedro Fernandes Santos, 2014
 msgid ""
@@ -8,44 +9,43 @@
 "Project-Id-Version: django-formtools\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2015-03-25 09:31-0500\n"
-"PO-Revision-Date: 2014-10-06 19:31+0000\n"
-"Last-Translator: Jannis Leidel <[email protected]>\n"
-"Language-Team: Portuguese (http://www.transifex.com/projects/p/django-";
-"formtools/language/pt/)\n"
-"Language: pt\n"
+"PO-Revision-Date: 2014-10-05 20:14+0000\n"
+"Last-Translator: Henrique Azevedo <[email protected]>, 2023\n"
+"Language-Team: Portuguese 
(http://app.transifex.com/django/django-formtools/language/pt/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"Language: pt\n"
+"Plural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 
1000000 == 0 ? 1 : 2;\n"
 
 #: apps.py:7
 msgid "Form Tools"
-msgstr "Ferramentas de Formulários"
+msgstr "Ferramenta de Formulários"
 
 #: templates/formtools/form.html:6
 msgid "Please correct the following errors"
-msgstr ""
+msgstr "Por favor, corrija os seguintes erros"
 
 #: templates/formtools/form.html:6 templates/formtools/preview.html:24
 msgid "Submit"
-msgstr ""
+msgstr "Submeter"
 
 #: templates/formtools/form.html:13 templates/formtools/preview.html:34
 msgid "Preview"
-msgstr ""
+msgstr "Antevisão"
 
 #: templates/formtools/preview.html:6
 msgid "Preview your submission"
-msgstr ""
+msgstr "Antever a sua submissão"
 
 #: templates/formtools/preview.html:17
 #, python-format
 msgid "Security hash: %(hash_value)s"
-msgstr ""
+msgstr "Segurança da hash: %(hash_value)s"
 
 #: templates/formtools/preview.html:27
 msgid "Or edit it again"
-msgstr ""
+msgstr "Ou edite novamente"
 
 #: templates/formtools/wizard/wizard_form.html:16
 msgid "first step"
Binary files 
old/django-formtools-2.4.1/formtools/locale/sl/LC_MESSAGES/django.mo and 
new/django-formtools-2.5.1/formtools/locale/sl/LC_MESSAGES/django.mo differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/django-formtools-2.4.1/formtools/locale/sl/LC_MESSAGES/django.po 
new/django-formtools-2.5.1/formtools/locale/sl/LC_MESSAGES/django.po
--- old/django-formtools-2.4.1/formtools/locale/sl/LC_MESSAGES/django.po        
2023-05-13 14:49:41.000000000 +0200
+++ new/django-formtools-2.5.1/formtools/locale/sl/LC_MESSAGES/django.po        
2023-12-19 11:28:13.000000000 +0100
@@ -1,52 +1,51 @@
 # This file is distributed under the same license as the Django package.
-#
+# 
 # Translators:
+# Andrej Marsetič, 2022
 # Jannis Leidel <[email protected]>, 2011
-# zejn <[email protected]>, 2012-2013
+# zejn <[email protected]>, 2012-2013
 msgid ""
 msgstr ""
 "Project-Id-Version: django-formtools\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2015-03-25 09:31-0500\n"
-"PO-Revision-Date: 2014-10-06 19:31+0000\n"
-"Last-Translator: Jannis Leidel <[email protected]>\n"
-"Language-Team: Slovenian (http://www.transifex.com/projects/p/django-";
-"formtools/language/sl/)\n"
-"Language: sl\n"
+"PO-Revision-Date: 2014-10-05 20:14+0000\n"
+"Last-Translator: Andrej Marsetič, 2022\n"
+"Language-Team: Slovenian 
(http://app.transifex.com/django/django-formtools/language/sl/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n"
-"%100==4 ? 2 : 3);\n"
+"Language: sl\n"
+"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || 
n%100==4 ? 2 : 3);\n"
 
 #: apps.py:7
 msgid "Form Tools"
-msgstr ""
+msgstr "Orodja za obrazce"
 
 #: templates/formtools/form.html:6
 msgid "Please correct the following errors"
-msgstr ""
+msgstr "Popravite naslednje napake"
 
 #: templates/formtools/form.html:6 templates/formtools/preview.html:24
 msgid "Submit"
-msgstr ""
+msgstr "Pošlji"
 
 #: templates/formtools/form.html:13 templates/formtools/preview.html:34
 msgid "Preview"
-msgstr ""
+msgstr "Predogled"
 
 #: templates/formtools/preview.html:6
 msgid "Preview your submission"
-msgstr ""
+msgstr "Predoglejte oddajo"
 
 #: templates/formtools/preview.html:17
 #, python-format
 msgid "Security hash: %(hash_value)s"
-msgstr ""
+msgstr "Varnostni hash: %(hash_value)s"
 
 #: templates/formtools/preview.html:27
 msgid "Or edit it again"
-msgstr ""
+msgstr "Ali pa ga znova uredite"
 
 #: templates/formtools/wizard/wizard_form.html:16
 msgid "first step"
@@ -62,4 +61,4 @@
 
 #: wizard/views.py:276
 msgid "ManagementForm data is missing or has been tampered."
-msgstr ""
+msgstr "Podatki ManagementForm manjkajo ali so bili spremenjeni."
Binary files 
old/django-formtools-2.4.1/formtools/locale/sr_Latn/LC_MESSAGES/django.mo and 
new/django-formtools-2.5.1/formtools/locale/sr_Latn/LC_MESSAGES/django.mo differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/django-formtools-2.4.1/formtools/locale/sr_Latn/LC_MESSAGES/django.po 
new/django-formtools-2.5.1/formtools/locale/sr_Latn/LC_MESSAGES/django.po
--- old/django-formtools-2.4.1/formtools/locale/sr_Latn/LC_MESSAGES/django.po   
2023-05-13 14:49:41.000000000 +0200
+++ new/django-formtools-2.5.1/formtools/locale/sr_Latn/LC_MESSAGES/django.po   
2023-12-19 11:28:13.000000000 +0100
@@ -1,6 +1,7 @@
 # This file is distributed under the same license as the Django package.
-#
+# 
 # Translators:
+# Igor Jerosimić, 2023
 # Jannis Leidel <[email protected]>, 2011
 # Janos Guljas <[email protected]>, 2012
 msgid ""
@@ -8,45 +9,43 @@
 "Project-Id-Version: django-formtools\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2015-03-25 09:31-0500\n"
-"PO-Revision-Date: 2014-10-06 19:31+0000\n"
-"Last-Translator: Jannis Leidel <[email protected]>\n"
-"Language-Team: Serbian (Latin) (http://www.transifex.com/projects/p/django-";
-"formtools/language/sr@latin/)\n"
-"Language: sr@latin\n"
+"PO-Revision-Date: 2014-10-05 20:14+0000\n"
+"Last-Translator: Igor Jerosimić, 2023\n"
+"Language-Team: Serbian (Latin) 
(http://app.transifex.com/django/django-formtools/language/sr@latin/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
-"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
+"Language: sr@latin\n"
+"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && 
n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
 
 #: apps.py:7
 msgid "Form Tools"
-msgstr ""
+msgstr "Alatke za formulare"
 
 #: templates/formtools/form.html:6
 msgid "Please correct the following errors"
-msgstr ""
+msgstr "Molim ispravite greške ispod."
 
 #: templates/formtools/form.html:6 templates/formtools/preview.html:24
 msgid "Submit"
-msgstr ""
+msgstr "Pošalji"
 
 #: templates/formtools/form.html:13 templates/formtools/preview.html:34
 msgid "Preview"
-msgstr ""
+msgstr "Pregled"
 
 #: templates/formtools/preview.html:6
 msgid "Preview your submission"
-msgstr ""
+msgstr "Pregled pre slanja"
 
 #: templates/formtools/preview.html:17
 #, python-format
 msgid "Security hash: %(hash_value)s"
-msgstr ""
+msgstr "Bezbedonosni heš: %(hash_value)s"
 
 #: templates/formtools/preview.html:27
 msgid "Or edit it again"
-msgstr ""
+msgstr "Ili ga izmenite opet"
 
 #: templates/formtools/wizard/wizard_form.html:16
 msgid "first step"
@@ -62,4 +61,4 @@
 
 #: wizard/views.py:276
 msgid "ManagementForm data is missing or has been tampered."
-msgstr ""
+msgstr "ManagementForm nedostaje ili je izmenjena na pogrešan način."
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/django-formtools-2.4.1/formtools/utils.py 
new/django-formtools-2.5.1/formtools/utils.py
--- old/django-formtools-2.4.1/formtools/utils.py       2023-05-13 
14:49:41.000000000 +0200
+++ new/django-formtools-2.5.1/formtools/utils.py       2023-12-19 
11:28:13.000000000 +0100
@@ -12,7 +12,7 @@
     for bf in form:
         # Get the value from the form data. If the form allows empty or hasn't
         # changed then don't call clean() to avoid trigger validation errors.
-        if form.empty_permitted and not form.has_changed():
+        if form.empty_permitted and not form.has_changed():  # noqa: SIM108
             value = bf.data or ''
         else:
             value = bf.field.clean(bf.data) or ''
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/django-formtools-2.4.1/formtools/wizard/views.py 
new/django-formtools-2.5.1/formtools/wizard/views.py
--- old/django-formtools-2.4.1/formtools/wizard/views.py        2023-05-13 
14:49:41.000000000 +0200
+++ new/django-formtools-2.5.1/formtools/wizard/views.py        2023-12-19 
11:28:13.000000000 +0100
@@ -41,7 +41,7 @@
         return self.count
 
     def __repr__(self):
-        return '<StepsHelper for %s (steps: %s)>' % (self._wizard, self.all)
+        return f'<StepsHelper for {self._wizard} (steps: {self.all})>'
 
     @property
     def all(self):
@@ -109,7 +109,7 @@
     template_name = 'formtools/wizard/wizard_form.html'
 
     def __repr__(self):
-        return '<%s: forms: %s>' % (self.__class__.__name__, self.form_list)
+        return f'<{self.__class__.__name__}: forms: {self.form_list}>'
 
     @classonlymethod
     def as_view(cls, *args, **kwargs):
@@ -259,7 +259,7 @@
 
         If a GET request reaches this point, the wizard assumes that the user
         just starts at the first step or wants to restart the process.
-        The data of the wizard will be resetted before rendering the first step
+        The data of the wizard will be reset before rendering the first step
         """
         self.storage.reset()
 
@@ -658,10 +658,7 @@
             if 'reset' in self.request.GET:
                 self.storage.reset()
                 self.storage.current_step = self.steps.first
-            if self.request.GET:
-                query_string = "?%s" % self.request.GET.urlencode()
-            else:
-                query_string = ""
+            query_string = '?%s' % self.request.GET.urlencode() if 
self.request.GET else ''
             return redirect(self.get_step_url(self.steps.current) + 
query_string)
 
         # is the current step the "done" name/view?
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/django-formtools-2.4.1/pyproject.toml 
new/django-formtools-2.5.1/pyproject.toml
--- old/django-formtools-2.4.1/pyproject.toml   1970-01-01 01:00:00.000000000 
+0100
+++ new/django-formtools-2.5.1/pyproject.toml   2023-12-19 11:28:13.000000000 
+0100
@@ -0,0 +1,81 @@
+[build-system]
+build-backend = "setuptools.build_meta"
+requires = [
+  "setuptools>=61.2",
+  "setuptools_scm",
+]
+
+[project]
+name = "django-formtools"
+description = "A set of high-level abstractions for Django forms"
+license = {text = "BSD"}
+authors = [{name = "Django Software Foundation", email = 
"[email protected]"}]
+requires-python = ">=3.8"
+classifiers = [
+  "Development Status :: 5 - Production/Stable",
+  "Environment :: Web Environment",
+  "Framework :: Django",
+  "Framework :: Django :: 3.2",
+  "Framework :: Django :: 4.0",
+  "Framework :: Django :: 4.1",
+  "Framework :: Django :: 4.2",
+  "Framework :: Django :: 5.0",
+  "Intended Audience :: Developers",
+  "License :: OSI Approved :: BSD License",
+  "Operating System :: OS Independent",
+  "Programming Language :: Python",
+  "Programming Language :: Python :: 3 :: Only",
+  "Programming Language :: Python :: 3.8",
+  "Programming Language :: Python :: 3.9",
+  "Programming Language :: Python :: 3.10",
+  "Programming Language :: Python :: 3.11",
+  "Programming Language :: Python :: 3.12",
+  "Topic :: Internet :: WWW/HTTP",
+]
+dynamic = [
+  "version",
+]
+dependencies = [
+  "Django>=3.2",
+]
+
+[project.readme]
+file = "README.rst"
+content-type = "text/x-rst"
+
+[project.urls]
+Homepage = "https://django-formtools.readthedocs.io/en/latest/";
+Source = "https://github.com/jazzband/django-formtools";
+
+[tool.setuptools]
+include-package-data = true
+license-files = ["LICENSE"]
+zip-safe = false
+
+[tool.setuptools.packages.find]
+exclude = ["tests"] # tests.*
+namespaces = false
+
+[tool.setuptools_scm]
+
+[tool.codespell]
+skip = "*.po"
+
+[tool.isort]
+combine_as_imports = true
+default_section = "THIRDPARTY"
+include_trailing_comma = true
+known_first_party = ["formtools"]
+line_length = 79
+multi_line_output = 5
+
+[tool.ruff]
+line-length = 119
+select = ["ASYNC", "C4", "C90", "DJ", "DTZ", "E", "F", "N", "PERF", "PL", 
"SIM", "UP", "W"]
+
+[tool.ruff.per-file-ignores]
+"formtools/wizard/storage/base.py" = ["PLW2901"]
+"formtools/wizard/views.py" = ["N805", "PLW2901"]
+"tests/wizard/storage.py" = ["DTZ005"]
+"tests/wizard/test_forms.py" = ["DJ007", "DJ008", "N803"]
+"tests/wizard/wizardtests/tests.py" = ["DJ007"]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/django-formtools-2.4.1/setup.cfg 
new/django-formtools-2.5.1/setup.cfg
--- old/django-formtools-2.4.1/setup.cfg        2023-05-13 14:49:58.502792800 
+0200
+++ new/django-formtools-2.5.1/setup.cfg        2023-12-19 11:28:27.569213200 
+0100
@@ -1,17 +1,3 @@
-[flake8]
-max-line-length = 119
-
-[isort]
-combine_as_imports = true
-default_section = THIRDPARTY
-include_trailing_comma = true
-known_first_party = formtools
-line_length = 79
-multi_line_output = 5
-
-[metadata]
-license-file = LICENSE
-
 [egg_info]
 tag_build = 
 tag_date = 0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/django-formtools-2.4.1/setup.py 
new/django-formtools-2.5.1/setup.py
--- old/django-formtools-2.4.1/setup.py 2023-05-13 14:49:41.000000000 +0200
+++ new/django-formtools-2.5.1/setup.py 1970-01-01 01:00:00.000000000 +0100
@@ -1,51 +0,0 @@
-import os
-from setuptools import find_packages, setup
-
-
-def read(*parts):
-    filename = os.path.join(os.path.dirname(__file__), *parts)
-    with open(filename, encoding="utf-8") as fp:
-        return fp.read()
-
-
-setup(
-    name="django-formtools",
-    use_scm_version={"version_scheme": "post-release", "local_scheme": 
"dirty-tag"},
-    setup_requires=["setuptools_scm"],
-    url="https://django-formtools.readthedocs.io/en/latest/";,
-    project_urls={
-        "Source": 'https://github.com/jazzband/django-formtools',
-    },
-    license="BSD",
-    description="A set of high-level abstractions for Django forms",
-    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>=3.2"],
-    python_requires=">=3.7",
-    classifiers=[
-        "Development Status :: 5 - Production/Stable",
-        "Environment :: Web Environment",
-        "Framework :: Django",
-        "Framework :: Django :: 3.2",
-        "Framework :: Django :: 4.0",
-        "Framework :: Django :: 4.1",
-        "Framework :: Django :: 4.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.7",
-        "Programming Language :: Python :: 3.8",
-        "Programming Language :: Python :: 3.9",
-        "Programming Language :: Python :: 3.10",
-        "Programming Language :: Python :: 3.11",
-        "Topic :: Internet :: WWW/HTTP",
-    ],
-    zip_safe=False,
-)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/django-formtools-2.4.1/tests/requirements.txt 
new/django-formtools-2.5.1/tests/requirements.txt
--- old/django-formtools-2.4.1/tests/requirements.txt   2023-05-13 
14:49:41.000000000 +0200
+++ new/django-formtools-2.5.1/tests/requirements.txt   2023-12-19 
11:28:13.000000000 +0100
@@ -1,3 +1,3 @@
-coverage==4.5.4
-flake8
-isort>=5.11.1, <6.0
\ No newline at end of file
+coverage==7.3.2
+isort>=5.11.1, <6.0
+ruff
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/django-formtools-2.4.1/tests/settings.py 
new/django-formtools-2.5.1/tests/settings.py
--- old/django-formtools-2.4.1/tests/settings.py        2023-05-13 
14:49:41.000000000 +0200
+++ new/django-formtools-2.5.1/tests/settings.py        2023-12-19 
11:28:13.000000000 +0100
@@ -40,3 +40,5 @@
 STATIC_ROOT = 'static'
 
 DEFAULT_AUTO_FIELD = 'django.db.models.AutoField'
+
+USE_TZ = True
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/django-formtools-2.4.1/tests/wizard/namedwizardtests/forms.py 
new/django-formtools-2.5.1/tests/wizard/namedwizardtests/forms.py
--- old/django-formtools-2.4.1/tests/wizard/namedwizardtests/forms.py   
2023-05-13 14:49:41.000000000 +0200
+++ new/django-formtools-2.5.1/tests/wizard/namedwizardtests/forms.py   
2023-12-19 11:28:13.000000000 +0100
@@ -43,7 +43,7 @@
             'all_cleaned_data': self.get_all_cleaned_data()
         })
 
-        for form in self.form_list.keys():
+        for form in self.form_list:
             c[form] = self.get_cleaned_data_for_step(form)
 
         c['this_will_fail'] = self.get_cleaned_data_for_step('this_will_fail')
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/django-formtools-2.4.1/tests/wizard/test_forms.py 
new/django-formtools-2.5.1/tests/wizard/test_forms.py
--- old/django-formtools-2.4.1/tests/wizard/test_forms.py       2023-05-13 
14:49:41.000000000 +0200
+++ new/django-formtools-2.5.1/tests/wizard/test_forms.py       2023-12-19 
11:28:13.000000000 +0100
@@ -88,7 +88,7 @@
 
 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))
+        assert isinstance(form_list, list), f"`form_list` was 
{type(form_list)}, should be a list"
         return http.HttpResponse("All good")
 
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/django-formtools-2.4.1/tests/wizard/wizardtests/forms.py 
new/django-formtools-2.5.1/tests/wizard/wizardtests/forms.py
--- old/django-formtools-2.4.1/tests/wizard/wizardtests/forms.py        
2023-05-13 14:49:41.000000000 +0200
+++ new/django-formtools-2.5.1/tests/wizard/wizardtests/forms.py        
2023-12-19 11:28:13.000000000 +0100
@@ -43,7 +43,7 @@
             'all_cleaned_data': self.get_all_cleaned_data(),
         })
 
-        for form in self.form_list.keys():
+        for form in self.form_list:
             c[form] = self.get_cleaned_data_for_step(form)
 
         c['this_will_fail'] = self.get_cleaned_data_for_step('this_will_fail')
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/django-formtools-2.4.1/tox.ini 
new/django-formtools-2.5.1/tox.ini
--- old/django-formtools-2.4.1/tox.ini  2023-05-13 14:49:41.000000000 +0200
+++ new/django-formtools-2.5.1/tox.ini  2023-12-19 11:28:13.000000000 +0100
@@ -1,9 +1,12 @@
 [tox]
 args_are_paths = false
 envlist =
-    py{37,38,39,310,311}-django32
-    py{38,39,310,311}-django{40,41,42}
-    py{310,311}-djangomain
+    py{38,39,310}-django32
+    py{38,39,310}-django40
+    py{38,39,310,311}-django41
+    py{38,39,310,311}-django42
+    py{310,311,312}-django50
+    py{310,311,312}-djangomain
 
 [testenv]
 usedevelop = true
@@ -15,6 +18,7 @@
     django40: Django>=4.0,<4.1
     django41: Django>=4.1,<4.2
     django42: Django>=4.2,<5.0
+    django50: Django>=5.0a1,<5.1
     djangomain: https://github.com/django/django/archive/main.tar.gz
     -r{toxinidir}/tests/requirements.txt
 ignore_outcome =
@@ -24,8 +28,8 @@
 
 [gh-actions]
 python =
-    3.7: py37
     3.8: py38
     3.9: py39
     3.10: py310
     3.11: py311
+    3.12: py312

Reply via email to