Skip to content

Commit 2136278

Browse files
committed
Merge branch 'master' into issue-49
2 parents 6250f61 + 056b332 commit 2136278

File tree

8 files changed

+48
-53
lines changed

8 files changed

+48
-53
lines changed

.github/workflows/build.yaml

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,21 +8,22 @@ jobs:
88
build:
99
runs-on: ubuntu-latest
1010
strategy:
11+
fail-fast: false
1112
matrix:
1213
include:
13-
- python-version: 3.7
14-
- python-version: 3.8
1514
- python-version: 3.9
1615
- python-version: "3.10"
1716
- python-version: "3.11"
17+
- python-version: "3.12"
18+
- python-version: "3.13"
1819

1920
env:
2021
PYTHON: ${{ matrix.python-version }}
2122

2223
steps:
23-
- uses: actions/checkout@v1
24+
- uses: actions/checkout@v4
2425
- name: Set up Python ${{ matrix.python-version }}
25-
uses: actions/setup-python@v2
26+
uses: actions/setup-python@v5
2627
with:
2728
python-version: ${{ matrix.python-version }}
2829
- name: Install dependencies
@@ -32,7 +33,7 @@ jobs:
3233
- name: Test with tox
3334
run: tox
3435
- name: Upload coverage to Codecov
35-
uses: codecov/codecov-action@v2
36+
uses: codecov/codecov-action@v4
3637
with:
3738
token: ${{ secrets.CODECOV_TOKEN }}
3839
env_vars: PYTHON

.github/workflows/publish.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,9 @@ jobs:
1111
packages: write
1212
contents: read
1313
steps:
14-
- uses: actions/checkout@v3
14+
- uses: actions/checkout@v4
1515
- name: Set up Python 3.10
16-
uses: actions/setup-python@v3
16+
uses: actions/setup-python@v5
1717
with:
1818
python-version: "3.10"
1919
- name: Install wheel

CHANGELOG.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,11 @@
1+
## 0.7.2
2+
* Add support for Django 5.1, 5.2 and Python 3.13 (@browniebroke)
3+
* Drop support for end-of-life Python 3.8 (@browniebroke)
4+
5+
## 0.7.1
6+
* Add support for Python 3.12, Django 5.0, DRF 3.15 (@browniebroke)
7+
* Drop support for Python <3.7, Django <4.2, DRF <3.14 (@browniebroke)
8+
19
## 0.7.0
210
* Related objects are not deleted if they have relation with on_delete=SET_NULL/SET_DEFAULT #72 (@izimobil)
311

README.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,9 @@ The following relations are supported:
1717
Requirements
1818
============
1919

20-
- Python (3.7, 3.8, 3.9, 3.10, 3.11)
21-
- Django (2.2, 3.0, 3.1, 3.2, 4.0, 4.1, 4.2)
22-
- djangorestframework (3.8+)
20+
- Python (3.9, 3.10, 3.11, 3.12, 3.13)
21+
- Django (4.2, 5.0, 5.1, 5.2)
22+
- djangorestframework (3.14+)
2323

2424
Installation
2525
============

drf_writable_nested/__init__.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
__title__ = 'DRF writable nested'
2-
__version__ = '0.7.0'
2+
__version__ = '0.7.2'
33
__author__ = 'beda.software'
44
__license__ = 'BSD 2-Clause'
5-
__copyright__ = 'Copyright 2014-2022 beda.software'
5+
__copyright__ = 'Copyright 2014-2025 beda.software'
66

77
# Version synonym
88
VERSION = __version__

setup.py

Lines changed: 6 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -39,29 +39,26 @@ def get_version(package):
3939
},
4040
include_package_data=True,
4141
zip_safe=False,
42-
python_requires='>=3.7',
42+
python_requires='>=3.9',
4343
classifiers=[
4444
'Development Status :: 4 - Beta',
4545
'Environment :: Web Environment',
4646
'Framework :: Django',
47-
'Framework :: Django :: 2.2',
48-
'Framework :: Django :: 3.0',
49-
'Framework :: Django :: 3.1',
50-
'Framework :: Django :: 3.2',
51-
'Framework :: Django :: 4.0',
52-
'Framework :: Django :: 4.1',
5347
'Framework :: Django :: 4.2',
48+
'Framework :: Django :: 5.0',
49+
'Framework :: Django :: 5.1',
50+
'Framework :: Django :: 5.2',
5451
'Intended Audience :: Developers',
5552
'License :: OSI Approved :: BSD License',
5653
'Operating System :: OS Independent',
5754
'Programming Language :: Python',
5855
'Programming Language :: Python :: 3',
5956
'Programming Language :: Python :: 3 :: Only',
60-
'Programming Language :: Python :: 3.7',
61-
'Programming Language :: Python :: 3.8',
6257
'Programming Language :: Python :: 3.9',
6358
'Programming Language :: Python :: 3.10',
6459
'Programming Language :: Python :: 3.11',
60+
'Programming Language :: Python :: 3.12',
61+
'Programming Language :: Python :: 3.13',
6562
'Topic :: Internet :: WWW/HTTP',
6663
]
6764
)

