Support for Python 3.12 and up (#143)

* support for Python 3.12 and up

* removed unused deprecated ugettext imports

* fix django main being Python 3.12+

* missed some copypaste
This commit is contained in:
Viktor Kálmán 2025-02-16 21:08:16 +01:00 committed by GitHub
parent 233a401e75
commit ac740e06f3
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
9 changed files with 48 additions and 48 deletions

View file

@ -3,4 +3,4 @@ source = dbtemplates
branch = 1 branch = 1
[report] [report]
omit = *tests*,*migrations* omit = *tests*,*/migrations/*,test_*

View file

@ -9,7 +9,7 @@ jobs:
fail-fast: false fail-fast: false
max-parallel: 5 max-parallel: 5
matrix: matrix:
python-version: ['3.7', '3.8', '3.9', '3.10', '3.11-dev'] python-version: ['3.8', '3.9', '3.10', '3.11', '3.13']
steps: steps:
- uses: actions/checkout@v3 - uses: actions/checkout@v3

View file

@ -1,10 +1,3 @@
from pkg_resources import get_distribution, DistributionNotFound import importlib.metadata
try: __version__ = importlib.metadata.version("django-dbtemplates")
__version__ = get_distribution("django-dbtemplates").version
except DistributionNotFound:
# package is not installed
__version__ = None
default_app_config = 'dbtemplates.apps.DBTemplatesConfig'

View file

@ -2,15 +2,8 @@ import posixpath
from django import forms from django import forms
from django.contrib import admin from django.contrib import admin
from django.core.exceptions import ImproperlyConfigured from django.core.exceptions import ImproperlyConfigured
try:
# Django 4.0
from django.utils.translation import gettext_lazy as _ from django.utils.translation import gettext_lazy as _
from django.utils.translation import ngettext from django.utils.translation import ngettext
except ImportError:
# Before Django 4.0
from django.utils.translation import ugettext_lazy as _
from django.utils.translation import ungettext as ngettext
from django.utils.safestring import mark_safe from django.utils.safestring import mark_safe
from dbtemplates.conf import settings from dbtemplates.conf import settings

View file

@ -1,7 +1,4 @@
from django.apps import AppConfig from django.apps import AppConfig
try:
from django.utils.translation import ugettext_lazy as _
except ImportError:
from django.utils.translation import gettext_lazy as _ from django.utils.translation import gettext_lazy as _

View file

@ -1,19 +1,16 @@
from dbtemplates.conf import settings from dbtemplates.conf import settings
from dbtemplates.utils.cache import (add_template_to_cache, from dbtemplates.utils.cache import (
remove_cached_template) add_template_to_cache,
remove_cached_template,
)
from dbtemplates.utils.template import get_template_source from dbtemplates.utils.template import get_template_source
from django.contrib.sites.managers import CurrentSiteManager from django.contrib.sites.managers import CurrentSiteManager
from django.contrib.sites.models import Site from django.contrib.sites.models import Site
from django.db import models from django.db import models
from django.db.models import signals from django.db.models import signals
from django.template import TemplateDoesNotExist from django.template import TemplateDoesNotExist
try:
# Django >= 4.0
from django.utils.translation import gettext_lazy as _ from django.utils.translation import gettext_lazy as _
except ImportError:
# Django 3.2
from django.utils.translation import ugettext_lazy as _
from django.utils.timezone import now from django.utils.timezone import now

View file

@ -1,7 +1,20 @@
Changelog Changelog
========= =========
v4.0 (unreleased) v5.0 (unreleased)
-----------------
.. warning::
This is a backwards-incompatible release!
* Dropped support for Python 3.7 and Django < 4.2.
* Added support for Python 3.11, 3.12, 3.13.
* Django 5.x support
v4.0 (2022-09-3)
----------------- -----------------
.. warning:: .. warning::

View file

@ -1,5 +1,4 @@
import os import os
import io
from setuptools import setup, find_packages from setuptools import setup, find_packages
@ -36,13 +35,15 @@ setup(
"Programming Language :: Python", "Programming Language :: Python",
"Programming Language :: Python :: 3", "Programming Language :: Python :: 3",
"Programming Language :: Python :: 3 :: Only", "Programming Language :: Python :: 3 :: Only",
"Programming Language :: Python :: 3.7",
"Programming Language :: Python :: 3.8", "Programming Language :: Python :: 3.8",
"Programming Language :: Python :: 3.9", "Programming Language :: Python :: 3.9",
"Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3.13",
"Framework :: Django", "Framework :: Django",
], ],
python_requires=">=3.7", python_requires=">=3.8",
install_requires=["django-appconf >= 0.4"], install_requires=["django-appconf >= 0.4"],
) )

28
tox.ini
View file

@ -1,40 +1,46 @@
[tox] [tox]
skipsdist = True minversion = 4.0
usedevelop = True
minversion = 1.8
envlist = envlist =
flake8 flake8
py3{7,8,9,10,11}-dj32 py3{8,9,10,11,12}-dj42
py3{8,9,10,11}-dj{40,41,main} py3{10,11,12}-dj{50}
py3{10,11,12,13}-dj{51,52}
py3{12,13}-dj{main}
[gh-actions] [gh-actions]
python = python =
3.7: py37
3.8: py38 3.8: py38
3.9: py39 3.9: py39
3.10: py310 3.10: py310
3.10: py310, flake8 3.10: py310, flake8
3.11: py311 3.11: py311
3.12: py312
3.13: py313
[testenv] [testenv]
skipsdist = true
package = editable
basepython = basepython =
py37: python3.7
py38: python3.8 py38: python3.8
py39: python3.9 py39: python3.9
py310: python3.10 py310: python3.10
py311: python3.11 py311: python3.11
usedevelop = true py312: python3.12
py313: python3.13
setenv = setenv =
DJANGO_SETTINGS_MODULE = dbtemplates.test_settings DJANGO_SETTINGS_MODULE = dbtemplates.test_settings
deps = deps =
-r requirements/tests.txt -r requirements/tests.txt
dj32: Django<3.3 dj42: Django<4.3
dj40: Django<4.1 dj50: Django<5.1
dj41: Django<4.2 dj51: Django<5.2
# TODO change this afte Django 5.2 is out
dj52: Django==5.2a1
djmain: https://github.com/django/django/archive/main.tar.gz#egg=django djmain: https://github.com/django/django/archive/main.tar.gz#egg=django
commands = commands =
python --version python --version
python -c "import django ; print(django.VERSION)"
coverage run {envbindir}/django-admin test -v2 {posargs:dbtemplates} coverage run {envbindir}/django-admin test -v2 {posargs:dbtemplates}
coverage report coverage report
coverage xml coverage xml