diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 7e1a161..fa7fff9 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -15,15 +15,15 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - python-version: ['3.8'] - toxenv: [quality, docs, 'py38'] + python-version: ['3.12'] + toxenv: [quality, docs, 'py312'] env: RUNJSHINT: true steps: - uses: actions/checkout@v2 - uses: actions/setup-python@v2 with: - python-version: '3.8' + python-version: '3.12' architecture: x64 - run: pip install -r requirements/ci.txt - name: Run tox @@ -31,8 +31,8 @@ jobs: TOXENV: ${{ matrix.toxenv }} run: tox - name: Run Coverage - if: matrix.toxenv == 'py38' + if: matrix.toxenv == 'py312' uses: codecov/codecov-action@v3 with: flags: unittests - fail_ci_if_error: true + fail_ci_if_error: false diff --git a/.gitignore b/.gitignore index e7c6e12..2bdb73f 100644 --- a/.gitignore +++ b/.gitignore @@ -20,6 +20,8 @@ __pycache__ /.installed.cfg /lib /lib64 +venv +.idea # Installer logs pip-log.txt diff --git a/docs/conf.py b/docs/conf.py index fdf0abb..64c496b 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -15,8 +15,8 @@ import re import sys from subprocess import check_call - -import edx_theme +from datetime import datetime +import sphinx_book_theme def get_version(*file_paths): @@ -59,7 +59,6 @@ def get_version(*file_paths): # extensions coming with Sphinx (named 'sphinx.ext.*') or your custom # ones. extensions = [ - 'edx_theme', 'sphinx.ext.autodoc', 'sphinx.ext.doctest', 'sphinx.ext.intersphinx', @@ -90,8 +89,8 @@ def get_version(*file_paths): # General information about the project. project = 'getsmarter-api-clients' -copyright = edx_theme.COPYRIGHT # pylint: disable=redefined-builtin -author = edx_theme.AUTHOR +copyright = f'{datetime.now().year}, edX LLC.' # pylint: disable=redefined-builtin +author = 'edX LLC' project_title = 'getsmarter-api-clients' documentation_title = f"{project_title}" @@ -172,16 +171,7 @@ def get_version(*file_paths): # The theme to use for HTML and HTML Help pages. See the documentation for # a list of builtin themes. -html_theme = 'edx_theme' - -# Theme options are theme-specific and customize the look and feel of a theme -# further. For a list of options available for each theme, see the -# documentation. -# -# html_theme_options = {} - -# Add any paths that contain custom themes here, relative to this directory. -html_theme_path = [edx_theme.get_html_theme_path()] +html_theme = 'sphinx_book_theme' # The name for this set of Sphinx documents. # " v documentation" by default. diff --git a/pylintrc b/pylintrc index 0c9a4d4..972ea0c 100644 --- a/pylintrc +++ b/pylintrc @@ -2,7 +2,7 @@ # ** DO NOT EDIT THIS FILE ** # *************************** # -# This file was generated by edx-lint: https://github.com/edx/edx-lint +# This file was generated by edx-lint: https://github.com/openedx/edx-lint # # If you want to change this file, you have two choices, depending on whether # you want to make a local change that applies only to this repo, or whether @@ -28,7 +28,7 @@ # CENTRAL CHANGE: # # 1. Edit the pylintrc file in the edx-lint repo at -# https://github.com/edx/edx-lint/blob/master/edx_lint/files/pylintrc +# https://github.com/openedx/edx-lint/blob/master/edx_lint/files/pylintrc # # 2. install the updated version of edx-lint (in edx-lint): # @@ -64,7 +64,7 @@ # SERIOUSLY. # # ------------------------------ -# Generated by edx-lint version: 5.2.4 +# Generated by edx-lint version: 5.4.1 # ------------------------------ [MASTER] ignore = migrations @@ -259,6 +259,7 @@ enable = useless-suppression, disable = bad-indentation, + broad-exception-raised, consider-using-f-string, duplicate-code, file-ignored, @@ -286,8 +287,10 @@ disable = illegal-waffle-usage, logging-fstring-interpolation, + broad-exception-caught, consider-using-with, bad-option-value, + too-many-positional-arguments [REPORTS] output-format = text @@ -382,6 +385,6 @@ ext-import-graph = int-import-graph = [EXCEPTIONS] -overgeneral-exceptions = Exception +overgeneral-exceptions = builtins.Exception -# d6bc12479acb6afea1e73ae451442ce6695cb05b +# c361d0e1560dd583e9500aeb19e05008d92d4349 diff --git a/pylintrc_tweaks b/pylintrc_tweaks index 6b02bbf..07418f5 100644 --- a/pylintrc_tweaks +++ b/pylintrc_tweaks @@ -5,5 +5,7 @@ load-plugins = edx_lint.pylint,pylint_celery [MESSAGES CONTROL] disable+ = + broad-exception-caught, consider-using-with, bad-option-value, + too-many-positional-arguments diff --git a/requirements/base.txt b/requirements/base.txt index ff38c89..238372d 100644 --- a/requirements/base.txt +++ b/requirements/base.txt @@ -1,20 +1,20 @@ # -# This file is autogenerated by pip-compile with Python 3.8 +# This file is autogenerated by pip-compile with Python 3.12 # by the following command: # # make upgrade # -asgiref==3.7.2 +asgiref==3.8.1 # via django -certifi==2023.7.22 +certifi==2024.8.30 # via requests -cffi==1.16.0 +cffi==1.17.1 # via pynacl -charset-normalizer==3.3.1 +charset-normalizer==3.4.0 # via requests click==8.1.7 # via edx-django-utils -django==3.2.22 +django==4.2.16 # via # -c https://raw.githubusercontent.com/edx/edx-lint/master/edx_lint/files/common_constraints.txt # django-crum @@ -22,39 +22,35 @@ django==3.2.22 # edx-django-utils django-crum==0.7.9 # via edx-django-utils -django-waffle==4.0.0 +django-waffle==4.1.0 # via edx-django-utils -edx-django-utils==5.7.0 +edx-django-utils==7.0.0 # via -r requirements/base.in -idna==3.4 +idna==3.10 # via requests -newrelic==9.1.1 +newrelic==10.2.0 # via edx-django-utils oauthlib==3.2.2 # via # -r requirements/base.in # requests-oauthlib -pbr==5.11.1 +pbr==6.1.0 # via stevedore -psutil==5.9.6 +psutil==6.1.0 # via edx-django-utils -pycparser==2.21 +pycparser==2.22 # via cffi pynacl==1.5.0 # via edx-django-utils -pytz==2023.3.post1 - # via - # -r requirements/base.in - # django -requests==2.31.0 +pytz==2024.2 + # via -r requirements/base.in +requests==2.32.3 # via requests-oauthlib -requests-oauthlib==1.3.1 +requests-oauthlib==2.0.0 # via -r requirements/base.in -sqlparse==0.4.4 +sqlparse==0.5.1 # via django -stevedore==5.1.0 +stevedore==5.3.0 # via edx-django-utils -typing-extensions==4.8.0 - # via asgiref -urllib3==2.0.7 +urllib3==2.2.3 # via requests diff --git a/requirements/ci.txt b/requirements/ci.txt index 5d618c0..dc61486 100644 --- a/requirements/ci.txt +++ b/requirements/ci.txt @@ -1,28 +1,34 @@ # -# This file is autogenerated by pip-compile with Python 3.8 +# This file is autogenerated by pip-compile with Python 3.12 # by the following command: # # make upgrade # -distlib==0.3.7 +cachetools==5.5.0 + # via tox +chardet==5.2.0 + # via tox +colorama==0.4.6 + # via tox +distlib==0.3.9 # via virtualenv -filelock==3.12.4 +filelock==3.16.1 # via # tox # virtualenv -packaging==23.2 - # via tox -platformdirs==3.11.0 - # via virtualenv -pluggy==1.3.0 - # via tox -py==1.11.0 - # via tox -six==1.16.0 +packaging==24.1 + # via + # pyproject-api + # tox +platformdirs==4.3.6 + # via + # tox + # virtualenv +pluggy==1.5.0 # via tox -tomli==2.0.1 +pyproject-api==1.8.0 # via tox -tox==3.28.0 +tox==4.23.2 # via -r requirements/ci.in -virtualenv==20.24.5 +virtualenv==20.27.1 # via tox diff --git a/requirements/dev.txt b/requirements/dev.txt index b16cb7a..183846d 100644 --- a/requirements/dev.txt +++ b/requirements/dev.txt @@ -1,33 +1,40 @@ # -# This file is autogenerated by pip-compile with Python 3.8 +# This file is autogenerated by pip-compile with Python 3.12 # by the following command: # # make upgrade # -asgiref==3.7.2 +asgiref==3.8.1 # via # -r requirements/quality.txt # django -astroid==3.0.1 +astroid==3.3.5 # via # -r requirements/quality.txt # pylint # pylint-celery -build==1.0.3 +build==1.2.2.post1 # via # -r requirements/pip-tools.txt # pip-tools -certifi==2023.7.22 +cachetools==5.5.0 + # via + # -r requirements/ci.txt + # tox +certifi==2024.8.30 # via # -r requirements/quality.txt # requests -cffi==1.16.0 +cffi==1.17.1 # via # -r requirements/quality.txt # pynacl chardet==5.2.0 - # via diff-cover -charset-normalizer==3.3.1 + # via + # -r requirements/ci.txt + # diff-cover + # tox +charset-normalizer==3.4.0 # via # -r requirements/quality.txt # requests @@ -44,27 +51,31 @@ click-log==0.4.0 # via # -r requirements/quality.txt # edx-lint -code-annotations==1.5.0 +code-annotations==1.8.0 # via # -r requirements/quality.txt # edx-lint -coverage[toml]==7.3.2 +colorama==0.4.6 + # via + # -r requirements/ci.txt + # tox +coverage[toml]==7.6.4 # via # -r requirements/quality.txt # pytest-cov -ddt==1.6.0 +ddt==1.7.2 # via -r requirements/quality.txt -diff-cover==8.0.0 +diff-cover==9.2.0 # via -r requirements/dev.in -dill==0.3.7 +dill==0.3.9 # via # -r requirements/quality.txt # pylint -distlib==0.3.7 +distlib==0.3.9 # via # -r requirements/ci.txt # virtualenv -django==3.2.22 +django==4.2.16 # via # -c https://raw.githubusercontent.com/edx/edx-lint/master/edx_lint/files/common_constraints.txt # -r requirements/quality.txt @@ -75,60 +86,57 @@ django-crum==0.7.9 # via # -r requirements/quality.txt # edx-django-utils -django-waffle==4.0.0 +django-waffle==4.1.0 # via # -r requirements/quality.txt # edx-django-utils -docutils==0.20.1 +docutils==0.21.2 # via # -r requirements/quality.txt # readme-renderer -edx-django-utils==5.7.0 +edx-django-utils==7.0.0 # via -r requirements/quality.txt -edx-lint==5.3.4 +edx-lint==5.4.1 # via -r requirements/quality.txt -exceptiongroup==1.1.3 - # via - # -r requirements/quality.txt - # pytest -filelock==3.12.4 +filelock==3.16.1 # via # -r requirements/ci.txt # tox # virtualenv -idna==3.4 +idna==3.10 # via # -r requirements/quality.txt # requests -importlib-metadata==6.8.0 +importlib-metadata==8.5.0 # via - # -r requirements/pip-tools.txt # -r requirements/quality.txt - # build - # keyring # twine -importlib-resources==6.1.0 - # via - # -r requirements/quality.txt - # keyring iniconfig==2.0.0 # via # -r requirements/quality.txt # pytest -isort==5.12.0 +isort==5.13.2 # via # -r requirements/quality.txt # pylint -jaraco-classes==3.3.0 +jaraco-classes==3.4.0 + # via + # -r requirements/quality.txt + # keyring +jaraco-context==6.0.1 + # via + # -r requirements/quality.txt + # keyring +jaraco-functools==4.1.0 # via # -r requirements/quality.txt # keyring -jinja2==3.1.2 +jinja2==3.1.4 # via # -r requirements/quality.txt # code-annotations # diff-cover -keyring==24.2.0 +keyring==25.5.0 # via # -r requirements/quality.txt # twine @@ -136,7 +144,7 @@ markdown-it-py==3.0.0 # via # -r requirements/quality.txt # rich -markupsafe==2.1.3 +markupsafe==3.0.2 # via # -r requirements/quality.txt # jinja2 @@ -148,15 +156,16 @@ mdurl==0.1.2 # via # -r requirements/quality.txt # markdown-it-py -more-itertools==10.1.0 +more-itertools==10.5.0 # via # -r requirements/quality.txt # jaraco-classes -newrelic==9.1.1 + # jaraco-functools +newrelic==10.2.0 # via # -r requirements/quality.txt # edx-django-utils -nh3==0.2.14 +nh3==0.2.18 # via # -r requirements/quality.txt # readme-renderer @@ -164,60 +173,58 @@ oauthlib==3.2.2 # via # -r requirements/quality.txt # requests-oauthlib -packaging==23.2 +packaging==24.1 # via # -r requirements/ci.txt # -r requirements/pip-tools.txt # -r requirements/quality.txt # build + # pyproject-api # pytest # tox -pbr==5.11.1 +pbr==6.1.0 # via # -r requirements/quality.txt # stevedore -pip-tools==7.3.0 +pip-tools==7.4.1 # via -r requirements/pip-tools.txt -pkginfo==1.9.6 +pkginfo==1.10.0 # via # -r requirements/quality.txt # twine -platformdirs==3.11.0 +platformdirs==4.3.6 # via # -r requirements/ci.txt # -r requirements/quality.txt # pylint + # tox # virtualenv -pluggy==1.3.0 +pluggy==1.5.0 # via # -r requirements/ci.txt # -r requirements/quality.txt # diff-cover # pytest # tox -psutil==5.9.6 +psutil==6.1.0 # via # -r requirements/quality.txt # edx-django-utils -py==1.11.0 - # via - # -r requirements/ci.txt - # tox -pycodestyle==2.11.1 +pycodestyle==2.12.1 # via -r requirements/quality.txt -pycparser==2.21 +pycparser==2.22 # via # -r requirements/quality.txt # cffi pydocstyle==6.3.0 # via -r requirements/quality.txt -pygments==2.16.1 +pygments==2.18.0 # via # -r requirements/quality.txt # diff-cover # readme-renderer # rich -pylint==3.0.2 +pylint==3.3.1 # via # -r requirements/quality.txt # edx-lint @@ -228,7 +235,7 @@ pylint-celery==0.3 # via # -r requirements/quality.txt # edx-lint -pylint-django==2.5.4 +pylint-django==2.6.1 # via # -r requirements/quality.txt # edx-lint @@ -241,71 +248,72 @@ pynacl==1.5.0 # via # -r requirements/quality.txt # edx-django-utils -pyproject-hooks==1.0.0 +pyproject-api==1.8.0 + # via + # -r requirements/ci.txt + # tox +pyproject-hooks==1.2.0 # via # -r requirements/pip-tools.txt # build -pytest==7.4.2 + # pip-tools +pytest==8.3.3 # via # -r requirements/quality.txt # pytest-cov -pytest-cov==4.1.0 +pytest-cov==6.0.0 # via -r requirements/quality.txt -python-slugify==8.0.1 +python-slugify==8.0.4 # via # -r requirements/quality.txt # code-annotations -pytz==2023.3.post1 - # via - # -r requirements/quality.txt - # django -pyyaml==6.0.1 +pytz==2024.2 + # via -r requirements/quality.txt +pyyaml==6.0.2 # via # -r requirements/quality.txt # code-annotations # responses -readme-renderer==42.0 +readme-renderer==44.0 # via # -r requirements/quality.txt # twine -requests==2.31.0 +requests==2.32.3 # via # -r requirements/quality.txt # requests-oauthlib # requests-toolbelt # responses # twine -requests-oauthlib==1.3.1 +requests-oauthlib==2.0.0 # via -r requirements/quality.txt requests-toolbelt==1.0.0 # via # -r requirements/quality.txt # twine -responses==0.23.3 +responses==0.25.3 # via -r requirements/quality.txt rfc3986==2.0.0 # via # -r requirements/quality.txt # twine -rich==13.6.0 +rich==13.9.4 # via # -r requirements/quality.txt # twine six==1.16.0 # via - # -r requirements/ci.txt # -r requirements/quality.txt # edx-lint - # tox snowballstemmer==2.2.0 # via # -r requirements/quality.txt # pydocstyle -sqlparse==0.4.4 +sqlparse==0.5.1 # via # -r requirements/quality.txt # django -stevedore==5.1.0 +stevedore==5.3.0 # via # -r requirements/quality.txt # code-annotations @@ -314,57 +322,32 @@ text-unidecode==1.3 # via # -r requirements/quality.txt # python-slugify -tomli==2.0.1 - # via - # -r requirements/ci.txt - # -r requirements/pip-tools.txt - # -r requirements/quality.txt - # build - # coverage - # pip-tools - # pylint - # pyproject-hooks - # pytest - # tox -tomlkit==0.12.1 +tomlkit==0.13.2 # via # -r requirements/quality.txt # pylint -tox==3.28.0 +tox==4.23.2 # via -r requirements/ci.txt -twine==4.0.2 +twine==5.1.1 # via -r requirements/quality.txt -types-pyyaml==6.0.12.12 - # via - # -r requirements/quality.txt - # responses -typing-extensions==4.8.0 - # via - # -r requirements/quality.txt - # asgiref - # astroid - # pylint - # rich -urllib3==2.0.7 +urllib3==2.2.3 # via # -r requirements/quality.txt # requests # responses # twine -virtualenv==20.24.5 +virtualenv==20.27.1 # via # -r requirements/ci.txt # tox -wheel==0.41.2 +wheel==0.44.0 # via # -r requirements/pip-tools.txt # pip-tools -zipp==3.17.0 +zipp==3.20.2 # via - # -r requirements/pip-tools.txt # -r requirements/quality.txt # importlib-metadata - # importlib-resources # The following packages are considered to be unsafe in a requirements file: # pip diff --git a/requirements/doc.in b/requirements/doc.in index 68f4cb2..5035d9f 100644 --- a/requirements/doc.in +++ b/requirements/doc.in @@ -4,7 +4,7 @@ -r test.txt # Core and testing dependencies for this package doc8 # reStructuredText style checker -edx_sphinx_theme # edX theme for Sphinx output +sphinx_book_theme # theme for Sphinx output twine # Validates README.rst for usage on PyPI build # Needed to build the wheel for twine check Sphinx # Documentation builder diff --git a/requirements/doc.txt b/requirements/doc.txt index 19791d9..95b3895 100644 --- a/requirements/doc.txt +++ b/requirements/doc.txt @@ -1,28 +1,34 @@ # -# This file is autogenerated by pip-compile with Python 3.8 +# This file is autogenerated by pip-compile with Python 3.12 # by the following command: # # make upgrade # -alabaster==0.7.13 +accessible-pygments==0.0.5 + # via pydata-sphinx-theme +alabaster==1.0.0 # via sphinx -asgiref==3.7.2 +asgiref==3.8.1 # via # -r requirements/test.txt # django -babel==2.13.0 - # via sphinx -build==1.0.3 +babel==2.16.0 + # via + # pydata-sphinx-theme + # sphinx +beautifulsoup4==4.12.3 + # via pydata-sphinx-theme +build==1.2.2.post1 # via -r requirements/doc.in -certifi==2023.7.22 +certifi==2024.8.30 # via # -r requirements/test.txt # requests -cffi==1.16.0 +cffi==1.17.1 # via # -r requirements/test.txt # pynacl -charset-normalizer==3.3.1 +charset-normalizer==3.4.0 # via # -r requirements/test.txt # requests @@ -30,13 +36,13 @@ click==8.1.7 # via # -r requirements/test.txt # edx-django-utils -coverage[toml]==7.3.2 +coverage[toml]==7.6.4 # via # -r requirements/test.txt # pytest-cov -ddt==1.6.0 +ddt==1.7.2 # via -r requirements/test.txt -django==3.2.22 +django==4.2.16 # via # -c https://raw.githubusercontent.com/edx/edx-lint/master/edx_lint/files/common_constraints.txt # -r requirements/test.txt @@ -47,95 +53,94 @@ django-crum==0.7.9 # via # -r requirements/test.txt # edx-django-utils -django-waffle==4.0.0 +django-waffle==4.1.0 # via # -r requirements/test.txt # edx-django-utils -doc8==1.1.1 +doc8==1.1.2 # via -r requirements/doc.in -docutils==0.19 +docutils==0.21.2 # via # doc8 + # pydata-sphinx-theme # readme-renderer # restructuredtext-lint # sphinx -edx-django-utils==5.7.0 +edx-django-utils==7.0.0 # via -r requirements/test.txt -edx-sphinx-theme==3.1.0 - # via -r requirements/doc.in -exceptiongroup==1.1.3 - # via - # -r requirements/test.txt - # pytest -idna==3.4 +idna==3.10 # via # -r requirements/test.txt # requests imagesize==1.4.1 # via sphinx -importlib-metadata==6.8.0 - # via - # build - # keyring - # sphinx - # twine -importlib-resources==6.1.0 - # via keyring +importlib-metadata==8.5.0 + # via twine iniconfig==2.0.0 # via # -r requirements/test.txt # pytest -jaraco-classes==3.3.0 +jaraco-classes==3.4.0 # via keyring -jinja2==3.1.2 +jaraco-context==6.0.1 + # via keyring +jaraco-functools==4.1.0 + # via keyring +jinja2==3.1.4 # via sphinx -keyring==24.2.0 +keyring==25.5.0 # via twine markdown-it-py==3.0.0 # via rich -markupsafe==2.1.3 +markupsafe==3.0.2 # via jinja2 mdurl==0.1.2 # via markdown-it-py -more-itertools==10.1.0 - # via jaraco-classes -newrelic==9.1.1 +more-itertools==10.5.0 + # via + # jaraco-classes + # jaraco-functools +newrelic==10.2.0 # via # -r requirements/test.txt # edx-django-utils -nh3==0.2.14 +nh3==0.2.18 # via readme-renderer oauthlib==3.2.2 # via # -r requirements/test.txt # requests-oauthlib -packaging==23.2 +packaging==24.1 # via # -r requirements/test.txt # build # pytest # sphinx -pbr==5.11.1 +pbr==6.1.0 # via # -r requirements/test.txt # stevedore -pkginfo==1.9.6 +pkginfo==1.10.0 # via twine -pluggy==1.3.0 +pluggy==1.5.0 # via # -r requirements/test.txt # pytest -psutil==5.9.6 +psutil==6.1.0 # via # -r requirements/test.txt # edx-django-utils -pycparser==2.21 +pycparser==2.22 # via # -r requirements/test.txt # cffi -pygments==2.16.1 +pydata-sphinx-theme==0.16.0 + # via sphinx-book-theme +pygments==2.18.0 # via + # accessible-pygments # doc8 + # pydata-sphinx-theme # readme-renderer # rich # sphinx @@ -143,26 +148,23 @@ pynacl==1.5.0 # via # -r requirements/test.txt # edx-django-utils -pyproject-hooks==1.0.0 +pyproject-hooks==1.2.0 # via build -pytest==7.4.2 +pytest==8.3.3 # via # -r requirements/test.txt # pytest-cov -pytest-cov==4.1.0 +pytest-cov==6.0.0 # via -r requirements/test.txt -pytz==2023.3.post1 - # via - # -r requirements/test.txt - # babel - # django -pyyaml==6.0.1 +pytz==2024.2 + # via -r requirements/test.txt +pyyaml==6.0.2 # via # -r requirements/test.txt # responses -readme-renderer==42.0 +readme-renderer==44.0 # via twine -requests==2.31.0 +requests==2.32.3 # via # -r requirements/test.txt # requests-oauthlib @@ -170,73 +172,59 @@ requests==2.31.0 # responses # sphinx # twine -requests-oauthlib==1.3.1 +requests-oauthlib==2.0.0 # via -r requirements/test.txt requests-toolbelt==1.0.0 # via twine -responses==0.23.3 +responses==0.25.3 # via -r requirements/test.txt restructuredtext-lint==1.4.0 # via doc8 rfc3986==2.0.0 # via twine -rich==13.6.0 +rich==13.9.4 # via twine -six==1.16.0 - # via edx-sphinx-theme snowballstemmer==2.2.0 # via sphinx -sphinx==5.3.0 +soupsieve==2.6 + # via beautifulsoup4 +sphinx==8.1.3 # via # -r requirements/doc.in - # edx-sphinx-theme -sphinxcontrib-applehelp==1.0.4 + # pydata-sphinx-theme + # sphinx-book-theme +sphinx-book-theme==1.1.3 + # via -r requirements/doc.in +sphinxcontrib-applehelp==2.0.0 # via sphinx -sphinxcontrib-devhelp==1.0.2 +sphinxcontrib-devhelp==2.0.0 # via sphinx -sphinxcontrib-htmlhelp==2.0.1 +sphinxcontrib-htmlhelp==2.1.0 # via sphinx sphinxcontrib-jsmath==1.0.1 # via sphinx -sphinxcontrib-qthelp==1.0.3 +sphinxcontrib-qthelp==2.0.0 # via sphinx -sphinxcontrib-serializinghtml==1.1.5 +sphinxcontrib-serializinghtml==2.0.0 # via sphinx -sqlparse==0.4.4 +sqlparse==0.5.1 # via # -r requirements/test.txt # django -stevedore==5.1.0 +stevedore==5.3.0 # via # -r requirements/test.txt # doc8 # edx-django-utils -tomli==2.0.1 - # via - # -r requirements/test.txt - # build - # coverage - # doc8 - # pyproject-hooks - # pytest -twine==4.0.2 +twine==5.1.1 # via -r requirements/doc.in -types-pyyaml==6.0.12.12 - # via - # -r requirements/test.txt - # responses -typing-extensions==4.8.0 - # via - # -r requirements/test.txt - # asgiref - # rich -urllib3==2.0.7 +typing-extensions==4.12.2 + # via pydata-sphinx-theme +urllib3==2.2.3 # via # -r requirements/test.txt # requests # responses # twine -zipp==3.17.0 - # via - # importlib-metadata - # importlib-resources +zipp==3.20.2 + # via importlib-metadata diff --git a/requirements/pip-tools.txt b/requirements/pip-tools.txt index 50d35f2..cf4131e 100644 --- a/requirements/pip-tools.txt +++ b/requirements/pip-tools.txt @@ -1,30 +1,23 @@ # -# This file is autogenerated by pip-compile with Python 3.8 +# This file is autogenerated by pip-compile with Python 3.12 # by the following command: # # make upgrade # -build==1.0.3 +build==1.2.2.post1 # via pip-tools click==8.1.7 # via pip-tools -importlib-metadata==6.8.0 +packaging==24.1 # via build -packaging==23.2 - # via build -pip-tools==7.3.0 +pip-tools==7.4.1 # via -r requirements/pip-tools.in -pyproject-hooks==1.0.0 - # via build -tomli==2.0.1 +pyproject-hooks==1.2.0 # via # build # pip-tools - # pyproject-hooks -wheel==0.41.2 +wheel==0.44.0 # via pip-tools -zipp==3.17.0 - # via importlib-metadata # The following packages are considered to be unsafe in a requirements file: # pip diff --git a/requirements/pip.txt b/requirements/pip.txt index 0c788d6..9f8c141 100644 --- a/requirements/pip.txt +++ b/requirements/pip.txt @@ -1,14 +1,14 @@ # -# This file is autogenerated by pip-compile with Python 3.8 +# This file is autogenerated by pip-compile with Python 3.12 # by the following command: # # make upgrade # -wheel==0.41.2 +wheel==0.44.0 # via -r requirements/pip.in # The following packages are considered to be unsafe in a requirements file: -pip==23.3.1 +pip==24.3.1 # via -r requirements/pip.in -setuptools==68.2.2 +setuptools==75.3.0 # via -r requirements/pip.in diff --git a/requirements/quality.txt b/requirements/quality.txt index 6977526..26d6afe 100644 --- a/requirements/quality.txt +++ b/requirements/quality.txt @@ -1,26 +1,26 @@ # -# This file is autogenerated by pip-compile with Python 3.8 +# This file is autogenerated by pip-compile with Python 3.12 # by the following command: # # make upgrade # -asgiref==3.7.2 +asgiref==3.8.1 # via # -r requirements/test.txt # django -astroid==3.0.1 +astroid==3.3.5 # via # pylint # pylint-celery -certifi==2023.7.22 +certifi==2024.8.30 # via # -r requirements/test.txt # requests -cffi==1.16.0 +cffi==1.17.1 # via # -r requirements/test.txt # pynacl -charset-normalizer==3.3.1 +charset-normalizer==3.4.0 # via # -r requirements/test.txt # requests @@ -33,17 +33,17 @@ click==8.1.7 # edx-lint click-log==0.4.0 # via edx-lint -code-annotations==1.5.0 +code-annotations==1.8.0 # via edx-lint -coverage[toml]==7.3.2 +coverage[toml]==7.6.4 # via # -r requirements/test.txt # pytest-cov -ddt==1.6.0 +ddt==1.7.2 # via -r requirements/test.txt -dill==0.3.7 +dill==0.3.9 # via pylint -django==3.2.22 +django==4.2.16 # via # -c https://raw.githubusercontent.com/edx/edx-lint/master/edx_lint/files/common_constraints.txt # -r requirements/test.txt @@ -54,97 +54,95 @@ django-crum==0.7.9 # via # -r requirements/test.txt # edx-django-utils -django-waffle==4.0.0 +django-waffle==4.1.0 # via # -r requirements/test.txt # edx-django-utils -docutils==0.20.1 +docutils==0.21.2 # via readme-renderer -edx-django-utils==5.7.0 +edx-django-utils==7.0.0 # via -r requirements/test.txt -edx-lint==5.3.4 +edx-lint==5.4.1 # via -r requirements/quality.in -exceptiongroup==1.1.3 - # via - # -r requirements/test.txt - # pytest -idna==3.4 +idna==3.10 # via # -r requirements/test.txt # requests -importlib-metadata==6.8.0 - # via - # keyring - # twine -importlib-resources==6.1.0 - # via keyring +importlib-metadata==8.5.0 + # via twine iniconfig==2.0.0 # via # -r requirements/test.txt # pytest -isort==5.12.0 +isort==5.13.2 # via # -r requirements/quality.in # pylint -jaraco-classes==3.3.0 +jaraco-classes==3.4.0 # via keyring -jinja2==3.1.2 +jaraco-context==6.0.1 + # via keyring +jaraco-functools==4.1.0 + # via keyring +jinja2==3.1.4 # via code-annotations -keyring==24.2.0 +keyring==25.5.0 # via twine markdown-it-py==3.0.0 # via rich -markupsafe==2.1.3 +markupsafe==3.0.2 # via jinja2 mccabe==0.7.0 # via pylint mdurl==0.1.2 # via markdown-it-py -more-itertools==10.1.0 - # via jaraco-classes -newrelic==9.1.1 +more-itertools==10.5.0 + # via + # jaraco-classes + # jaraco-functools +newrelic==10.2.0 # via # -r requirements/test.txt # edx-django-utils -nh3==0.2.14 +nh3==0.2.18 # via readme-renderer oauthlib==3.2.2 # via # -r requirements/test.txt # requests-oauthlib -packaging==23.2 +packaging==24.1 # via # -r requirements/test.txt # pytest -pbr==5.11.1 +pbr==6.1.0 # via # -r requirements/test.txt # stevedore -pkginfo==1.9.6 +pkginfo==1.10.0 # via twine -platformdirs==3.11.0 +platformdirs==4.3.6 # via pylint -pluggy==1.3.0 +pluggy==1.5.0 # via # -r requirements/test.txt # pytest -psutil==5.9.6 +psutil==6.1.0 # via # -r requirements/test.txt # edx-django-utils -pycodestyle==2.11.1 +pycodestyle==2.12.1 # via -r requirements/quality.in -pycparser==2.21 +pycparser==2.22 # via # -r requirements/test.txt # cffi pydocstyle==6.3.0 # via -r requirements/quality.in -pygments==2.16.1 +pygments==2.18.0 # via # readme-renderer # rich -pylint==3.0.2 +pylint==3.3.1 # via # edx-lint # pylint-celery @@ -152,7 +150,7 @@ pylint==3.0.2 # pylint-plugin-utils pylint-celery==0.3 # via edx-lint -pylint-django==2.5.4 +pylint-django==2.6.1 # via edx-lint pylint-plugin-utils==0.8.2 # via @@ -162,85 +160,64 @@ pynacl==1.5.0 # via # -r requirements/test.txt # edx-django-utils -pytest==7.4.2 +pytest==8.3.3 # via # -r requirements/test.txt # pytest-cov -pytest-cov==4.1.0 +pytest-cov==6.0.0 # via -r requirements/test.txt -python-slugify==8.0.1 +python-slugify==8.0.4 # via code-annotations -pytz==2023.3.post1 - # via - # -r requirements/test.txt - # django -pyyaml==6.0.1 +pytz==2024.2 + # via -r requirements/test.txt +pyyaml==6.0.2 # via # -r requirements/test.txt # code-annotations # responses -readme-renderer==42.0 +readme-renderer==44.0 # via twine -requests==2.31.0 +requests==2.32.3 # via # -r requirements/test.txt # requests-oauthlib # requests-toolbelt # responses # twine -requests-oauthlib==1.3.1 +requests-oauthlib==2.0.0 # via -r requirements/test.txt requests-toolbelt==1.0.0 # via twine -responses==0.23.3 +responses==0.25.3 # via -r requirements/test.txt rfc3986==2.0.0 # via twine -rich==13.6.0 +rich==13.9.4 # via twine six==1.16.0 # via edx-lint snowballstemmer==2.2.0 # via pydocstyle -sqlparse==0.4.4 +sqlparse==0.5.1 # via # -r requirements/test.txt # django -stevedore==5.1.0 +stevedore==5.3.0 # via # -r requirements/test.txt # code-annotations # edx-django-utils text-unidecode==1.3 # via python-slugify -tomli==2.0.1 - # via - # -r requirements/test.txt - # coverage - # pylint - # pytest -tomlkit==0.12.1 +tomlkit==0.13.2 # via pylint -twine==4.0.2 +twine==5.1.1 # via -r requirements/quality.in -types-pyyaml==6.0.12.12 - # via - # -r requirements/test.txt - # responses -typing-extensions==4.8.0 - # via - # -r requirements/test.txt - # asgiref - # astroid - # pylint - # rich -urllib3==2.0.7 +urllib3==2.2.3 # via # -r requirements/test.txt # requests # responses # twine -zipp==3.17.0 - # via - # importlib-metadata - # importlib-resources +zipp==3.20.2 + # via importlib-metadata diff --git a/requirements/test.txt b/requirements/test.txt index d45b447..5ff1a4b 100644 --- a/requirements/test.txt +++ b/requirements/test.txt @@ -1,22 +1,22 @@ # -# This file is autogenerated by pip-compile with Python 3.8 +# This file is autogenerated by pip-compile with Python 3.12 # by the following command: # # make upgrade # -asgiref==3.7.2 +asgiref==3.8.1 # via # -r requirements/base.txt # django -certifi==2023.7.22 +certifi==2024.8.30 # via # -r requirements/base.txt # requests -cffi==1.16.0 +cffi==1.17.1 # via # -r requirements/base.txt # pynacl -charset-normalizer==3.3.1 +charset-normalizer==3.4.0 # via # -r requirements/base.txt # requests @@ -24,11 +24,11 @@ click==8.1.7 # via # -r requirements/base.txt # edx-django-utils -coverage[toml]==7.3.2 +coverage[toml]==7.6.4 # via pytest-cov -ddt==1.6.0 +ddt==1.7.2 # via -r requirements/test.in -django==3.2.22 +django==4.2.16 # via # -c https://raw.githubusercontent.com/edx/edx-lint/master/edx_lint/files/common_constraints.txt # -r requirements/base.txt @@ -39,21 +39,19 @@ django-crum==0.7.9 # via # -r requirements/base.txt # edx-django-utils -django-waffle==4.0.0 +django-waffle==4.1.0 # via # -r requirements/base.txt # edx-django-utils -edx-django-utils==5.7.0 +edx-django-utils==7.0.0 # via -r requirements/base.txt -exceptiongroup==1.1.3 - # via pytest -idna==3.4 +idna==3.10 # via # -r requirements/base.txt # requests iniconfig==2.0.0 # via pytest -newrelic==9.1.1 +newrelic==10.2.0 # via # -r requirements/base.txt # edx-django-utils @@ -61,19 +59,19 @@ oauthlib==3.2.2 # via # -r requirements/base.txt # requests-oauthlib -packaging==23.2 +packaging==24.1 # via pytest -pbr==5.11.1 +pbr==6.1.0 # via # -r requirements/base.txt # stevedore -pluggy==1.3.0 +pluggy==1.5.0 # via pytest -psutil==5.9.6 +psutil==6.1.0 # via # -r requirements/base.txt # edx-django-utils -pycparser==2.21 +pycparser==2.22 # via # -r requirements/base.txt # cffi @@ -81,44 +79,32 @@ pynacl==1.5.0 # via # -r requirements/base.txt # edx-django-utils -pytest==7.4.2 +pytest==8.3.3 # via pytest-cov -pytest-cov==4.1.0 +pytest-cov==6.0.0 # via -r requirements/test.in -pytz==2023.3.post1 - # via - # -r requirements/base.txt - # django -pyyaml==6.0.1 +pytz==2024.2 + # via -r requirements/base.txt +pyyaml==6.0.2 # via responses -requests==2.31.0 +requests==2.32.3 # via # -r requirements/base.txt # requests-oauthlib # responses -requests-oauthlib==1.3.1 +requests-oauthlib==2.0.0 # via -r requirements/base.txt -responses==0.23.3 +responses==0.25.3 # via -r requirements/test.in -sqlparse==0.4.4 +sqlparse==0.5.1 # via # -r requirements/base.txt # django -stevedore==5.1.0 +stevedore==5.3.0 # via # -r requirements/base.txt # edx-django-utils -tomli==2.0.1 - # via - # coverage - # pytest -types-pyyaml==6.0.12.12 - # via responses -typing-extensions==4.8.0 - # via - # -r requirements/base.txt - # asgiref -urllib3==2.0.7 +urllib3==2.2.3 # via # -r requirements/base.txt # requests diff --git a/setup.py b/setup.py index 611cf5a..62d5d4a 100755 --- a/setup.py +++ b/setup.py @@ -113,7 +113,7 @@ def is_requirement(line): ], include_package_data=True, install_requires=load_requirements('requirements/base.in'), - python_requires=">=3.8", + python_requires=">3.8", license="AGPL 3.0", zip_safe=False, keywords='Python edx', @@ -123,6 +123,6 @@ def is_requirement(line): 'License :: OSI Approved :: GNU Affero General Public License v3 or later (AGPLv3+)', 'Natural Language :: English', 'Programming Language :: Python :: 3', - 'Programming Language :: Python :: 3.8', + 'Programming Language :: Python :: 3.12', ], ) diff --git a/tox.ini b/tox.ini index a546661..14bab3a 100644 --- a/tox.ini +++ b/tox.ini @@ -1,5 +1,5 @@ [tox] -envlist = py{38} +envlist = py{312} [doc8] ; D001 = Line too long @@ -36,6 +36,7 @@ norecursedirs = .* docs requirements site-packages [testenv] deps = + setuptools -r{toxinidir}/requirements/test.txt commands = pytest {posargs} @@ -49,6 +50,7 @@ allowlist_externals = make rm deps = + setuptools -r{toxinidir}/requirements/doc.txt commands = doc8 --ignore-path docs/_build README.rst docs @@ -64,6 +66,7 @@ allowlist_externals = rm touch deps = + setuptools -r{toxinidir}/requirements/quality.txt commands = make quality