tests/serializers.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -203,9 +203,10 @@ class Meta:
203203
class UFMChildSerializerForValidatorMessage(UniqueFieldsMixin,
204204
serializers.ModelSerializer):
205205
field = serializers.CharField(validators=[
206-
UniqueValidator(queryset=models.UFMChild.objects.all(),
207-
message=UNIQUE_ERROR_MESSAGE
208-
)
206+
UniqueValidator(
207+
queryset=models.UFMChild.objects.all(), # type: ignore[attr-defined]
208+
message=UNIQUE_ERROR_MESSAGE,
209+
)
209210
])
210211

211212
class Meta:

tox.ini

Lines changed: 17 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -4,52 +4,40 @@ DJANGO_SETTINGS_MODULE = tests.settings
44

55
[tox]
66
envlist =
7-
py{37,38}-dj{22}-drf{38,39,310,311}-{pytest,mypy}
8-
py{37,38}-dj{30}-drf{310,311}-{pytest,mypy}
9-
py{37,38,39,310,311}-dj{31,32}-drf{311,312,313,314}-{pytest,mypy}
10-
py{38,39,310,311}-dj{40,41}-drf{313,314}-{pytest,mypy}
11-
py{38,39,310,311}-dj{42}-drf{314}-{pytest,mypy}
7+
py{39,310,311,312}-dj42-drf{314,315}-pytest
8+
py{310,311,312}-dj50-drf{314,315}-pytest
9+
py{310,311,312,313}-dj51-drf315-pytest
10+
py{310,311,312,313}-dj52-drf315-pytest
11+
py313-dj51-drf315-mypy
1212
skip_missing_interpreters = true
1313

1414
[gh-actions]
1515
python =
16-
3.7: py37
17-
3.8: py38
1816
3.9: py39
1917
3.10: py310
2018
3.11: py311
19+
3.12: py312
20+
3.13: py313
2121
django =
22-
2.2: dj22
23-
3.0: dj30
24-
3.1: dj31
25-
3.2: dj32
26-
4.0: dj40
27-
4.1: dj41
2822
4.2: dj42
23+
5.0: dj50
24+
5.1: dj51
25+
5.2: dj52
2926

3027
[testenv]
3128
setenv =
3229
PYTHONDONTWRITEBYTECODE=1
3330
PYTHONWARNINGS=once
3431
deps =
35-
dj22: Django>=2.2,<2.3
36-
dj30: Django>=3.0,<3.1
37-
dj31: Django>=3.1,<3.2
38-
dj32: Django>=3.2a1,<4.0
39-
dj40: Django>=4.0,<4.1
40-
dj41: Django>=4.1,<4.2
4132
dj42: Django>=4.2,<5.0
42-
drf38: djangorestframework>=3.8.0,<3.9
43-
drf39: djangorestframework>=3.9.0,<3.10
44-
drf310: djangorestframework>=3.10.0,<3.11
45-
drf311: djangorestframework>=3.11,<3.12
46-
drf312: djangorestframework>=3.12,<3.13
47-
drf313: djangorestframework>=3.13,<3.14
33+
dj50: Django>=5.0,<5.1
34+
dj51: Django>=5.1,<5.2
35+
dj52: Django>=5.2b1,<6.0
4836
drf314: djangorestframework>=3.14,<3.15
37+
drf315: djangorestframework>=3.15,<3.16
4938
pytest: -rrequirements.txt
50-
mypy: git+https://github.com/typeddjango/djangorestframework-stubs.git@946c7d60aaecdc9ef307f5e1f8eb55f7083ffb16#egg=djangorestframework-stubs
51-
mypy: djangorestframework-stubs
39+
mypy: djangorestframework-stubs[compatible-mypy]>=3.15,<3.16
5240
commands=
5341
pytest: pytest --cov drf_writable_nested --cov-report=xml
54-
mypy: mypy example
55-
mypy: mypy .
42+
mypy: mypy --show-traceback example
43+
mypy: mypy --show-traceback .

0 commit comments

Comments
 (0)