From 93ab3478430a5576bb8e0de336599adcbf19556f Mon Sep 17 00:00:00 2001 From: Chris Rose Date: Thu, 2 May 2024 17:24:31 -0700 Subject: [PATCH] :handshake: Use packaging.version where available (#210) * Use packaging.version where available * Test on 3.12 --- .github/workflows/actions.yml | 6 ++++++ noxfile.py | 3 ++- setup.cfg | 1 + test_plus/test.py | 7 +++++-- 4 files changed, 14 insertions(+), 3 deletions(-) diff --git a/.github/workflows/actions.yml b/.github/workflows/actions.yml index 4bf8058..0bf5215 100644 --- a/.github/workflows/actions.yml +++ b/.github/workflows/actions.yml @@ -25,6 +25,7 @@ jobs: - "3.9" - "3.10" - "3.11" + - "3.12" django-version: - "2.2" # LTS - "3.2" # LTS @@ -48,6 +49,11 @@ jobs: django-version: "2.2" - python-version: "3.11" django-version: "3.2" + # Python 3.12 is compatible with Django 4.0+ + - python-version: "3.12" + django-version: "2.2" + - python-version: "3.12" + django-version: "3.2" # Django 4.0 is compatible with Python 3.8+ - python-version: "3.6" django-version: "4.0" diff --git a/noxfile.py b/noxfile.py index 0e01dab..f20aed7 100644 --- a/noxfile.py +++ b/noxfile.py @@ -2,10 +2,11 @@ DJANGO_VERSIONS = ["2.2", "3.2", "4.1", "4.2"] DRF_VERSIONS = ["3.11", "3.12", "3.13", "3.14"] -PYTHON_VERSIONS = ["3.8", "3.9", "3.10", "3.11"] +PYTHON_VERSIONS = ["3.8", "3.9", "3.10", "3.11", "3.12"] INVALID_PYTHON_DJANGO_SESSIONS = [ ("3.11", "3.2"), + ("3.12", "3.2"), ] diff --git a/setup.cfg b/setup.cfg index 6d6754e..786a5a9 100644 --- a/setup.cfg +++ b/setup.cfg @@ -32,6 +32,7 @@ classifiers = Programming Language :: Python :: 3.9 Programming Language :: Python :: 3.10 Programming Language :: Python :: 3.11 + Programming Language :: Python :: 3.12 [options] include_package_data = True diff --git a/test_plus/test.py b/test_plus/test.py index 2e81fd8..e201170 100644 --- a/test_plus/test.py +++ b/test_plus/test.py @@ -2,7 +2,10 @@ import django -from distutils.version import LooseVersion +try: + from packaging.version import parse as parse_version +except ImportError: + from distutils.version import LooseVersion as parse_version from django.conf import settings from django.contrib.auth import get_user_model @@ -157,7 +160,7 @@ def head(self, url_name, *args, **kwargs): return self.request('head', url_name, *args, **kwargs) def trace(self, url_name, *args, **kwargs): - if LooseVersion(django.get_version()) >= LooseVersion('1.8.2'): + if parse_version(django.get_version()) >= parse_version('1.8.2'): return self.request('trace', url_name, *args, **kwargs) else: raise LookupError("client.trace is not available for your version of django. Please\