From 55d93715a6b855d57e564d3898df2e11cfcba384 Mon Sep 17 00:00:00 2001 From: Bilal Qamar <59555732+BilalQamar95@users.noreply.github.com> Date: Mon, 21 Oct 2024 16:54:29 +0500 Subject: [PATCH] feat: add python 3.12 support --- .github/workflows/ci.yml | 4 +- CHANGELOG.rst | 4 ++ edx_rest_framework_extensions/__init__.py | 2 +- requirements/base.txt | 20 ++++----- requirements/dev.txt | 49 ++++++++++++----------- requirements/docs.txt | 10 ++--- requirements/pip-tools.txt | 6 +-- requirements/pip.txt | 4 +- requirements/test.txt | 49 ++++++++++++----------- tox.ini | 2 +- 10 files changed, 78 insertions(+), 72 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 9e628763..adf87266 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -13,8 +13,8 @@ jobs: strategy: matrix: os: [ubuntu-latest] - python-version: ['3.11'] - toxenv: [quality, docs, django42-drflatest] + python-version: ['3.11', '3.12'] + toxenv: [quality, docs, django42-drflatest, django42] steps: - uses: actions/checkout@v4 diff --git a/CHANGELOG.rst b/CHANGELOG.rst index 0a281fc4..10da49fe 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -12,6 +12,10 @@ Change Log Unreleased ---------- +[10.5.0] - 2024-10-21 +--------------------- +* Added support for ``Python 3.12`` + [10.4.0] - 2024-08-30 --------------------- * Dropped support for ``Python<3.11`` diff --git a/edx_rest_framework_extensions/__init__.py b/edx_rest_framework_extensions/__init__.py index c9dba589..dd7eb3a5 100644 --- a/edx_rest_framework_extensions/__init__.py +++ b/edx_rest_framework_extensions/__init__.py @@ -1,3 +1,3 @@ """ edx Django REST Framework extensions. """ -__version__ = '10.4.0' # pragma: no cover +__version__ = '10.5.0' # pragma: no cover diff --git a/requirements/base.txt b/requirements/base.txt index de4caa4a..5bc456cb 100644 --- a/requirements/base.txt +++ b/requirements/base.txt @@ -1,5 +1,5 @@ # -# This file is autogenerated by pip-compile with Python 3.11 +# This file is autogenerated by pip-compile with Python 3.12 # by the following command: # # make upgrade @@ -12,11 +12,11 @@ cffi==1.17.1 # via # cryptography # pynacl -charset-normalizer==3.3.2 +charset-normalizer==3.4.0 # via requests click==8.1.7 # via edx-django-utils -cryptography==43.0.1 +cryptography==43.0.3 # via pyjwt django==4.2.16 # via @@ -37,21 +37,21 @@ djangorestframework==3.15.2 # via # -r requirements/base.in # drf-jwt -dnspython==2.6.1 +dnspython==2.7.0 # via pymongo drf-jwt==1.19.2 # via -r requirements/base.in -edx-django-utils==5.15.0 +edx-django-utils==7.0.0 # via -r requirements/base.in edx-opaque-keys==2.11.0 # via -r requirements/base.in -idna==3.8 +idna==3.10 # via requests -newrelic==9.13.0 +newrelic==10.2.0 # via edx-django-utils pbr==6.1.0 # via stevedore -psutil==6.0.0 +psutil==6.1.0 # via edx-django-utils pycparser==2.22 # via cffi @@ -59,7 +59,7 @@ pyjwt[crypto]==2.9.0 # via # -r requirements/base.in # drf-jwt -pymongo==4.8.0 +pymongo==4.10.1 # via edx-opaque-keys pynacl==1.5.0 # via edx-django-utils @@ -75,5 +75,5 @@ stevedore==5.3.0 # edx-opaque-keys typing-extensions==4.12.2 # via edx-opaque-keys -urllib3==2.2.2 +urllib3==2.2.3 # via requests diff --git a/requirements/dev.txt b/requirements/dev.txt index 26b723e5..9e3f99e4 100644 --- a/requirements/dev.txt +++ b/requirements/dev.txt @@ -1,5 +1,5 @@ # -# This file is autogenerated by pip-compile with Python 3.11 +# This file is autogenerated by pip-compile with Python 3.12 # by the following command: # # make upgrade @@ -17,7 +17,7 @@ asgiref==3.8.1 # -r requirements/base.txt # -r requirements/test.txt # django -astroid==3.2.4 +astroid==3.3.5 # via # -r requirements/test.txt # pylint @@ -51,7 +51,7 @@ chardet==5.2.0 # via # -r requirements/test.txt # tox -charset-normalizer==3.3.2 +charset-normalizer==3.4.0 # via # -r requirements/base.txt # -r requirements/docs.txt @@ -77,22 +77,22 @@ colorama==0.4.6 # via # -r requirements/test.txt # tox -coverage[toml]==7.6.1 +coverage[toml]==7.6.4 # via # -r requirements/test.txt # pytest-cov -cryptography==43.0.1 +cryptography==43.0.3 # via # -r requirements/base.txt # -r requirements/test.txt # pyjwt ddt==1.7.2 # via -r requirements/test.txt -dill==0.3.8 +dill==0.3.9 # via # -r requirements/test.txt # pylint -distlib==0.3.8 +distlib==0.3.9 # via # -r requirements/test.txt # virtualenv @@ -121,7 +121,7 @@ djangorestframework==3.15.2 # -r requirements/base.txt # -r requirements/test.txt # drf-jwt -dnspython==2.6.1 +dnspython==2.7.0 # via # -r requirements/base.txt # -r requirements/test.txt @@ -135,7 +135,7 @@ drf-jwt==1.19.2 # via # -r requirements/base.txt # -r requirements/test.txt -edx-django-utils==5.15.0 +edx-django-utils==7.0.0 # via # -r requirements/base.txt # -r requirements/test.txt @@ -147,18 +147,18 @@ edx-opaque-keys==2.11.0 # -r requirements/test.txt factory-boy==2.12.0 # via -r requirements/test.txt -faker==28.4.1 +faker==30.6.0 # via # -r requirements/test.txt # factory-boy -filelock==3.15.4 +filelock==3.16.1 # via # -r requirements/test.txt # tox # virtualenv httpretty==1.1.4 # via -r requirements/test.txt -idna==3.8 +idna==3.10 # via # -r requirements/base.txt # -r requirements/docs.txt @@ -182,7 +182,7 @@ jinja2==3.1.4 # -r requirements/test.txt # code-annotations # sphinx -markupsafe==2.1.5 +markupsafe==3.0.2 # via # -r requirements/docs.txt # -r requirements/test.txt @@ -191,7 +191,7 @@ mccabe==0.7.0 # via # -r requirements/test.txt # pylint -newrelic==9.13.0 +newrelic==10.2.0 # via # -r requirements/base.txt # -r requirements/test.txt @@ -210,7 +210,7 @@ pbr==6.1.0 # -r requirements/base.txt # -r requirements/test.txt # stevedore -platformdirs==4.2.2 +platformdirs==4.3.6 # via # -r requirements/test.txt # pylint @@ -221,7 +221,7 @@ pluggy==1.5.0 # -r requirements/test.txt # pytest # tox -psutil==6.0.0 +psutil==6.1.0 # via # -r requirements/base.txt # -r requirements/test.txt @@ -248,7 +248,7 @@ pyjwt[crypto]==2.9.0 # -r requirements/base.txt # -r requirements/test.txt # drf-jwt -pylint==3.2.7 +pylint==3.3.1 # via # -r requirements/test.txt # edx-lint @@ -259,7 +259,7 @@ pylint-celery==0.3 # via # -r requirements/test.txt # edx-lint -pylint-django==2.5.5 +pylint-django==2.6.1 # via # -r requirements/test.txt # edx-lint @@ -268,7 +268,7 @@ pylint-plugin-utils==0.8.2 # -r requirements/test.txt # pylint-celery # pylint-django -pymongo==4.8.0 +pymongo==4.10.1 # via # -r requirements/base.txt # -r requirements/test.txt @@ -278,11 +278,11 @@ pynacl==1.5.0 # -r requirements/base.txt # -r requirements/test.txt # edx-django-utils -pyproject-api==1.7.1 +pyproject-api==1.8.0 # via # -r requirements/test.txt # tox -pytest==8.3.2 +pytest==8.3.3 # via # -r requirements/test.txt # pytest-cov @@ -378,7 +378,7 @@ tomlkit==0.13.2 # via # -r requirements/test.txt # pylint -tox==4.18.0 +tox==4.23.0 # via -r requirements/test.txt typing-extensions==4.12.2 # via @@ -386,14 +386,15 @@ typing-extensions==4.12.2 # -r requirements/docs.txt # -r requirements/test.txt # edx-opaque-keys + # faker # pydata-sphinx-theme -urllib3==2.2.2 +urllib3==2.2.3 # via # -r requirements/base.txt # -r requirements/docs.txt # -r requirements/test.txt # requests -virtualenv==20.26.3 +virtualenv==20.27.0 # via # -r requirements/test.txt # tox diff --git a/requirements/docs.txt b/requirements/docs.txt index cacbe2e4..c44b818c 100644 --- a/requirements/docs.txt +++ b/requirements/docs.txt @@ -1,5 +1,5 @@ # -# This file is autogenerated by pip-compile with Python 3.11 +# This file is autogenerated by pip-compile with Python 3.12 # by the following command: # # make upgrade @@ -18,7 +18,7 @@ certifi==2024.8.30 # via # -c requirements/test.txt # requests -charset-normalizer==3.3.2 +charset-normalizer==3.4.0 # via # -c requirements/test.txt # requests @@ -26,7 +26,7 @@ docutils==0.19 # via # pydata-sphinx-theme # sphinx -idna==3.8 +idna==3.10 # via # -c requirements/test.txt # requests @@ -36,7 +36,7 @@ jinja2==3.1.4 # via # -c requirements/test.txt # sphinx -markupsafe==2.1.5 +markupsafe==3.0.2 # via # -c requirements/test.txt # jinja2 @@ -84,7 +84,7 @@ typing-extensions==4.12.2 # via # -c requirements/test.txt # pydata-sphinx-theme -urllib3==2.2.2 +urllib3==2.2.3 # via # -c requirements/test.txt # requests diff --git a/requirements/pip-tools.txt b/requirements/pip-tools.txt index fedf88df..cf4131e2 100644 --- a/requirements/pip-tools.txt +++ b/requirements/pip-tools.txt @@ -1,10 +1,10 @@ # -# This file is autogenerated by pip-compile with Python 3.11 +# This file is autogenerated by pip-compile with Python 3.12 # by the following command: # # make upgrade # -build==1.2.1 +build==1.2.2.post1 # via pip-tools click==8.1.7 # via pip-tools @@ -12,7 +12,7 @@ packaging==24.1 # via build pip-tools==7.4.1 # via -r requirements/pip-tools.in -pyproject-hooks==1.1.0 +pyproject-hooks==1.2.0 # via # build # pip-tools diff --git a/requirements/pip.txt b/requirements/pip.txt index f313a9c2..35655630 100644 --- a/requirements/pip.txt +++ b/requirements/pip.txt @@ -1,5 +1,5 @@ # -# This file is autogenerated by pip-compile with Python 3.11 +# This file is autogenerated by pip-compile with Python 3.12 # by the following command: # # make upgrade @@ -10,5 +10,5 @@ wheel==0.44.0 # The following packages are considered to be unsafe in a requirements file: pip==24.2 # via -r requirements/pip.in -setuptools==74.1.2 +setuptools==75.2.0 # via -r requirements/pip.in diff --git a/requirements/test.txt b/requirements/test.txt index 80e0c88b..a78e4a31 100644 --- a/requirements/test.txt +++ b/requirements/test.txt @@ -1,5 +1,5 @@ # -# This file is autogenerated by pip-compile with Python 3.11 +# This file is autogenerated by pip-compile with Python 3.12 # by the following command: # # make upgrade @@ -8,7 +8,7 @@ asgiref==3.8.1 # via # -r requirements/base.txt # django -astroid==3.2.4 +astroid==3.3.5 # via # pylint # pylint-celery @@ -25,7 +25,7 @@ cffi==1.17.1 # pynacl chardet==5.2.0 # via tox -charset-normalizer==3.3.2 +charset-normalizer==3.4.0 # via # -r requirements/base.txt # requests @@ -42,19 +42,19 @@ code-annotations==1.8.0 # via edx-lint colorama==0.4.6 # via tox -coverage[toml]==7.6.1 +coverage[toml]==7.6.4 # via # -r requirements/test.in # pytest-cov -cryptography==43.0.1 +cryptography==43.0.3 # via # -r requirements/base.txt # pyjwt ddt==1.7.2 # via -r requirements/test.in -dill==0.3.8 +dill==0.3.9 # via pylint -distlib==0.3.8 +distlib==0.3.9 # via virtualenv # via # -c requirements/common_constraints.txt @@ -75,13 +75,13 @@ django-waffle==4.1.0 # via # -r requirements/base.txt # drf-jwt -dnspython==2.6.1 +dnspython==2.7.0 # via # -r requirements/base.txt # pymongo drf-jwt==1.19.2 # via -r requirements/base.txt -edx-django-utils==5.15.0 +edx-django-utils==7.0.0 # via -r requirements/base.txt edx-lint==5.4.0 # via -r requirements/test.in @@ -89,15 +89,15 @@ edx-opaque-keys==2.11.0 # via -r requirements/base.txt factory-boy==2.12.0 # via -r requirements/test.in -faker==28.4.1 +faker==30.6.0 # via factory-boy -filelock==3.15.4 +filelock==3.16.1 # via # tox # virtualenv httpretty==1.1.4 # via -r requirements/test.in -idna==3.8 +idna==3.10 # via # -r requirements/base.txt # requests @@ -109,11 +109,11 @@ isort==5.13.2 # pylint jinja2==3.1.4 # via code-annotations -markupsafe==2.1.5 +markupsafe==3.0.2 # via jinja2 mccabe==0.7.0 # via pylint -newrelic==9.13.0 +newrelic==10.2.0 # via # -r requirements/base.txt # edx-django-utils @@ -126,7 +126,7 @@ pbr==6.1.0 # via # -r requirements/base.txt # stevedore -platformdirs==4.2.2 +platformdirs==4.3.6 # via # pylint # tox @@ -135,7 +135,7 @@ pluggy==1.5.0 # via # pytest # tox -psutil==6.0.0 +psutil==6.1.0 # via # -r requirements/base.txt # edx-django-utils @@ -149,7 +149,7 @@ pyjwt[crypto]==2.9.0 # via # -r requirements/base.txt # drf-jwt -pylint==3.2.7 +pylint==3.3.1 # via # edx-lint # pylint-celery @@ -157,13 +157,13 @@ pylint==3.2.7 # pylint-plugin-utils pylint-celery==0.3 # via edx-lint -pylint-django==2.5.5 +pylint-django==2.6.1 # via edx-lint pylint-plugin-utils==0.8.2 # via # pylint-celery # pylint-django -pymongo==4.8.0 +pymongo==4.10.1 # via # -r requirements/base.txt # edx-opaque-keys @@ -171,9 +171,9 @@ pynacl==1.5.0 # via # -r requirements/base.txt # edx-django-utils -pyproject-api==1.7.1 +pyproject-api==1.8.0 # via tox -pytest==8.3.2 +pytest==8.3.3 # via # pytest-cov # pytest-django @@ -209,15 +209,16 @@ text-unidecode==1.3 # via python-slugify tomlkit==0.13.2 # via pylint -tox==4.18.0 +tox==4.23.0 # via -r requirements/test.in typing-extensions==4.12.2 # via # -r requirements/base.txt # edx-opaque-keys -urllib3==2.2.2 + # faker +urllib3==2.2.3 # via # -r requirements/base.txt # requests -virtualenv==20.26.3 +virtualenv==20.27.0 # via tox diff --git a/tox.ini b/tox.ini index 84deda1c..a63c2c95 100644 --- a/tox.ini +++ b/tox.ini @@ -1,5 +1,5 @@ [tox] -envlist = py{38, 311}-django{42}-drf{latest}, quality, docs +envlist = py{311, 312}-django{42}-drf{latest}, quality, docs [testenv] setenv =