Skip to content

Commit 54e2977

Browse files
committed
chore: Django 5.x compatibility
1 parent c184330 commit 54e2977

File tree

7 files changed

+118
-67
lines changed

7 files changed

+118
-67
lines changed

.github/workflows/test.yml

Lines changed: 22 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,17 +7,34 @@ jobs:
77
runs-on: ubuntu-latest
88
strategy:
99
matrix:
10-
python-version: [3.7, 3.8]
10+
include:
11+
- django-version: "2.2"
12+
python-version: "3.8"
13+
- django-version: "3.2"
14+
python-version: "3.9"
15+
- django-version: "4.2"
16+
python-version: "3.10"
17+
- django-version: "4.2"
18+
python-version: "3.11"
19+
- django-version: "5.1"
20+
python-version: "3.12"
21+
- django-version: "5.2"
22+
python-version: "3.13"
23+
24+
name: Django ${{ matrix.django-version }} (Python ${{ matrix.python-version }})
25+
26+
env:
27+
DJANGO: ${{ matrix.django-version }}
1128

1229
steps:
13-
- uses: actions/checkout@v1
30+
- uses: actions/checkout@v3
1431
- name: Set up Python ${{ matrix.python-version }}
15-
uses: actions/setup-python@v2
32+
uses: actions/setup-python@v4
1633
with:
1734
python-version: ${{ matrix.python-version }}
1835
- name: Install dependencies
1936
run: |
20-
python -m pip install --upgrade pip
21-
pip install tox tox-gh-actions
37+
python3 -m pip install --upgrade pip
38+
python3 -m pip install tox tox-gh-actions
2239
- name: Test with tox
2340
run: tox

autosave/__init__.py

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1 @@
1-
from __future__ import absolute_import
2-
import pkg_resources
3-
4-
try:
5-
__version__ = pkg_resources.get_distribution('django-autosave').version
6-
except pkg_resources.DistributionNotFound:
7-
__version__ = None
1+
__version__ = "2.2.0"

autosave/mixins.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
from django.core.exceptions import ImproperlyConfigured, PermissionDenied, FieldDoesNotExist
1717
from django.forms.utils import ErrorDict
1818
from django.http import HttpResponse, Http404
19-
from django.utils.encoding import force_text
19+
from django.utils.encoding import force_str
2020
from django.utils.html import escape
2121
from django.utils import timezone
2222
from django.utils.safestring import mark_safe
@@ -100,7 +100,7 @@ def autosave_js(self, request, object_id, extra_context=None):
100100
try:
101101
obj = self.get_object(request, object_id)
102102
except (ValueError, self.model.DoesNotExist):
103-
name = force_text(opts.verbose_name)
103+
name = force_str(opts.verbose_name)
104104
key = escape(object_id)
105105
raise Http404(_(f'{name} object with primary key {key} does not exist.'))
106106
else:

pyproject.toml

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
[build-system]
2+
build-backend = "setuptools.build_meta"
3+
requires = ["setuptools>=75.3.2"]
4+
5+
[project]
6+
name = "django-autosave"
7+
dynamic = ["version"]
8+
description = "Generic autosave for the Django Admin."
9+
readme = "README.md"
10+
license = { text = "BSD-2-Clause" }
11+
requires-python = ">=3"
12+
authors = [
13+
{ name = "The Atlantic", email = "[email protected]" },
14+
]
15+
classifiers = [
16+
"Development Status :: 5 - Production/Stable",
17+
"Environment :: Web Environment",
18+
"Framework :: Django",
19+
"Framework :: Django :: 2.2",
20+
"Framework :: Django :: 3.2",
21+
"Framework :: Django :: 4.2",
22+
"Framework :: Django :: 5.0",
23+
"Framework :: Django :: 5.1",
24+
"Framework :: Django :: 5.2",
25+
"Programming Language :: Python :: 3 :: Only",
26+
"Programming Language :: Python :: 3.7",
27+
"Programming Language :: Python :: 3.8",
28+
"Programming Language :: Python :: 3.9",
29+
"Programming Language :: Python :: 3.10",
30+
"Programming Language :: Python :: 3.11",
31+
"Programming Language :: Python :: 3.12",
32+
"Programming Language :: Python :: 3.13",
33+
]
34+
dependencies = []
35+
36+
[project.urls]
37+
Homepage = "https://github.com/theatlantic/django-autosave"
38+
39+
[tool.setuptools]
40+
zip-safe = false
41+
platforms = ["any"]
42+
include-package-data = true
43+
44+
[tool.setuptools.packages.find]
45+
include = ["curation*"]
46+
namespaces = false
47+
48+
[tool.setuptools.dynamic]
49+
version = { attr = "autosave.__version__" }
50+
readme = { file = ["README.md"] }

