diff --git a/.coveragerc b/.coveragerc index 1fa4289..3ae90e7 100644 --- a/.coveragerc +++ b/.coveragerc @@ -3,4 +3,4 @@ source = dbtemplates branch = 1 [report] -omit = *tests*,*migrations* +omit = *tests*,*/migrations/*,test_* diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index d6f9e0e..4151364 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -9,7 +9,7 @@ jobs: fail-fast: false max-parallel: 5 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: - uses: actions/checkout@v3 diff --git a/dbtemplates/__init__.py b/dbtemplates/__init__.py index 23b4a18..fe02d11 100644 --- a/dbtemplates/__init__.py +++ b/dbtemplates/__init__.py @@ -1,10 +1,3 @@ -from pkg_resources import get_distribution, DistributionNotFound +import importlib.metadata -try: - __version__ = get_distribution("django-dbtemplates").version -except DistributionNotFound: - # package is not installed - __version__ = None - - -default_app_config = 'dbtemplates.apps.DBTemplatesConfig' +__version__ = importlib.metadata.version("django-dbtemplates") diff --git a/dbtemplates/admin.py b/dbtemplates/admin.py index 1c9095f..cac2dec 100644 --- a/dbtemplates/admin.py +++ b/dbtemplates/admin.py @@ -2,15 +2,8 @@ import posixpath from django import forms from django.contrib import admin from django.core.exceptions import ImproperlyConfigured -try: - # Django 4.0 - from django.utils.translation import gettext_lazy as _ - 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.translation import gettext_lazy as _ +from django.utils.translation import ngettext from django.utils.safestring import mark_safe from dbtemplates.conf import settings diff --git a/dbtemplates/apps.py b/dbtemplates/apps.py index 21141b3..3cf738d 100644 --- a/dbtemplates/apps.py +++ b/dbtemplates/apps.py @@ -1,8 +1,5 @@ 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 _ class DBTemplatesConfig(AppConfig): diff --git a/dbtemplates/models.py b/dbtemplates/models.py index f846b2b..24945ab 100644 --- a/dbtemplates/models.py +++ b/dbtemplates/models.py @@ -1,19 +1,16 @@ from dbtemplates.conf import settings -from dbtemplates.utils.cache import (add_template_to_cache, - remove_cached_template) +from dbtemplates.utils.cache import ( + add_template_to_cache, + remove_cached_template, +) from dbtemplates.utils.template import get_template_source + from django.contrib.sites.managers import CurrentSiteManager from django.contrib.sites.models import Site from django.db import models from django.db.models import signals from django.template import TemplateDoesNotExist -try: - # Django >= 4.0 - from django.utils.translation import gettext_lazy as _ -except ImportError: - # Django 3.2 - from django.utils.translation import ugettext_lazy as _ - +from django.utils.translation import gettext_lazy as _ from django.utils.timezone import now diff --git a/docs/changelog.txt b/docs/changelog.txt index 03a3c16..33b3496 100644 --- a/docs/changelog.txt +++ b/docs/changelog.txt @@ -1,7 +1,20 @@ 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:: diff --git a/setup.py b/setup.py index 5a43497..9633f46 100644 --- a/setup.py +++ b/setup.py @@ -1,5 +1,4 @@ import os -import io from setuptools import setup, find_packages @@ -36,13 +35,15 @@ setup( "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", + "Programming Language :: Python :: 3.12", + "Programming Language :: Python :: 3.13", "Framework :: Django", ], - python_requires=">=3.7", + python_requires=">=3.8", install_requires=["django-appconf >= 0.4"], ) diff --git a/tox.ini b/tox.ini index d0178be..c0f5e3d 100644 --- a/tox.ini +++ b/tox.ini @@ -1,40 +1,46 @@ [tox] -skipsdist = True -usedevelop = True -minversion = 1.8 +minversion = 4.0 envlist = flake8 - py3{7,8,9,10,11}-dj32 - py3{8,9,10,11}-dj{40,41,main} + py3{8,9,10,11,12}-dj42 + py3{10,11,12}-dj{50} + py3{10,11,12,13}-dj{51,52} + py3{12,13}-dj{main} [gh-actions] python = - 3.7: py37 3.8: py38 3.9: py39 3.10: py310 3.10: py310, flake8 3.11: py311 + 3.12: py312 + 3.13: py313 [testenv] +skipsdist = true +package = editable basepython = - py37: python3.7 py38: python3.8 py39: python3.9 py310: python3.10 py311: python3.11 -usedevelop = true + py312: python3.12 + py313: python3.13 setenv = DJANGO_SETTINGS_MODULE = dbtemplates.test_settings deps = -r requirements/tests.txt - dj32: Django<3.3 - dj40: Django<4.1 - dj41: Django<4.2 + dj42: Django<4.3 + dj50: Django<5.1 + 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 commands = python --version + python -c "import django ; print(django.VERSION)" coverage run {envbindir}/django-admin test -v2 {posargs:dbtemplates} coverage report coverage xml