diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 82e13d2d..56928b1a 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -25,16 +25,16 @@ jobs: strategy: fail-fast: false matrix: - os: [ubuntu-20.04] - python-version: [3.8] - toxenv: [py38-django32, quality, docs] + os: [ubuntu-latest] + python-version: [3.11, 3.12] + toxenv: [django42, quality, docs] steps: - name: checkout repo - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: setup python - uses: actions/setup-python@v4 + uses: actions/setup-python@v5 with: python-version: ${{ matrix.python-version }} @@ -47,8 +47,8 @@ jobs: run: tox - name: Run coverage - if: matrix.python-version == '3.8' && matrix.toxenv == 'py38-django32' - uses: codecov/codecov-action@v3 + if: matrix.python-version == '3.11' && matrix.toxenv == 'django42' + uses: codecov/codecov-action@v5 with: token: ${{ secrets.CODECOV_TOKEN }} flags: unittests diff --git a/.github/workflows/pypi-publish.yml b/.github/workflows/pypi-publish.yml index 527dc58c..4d20b0c3 100644 --- a/.github/workflows/pypi-publish.yml +++ b/.github/workflows/pypi-publish.yml @@ -6,16 +6,16 @@ on: jobs: push: - runs-on: ubuntu-20.04 + runs-on: ubuntu-latest steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: setup python - uses: actions/setup-python@v4 + uses: actions/setup-python@v5 with: - python-version: 3.8 + python-version: 3.11 - name: Install Dependencies run: pip install -r requirements/pip.txt diff --git a/CHANGELOG.rst b/CHANGELOG.rst index c2d8eaef..0d932c2d 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -14,6 +14,9 @@ Change Log Unreleased ~~~~~~~~~~ +* Add support for Python 3.11, 3.12, and Django 4.2. +* Drop support for Python 3.8 and Django 3.2. + [4.2.0] - 2024-06-21 ~~~~~~~~~~~~~~~~~~~~ diff --git a/docs/conf.py b/docs/conf.py index fec3987b..75844757 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -475,8 +475,8 @@ def get_version(*file_paths): # Example configuration for intersphinx: refer to the Python standard library. intersphinx_mapping = { - 'python': ('https://docs.python.org/3.8', None), - 'django': ('https://docs.djangoproject.com/en/1.10/', 'https://docs.djangoproject.com/en/1.10/_objects/'), + 'python': ('https://docs.python.org/3.11', None), + 'django': ('https://docs.djangoproject.com/en/4.2/', 'https://docs.djangoproject.com/en/4.2/_objects/'), 'model_utils': ('https://django-model-utils.readthedocs.io/en/latest/', None), } diff --git a/requirements/base.txt b/requirements/base.txt index a77c7ca6..d620dbc1 100644 --- a/requirements/base.txt +++ b/requirements/base.txt @@ -1,49 +1,43 @@ # -# This file is autogenerated by pip-compile with Python 3.8 +# This file is autogenerated by pip-compile with Python 3.11 # by the following command: # # make upgrade # -amqp==5.2.0 +amqp==5.3.1 # via kombu -aniso8601==9.0.1 +aniso8601==10.0.0 # via tincan apache-libcloud==3.8.0 # via edx-event-routing-backends appdirs==1.4.4 # via fs -asgiref==3.7.2 +asgiref==3.8.1 # via django -async-timeout==4.0.3 - # via redis -attrs==23.2.0 +attrs==25.1.0 # via openedx-events -backports-zoneinfo[tzdata]==0.2.1 - # via - # celery - # kombu -billiard==4.2.0 +billiard==4.2.1 # via celery -boto3==1.34.49 +boto3==1.37.4 # via fs-s3fs -botocore==1.34.49 +botocore==1.37.4 # via # boto3 # s3transfer -celery==5.3.6 +celery==5.4.0 # via # -r requirements/base.in # edx-celeryutils # event-tracking -certifi==2024.2.2 +certifi==2025.1.31 # via requests -cffi==1.16.0 +cffi==1.17.1 # via # cryptography # pynacl -charset-normalizer==3.3.2 +charset-normalizer==3.4.1 # via requests -click==8.1.7 +click==8.1.8 # via # celery # click-didyoumean @@ -51,19 +45,19 @@ click==8.1.7 # click-repl # code-annotations # edx-django-utils -click-didyoumean==0.3.0 +click-didyoumean==0.3.1 # via celery click-plugins==1.1.1 # via celery click-repl==0.3.0 # via celery -code-annotations==1.6.0 +code-annotations==2.2.0 # via edx-toggles -cryptography==42.0.5 +cryptography==44.0.2 # via # django-fernet-fields-v2 # pyjwt -django==3.2.24 +django==4.2.19 # via # -c https://raw.githubusercontent.com/edx/edx-lint/master/edx_lint/files/common_constraints.txt # -r requirements/base.in @@ -86,7 +80,7 @@ django==3.2.24 # openedx-django-pyfs # openedx-events # openedx-filters -django-config-models==2.7.0 +django-config-models==2.8.0 # via edx-event-routing-backends django-crum==0.7.9 # via @@ -94,64 +88,68 @@ django-crum==0.7.9 # edx-toggles django-fernet-fields-v2==0.9 # via edx-event-routing-backends -django-model-utils==4.4.0 +django-model-utils==5.0.0 # via # -r requirements/base.in # edx-celeryutils # edx-completion django-redis==5.4.0 # via edx-event-routing-backends -django-waffle==4.1.0 +django-waffle==4.2.0 # via # edx-django-utils # edx-drf-extensions # edx-toggles -djangorestframework==3.14.0 +djangorestframework==3.15.2 # via # -r requirements/base.in # django-config-models # drf-jwt # edx-completion # edx-drf-extensions +dnspython==2.7.0 + # via pymongo drf-jwt==1.19.2 # via edx-drf-extensions -edx-celeryutils==1.2.5 +edx-ccx-keys==2.0.2 + # via openedx-events +edx-celeryutils==1.3.0 # via # -r requirements/base.in # edx-event-routing-backends -edx-completion==4.6.0 +edx-completion==4.7.10 # via -r requirements/base.in -edx-django-utils==5.10.1 +edx-django-utils==7.2.0 # via # django-config-models # edx-drf-extensions # edx-toggles # event-tracking # openedx-events -edx-drf-extensions==10.2.0 +edx-drf-extensions==10.5.0 # via edx-completion -edx-event-routing-backends==9.3.0 - # via - # -c requirements/constraints.txt - # -r requirements/base.in -edx-opaque-keys[django]==2.5.1 +edx-event-routing-backends==9.3.2 + # via -r requirements/base.in +edx-opaque-keys[django]==2.11.0 # via # -r requirements/base.in + # edx-ccx-keys # edx-completion # edx-drf-extensions # openedx-events -edx-toggles==5.1.1 + # openedx-filters +edx-toggles==5.3.0 # via # -r requirements/base.in # edx-completion # edx-event-routing-backends # event-tracking -event-tracking==2.4.0 +event-tracking==3.0.0 # via # -r requirements/base.in # edx-completion # edx-event-routing-backends -fastavro==1.9.4 +fastavro==1.10.0 # via openedx-events fasteners==0.19 # via edx-event-routing-backends @@ -162,11 +160,11 @@ fs==2.4.16 # xblock fs-s3fs==1.1.1 # via openedx-django-pyfs -idna==3.6 +idna==3.10 # via requests -isodate==0.6.1 +isodate==0.7.2 # via edx-event-routing-backends -jinja2==3.1.3 +jinja2==3.1.5 # via code-annotations jmespath==1.0.1 # via @@ -176,46 +174,46 @@ jsonfield==3.1.0 # via # edx-celeryutils # edx-event-routing-backends -kombu==5.3.5 +kombu==5.4.2 # via celery lazy==1.6 # via xblock -lxml==5.1.0 +lxml==5.3.1 # via xblock -mako==1.3.2 +mako==1.3.9 # via xblock -markupsafe==2.1.5 +markupsafe==3.0.2 # via # jinja2 # mako # xblock -newrelic==9.7.0 +newrelic==10.6.0 # via edx-django-utils -openedx-django-pyfs==3.5.0 +openedx-django-pyfs==3.7.0 # via xblock -openedx-events==9.5.2 +openedx-events==9.18.2 # via event-tracking -openedx-filters==1.8.1 +openedx-filters==2.0.1 # via edx-event-routing-backends -pbr==6.0.0 +pbr==6.1.1 # via stevedore -prompt-toolkit==3.0.43 +prompt-toolkit==3.0.50 # via click-repl -psutil==5.9.8 +psutil==7.0.0 # via edx-django-utils -pycparser==2.21 +pycparser==2.22 # via cffi -pyjwt[crypto]==2.8.0 +pyjwt[crypto]==2.10.1 # via # drf-jwt # edx-drf-extensions -pymongo==3.13.0 +pymongo==4.4.0 # via # edx-opaque-keys # event-tracking pynacl==1.5.0 # via edx-django-utils -python-dateutil==2.8.2 +python-dateutil==2.9.0.post0 # via # botocore # celery @@ -223,43 +221,41 @@ python-dateutil==2.8.2 # xblock python-slugify==8.0.4 # via code-annotations -pytz==2024.1 +pytz==2025.1 # via - # django - # djangorestframework # edx-completion # edx-event-routing-backends # event-tracking # tincan # xblock -pyyaml==6.0.1 +pyyaml==6.0.2 # via # code-annotations # xblock -redis==5.0.5 +redis==5.2.1 # via django-redis -requests==2.31.0 +requests==2.32.3 # via # apache-libcloud # edx-drf-extensions # edx-event-routing-backends -s3transfer==0.10.0 +s3transfer==0.11.3 # via boto3 semantic-version==2.10.0 # via edx-drf-extensions -simplejson==3.19.2 +simplejson==3.20.1 # via xblock -six==1.16.0 +six==1.17.0 # via # -r requirements/base.in + # edx-ccx-keys # event-tracking # fs # fs-s3fs - # isodate # python-dateutil -sqlparse==0.4.4 +sqlparse==0.5.3 # via django -stevedore==5.2.0 +stevedore==5.4.1 # via # code-annotations # edx-django-utils @@ -268,17 +264,15 @@ text-unidecode==1.3 # via python-slugify tincan==1.0.0 # via edx-event-routing-backends -typing-extensions==4.10.0 +typing-extensions==4.12.2 + # via edx-opaque-keys +tzdata==2025.1 # via - # asgiref - # edx-opaque-keys - # kombu -tzdata==2024.1 - # via - # backports-zoneinfo # celery -urllib3==1.26.18 + # kombu +urllib3==2.2.3 # via + # -c https://raw.githubusercontent.com/edx/edx-lint/master/edx_lint/files/common_constraints.txt # botocore # requests vine==5.1.0 @@ -288,11 +282,11 @@ vine==5.1.0 # kombu wcwidth==0.2.13 # via prompt-toolkit -web-fragments==2.1.0 +web-fragments==2.2.0 # via xblock -webob==1.8.7 +webob==1.8.9 # via xblock -xblock[django]==1.10.0 +xblock[django]==5.1.2 # via # -r requirements/base.in # edx-completion diff --git a/requirements/ci.txt b/requirements/ci.txt index 9bf089d7..06db503b 100644 --- a/requirements/ci.txt +++ b/requirements/ci.txt @@ -1,28 +1,28 @@ # -# This file is autogenerated by pip-compile with Python 3.8 +# This file is autogenerated by pip-compile with Python 3.11 # by the following command: # # make upgrade # -distlib==0.3.8 +distlib==0.3.9 # via virtualenv -filelock==3.13.1 +filelock==3.17.0 # via # tox # virtualenv -packaging==23.2 - # via tox -platformdirs==4.2.0 - # via virtualenv -pluggy==0.13.1 +packaging==24.2 # via - # -c requirements/constraints.txt + # pyproject-api # tox -py==1.11.0 +platformdirs==4.3.6 + # via + # tox + # virtualenv +pluggy==1.5.0 # via tox -six==1.16.0 +py==1.11.0 # via tox -tomli==2.0.1 +six==1.17.0 # via tox tox==3.28.0 # via @@ -30,5 +30,5 @@ tox==3.28.0 # tox-battery tox-battery==0.6.2 # via -r requirements/ci.in -virtualenv==20.25.1 +virtualenv==20.29.2 # via tox diff --git a/requirements/constraints.txt b/requirements/constraints.txt index 2c112072..d91704bb 100644 --- a/requirements/constraints.txt +++ b/requirements/constraints.txt @@ -10,9 +10,3 @@ # Common constraints for edx repos -c https://raw.githubusercontent.com/edx/edx-lint/master/edx_lint/files/common_constraints.txt - - -# Newer versions of pytest fail because `edx-completion` defines `default_app_config`: -# https://github.com/openedx/completion/blob/v4.2.0/completion/__init__.py#L7 -pytest<6.0.0 -pluggy<1.0.0 diff --git a/requirements/dev.txt b/requirements/dev.txt index a2429c01..e71d436b 100644 --- a/requirements/dev.txt +++ b/requirements/dev.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.11 # by the following command: # # make upgrade # -amqp==5.2.0 +amqp==5.3.1 # via # -r requirements/quality.txt # kombu -aniso8601==9.0.1 +aniso8601==10.0.0 # via # -r requirements/quality.txt # tincan @@ -20,65 +20,55 @@ appdirs==1.4.4 # via # -r requirements/quality.txt # fs -asgiref==3.7.2 +asgiref==3.8.1 # via # -r requirements/quality.txt # django -astroid==3.1.0 +astroid==3.3.8 # via # -r requirements/quality.txt # pylint # pylint-celery -async-timeout==4.0.3 - # via - # -r requirements/quality.txt - # redis -attrs==23.2.0 +attrs==25.1.0 # via # -r requirements/quality.txt # openedx-events - # pytest -backports-zoneinfo[tzdata]==0.2.1 - # via - # -r requirements/quality.txt - # celery - # kombu -billiard==4.2.0 +billiard==4.2.1 # via # -r requirements/quality.txt # celery -boto3==1.34.49 +boto3==1.37.4 # via # -r requirements/quality.txt # fs-s3fs -botocore==1.34.49 +botocore==1.37.4 # via # -r requirements/quality.txt # boto3 # s3transfer -build==1.0.3 +build==1.2.2.post1 # via # -r requirements/pip-tools.txt # pip-tools -celery==5.3.6 +celery==5.4.0 # via # -r requirements/quality.txt # edx-celeryutils # event-tracking -certifi==2024.2.2 +certifi==2025.1.31 # via # -r requirements/quality.txt # requests -cffi==1.16.0 +cffi==1.17.1 # via # -r requirements/quality.txt # cryptography # pynacl -charset-normalizer==3.3.2 +charset-normalizer==3.4.1 # via # -r requirements/quality.txt # requests -click==8.1.7 +click==8.1.8 # via # -r requirements/pip-tools.txt # -r requirements/quality.txt @@ -91,7 +81,7 @@ click==8.1.7 # edx-django-utils # edx-lint # pip-tools -click-didyoumean==0.3.0 +click-didyoumean==0.3.1 # via # -r requirements/quality.txt # celery @@ -107,32 +97,32 @@ click-repl==0.3.0 # via # -r requirements/quality.txt # celery -code-annotations==1.6.0 +code-annotations==2.2.0 # via # -r requirements/quality.txt # edx-lint # edx-toggles -coverage[toml]==7.4.3 +coverage[toml]==7.6.12 # via # -r requirements/quality.txt # pytest-cov -cryptography==42.0.5 +cryptography==44.0.2 # via # -r requirements/quality.txt # django-fernet-fields-v2 # jwcrypto # pyjwt -ddt==1.7.1 +ddt==1.7.2 # via -r requirements/quality.txt -dill==0.3.8 +dill==0.3.9 # via # -r requirements/quality.txt # pylint -distlib==0.3.8 +distlib==0.3.9 # via # -r requirements/ci.txt # virtualenv -django==3.2.24 +django==4.2.19 # via # -c https://raw.githubusercontent.com/edx/edx-lint/master/edx_lint/files/common_constraints.txt # -r requirements/quality.txt @@ -157,7 +147,7 @@ django==3.2.24 # openedx-django-pyfs # openedx-events # openedx-filters -django-config-models==2.7.0 +django-config-models==2.8.0 # via # -r requirements/quality.txt # edx-event-routing-backends @@ -170,41 +160,49 @@ django-fernet-fields-v2==0.9 # via # -r requirements/quality.txt # edx-event-routing-backends -django-model-utils==4.4.0 +django-model-utils==5.0.0 # via # -r requirements/quality.txt # edx-celeryutils # edx-completion -django-oauth-toolkit==2.3.0 +django-oauth-toolkit==3.0.1 # via -r requirements/quality.txt django-redis==5.4.0 # via # -r requirements/quality.txt # edx-event-routing-backends -django-waffle==4.1.0 +django-waffle==4.2.0 # via # -r requirements/quality.txt # edx-django-utils # edx-drf-extensions # edx-toggles -djangorestframework==3.14.0 +djangorestframework==3.15.2 # via # -r requirements/quality.txt # django-config-models # drf-jwt # edx-completion # edx-drf-extensions +dnspython==2.7.0 + # via + # -r requirements/quality.txt + # pymongo drf-jwt==1.19.2 # via # -r requirements/quality.txt # edx-drf-extensions -edx-celeryutils==1.2.5 +edx-ccx-keys==2.0.2 + # via + # -r requirements/quality.txt + # openedx-events +edx-celeryutils==1.3.0 # via # -r requirements/quality.txt # edx-event-routing-backends -edx-completion==4.6.0 +edx-completion==4.7.10 # via -r requirements/quality.txt -edx-django-utils==5.10.1 +edx-django-utils==7.2.0 # via # -r requirements/quality.txt # django-config-models @@ -212,42 +210,42 @@ edx-django-utils==5.10.1 # edx-toggles # event-tracking # openedx-events -edx-drf-extensions==10.2.0 +edx-drf-extensions==10.5.0 # via # -r requirements/quality.txt # edx-completion -edx-event-routing-backends==9.3.0 - # via - # -c requirements/constraints.txt - # -r requirements/quality.txt -edx-i18n-tools==1.3.0 +edx-event-routing-backends==9.3.2 + # via -r requirements/quality.txt +edx-i18n-tools==1.6.3 # via -r requirements/quality.txt -edx-lint==5.3.6 +edx-lint==5.6.0 # via -r requirements/quality.txt -edx-opaque-keys[django]==2.5.1 +edx-opaque-keys[django]==2.11.0 # via # -r requirements/quality.txt + # edx-ccx-keys # edx-completion # edx-drf-extensions # openedx-events -edx-toggles==5.1.1 + # openedx-filters +edx-toggles==5.3.0 # via # -r requirements/quality.txt # edx-completion # edx-event-routing-backends # event-tracking -event-tracking==2.4.0 +event-tracking==3.0.0 # via # -r requirements/quality.txt # edx-completion # edx-event-routing-backends -factory-boy==3.3.0 +factory-boy==3.3.3 # via -r requirements/quality.txt -faker==25.8.0 +faker==36.1.1 # via # -r requirements/quality.txt # factory-boy -fastavro==1.9.4 +fastavro==1.10.0 # via # -r requirements/quality.txt # openedx-events @@ -255,7 +253,7 @@ fasteners==0.19 # via # -r requirements/quality.txt # edx-event-routing-backends -filelock==3.13.1 +filelock==3.17.0 # via # -r requirements/ci.txt # tox @@ -272,24 +270,23 @@ fs-s3fs==1.1.1 # via # -r requirements/quality.txt # openedx-django-pyfs -idna==3.6 +idna==3.10 # via # -r requirements/quality.txt # requests -importlib-metadata==6.11.0 +iniconfig==2.0.0 # via - # -c https://raw.githubusercontent.com/edx/edx-lint/master/edx_lint/files/common_constraints.txt - # -r requirements/pip-tools.txt - # build -isodate==0.6.1 + # -r requirements/quality.txt + # pytest +isodate==0.7.2 # via # -r requirements/quality.txt # edx-event-routing-backends -isort==5.13.2 +isort==6.0.1 # via # -r requirements/quality.txt # pylint -jinja2==3.1.3 +jinja2==3.1.5 # via # -r requirements/quality.txt # code-annotations @@ -303,11 +300,11 @@ jsonfield==3.1.0 # -r requirements/quality.txt # edx-celeryutils # edx-event-routing-backends -jwcrypto==1.5.4 +jwcrypto==1.5.6 # via # -r requirements/quality.txt # django-oauth-toolkit -kombu==5.3.5 +kombu==5.4.2 # via # -r requirements/quality.txt # celery @@ -315,16 +312,21 @@ lazy==1.6 # via # -r requirements/quality.txt # xblock -lxml==5.1.0 +lxml[html-clean]==5.3.1 # via # -r requirements/quality.txt # edx-i18n-tools + # lxml-html-clean # xblock -mako==1.3.2 +lxml-html-clean==0.4.1 + # via + # -r requirements/quality.txt + # lxml +mako==1.3.9 # via # -r requirements/quality.txt # xblock -markupsafe==2.1.5 +markupsafe==3.0.2 # via # -r requirements/quality.txt # jinja2 @@ -337,12 +339,10 @@ mccabe==0.7.0 mock==3.0.5 # via -r requirements/quality.txt more-itertools==5.0.0 - # via - # -r requirements/quality.txt - # pytest -mysqlclient==2.2.4 # via -r requirements/quality.txt -newrelic==9.7.0 +mysqlclient==2.2.7 + # via -r requirements/quality.txt +newrelic==10.6.0 # via # -r requirements/quality.txt # edx-django-utils @@ -350,19 +350,19 @@ oauthlib==3.2.2 # via # -r requirements/quality.txt # django-oauth-toolkit -openedx-django-pyfs==3.5.0 +openedx-django-pyfs==3.7.0 # via # -r requirements/quality.txt # xblock -openedx-events==9.5.2 +openedx-events==9.18.2 # via # -r requirements/quality.txt # event-tracking -openedx-filters==1.8.1 +openedx-filters==2.0.1 # via # -r requirements/quality.txt # edx-event-routing-backends -packaging==23.2 +packaging==24.2 # via # -r requirements/ci.txt # -r requirements/pip-tools.txt @@ -370,25 +370,24 @@ packaging==23.2 # build # pytest # tox -path==16.10.0 +path==16.16.0 # via # -r requirements/quality.txt # edx-i18n-tools -pbr==6.0.0 +pbr==6.1.1 # via # -r requirements/quality.txt # stevedore -pip-tools==7.4.0 +pip-tools==7.4.1 # via -r requirements/pip-tools.txt -platformdirs==4.2.0 +platformdirs==4.3.6 # via # -r requirements/ci.txt # -r requirements/quality.txt # pylint # virtualenv -pluggy==0.13.1 +pluggy==1.5.0 # via - # -c requirements/constraints.txt # -r requirements/ci.txt # -r requirements/quality.txt # pytest @@ -397,34 +396,32 @@ polib==1.2.0 # via # -r requirements/quality.txt # edx-i18n-tools -prompt-toolkit==3.0.43 +prompt-toolkit==3.0.50 # via # -r requirements/quality.txt # click-repl -psutil==5.9.8 +psutil==7.0.0 # via # -r requirements/quality.txt # edx-django-utils py==1.11.0 # via # -r requirements/ci.txt - # -r requirements/quality.txt - # pytest # 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 -pyjwt[crypto]==2.8.0 +pyjwt[crypto]==2.10.1 # via # -r requirements/quality.txt # drf-jwt # edx-drf-extensions -pylint==3.1.0 +pylint==3.3.4 # via # -r requirements/quality.txt # edx-lint @@ -435,7 +432,7 @@ pylint-celery==0.3 # via # -r requirements/quality.txt # edx-lint -pylint-django==2.5.5 +pylint-django==2.6.1 # via # -r requirements/quality.txt # edx-lint @@ -444,7 +441,7 @@ pylint-plugin-utils==0.8.2 # -r requirements/quality.txt # pylint-celery # pylint-django -pymongo==3.13.0 +pymongo==4.4.0 # via # -r requirements/quality.txt # edx-opaque-keys @@ -453,62 +450,58 @@ pynacl==1.5.0 # via # -r requirements/quality.txt # edx-django-utils -pyproject-hooks==1.0.0 +pyproject-hooks==1.2.0 # via # -r requirements/pip-tools.txt # build # pip-tools -pytest==5.4.3 +pytest==8.3.5 # via - # -c requirements/constraints.txt # -r requirements/quality.txt # pytest-cov # pytest-django -pytest-cov==4.1.0 +pytest-cov==6.0.0 # via -r requirements/quality.txt -pytest-django==4.5.2 +pytest-django==4.10.0 # via -r requirements/quality.txt -python-dateutil==2.8.2 +python-dateutil==2.9.0.post0 # via # -r requirements/quality.txt # botocore # celery # edx-event-routing-backends - # faker # freezegun # xblock python-slugify==8.0.4 # via # -r requirements/quality.txt # code-annotations -pytz==2024.1 +pytz==2025.1 # via # -r requirements/quality.txt - # django - # djangorestframework # edx-completion # edx-event-routing-backends # event-tracking # tincan # xblock -pyyaml==6.0.1 +pyyaml==6.0.2 # via # -r requirements/quality.txt # code-annotations # edx-i18n-tools # xblock -redis==5.0.5 +redis==5.2.1 # via # -r requirements/quality.txt # django-redis -requests==2.31.0 +requests==2.32.3 # via # -r requirements/quality.txt # apache-libcloud # django-oauth-toolkit # edx-drf-extensions # edx-event-routing-backends -s3transfer==0.10.0 +s3transfer==0.11.3 # via # -r requirements/quality.txt # boto3 @@ -516,20 +509,20 @@ semantic-version==2.10.0 # via # -r requirements/quality.txt # edx-drf-extensions -simplejson==3.19.2 +simplejson==3.20.1 # via # -r requirements/quality.txt # xblock -six==1.16.0 +six==1.17.0 # via # -r requirements/ci.txt # -r requirements/quality.txt + # edx-ccx-keys # edx-lint # event-tracking # freezegun # fs # fs-s3fs - # isodate # mock # more-itertools # python-dateutil @@ -538,11 +531,11 @@ snowballstemmer==2.2.0 # via # -r requirements/quality.txt # pydocstyle -sqlparse==0.4.4 +sqlparse==0.5.3 # via # -r requirements/quality.txt # django -stevedore==5.2.0 +stevedore==5.4.1 # via # -r requirements/quality.txt # code-annotations @@ -556,18 +549,7 @@ tincan==1.0.0 # via # -r requirements/quality.txt # edx-event-routing-backends -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 - # tox -tomlkit==0.12.3 +tomlkit==0.13.2 # via # -r requirements/quality.txt # pylint @@ -577,22 +559,20 @@ tox==3.28.0 # tox-battery tox-battery==0.6.2 # via -r requirements/ci.txt -typing-extensions==4.10.0 +typing-extensions==4.12.2 # via # -r requirements/quality.txt - # asgiref - # astroid # edx-opaque-keys # jwcrypto - # kombu - # pylint -tzdata==2024.1 +tzdata==2025.1 # via # -r requirements/quality.txt - # backports-zoneinfo # celery -urllib3==1.26.18 + # faker + # kombu +urllib3==2.2.3 # via + # -c https://raw.githubusercontent.com/edx/edx-lint/master/edx_lint/files/common_constraints.txt # -r requirements/quality.txt # botocore # requests @@ -602,7 +582,7 @@ vine==5.1.0 # amqp # celery # kombu -virtualenv==20.25.1 +virtualenv==20.29.2 # via # -r requirements/ci.txt # tox @@ -610,27 +590,22 @@ wcwidth==0.2.13 # via # -r requirements/quality.txt # prompt-toolkit - # pytest -web-fragments==2.1.0 +web-fragments==2.2.0 # via # -r requirements/quality.txt # xblock -webob==1.8.7 +webob==1.8.9 # via # -r requirements/quality.txt # xblock -wheel==0.42.0 +wheel==0.45.1 # via # -r requirements/pip-tools.txt # pip-tools -xblock[django]==1.10.0 +xblock[django]==5.1.2 # via # -r requirements/quality.txt # edx-completion -zipp==3.17.0 - # via - # -r requirements/pip-tools.txt - # importlib-metadata # The following packages are considered to be unsafe in a requirements file: # pip diff --git a/requirements/doc.txt b/requirements/doc.txt index ffa1e216..4fb3a65c 100644 --- a/requirements/doc.txt +++ b/requirements/doc.txt @@ -1,17 +1,17 @@ # -# This file is autogenerated by pip-compile with Python 3.8 +# This file is autogenerated by pip-compile with Python 3.11 # by the following command: # # make upgrade # -alabaster==0.7.13 +alabaster==0.7.16 # via sphinx -amqp==5.2.0 +amqp==5.3.1 # via # -r requirements/base.txt # -r requirements/test.txt # kombu -aniso8601==9.0.1 +aniso8601==10.0.0 # via # -r requirements/base.txt # -r requirements/test.txt @@ -26,69 +26,57 @@ appdirs==1.4.4 # -r requirements/base.txt # -r requirements/test.txt # fs -asgiref==3.7.2 +asgiref==3.8.1 # via # -r requirements/base.txt # -r requirements/test.txt # django -async-timeout==4.0.3 - # via - # -r requirements/base.txt - # -r requirements/test.txt - # redis -attrs==23.2.0 +attrs==25.1.0 # via # -r requirements/base.txt # -r requirements/test.txt # openedx-events - # pytest -babel==2.14.0 +babel==2.17.0 # via sphinx -backports-zoneinfo[tzdata]==0.2.1 - # via - # -r requirements/base.txt - # -r requirements/test.txt - # celery - # kombu -billiard==4.2.0 +billiard==4.2.1 # via # -r requirements/base.txt # -r requirements/test.txt # celery -boto3==1.34.49 +boto3==1.37.4 # via # -r requirements/base.txt # -r requirements/test.txt # fs-s3fs -botocore==1.34.49 +botocore==1.37.4 # via # -r requirements/base.txt # -r requirements/test.txt # boto3 # s3transfer -celery==5.3.6 +celery==5.4.0 # via # -r requirements/base.txt # -r requirements/test.txt # edx-celeryutils # event-tracking -certifi==2024.2.2 +certifi==2025.1.31 # via # -r requirements/base.txt # -r requirements/test.txt # requests -cffi==1.16.0 +cffi==1.17.1 # via # -r requirements/base.txt # -r requirements/test.txt # cryptography # pynacl -charset-normalizer==3.3.2 +charset-normalizer==3.4.1 # via # -r requirements/base.txt # -r requirements/test.txt # requests -click==8.1.7 +click==8.1.8 # via # -r requirements/base.txt # -r requirements/test.txt @@ -98,7 +86,7 @@ click==8.1.7 # click-repl # code-annotations # edx-django-utils -click-didyoumean==0.3.0 +click-didyoumean==0.3.1 # via # -r requirements/base.txt # -r requirements/test.txt @@ -113,25 +101,25 @@ click-repl==0.3.0 # -r requirements/base.txt # -r requirements/test.txt # celery -code-annotations==1.6.0 +code-annotations==2.2.0 # via # -r requirements/base.txt # -r requirements/test.txt # edx-toggles -coverage[toml]==7.4.3 +coverage[toml]==7.6.12 # via # -r requirements/test.txt # pytest-cov -cryptography==42.0.5 +cryptography==44.0.2 # via # -r requirements/base.txt # -r requirements/test.txt # django-fernet-fields-v2 # jwcrypto # pyjwt -ddt==1.7.1 +ddt==1.7.2 # via -r requirements/test.txt -django==3.2.24 +django==4.2.19 # via # -r requirements/base.txt # -r requirements/test.txt @@ -156,7 +144,7 @@ django==3.2.24 # openedx-django-pyfs # openedx-events # openedx-filters -django-config-models==2.7.0 +django-config-models==2.8.0 # via # -r requirements/base.txt # -r requirements/test.txt @@ -172,27 +160,27 @@ django-fernet-fields-v2==0.9 # -r requirements/base.txt # -r requirements/test.txt # edx-event-routing-backends -django-model-utils==4.4.0 +django-model-utils==5.0.0 # via # -r requirements/base.txt # -r requirements/test.txt # edx-celeryutils # edx-completion -django-oauth-toolkit==2.3.0 +django-oauth-toolkit==3.0.1 # via -r requirements/test.txt django-redis==5.4.0 # via # -r requirements/base.txt # -r requirements/test.txt # edx-event-routing-backends -django-waffle==4.1.0 +django-waffle==4.2.0 # via # -r requirements/base.txt # -r requirements/test.txt # edx-django-utils # edx-drf-extensions # edx-toggles -djangorestframework==3.14.0 +djangorestframework==3.15.2 # via # -r requirements/base.txt # -r requirements/test.txt @@ -200,9 +188,14 @@ djangorestframework==3.14.0 # drf-jwt # edx-completion # edx-drf-extensions -doc8==1.1.1 +dnspython==2.7.0 + # via + # -r requirements/base.txt + # -r requirements/test.txt + # pymongo +doc8==1.1.2 # via -r requirements/doc.in -docutils==0.19 +docutils==0.21.2 # via # doc8 # readme-renderer @@ -213,16 +206,21 @@ drf-jwt==1.19.2 # -r requirements/base.txt # -r requirements/test.txt # edx-drf-extensions -edx-celeryutils==1.2.5 +edx-ccx-keys==2.0.2 + # via + # -r requirements/base.txt + # -r requirements/test.txt + # openedx-events +edx-celeryutils==1.3.0 # via # -r requirements/base.txt # -r requirements/test.txt # edx-event-routing-backends -edx-completion==4.6.0 +edx-completion==4.7.10 # via # -r requirements/base.txt # -r requirements/test.txt -edx-django-utils==5.10.1 +edx-django-utils==7.2.0 # via # -r requirements/base.txt # -r requirements/test.txt @@ -231,46 +229,48 @@ edx-django-utils==5.10.1 # edx-toggles # event-tracking # openedx-events -edx-drf-extensions==10.2.0 +edx-drf-extensions==10.5.0 # via # -r requirements/base.txt # -r requirements/test.txt # edx-completion -edx-event-routing-backends==9.3.0 +edx-event-routing-backends==9.3.2 # via # -r requirements/base.txt # -r requirements/test.txt -edx-i18n-tools==1.3.0 +edx-i18n-tools==1.6.3 # via -r requirements/test.txt -edx-opaque-keys[django]==2.5.1 +edx-opaque-keys[django]==2.11.0 # via # -r requirements/base.txt # -r requirements/test.txt + # edx-ccx-keys # edx-completion # edx-drf-extensions # openedx-events + # openedx-filters edx-sphinx-theme==3.1.0 # via -r requirements/doc.in -edx-toggles==5.1.1 +edx-toggles==5.3.0 # via # -r requirements/base.txt # -r requirements/test.txt # edx-completion # edx-event-routing-backends # event-tracking -event-tracking==2.4.0 +event-tracking==3.0.0 # via # -r requirements/base.txt # -r requirements/test.txt # edx-completion # edx-event-routing-backends -factory-boy==3.3.0 +factory-boy==3.3.3 # via -r requirements/test.txt -faker==25.8.0 +faker==36.1.1 # via # -r requirements/test.txt # factory-boy -fastavro==1.9.4 +fastavro==1.10.0 # via # -r requirements/base.txt # -r requirements/test.txt @@ -294,21 +294,23 @@ fs-s3fs==1.1.1 # -r requirements/base.txt # -r requirements/test.txt # openedx-django-pyfs -idna==3.6 +idna==3.10 # via # -r requirements/base.txt # -r requirements/test.txt # requests imagesize==1.4.1 # via sphinx -importlib-metadata==7.0.1 - # via sphinx -isodate==0.6.1 +iniconfig==2.0.0 + # via + # -r requirements/test.txt + # pytest +isodate==0.7.2 # via # -r requirements/base.txt # -r requirements/test.txt # edx-event-routing-backends -jinja2==3.1.3 +jinja2==3.1.5 # via # -r requirements/base.txt # -r requirements/test.txt @@ -326,11 +328,11 @@ jsonfield==3.1.0 # -r requirements/test.txt # edx-celeryutils # edx-event-routing-backends -jwcrypto==1.5.4 +jwcrypto==1.5.6 # via # -r requirements/test.txt # django-oauth-toolkit -kombu==5.3.5 +kombu==5.4.2 # via # -r requirements/base.txt # -r requirements/test.txt @@ -340,18 +342,23 @@ lazy==1.6 # -r requirements/base.txt # -r requirements/test.txt # xblock -lxml==5.1.0 +lxml[html-clean]==5.3.1 # via # -r requirements/base.txt # -r requirements/test.txt # edx-i18n-tools + # lxml-html-clean # xblock -mako==1.3.2 +lxml-html-clean==0.4.1 + # via + # -r requirements/test.txt + # lxml +mako==1.3.9 # via # -r requirements/base.txt # -r requirements/test.txt # xblock -markupsafe==2.1.5 +markupsafe==3.0.2 # via # -r requirements/base.txt # -r requirements/test.txt @@ -361,52 +368,50 @@ markupsafe==2.1.5 mock==3.0.5 # via -r requirements/test.txt more-itertools==5.0.0 - # via - # -r requirements/test.txt - # pytest -mysqlclient==2.2.4 # via -r requirements/test.txt -newrelic==9.7.0 +mysqlclient==2.2.7 + # via -r requirements/test.txt +newrelic==10.6.0 # via # -r requirements/base.txt # -r requirements/test.txt # edx-django-utils -nh3==0.2.15 +nh3==0.2.21 # via readme-renderer oauthlib==3.2.2 # via # -r requirements/test.txt # django-oauth-toolkit -openedx-django-pyfs==3.5.0 +openedx-django-pyfs==3.7.0 # via # -r requirements/base.txt # -r requirements/test.txt # xblock -openedx-events==9.5.2 +openedx-events==9.18.2 # via # -r requirements/base.txt # -r requirements/test.txt # event-tracking -openedx-filters==1.8.1 +openedx-filters==2.0.1 # via # -r requirements/base.txt # -r requirements/test.txt # edx-event-routing-backends -packaging==23.2 +packaging==24.2 # via # -r requirements/test.txt # pytest # sphinx -path==16.10.0 +path==16.16.0 # via # -r requirements/test.txt # edx-i18n-tools -pbr==6.0.0 +pbr==6.1.1 # via # -r requirements/base.txt # -r requirements/test.txt # stevedore -pluggy==0.13.1 +pluggy==1.5.0 # via # -r requirements/test.txt # pytest @@ -414,37 +419,33 @@ polib==1.2.0 # via # -r requirements/test.txt # edx-i18n-tools -prompt-toolkit==3.0.43 +prompt-toolkit==3.0.50 # via # -r requirements/base.txt # -r requirements/test.txt # click-repl -psutil==5.9.8 +psutil==7.0.0 # via # -r requirements/base.txt # -r requirements/test.txt # edx-django-utils -py==1.11.0 - # via - # -r requirements/test.txt - # pytest -pycparser==2.21 +pycparser==2.22 # via # -r requirements/base.txt # -r requirements/test.txt # cffi -pygments==2.17.2 +pygments==2.19.1 # via # doc8 # readme-renderer # sphinx -pyjwt[crypto]==2.8.0 +pyjwt[crypto]==2.10.1 # via # -r requirements/base.txt # -r requirements/test.txt # drf-jwt # edx-drf-extensions -pymongo==3.13.0 +pymongo==4.4.0 # via # -r requirements/base.txt # -r requirements/test.txt @@ -455,23 +456,22 @@ pynacl==1.5.0 # -r requirements/base.txt # -r requirements/test.txt # edx-django-utils -pytest==5.4.3 +pytest==8.3.5 # via # -r requirements/test.txt # pytest-cov # pytest-django -pytest-cov==4.1.0 +pytest-cov==6.0.0 # via -r requirements/test.txt -pytest-django==4.5.2 +pytest-django==4.10.0 # via -r requirements/test.txt -python-dateutil==2.8.2 +python-dateutil==2.9.0.post0 # via # -r requirements/base.txt # -r requirements/test.txt # botocore # celery # edx-event-routing-backends - # faker # freezegun # xblock python-slugify==8.0.4 @@ -479,33 +479,30 @@ python-slugify==8.0.4 # -r requirements/base.txt # -r requirements/test.txt # code-annotations -pytz==2024.1 +pytz==2025.1 # via # -r requirements/base.txt # -r requirements/test.txt - # babel - # django - # djangorestframework # edx-completion # edx-event-routing-backends # event-tracking # tincan # xblock -pyyaml==6.0.1 +pyyaml==6.0.2 # via # -r requirements/base.txt # -r requirements/test.txt # code-annotations # edx-i18n-tools # xblock -readme-renderer==42.0 +readme-renderer==44.0 # via -r requirements/doc.in -redis==5.0.5 +redis==5.2.1 # via # -r requirements/base.txt # -r requirements/test.txt # django-redis -requests==2.31.0 +requests==2.32.3 # via # -r requirements/base.txt # -r requirements/test.txt @@ -516,7 +513,7 @@ requests==2.31.0 # sphinx restructuredtext-lint==1.4.0 # via doc8 -s3transfer==0.10.0 +s3transfer==0.11.3 # via # -r requirements/base.txt # -r requirements/test.txt @@ -526,48 +523,48 @@ semantic-version==2.10.0 # -r requirements/base.txt # -r requirements/test.txt # edx-drf-extensions -simplejson==3.19.2 +simplejson==3.20.1 # via # -r requirements/base.txt # -r requirements/test.txt # xblock -six==1.16.0 +six==1.17.0 # via # -r requirements/base.txt # -r requirements/test.txt + # edx-ccx-keys # edx-sphinx-theme # event-tracking # freezegun # fs # fs-s3fs - # isodate # mock # more-itertools # python-dateutil snowballstemmer==2.2.0 # via sphinx -sphinx==5.3.0 +sphinx==3.5.3 # via # -r requirements/doc.in # edx-sphinx-theme -sphinxcontrib-applehelp==1.0.4 +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.3 # via # -r requirements/base.txt # -r requirements/test.txt # django -stevedore==5.2.0 +stevedore==5.4.1 # via # -r requirements/base.txt # -r requirements/test.txt @@ -585,26 +582,20 @@ tincan==1.0.0 # -r requirements/base.txt # -r requirements/test.txt # edx-event-routing-backends -tomli==2.0.1 - # via - # -r requirements/test.txt - # coverage - # doc8 -typing-extensions==4.10.0 +typing-extensions==4.12.2 # via # -r requirements/base.txt # -r requirements/test.txt - # asgiref # edx-opaque-keys # jwcrypto - # kombu -tzdata==2024.1 +tzdata==2025.1 # via # -r requirements/base.txt # -r requirements/test.txt - # backports-zoneinfo # celery -urllib3==1.26.18 + # faker + # kombu +urllib3==2.2.3 # via # -r requirements/base.txt # -r requirements/test.txt @@ -622,24 +613,21 @@ wcwidth==0.2.13 # -r requirements/base.txt # -r requirements/test.txt # prompt-toolkit - # pytest -web-fragments==2.1.0 +web-fragments==2.2.0 # via # -r requirements/base.txt # -r requirements/test.txt # xblock -webob==1.8.7 +webob==1.8.9 # via # -r requirements/base.txt # -r requirements/test.txt # xblock -xblock[django]==1.10.0 +xblock[django]==5.1.2 # via # -r requirements/base.txt # -r requirements/test.txt # edx-completion -zipp==3.17.0 - # via importlib-metadata # The following packages are considered to be unsafe in a requirements file: # setuptools diff --git a/requirements/pip-tools.txt b/requirements/pip-tools.txt index 294295fd..5461e435 100644 --- a/requirements/pip-tools.txt +++ b/requirements/pip-tools.txt @@ -1,34 +1,23 @@ # -# This file is autogenerated by pip-compile with Python 3.8 +# This file is autogenerated by pip-compile with Python 3.11 # by the following command: # # make upgrade # -build==1.0.3 +build==1.2.2.post1 # via pip-tools -click==8.1.7 +click==8.1.8 # via pip-tools -importlib-metadata==6.11.0 - # via - # -c https://raw.githubusercontent.com/edx/edx-lint/master/edx_lint/files/common_constraints.txt - # build -packaging==23.2 +packaging==24.2 # via build -pip-tools==7.4.0 +pip-tools==7.4.1 # via -r requirements/pip-tools.in -pyproject-hooks==1.0.0 - # via - # build - # pip-tools -tomli==2.0.1 +pyproject-hooks==1.2.0 # via # build # pip-tools - # pyproject-hooks -wheel==0.42.0 +wheel==0.45.1 # 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 66656035..7ac0a3eb 100644 --- a/requirements/pip.txt +++ b/requirements/pip.txt @@ -1,14 +1,16 @@ # -# This file is autogenerated by pip-compile with Python 3.8 +# This file is autogenerated by pip-compile with Python 3.11 # by the following command: # # make upgrade # -wheel==0.42.0 +wheel==0.45.1 # via -r requirements/pip.in # The following packages are considered to be unsafe in a requirements file: -pip==24.0 - # via -r requirements/pip.in -setuptools==69.1.1 +pip==24.2 + # via + # -c https://raw.githubusercontent.com/edx/edx-lint/master/edx_lint/files/common_constraints.txt + # -r requirements/pip.in +setuptools==75.8.2 # via -r requirements/pip.in diff --git a/requirements/quality.txt b/requirements/quality.txt index 69f2f828..aafc8f8e 100644 --- a/requirements/quality.txt +++ b/requirements/quality.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.11 # by the following command: # # make upgrade # -amqp==5.2.0 +amqp==5.3.1 # via # -r requirements/test.txt # kombu -aniso8601==9.0.1 +aniso8601==10.0.0 # via # -r requirements/test.txt # tincan @@ -20,60 +20,50 @@ appdirs==1.4.4 # via # -r requirements/test.txt # fs -asgiref==3.7.2 +asgiref==3.8.1 # via # -r requirements/test.txt # django -astroid==3.1.0 +astroid==3.3.8 # via # pylint # pylint-celery -async-timeout==4.0.3 - # via - # -r requirements/test.txt - # redis -attrs==23.2.0 +attrs==25.1.0 # via # -r requirements/test.txt # openedx-events - # pytest -backports-zoneinfo[tzdata]==0.2.1 - # via - # -r requirements/test.txt - # celery - # kombu -billiard==4.2.0 +billiard==4.2.1 # via # -r requirements/test.txt # celery -boto3==1.34.49 +boto3==1.37.4 # via # -r requirements/test.txt # fs-s3fs -botocore==1.34.49 +botocore==1.37.4 # via # -r requirements/test.txt # boto3 # s3transfer -celery==5.3.6 +celery==5.4.0 # via # -r requirements/test.txt # edx-celeryutils # event-tracking -certifi==2024.2.2 +certifi==2025.1.31 # via # -r requirements/test.txt # requests -cffi==1.16.0 +cffi==1.17.1 # via # -r requirements/test.txt # cryptography # pynacl -charset-normalizer==3.3.2 +charset-normalizer==3.4.1 # via # -r requirements/test.txt # requests -click==8.1.7 +click==8.1.8 # via # -r requirements/test.txt # celery @@ -84,7 +74,7 @@ click==8.1.7 # code-annotations # edx-django-utils # edx-lint -click-didyoumean==0.3.0 +click-didyoumean==0.3.1 # via # -r requirements/test.txt # celery @@ -98,26 +88,26 @@ click-repl==0.3.0 # via # -r requirements/test.txt # celery -code-annotations==1.6.0 +code-annotations==2.2.0 # via # -r requirements/test.txt # edx-lint # edx-toggles -coverage[toml]==7.4.3 +coverage[toml]==7.6.12 # via # -r requirements/test.txt # pytest-cov -cryptography==42.0.5 +cryptography==44.0.2 # via # -r requirements/test.txt # django-fernet-fields-v2 # jwcrypto # pyjwt -ddt==1.7.1 +ddt==1.7.2 # via -r requirements/test.txt -dill==0.3.8 +dill==0.3.9 # via pylint -django==3.2.24 +django==4.2.19 # via # -c https://raw.githubusercontent.com/edx/edx-lint/master/edx_lint/files/common_constraints.txt # -r requirements/test.txt @@ -142,7 +132,7 @@ django==3.2.24 # openedx-django-pyfs # openedx-events # openedx-filters -django-config-models==2.7.0 +django-config-models==2.8.0 # via # -r requirements/test.txt # edx-event-routing-backends @@ -155,41 +145,49 @@ django-fernet-fields-v2==0.9 # via # -r requirements/test.txt # edx-event-routing-backends -django-model-utils==4.4.0 +django-model-utils==5.0.0 # via # -r requirements/test.txt # edx-celeryutils # edx-completion -django-oauth-toolkit==2.3.0 +django-oauth-toolkit==3.0.1 # via -r requirements/test.txt django-redis==5.4.0 # via # -r requirements/test.txt # edx-event-routing-backends -django-waffle==4.1.0 +django-waffle==4.2.0 # via # -r requirements/test.txt # edx-django-utils # edx-drf-extensions # edx-toggles -djangorestframework==3.14.0 +djangorestframework==3.15.2 # via # -r requirements/test.txt # django-config-models # drf-jwt # edx-completion # edx-drf-extensions +dnspython==2.7.0 + # via + # -r requirements/test.txt + # pymongo drf-jwt==1.19.2 # via # -r requirements/test.txt # edx-drf-extensions -edx-celeryutils==1.2.5 +edx-ccx-keys==2.0.2 + # via + # -r requirements/test.txt + # openedx-events +edx-celeryutils==1.3.0 # via # -r requirements/test.txt # edx-event-routing-backends -edx-completion==4.6.0 +edx-completion==4.7.10 # via -r requirements/test.txt -edx-django-utils==5.10.1 +edx-django-utils==7.2.0 # via # -r requirements/test.txt # django-config-models @@ -197,42 +195,42 @@ edx-django-utils==5.10.1 # edx-toggles # event-tracking # openedx-events -edx-drf-extensions==10.2.0 +edx-drf-extensions==10.5.0 # via # -r requirements/test.txt # edx-completion -edx-event-routing-backends==9.3.0 - # via - # -c requirements/constraints.txt - # -r requirements/test.txt -edx-i18n-tools==1.3.0 +edx-event-routing-backends==9.3.2 + # via -r requirements/test.txt +edx-i18n-tools==1.6.3 # via -r requirements/test.txt -edx-lint==5.3.6 +edx-lint==5.6.0 # via -r requirements/quality.in -edx-opaque-keys[django]==2.5.1 +edx-opaque-keys[django]==2.11.0 # via # -r requirements/test.txt + # edx-ccx-keys # edx-completion # edx-drf-extensions # openedx-events -edx-toggles==5.1.1 + # openedx-filters +edx-toggles==5.3.0 # via # -r requirements/test.txt # edx-completion # edx-event-routing-backends # event-tracking -event-tracking==2.4.0 +event-tracking==3.0.0 # via # -r requirements/test.txt # edx-completion # edx-event-routing-backends -factory-boy==3.3.0 +factory-boy==3.3.3 # via -r requirements/test.txt -faker==25.8.0 +faker==36.1.1 # via # -r requirements/test.txt # factory-boy -fastavro==1.9.4 +fastavro==1.10.0 # via # -r requirements/test.txt # openedx-events @@ -252,19 +250,23 @@ fs-s3fs==1.1.1 # via # -r requirements/test.txt # openedx-django-pyfs -idna==3.6 +idna==3.10 # via # -r requirements/test.txt # requests -isodate==0.6.1 +iniconfig==2.0.0 + # via + # -r requirements/test.txt + # pytest +isodate==0.7.2 # via # -r requirements/test.txt # edx-event-routing-backends -isort==5.13.2 +isort==6.0.1 # via # -r requirements/quality.in # pylint -jinja2==3.1.3 +jinja2==3.1.5 # via # -r requirements/test.txt # code-annotations @@ -278,11 +280,11 @@ jsonfield==3.1.0 # -r requirements/test.txt # edx-celeryutils # edx-event-routing-backends -jwcrypto==1.5.4 +jwcrypto==1.5.6 # via # -r requirements/test.txt # django-oauth-toolkit -kombu==5.3.5 +kombu==5.4.2 # via # -r requirements/test.txt # celery @@ -290,16 +292,21 @@ lazy==1.6 # via # -r requirements/test.txt # xblock -lxml==5.1.0 +lxml[html-clean]==5.3.1 # via # -r requirements/test.txt # edx-i18n-tools + # lxml-html-clean # xblock -mako==1.3.2 +lxml-html-clean==0.4.1 + # via + # -r requirements/test.txt + # lxml +mako==1.3.9 # via # -r requirements/test.txt # xblock -markupsafe==2.1.5 +markupsafe==3.0.2 # via # -r requirements/test.txt # jinja2 @@ -310,12 +317,10 @@ mccabe==0.7.0 mock==3.0.5 # via -r requirements/test.txt more-itertools==5.0.0 - # via - # -r requirements/test.txt - # pytest -mysqlclient==2.2.4 # via -r requirements/test.txt -newrelic==9.7.0 +mysqlclient==2.2.7 + # via -r requirements/test.txt +newrelic==10.6.0 # via # -r requirements/test.txt # edx-django-utils @@ -323,67 +328,62 @@ oauthlib==3.2.2 # via # -r requirements/test.txt # django-oauth-toolkit -openedx-django-pyfs==3.5.0 +openedx-django-pyfs==3.7.0 # via # -r requirements/test.txt # xblock -openedx-events==9.5.2 +openedx-events==9.18.2 # via # -r requirements/test.txt # event-tracking -openedx-filters==1.8.1 +openedx-filters==2.0.1 # via # -r requirements/test.txt # edx-event-routing-backends -packaging==23.2 +packaging==24.2 # via # -r requirements/test.txt # pytest -path==16.10.0 +path==16.16.0 # via # -r requirements/test.txt # edx-i18n-tools -pbr==6.0.0 +pbr==6.1.1 # via # -r requirements/test.txt # stevedore -platformdirs==4.2.0 +platformdirs==4.3.6 # via pylint -pluggy==0.13.1 +pluggy==1.5.0 # via - # -c requirements/constraints.txt # -r requirements/test.txt # pytest polib==1.2.0 # via # -r requirements/test.txt # edx-i18n-tools -prompt-toolkit==3.0.43 +prompt-toolkit==3.0.50 # via # -r requirements/test.txt # click-repl -psutil==5.9.8 +psutil==7.0.0 # via # -r requirements/test.txt # edx-django-utils -py==1.11.0 - # via - # -r requirements/test.txt - # pytest -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 -pyjwt[crypto]==2.8.0 +pyjwt[crypto]==2.10.1 # via # -r requirements/test.txt # drf-jwt # edx-drf-extensions -pylint==3.1.0 +pylint==3.3.4 # via # edx-lint # pylint-celery @@ -391,13 +391,13 @@ pylint==3.1.0 # 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==3.13.0 +pymongo==4.4.0 # via # -r requirements/test.txt # edx-opaque-keys @@ -406,57 +406,53 @@ pynacl==1.5.0 # via # -r requirements/test.txt # edx-django-utils -pytest==5.4.3 +pytest==8.3.5 # via - # -c requirements/constraints.txt # -r requirements/test.txt # pytest-cov # pytest-django -pytest-cov==4.1.0 +pytest-cov==6.0.0 # via -r requirements/test.txt -pytest-django==4.5.2 +pytest-django==4.10.0 # via -r requirements/test.txt -python-dateutil==2.8.2 +python-dateutil==2.9.0.post0 # via # -r requirements/test.txt # botocore # celery # edx-event-routing-backends - # faker # freezegun # xblock python-slugify==8.0.4 # via # -r requirements/test.txt # code-annotations -pytz==2024.1 +pytz==2025.1 # via # -r requirements/test.txt - # django - # djangorestframework # edx-completion # edx-event-routing-backends # event-tracking # tincan # xblock -pyyaml==6.0.1 +pyyaml==6.0.2 # via # -r requirements/test.txt # code-annotations # edx-i18n-tools # xblock -redis==5.0.5 +redis==5.2.1 # via # -r requirements/test.txt # django-redis -requests==2.31.0 +requests==2.32.3 # via # -r requirements/test.txt # apache-libcloud # django-oauth-toolkit # edx-drf-extensions # edx-event-routing-backends -s3transfer==0.10.0 +s3transfer==0.11.3 # via # -r requirements/test.txt # boto3 @@ -464,29 +460,29 @@ semantic-version==2.10.0 # via # -r requirements/test.txt # edx-drf-extensions -simplejson==3.19.2 +simplejson==3.20.1 # via # -r requirements/test.txt # xblock -six==1.16.0 +six==1.17.0 # via # -r requirements/test.txt + # edx-ccx-keys # edx-lint # event-tracking # freezegun # fs # fs-s3fs - # isodate # mock # more-itertools # python-dateutil snowballstemmer==2.2.0 # via pydocstyle -sqlparse==0.4.4 +sqlparse==0.5.3 # via # -r requirements/test.txt # django -stevedore==5.2.0 +stevedore==5.4.1 # via # -r requirements/test.txt # code-annotations @@ -500,29 +496,22 @@ tincan==1.0.0 # via # -r requirements/test.txt # edx-event-routing-backends -tomli==2.0.1 - # via - # -r requirements/test.txt - # coverage - # pylint -tomlkit==0.12.3 +tomlkit==0.13.2 # via pylint -typing-extensions==4.10.0 +typing-extensions==4.12.2 # via # -r requirements/test.txt - # asgiref - # astroid # edx-opaque-keys # jwcrypto - # kombu - # pylint -tzdata==2024.1 +tzdata==2025.1 # via # -r requirements/test.txt - # backports-zoneinfo # celery -urllib3==1.26.18 + # faker + # kombu +urllib3==2.2.3 # via + # -c https://raw.githubusercontent.com/edx/edx-lint/master/edx_lint/files/common_constraints.txt # -r requirements/test.txt # botocore # requests @@ -536,16 +525,15 @@ wcwidth==0.2.13 # via # -r requirements/test.txt # prompt-toolkit - # pytest -web-fragments==2.1.0 +web-fragments==2.2.0 # via # -r requirements/test.txt # xblock -webob==1.8.7 +webob==1.8.9 # via # -r requirements/test.txt # xblock -xblock[django]==1.10.0 +xblock[django]==5.1.2 # via # -r requirements/test.txt # edx-completion diff --git a/requirements/test.txt b/requirements/test.txt index 2dd35c8f..577a8d70 100644 --- a/requirements/test.txt +++ b/requirements/test.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.11 # by the following command: # # make upgrade # -amqp==5.2.0 +amqp==5.3.1 # via # -r requirements/base.txt # kombu -aniso8601==9.0.1 +aniso8601==10.0.0 # via # -r requirements/base.txt # tincan @@ -20,56 +20,46 @@ appdirs==1.4.4 # via # -r requirements/base.txt # fs -asgiref==3.7.2 +asgiref==3.8.1 # via # -r requirements/base.txt # django -async-timeout==4.0.3 - # via - # -r requirements/base.txt - # redis -attrs==23.2.0 +attrs==25.1.0 # via # -r requirements/base.txt # openedx-events - # pytest -backports-zoneinfo[tzdata]==0.2.1 - # via - # -r requirements/base.txt - # celery - # kombu -billiard==4.2.0 +billiard==4.2.1 # via # -r requirements/base.txt # celery -boto3==1.34.49 +boto3==1.37.4 # via # -r requirements/base.txt # fs-s3fs -botocore==1.34.49 +botocore==1.37.4 # via # -r requirements/base.txt # boto3 # s3transfer -celery==5.3.6 +celery==5.4.0 # via # -r requirements/base.txt # edx-celeryutils # event-tracking -certifi==2024.2.2 +certifi==2025.1.31 # via # -r requirements/base.txt # requests -cffi==1.16.0 +cffi==1.17.1 # via # -r requirements/base.txt # cryptography # pynacl -charset-normalizer==3.3.2 +charset-normalizer==3.4.1 # via # -r requirements/base.txt # requests -click==8.1.7 +click==8.1.8 # via # -r requirements/base.txt # celery @@ -78,7 +68,7 @@ click==8.1.7 # click-repl # code-annotations # edx-django-utils -click-didyoumean==0.3.0 +click-didyoumean==0.3.1 # via # -r requirements/base.txt # celery @@ -90,19 +80,19 @@ click-repl==0.3.0 # via # -r requirements/base.txt # celery -code-annotations==1.6.0 +code-annotations==2.2.0 # via # -r requirements/base.txt # edx-toggles -coverage[toml]==7.4.3 +coverage[toml]==7.6.12 # via pytest-cov -cryptography==42.0.5 +cryptography==44.0.2 # via # -r requirements/base.txt # django-fernet-fields-v2 # jwcrypto # pyjwt -ddt==1.7.1 +ddt==1.7.2 # via -r requirements/test.in # via # -c https://raw.githubusercontent.com/edx/edx-lint/master/edx_lint/files/common_constraints.txt @@ -128,7 +118,7 @@ ddt==1.7.1 # openedx-django-pyfs # openedx-events # openedx-filters -django-config-models==2.7.0 +django-config-models==2.8.0 # via # -r requirements/base.txt # edx-event-routing-backends @@ -141,42 +131,50 @@ django-fernet-fields-v2==0.9 # via # -r requirements/base.txt # edx-event-routing-backends -django-model-utils==4.4.0 +django-model-utils==5.0.0 # via # -r requirements/base.txt # -r requirements/test.in # edx-celeryutils # edx-completion -django-oauth-toolkit==2.3.0 +django-oauth-toolkit==3.0.1 # via -r requirements/test.in django-redis==5.4.0 # via # -r requirements/base.txt # edx-event-routing-backends -django-waffle==4.1.0 +django-waffle==4.2.0 # via # -r requirements/base.txt # edx-django-utils # edx-drf-extensions # edx-toggles -djangorestframework==3.14.0 +djangorestframework==3.15.2 # via # -r requirements/base.txt # django-config-models # drf-jwt # edx-completion # edx-drf-extensions +dnspython==2.7.0 + # via + # -r requirements/base.txt + # pymongo drf-jwt==1.19.2 # via # -r requirements/base.txt # edx-drf-extensions -edx-celeryutils==1.2.5 +edx-ccx-keys==2.0.2 + # via + # -r requirements/base.txt + # openedx-events +edx-celeryutils==1.3.0 # via # -r requirements/base.txt # edx-event-routing-backends -edx-completion==4.6.0 +edx-completion==4.7.10 # via -r requirements/base.txt -edx-django-utils==5.10.1 +edx-django-utils==7.2.0 # via # -r requirements/base.txt # django-config-models @@ -184,38 +182,38 @@ edx-django-utils==5.10.1 # edx-toggles # event-tracking # openedx-events -edx-drf-extensions==10.2.0 +edx-drf-extensions==10.5.0 # via # -r requirements/base.txt # edx-completion -edx-event-routing-backends==9.3.0 - # via - # -c requirements/constraints.txt - # -r requirements/base.txt -edx-i18n-tools==1.3.0 +edx-event-routing-backends==9.3.2 + # via -r requirements/base.txt +edx-i18n-tools==1.6.3 # via -r requirements/test.in -edx-opaque-keys[django]==2.5.1 +edx-opaque-keys[django]==2.11.0 # via # -r requirements/base.txt + # edx-ccx-keys # edx-completion # edx-drf-extensions # openedx-events -edx-toggles==5.1.1 + # openedx-filters +edx-toggles==5.3.0 # via # -r requirements/base.txt # edx-completion # edx-event-routing-backends # event-tracking -event-tracking==2.4.0 +event-tracking==3.0.0 # via # -r requirements/base.txt # edx-completion # edx-event-routing-backends -factory-boy==3.3.0 +factory-boy==3.3.3 # via -r requirements/test.in -faker==25.8.0 +faker==36.1.1 # via factory-boy -fastavro==1.9.4 +fastavro==1.10.0 # via # -r requirements/base.txt # openedx-events @@ -235,15 +233,17 @@ fs-s3fs==1.1.1 # via # -r requirements/base.txt # openedx-django-pyfs -idna==3.6 +idna==3.10 # via # -r requirements/base.txt # requests -isodate==0.6.1 +iniconfig==2.0.0 + # via pytest +isodate==0.7.2 # via # -r requirements/base.txt # edx-event-routing-backends -jinja2==3.1.3 +jinja2==3.1.5 # via # -r requirements/base.txt # code-annotations @@ -257,9 +257,9 @@ jsonfield==3.1.0 # -r requirements/base.txt # edx-celeryutils # edx-event-routing-backends -jwcrypto==1.5.4 +jwcrypto==1.5.6 # via django-oauth-toolkit -kombu==5.3.5 +kombu==5.4.2 # via # -r requirements/base.txt # celery @@ -267,16 +267,19 @@ lazy==1.6 # via # -r requirements/base.txt # xblock -lxml==5.1.0 +lxml[html-clean]==5.3.1 # via # -r requirements/base.txt # edx-i18n-tools + # lxml-html-clean # xblock -mako==1.3.2 +lxml-html-clean==0.4.1 + # via lxml +mako==1.3.9 # via # -r requirements/base.txt # xblock -markupsafe==2.1.5 +markupsafe==3.0.2 # via # -r requirements/base.txt # jinja2 @@ -285,63 +288,57 @@ markupsafe==2.1.5 mock==3.0.5 # via -r requirements/test.in more-itertools==5.0.0 - # via - # -r requirements/test.in - # pytest -mysqlclient==2.2.4 # via -r requirements/test.in -newrelic==9.7.0 +mysqlclient==2.2.7 + # via -r requirements/test.in +newrelic==10.6.0 # via # -r requirements/base.txt # edx-django-utils oauthlib==3.2.2 # via django-oauth-toolkit -openedx-django-pyfs==3.5.0 +openedx-django-pyfs==3.7.0 # via # -r requirements/base.txt # xblock -openedx-events==9.5.2 +openedx-events==9.18.2 # via # -r requirements/base.txt # event-tracking -openedx-filters==1.8.1 +openedx-filters==2.0.1 # via # -r requirements/base.txt # edx-event-routing-backends -packaging==23.2 +packaging==24.2 # via pytest -path==16.10.0 +path==16.16.0 # via edx-i18n-tools -pbr==6.0.0 +pbr==6.1.1 # via # -r requirements/base.txt # stevedore -pluggy==0.13.1 - # via - # -c requirements/constraints.txt - # pytest +pluggy==1.5.0 + # via pytest polib==1.2.0 # via edx-i18n-tools -prompt-toolkit==3.0.43 +prompt-toolkit==3.0.50 # via # -r requirements/base.txt # click-repl -psutil==5.9.8 +psutil==7.0.0 # via # -r requirements/base.txt # edx-django-utils -py==1.11.0 - # via pytest -pycparser==2.21 +pycparser==2.22 # via # -r requirements/base.txt # cffi -pyjwt[crypto]==2.8.0 +pyjwt[crypto]==2.10.1 # via # -r requirements/base.txt # drf-jwt # edx-drf-extensions -pymongo==3.13.0 +pymongo==4.4.0 # via # -r requirements/base.txt # edx-opaque-keys @@ -350,58 +347,54 @@ pynacl==1.5.0 # via # -r requirements/base.txt # edx-django-utils -pytest==5.4.3 +pytest==8.3.5 # via - # -c requirements/constraints.txt # -r requirements/test.in # pytest-cov # pytest-django -pytest-cov==4.1.0 +pytest-cov==6.0.0 # via -r requirements/test.in -pytest-django==4.5.2 +pytest-django==4.10.0 # via -r requirements/test.in -python-dateutil==2.8.2 +python-dateutil==2.9.0.post0 # via # -r requirements/base.txt # botocore # celery # edx-event-routing-backends - # faker # freezegun # xblock python-slugify==8.0.4 # via # -r requirements/base.txt # code-annotations -pytz==2024.1 +pytz==2025.1 # via # -r requirements/base.txt - # django - # djangorestframework # edx-completion # edx-event-routing-backends # event-tracking # tincan # xblock -pyyaml==6.0.1 +pyyaml==6.0.2 # via # -r requirements/base.txt # code-annotations # edx-i18n-tools # xblock -redis==5.0.5 +redis==5.2.1 # via # -r requirements/base.txt # -r requirements/test.in # django-redis -requests==2.31.0 +requests==2.32.3 # via # -r requirements/base.txt # apache-libcloud # django-oauth-toolkit # edx-drf-extensions # edx-event-routing-backends -s3transfer==0.10.0 +s3transfer==0.11.3 # via # -r requirements/base.txt # boto3 @@ -409,26 +402,26 @@ semantic-version==2.10.0 # via # -r requirements/base.txt # edx-drf-extensions -simplejson==3.19.2 +simplejson==3.20.1 # via # -r requirements/base.txt # xblock -six==1.16.0 +six==1.17.0 # via # -r requirements/base.txt + # edx-ccx-keys # event-tracking # freezegun # fs # fs-s3fs - # isodate # mock # more-itertools # python-dateutil -sqlparse==0.4.4 +sqlparse==0.5.3 # via # -r requirements/base.txt # django -stevedore==5.2.0 +stevedore==5.4.1 # via # -r requirements/base.txt # code-annotations @@ -442,22 +435,20 @@ tincan==1.0.0 # via # -r requirements/base.txt # edx-event-routing-backends -tomli==2.0.1 - # via coverage -typing-extensions==4.10.0 +typing-extensions==4.12.2 # via # -r requirements/base.txt - # asgiref # edx-opaque-keys # jwcrypto - # kombu -tzdata==2024.1 +tzdata==2025.1 # via # -r requirements/base.txt - # backports-zoneinfo # celery -urllib3==1.26.18 + # faker + # kombu +urllib3==2.2.3 # via + # -c https://raw.githubusercontent.com/edx/edx-lint/master/edx_lint/files/common_constraints.txt # -r requirements/base.txt # botocore # requests @@ -471,16 +462,15 @@ wcwidth==0.2.13 # via # -r requirements/base.txt # prompt-toolkit - # pytest -web-fragments==2.1.0 +web-fragments==2.2.0 # via # -r requirements/base.txt # xblock -webob==1.8.7 +webob==1.8.9 # via # -r requirements/base.txt # xblock -xblock[django]==1.10.0 +xblock[django]==5.1.2 # via # -r requirements/base.txt # edx-completion diff --git a/setup.py b/setup.py index 12e92360..c07a7536 100755 --- a/setup.py +++ b/setup.py @@ -119,11 +119,12 @@ def get_version(*file_paths): classifiers=[ 'Development Status :: 3 - Alpha', 'Framework :: Django', - 'Framework :: Django :: 3.2', + 'Framework :: Django :: 4.2', 'Intended Audience :: Developers', 'License :: OSI Approved :: GNU Affero General Public License v3 or later (AGPLv3+)', 'Natural Language :: English', - 'Programming Language :: Python :: 3.8', + 'Programming Language :: Python :: 3.11', + 'Programming Language :: Python :: 3.12', ], entry_points={ 'lms.djangoapp': [ diff --git a/tox.ini b/tox.ini index 05b2b301..07ff376f 100644 --- a/tox.ini +++ b/tox.ini @@ -1,5 +1,5 @@ [tox] -envlist = py38-django32,quality,docs +envlist = py{311,312}-django{42},quality,docs [doc8] ignore = D001 @@ -24,7 +24,7 @@ norecursedirs = .* docs requirements [testenv] deps = - django32: Django>=3.2,<3.3 + django42: Django>=4.2,<5.0 -r{toxinidir}/requirements/test.txt commands = pytest --nomigrations {posargs} @@ -35,7 +35,6 @@ passenv = EDXAGG_MYSQL_PASSWORD [testenv:docs] -basepython = python3.8 setenv = DJANGO_SETTINGS_MODULE = test_settings PYTHONPATH = {toxinidir} @@ -53,7 +52,6 @@ commands = python setup.py check --restructuredtext --strict [testenv:quality] -basepython = python3.8 whitelist_externals = make deps =