pytest.ini

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
[pytest]
2+
DJANGO_SETTINGS_MODULE = tests.settings
3+
addopts = --tb=short --create-db
4+
django_find_project = false
5+
python_files = tests.py test_*.py *_tests.py
6+
pythonpath = .
7+
testpaths = tests

setup.py

Lines changed: 2 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -1,38 +1,3 @@
1-
#!/usr/bin/env python
1+
from setuptools import setup
22

3-
from __future__ import absolute_import
4-
from setuptools import setup, find_packages
5-
6-
import autosave
7-
8-
setup(
9-
name="Django Autosave",
10-
version='2.1.0',
11-
author='The Atlantic',
12-
author_email='[email protected]',
13-
url='https://github.com/theatlantic/django-autosave',
14-
packages=['autosave'],
15-
description='Generic autosave for the Django Admin.',
16-
long_description=open('README.md').read(),
17-
long_description_content_type='text/markdown',
18-
install_requires=['Django>=2.0'],
19-
python_requires='>=3.7,<4',
20-
classifiers=[
21-
'Development Status :: 5 - Production',
22-
'License :: OSI Approved :: BSD License',
23-
'Environment :: Web Environment',
24-
'Intended Audience :: Developers',
25-
'Operating System :: OS Independent',
26-
'Programming Language :: Python',
27-
'Framework :: Django',
28-
'Framework :: Django :: 2.2',
29-
'Framework :: Django :: 3.0',
30-
'Framework :: Django :: 3.1',
31-
'Framework :: Django :: 3.2',
32-
'Programming Language :: Python :: 3',
33-
'Programming Language :: Python :: 3.7',
34-
'Programming Language :: Python :: 3.8',
35-
],
36-
include_package_data=True,
37-
zip_safe=False,
38-
)
3+
setup()

tox.ini

Lines changed: 34 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,46 @@
11
[tox]
2-
isolated_build = true
3-
skip_missing_interpreters = true
42
envlist =
5-
py{37,38}-django{22,30,31,32}
3+
py{36,37,38,39}-django22
4+
py{36,37,38,39,310}-django32
5+
py{38,39,310}-django40
6+
py{38,39,310,311}-django41
7+
py{38,39,310,311,312}-django42
8+
py{310,311,312}-django{50,51}
9+
py{310,311,312,313}-django52
610

711
[testenv]
8-
skip_install = true
9-
setenv =
10-
PYTHONPATH={toxinidir}
11-
commands =
12-
pytest {posargs}
13-
14-
passenv =
15-
CHROME_HEADLESS
16-
12+
description = Run tests in {envname} environment
13+
setenv =
14+
PYTHONPATH = {toxinidir}:{toxinidir}/tests:{env:PYTHONPATH:}
15+
commands = pytest {posargs}
1716
deps =
1817
pytest
1918
pytest-django
2019
django22: Django>=2.2,<3.0
21-
django30: Django>=3.0,<3.1
22-
django31: Django>=3.1,<3.2
23-
django32: Django>=3.2b1,<4.0
20+
django32: Django>=3.2,<4.0
21+
django40: Django>=4.0,<4.1
22+
django41: Django>=4.1,<4.2
23+
django42: Django>=4.2,<4.3
24+
django50: Django>=5.0,<5.1
25+
django51: Django>=5.1a1,<5.2
26+
django52: Django>=5.2,<5.3
2427

25-
[gh-actions]
2628
python =
2729
3.7: py37
2830
3.8: py38
31+
3.9: py39
32+
3.10: py310
33+
3.11: py311
34+
3.12: py312
35+
3.13: py313
36+
37+
[gh-actions:env]
38+
DJANGO =
39+
2.2: django22
40+
3.2: django32
41+
4.0: django40
42+
4.1: django41
43+
4.2: django42
44+
5.0: django50
45+
5.1: django51
46+
5.2: django52

0 commit comments

Comments
 (0)