diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 43980f1..6429bb8 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -13,7 +13,7 @@ jobs: strategy: fail-fast: false matrix: - python-version: [3.6, 3.7, 3.8] + python-version: [3.6, 3.7, 3.8, 3.9, 3.10] os: [macOS-latest, ubuntu-latest, windows-latest] steps: diff --git a/.python-version b/.python-version index f3d3315..5d7221a 100644 --- a/.python-version +++ b/.python-version @@ -4,5 +4,8 @@ 3.5.4 3.6.3 3.7.0 +3.8.13 +3.9.12 +3.10.6 pypy2.7-5.9.0 pypy3-2.4.0 diff --git a/.travis.yml b/.travis.yml index 4bd2176..4d9d24e 100644 --- a/.travis.yml +++ b/.travis.yml @@ -5,6 +5,10 @@ python: - "3.4" - "3.5" - "3.6" + - "3.7" + - "3.8" + - "3.9" + - "3.10" - "pypy" - "pypy3" matrix: diff --git a/AUTHORS b/AUTHORS index 9a11d38..bfce3ab 100644 --- a/AUTHORS +++ b/AUTHORS @@ -26,3 +26,4 @@ Contributors * [kavdev](https://github.com/kavdev) * [graingert](https://github.com/graingert) * [LuukOost](https://github.com/LuukOost) +* [BITSOLVER](https://github/BITSOLVER) diff --git a/CHANGELOG.rst b/CHANGELOG.rst index 7952f78..2f94a55 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -1,3 +1,8 @@ +0.10.1b1 (unreleased) +--------------------- + +- Update for Django 4.0 and 4.1, Python 3.8, 3.9, 3.10 + 0.10.1a1 (unreleased) --------------------- diff --git a/README.rst b/README.rst index e8662ba..b4addd9 100644 --- a/README.rst +++ b/README.rst @@ -51,19 +51,23 @@ Result: Requirements ------------ -+----------------+------------------------------------------+ -| Python version | Django versions | -+================+==========================================+ -| 3.7 | 2.2, 2.1, 2.0, 1.11, 1.10, 1.9, 1.8 | -+----------------+------------------------------------------+ -| 3.6 | 2.2, 2.1, 2.0, 1.11, 1.10, 1.9, 1.8 | -+----------------+------------------------------------------+ -| 3.5 | 2.2, 2.1, 2.0, 1.11, 1.10, 1.9, 1.8 | -+----------------+------------------------------------------+ -| 3.4 | 2.0, 1.11, 1.10, 1.9, 1.8, 1.7, 1.6, 1.5 | -+----------------+------------------------------------------+ -| 2.7 | 1.11, 1.10, 1.9, 1.8, 1.7, 1.6, 1.5 | -+----------------+------------------------------------------+ ++----------------+-------------------------------------------------------------------+ +| Python version | Django versions | ++================+===================================================================+ +| 3.10 | 4.1, 4.0, 3.2, 3.1, 3.0, 2.2, 2.1, 2.0, 1.11, 1.10, 1.9, 1.8 | +| 3.9 | 4.1, 4.0, 3.2, 3.1, 3.0, 2.2, 2.1, 2.0, 1.11, 1.10, 1.9, 1.8 | +| 3.8 | 4.1, 4.0, 3.2, 3.1, 3.0, 2.2, 2.1, 2.0, 1.11, 1.10, 1.9, 1.8 | ++----------------+-------------------------------------------------------------------+ +| 3.7 | 2.2, 2.1, 2.0, 1.11, 1.10, 1.9, 1.8 | ++----------------+-------------------------------------------------------------------+ +| 3.6 | 2.2, 2.1, 2.0, 1.11, 1.10, 1.9, 1.8 | ++----------------+-------------------------------------------------------------------+ +| 3.5 | 2.2, 2.1, 2.0, 1.11, 1.10, 1.9, 1.8 | ++----------------+-------------------------------------------------------------------+ +| 3.4 | 2.0, 1.11, 1.10, 1.9, 1.8, 1.7, 1.6, 1.5 | ++----------------+-------------------------------------------------------------------+ +| 2.7 | 1.11, 1.10, 1.9, 1.8, 1.7, 1.6, 1.5 | ++----------------+-------------------------------------------------------------------+ Installation diff --git a/django_js_reverse/core.py b/django_js_reverse/core.py index 5f81863..8a47e5a 100755 --- a/django_js_reverse/core.py +++ b/django_js_reverse/core.py @@ -3,7 +3,10 @@ import json import re import sys -from distutils.version import LooseVersion +if sys.version_info < (3, 7): + from distutils.version import LooseVersion +else: + from packaging.version import parse as LooseVersion import django from django.conf import settings diff --git a/django_js_reverse/management/commands/collectstatic_js_reverse.py b/django_js_reverse/management/commands/collectstatic_js_reverse.py index d1e758a..a99524b 100755 --- a/django_js_reverse/management/commands/collectstatic_js_reverse.py +++ b/django_js_reverse/management/commands/collectstatic_js_reverse.py @@ -15,10 +15,12 @@ except ImportError: from django.core.urlresolvers import get_resolver +REQUIRES_SYSTEM_CHECKS = [False] + class Command(BaseCommand): help = 'Creates a static urls-js file for django-js-reverse' - requires_system_checks = False + requires_system_checks = REQUIRES_SYSTEM_CHECKS def get_location(self): output_path = getattr(settings, 'JS_REVERSE_OUTPUT_PATH', JS_OUTPUT_PATH) if output_path: diff --git a/django_js_reverse/tests/test_urlconf_urls.py b/django_js_reverse/tests/test_urlconf_urls.py index e353e12..f309610 100644 --- a/django_js_reverse/tests/test_urlconf_urls.py +++ b/django_js_reverse/tests/test_urlconf_urls.py @@ -1,4 +1,7 @@ -from django.conf.urls import url +try: + from django.conf.urls import url +except ImportError: + from django.urls import re_path as url from django.views.generic import View urlpatterns = [ diff --git a/django_js_reverse/tests/test_urls.py b/django_js_reverse/tests/test_urls.py index a53ad8f..bcb58c5 100644 --- a/django_js_reverse/tests/test_urls.py +++ b/django_js_reverse/tests/test_urls.py @@ -2,7 +2,10 @@ from copy import copy from django.conf.urls import include as django_include -from django.conf.urls import url +try: + from django.conf.urls import url +except ImportError: + from django.urls import re_path as url from django.views.generic import View from django_js_reverse.tests.helper import is_django_ver_gte_2 from django_js_reverse.views import urls_js diff --git a/package.json b/package.json index 44a7517..f6b17f6 100644 --- a/package.json +++ b/package.json @@ -25,5 +25,5 @@ "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, - "version": "0.10.1-a-dev.1.0" + "version": "0.10.1-b-dev.1.0" } diff --git a/setup.py b/setup.py index e5897c2..ffaf7ec 100755 --- a/setup.py +++ b/setup.py @@ -2,9 +2,19 @@ # -*- coding: utf-8 -*- import codecs import os - +import sys from setuptools import setup, find_packages +if sys.version_info < (3, 7): + INSTALL_REQUIRES = [ + 'Django>=1.5', + ] +else: + INSTALL_REQUIRES = [ + 'Django>=1.5', + 'packaging>=21.3' + ] + def read(*parts): filename = os.path.join(os.path.dirname(__file__), *parts) @@ -14,7 +24,7 @@ def read(*parts): setup( name='django-js-reverse', - version='0.10.1a1.dev0', + version='0.10.1b1.dev0', classifiers=[ 'Programming Language :: Python', 'Programming Language :: Python :: 3', @@ -36,7 +46,5 @@ def read(*parts): 'templates/django_js_reverse/*', ] }, - install_requires=[ - 'Django>=1.5', - ] + install_requires=INSTALL_REQUIRES ) diff --git a/tox.ini b/tox.ini index 696a8c0..3b173fd 100644 --- a/tox.ini +++ b/tox.ini @@ -2,7 +2,8 @@ envlist = py{27}-django{111,110,19,18,17,16,15}, py34-django{20,111,110,19,18,17,16,15}, - py{35,36,37}-django{22,21,20,111,110,19,18}, + py{35,36,37}-django{32,31,30,22,21,20,111,110,19,18}, + py{38,39,310}-django{22,30,31,32,40,41} lint, prepare_npm @@ -13,6 +14,7 @@ commands = coverage run -p django_js_reverse/tests/unit_tests.py deps= coverage==4.5.1 js2py==0.70 + packaging==21.3 django15: Django>=1.5,<1.6 django16: Django>=1.6,<1.7 django17: Django>=1.7,<1.8 @@ -23,6 +25,11 @@ deps= django20: Django>=2.0,<2.1 django21: Django>=2.1,<2.2 django22: Django>=2.2,<2.23 + django30: Django>=3.0,<3.1 + django31: Django>=3.1,<3.2 + django32: Django>=3.2,<3.3 + django40: Django>=4.0,<4.1 + django41: Django>=4.1,<4.2 [testenv:coveralls]