diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 1ba54308..3ed86dd4 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -16,7 +16,7 @@ jobs: matrix: os: [ubuntu-latest] python-version: ['3.12'] - toxenv: [quality, data-django42, reporting-django42, data-django52, reporting-django52] + toxenv: [quality, data-django42, reporting-django42] steps: - uses: actions/checkout@v4 diff --git a/.gitignore b/.gitignore index 0a823e3a..f1906c63 100644 --- a/.gitignore +++ b/.gitignore @@ -81,3 +81,4 @@ geckodriver/ # pyenv .python-version +venv/ \ No newline at end of file diff --git a/enterprise_data/__init__.py b/enterprise_data/__init__.py index 0925fb68..435d2b2e 100644 --- a/enterprise_data/__init__.py +++ b/enterprise_data/__init__.py @@ -2,4 +2,4 @@ Enterprise data api application. This Django app exposes API endpoints used by enterprises. """ -__version__ = "10.21.16" +__version__ = "10.22.0" diff --git a/requirements/base.txt b/requirements/base.txt index 39291f43..1d61be67 100644 --- a/requirements/base.txt +++ b/requirements/base.txt @@ -1,26 +1,26 @@ # -# This file is autogenerated by pip-compile with Python 3.12 +# This file is autogenerated by pip-compile with Python 3.11 # by the following command: # # make upgrade # amqp==5.3.1 # via kombu -asgiref==3.10.0 +asgiref==3.11.1 # via django asn1crypto==1.5.1 # via snowflake-connector-python -awscli==1.42.59 +awscli==1.44.32 # via -r requirements/reporting.in bcrypt==5.0.0 # via paramiko -billiard==4.2.2 +billiard==4.2.4 # via celery -boto3==1.40.59 +boto3==1.42.42 # via # -r requirements/reporting.in # snowflake-connector-python -botocore==1.40.59 +botocore==1.42.42 # via # awscli # boto3 @@ -28,7 +28,7 @@ botocore==1.40.59 # snowflake-connector-python celery==5.3.6 # via -r requirements/reporting.in -certifi==2025.10.5 +certifi==2026.1.4 # via # py2neo # requests @@ -41,7 +41,7 @@ charset-normalizer==3.4.4 # via # requests # snowflake-connector-python -click==8.3.0 +click==8.3.1 # via # celery # click-didyoumean @@ -56,7 +56,7 @@ click-repl==0.3.0 # via celery colorama==0.4.6 # via awscli -cryptography==46.0.3 +cryptography==46.0.4 # via # -r requirements/reporting.in # django-fernet-fields-v2 @@ -65,9 +65,10 @@ cryptography==46.0.3 # pyjwt # pyopenssl # snowflake-connector-python -django==4.2.25 +django==4.2.28 # via # -c requirements/common_constraints.txt + # -c requirements/constraints.txt # -r requirements/base.in # django-crum # django-fernet-fields-v2 @@ -127,9 +128,9 @@ edx-rest-api-client==6.2.0 # via -r requirements/base.in factory-boy==3.3.3 # via -r requirements/base.in -faker==37.12.0 +faker==40.1.2 # via factory-boy -filelock==3.20.0 +filelock==3.20.3 # via snowflake-connector-python idna==3.11 # via @@ -139,17 +140,19 @@ interchange==2021.0.4 # via py2neo invoke==2.2.1 # via paramiko -jmespath==1.0.1 +jmespath==1.1.0 # via # boto3 # botocore -kombu==5.5.4 +kombu==5.6.2 # via celery monotonic==1.6 # via py2neo mysql-connector-python==9.5.0 - # via -r requirements/base.in -packaging==25.0 + # via + # -c requirements/constraints.txt + # -r requirements/base.in +packaging==26.0 # via # kombu # py2neo @@ -160,25 +163,25 @@ paramiko==4.0.0 # via -r requirements/reporting.in pgpy==0.6.0 # via -r requirements/reporting.in -pillow==12.0.0 +pillow==12.1.0 # via pansi -platformdirs==4.5.0 +platformdirs==4.5.1 # via snowflake-connector-python prompt-toolkit==3.0.52 # via click-repl -psutil==7.1.2 +psutil==7.2.2 # via edx-django-utils py2neo @ https://github.com/overhangio/py2neo/releases/download/2021.2.3/py2neo-2021.2.3.tar.gz # via -r requirements/reporting.in -pyasn1==0.6.1 +pyasn1==0.6.2 # via # pgpy # rsa -pycparser==2.23 +pycparser==3.0 # via cffi pygments==2.19.2 # via py2neo -pyjwt[crypto]==2.10.1 +pyjwt[crypto]==2.11.0 # via # drf-jwt # edx-drf-extensions @@ -186,9 +189,9 @@ pyjwt[crypto]==2.10.1 # snowflake-connector-python pyminizip==0.2.6 # via -r requirements/reporting.in -pymongo==4.15.3 +pymongo==4.16.0 # via edx-opaque-keys -pynacl==1.6.0 +pynacl==1.6.2 # via # edx-django-utils # paramiko @@ -215,7 +218,7 @@ rsa==4.7.2 # via awscli rules==3.5 # via -r requirements/base.in -s3transfer==0.14.0 +s3transfer==0.16.0 # via # awscli # boto3 @@ -228,31 +231,30 @@ six==1.17.0 # py2neo # python-dateutil # vertica-python -snowflake-connector-python==4.0.0 +snowflake-connector-python==4.2.0 # via -r requirements/reporting.in sortedcontainers==2.4.0 # via snowflake-connector-python -sqlparse==0.5.3 +sqlparse==0.5.5 # via django -stevedore==5.5.0 +stevedore==5.6.0 # via # edx-django-utils # edx-opaque-keys -tomlkit==0.13.3 +tomlkit==0.14.0 # via snowflake-connector-python typing-extensions==4.15.0 # via # edx-opaque-keys # pyopenssl # snowflake-connector-python -tzdata==2025.2 +tzdata==2025.3 # via # celery - # faker # kombu unicodecsv==0.14.1 # via -r requirements/reporting.in -urllib3==2.5.0 +urllib3==2.6.3 # via # botocore # py2neo @@ -264,7 +266,7 @@ vine==5.1.0 # amqp # celery # kombu -wcwidth==0.2.14 +wcwidth==0.5.3 # via prompt-toolkit # The following packages are considered to be unsafe in a requirements file: diff --git a/requirements/ci.txt b/requirements/ci.txt index c9de84d1..b51dfbf5 100644 --- a/requirements/ci.txt +++ b/requirements/ci.txt @@ -1,28 +1,28 @@ # -# This file is autogenerated by pip-compile with Python 3.12 +# This file is autogenerated by pip-compile with Python 3.11 # by the following command: # # make upgrade # -cachetools==6.2.1 +cachetools==7.0.0 # via tox chardet==5.2.0 # via tox colorama==0.4.6 # via tox -coverage==7.11.0 +coverage==7.13.3 # via -r requirements/ci.in distlib==0.4.0 # via virtualenv -filelock==3.20.0 +filelock==3.20.3 # via # tox # virtualenv -packaging==25.0 +packaging==26.0 # via # pyproject-api # tox -platformdirs==4.5.0 +platformdirs==4.5.1 # via # tox # virtualenv @@ -30,7 +30,7 @@ pluggy==1.6.0 # via tox pyproject-api==1.10.0 # via tox -tox==4.32.0 +tox==4.34.1 # via -r requirements/ci.in -virtualenv==20.35.3 +virtualenv==20.36.1 # via tox diff --git a/requirements/common_constraints.txt b/requirements/common_constraints.txt index b9035164..0cd35a9b 100644 --- a/requirements/common_constraints.txt +++ b/requirements/common_constraints.txt @@ -13,9 +13,15 @@ # this file from Github directly. It does not require packaging in edx-lint. # using LTS django version -Django<5.0 +Django<6.0 # elasticsearch>=7.14.0 includes breaking changes in it which caused issues in discovery upgrade process. # elastic search changelog: https://www.elastic.co/guide/en/enterprise-search/master/release-notes-7.14.0.html # See https://github.com/openedx/edx-platform/issues/35126 for more info elasticsearch<7.14.0 + +# pip 26 is incompatible with pip-tools hence causing failures during the build process +# Make upgrade command and all requirements upgrade jobs are broken due to this. +# The constraint can be removed once a release (pip-tools > 7.5.2) is available with support for pip 26 +# Issue to track this dependency and unpin later on: https://github.com/jazzband/pip-tools/issues/2319 +pip<26.0 diff --git a/requirements/constraints.txt b/requirements/constraints.txt index 5d67541c..d0450432 100644 --- a/requirements/constraints.txt +++ b/requirements/constraints.txt @@ -12,3 +12,14 @@ # Common constraints for edx repos -c common_constraints.txt + +# This package is installed in the edx-analytics-data-api service, +# which only supports Django<5. We're hard pinning here, too, to avoid +# dependency management hell of supporting both Django 4 and 5. +Django<5 + +# pip 25.3 is problematic with newer versions of pip-tools +pip<25.3 + +# AED 2026-02-04: No idea why we can't find version 9.6 +mysql-connector-python<9.6 diff --git a/requirements/dev.txt b/requirements/dev.txt index 4322f6f1..e7b75360 100644 --- a/requirements/dev.txt +++ b/requirements/dev.txt @@ -1,42 +1,44 @@ # -# This file is autogenerated by pip-compile with Python 3.12 +# This file is autogenerated by pip-compile with Python 3.11 # by the following command: # # make upgrade # amqp==5.3.1 # via kombu -asgiref==3.10.0 +asgiref==3.11.1 # via django asn1crypto==1.5.1 # via snowflake-connector-python -astroid==3.3.11 +astroid==4.0.3 # via # pylint # pylint-celery -awscli==1.42.59 +awscli==1.44.32 # via -r requirements/reporting.in +backports-tarfile==1.2.0 + # via jaraco-context bcrypt==5.0.0 # via paramiko -billiard==4.2.2 +billiard==4.2.4 # via celery -boto3==1.40.59 +boto3==1.42.42 # via # -r requirements/reporting.in # snowflake-connector-python -botocore==1.40.59 +botocore==1.42.42 # via # awscli # boto3 # s3transfer # snowflake-connector-python -build==1.3.0 +build==1.4.0 # via pip-tools -cachetools==6.2.1 +cachetools==7.0.0 # via tox celery==5.3.6 # via -r requirements/reporting.in -certifi==2025.10.5 +certifi==2026.1.4 # via # py2neo # requests @@ -53,7 +55,7 @@ charset-normalizer==3.4.4 # via # requests # snowflake-connector-python -click==8.3.0 +click==8.3.1 # via # celery # click-didyoumean @@ -78,7 +80,7 @@ colorama==0.4.6 # via # awscli # tox -cryptography==46.0.3 +cryptography==46.0.4 # via # -r requirements/reporting.in # django-fernet-fields-v2 @@ -88,15 +90,16 @@ cryptography==46.0.3 # pyopenssl # secretstorage # snowflake-connector-python -diff-cover==9.7.1 +diff-cover==10.2.0 # via -r requirements/dev-enterprise_data.in -dill==0.4.0 +dill==0.4.1 # via pylint distlib==0.4.0 # via virtualenv -django==4.2.25 +django==4.2.28 # via # -c requirements/common_constraints.txt + # -c requirements/constraints.txt # -r requirements/base.in # django-crum # django-fernet-fields-v2 @@ -165,32 +168,34 @@ edx-rest-api-client==6.2.0 # via -r requirements/base.in factory-boy==3.3.3 # via -r requirements/base.in -faker==37.12.0 +faker==40.1.2 # via factory-boy -filelock==3.20.0 +filelock==3.20.3 # via # snowflake-connector-python # tox # virtualenv -id==1.5.0 +id==1.6.1 # via twine idna==3.11 # via # requests # snowflake-connector-python +importlib-metadata==8.7.1 + # via keyring interchange==2021.0.4 # via py2neo invoke==2.2.1 # via paramiko -isort==6.1.0 +isort==7.0.0 # via # -r requirements/quality.in # pylint jaraco-classes==3.4.0 # via keyring -jaraco-context==6.0.1 +jaraco-context==6.1.0 # via keyring -jaraco-functools==4.3.0 +jaraco-functools==4.4.0 # via keyring jeepney==0.9.0 # via @@ -200,13 +205,13 @@ jinja2==3.1.6 # via # code-annotations # diff-cover -jmespath==1.0.1 +jmespath==1.1.0 # via # boto3 # botocore -keyring==25.6.0 +keyring==25.7.0 # via twine -kombu==5.5.4 +kombu==5.6.2 # via celery lxml[html-clean]==6.0.2 # via @@ -229,10 +234,12 @@ more-itertools==10.8.0 # jaraco-classes # jaraco-functools mysql-connector-python==9.5.0 - # via -r requirements/base.in -nh3==0.3.1 + # via + # -c requirements/constraints.txt + # -r requirements/base.in +nh3==0.3.2 # via readme-renderer -packaging==25.0 +packaging==26.0 # via # build # kombu @@ -241,6 +248,7 @@ packaging==25.0 # snowflake-connector-python # tox # twine + # wheel pansi==2024.11.0 # via py2neo paramiko==4.0.0 @@ -249,11 +257,11 @@ path==16.16.0 # via edx-i18n-tools pgpy==0.6.0 # via -r requirements/reporting.in -pillow==12.0.0 +pillow==12.1.0 # via pansi -pip-tools==7.5.1 +pip-tools==7.5.2 # via -r requirements/dev-enterprise_data.in -platformdirs==4.5.0 +platformdirs==4.5.1 # via # pylint # snowflake-connector-python @@ -267,17 +275,17 @@ polib==1.2.0 # via edx-i18n-tools prompt-toolkit==3.0.52 # via click-repl -psutil==7.1.2 +psutil==7.2.2 # via edx-django-utils py2neo @ https://github.com/overhangio/py2neo/releases/download/2021.2.3/py2neo-2021.2.3.tar.gz # via -r requirements/reporting.in -pyasn1==0.6.1 +pyasn1==0.6.2 # via # pgpy # rsa pycodestyle==2.14.0 # via -r requirements/quality.in -pycparser==2.23 +pycparser==3.0 # via cffi pydocstyle==6.3.0 # via -r requirements/quality.in @@ -287,13 +295,13 @@ pygments==2.19.2 # py2neo # readme-renderer # rich -pyjwt[crypto]==2.10.1 +pyjwt[crypto]==2.11.0 # via # drf-jwt # edx-drf-extensions # edx-rest-api-client # snowflake-connector-python -pylint==3.3.9 +pylint==4.0.4 # via # edx-lint # pylint-celery @@ -301,7 +309,7 @@ pylint==3.3.9 # pylint-plugin-utils pylint-celery==0.3 # via edx-lint -pylint-django==2.6.1 +pylint-django==2.7.0 # via edx-lint pylint-plugin-utils==0.9.0 # via @@ -309,9 +317,9 @@ pylint-plugin-utils==0.9.0 # pylint-django pyminizip==0.2.6 # via -r requirements/reporting.in -pymongo==4.15.3 +pymongo==4.16.0 # via edx-opaque-keys -pynacl==1.6.0 +pynacl==1.6.2 # via # edx-django-utils # paramiko @@ -346,7 +354,6 @@ requests==2.32.5 # -r requirements/base.in # edx-drf-extensions # edx-rest-api-client - # id # requests-toolbelt # snowflake-connector-python # twine @@ -354,17 +361,17 @@ requests-toolbelt==1.0.0 # via twine rfc3986==2.0.0 # via twine -rich==14.2.0 +rich==14.3.2 # via twine rsa==4.7.2 # via awscli rules==3.5 # via -r requirements/base.in -s3transfer==0.14.0 +s3transfer==0.16.0 # via # awscli # boto3 -secretstorage==3.4.0 +secretstorage==3.5.0 # via keyring semantic-version==2.10.0 # via edx-drf-extensions @@ -378,26 +385,26 @@ six==1.17.0 # vertica-python snowballstemmer==3.0.1 # via pydocstyle -snowflake-connector-python==4.0.0 +snowflake-connector-python==4.2.0 # via -r requirements/reporting.in sortedcontainers==2.4.0 # via snowflake-connector-python -sqlparse==0.5.3 +sqlparse==0.5.5 # via django -stevedore==5.5.0 +stevedore==5.6.0 # via # code-annotations # edx-django-utils # edx-opaque-keys -testfixtures==9.2.0 +testfixtures==10.0.0 # via -r requirements/quality.in text-unidecode==1.3 # via python-slugify -tomlkit==0.13.3 +tomlkit==0.14.0 # via # pylint # snowflake-connector-python -tox==4.32.0 +tox==4.34.1 # via -r requirements/dev-enterprise_data.in twine==6.2.0 # via -r requirements/dev-enterprise_data.in @@ -406,16 +413,16 @@ typing-extensions==4.15.0 # edx-opaque-keys # pyopenssl # snowflake-connector-python -tzdata==2025.2 +tzdata==2025.3 # via # celery - # faker # kombu unicodecsv==0.14.1 # via -r requirements/reporting.in -urllib3==2.5.0 +urllib3==2.6.3 # via # botocore + # id # py2neo # requests # twine @@ -426,14 +433,16 @@ vine==5.1.0 # amqp # celery # kombu -virtualenv==20.35.3 +virtualenv==20.36.1 # via tox -wcwidth==0.2.14 +wcwidth==0.5.3 # via prompt-toolkit -wheel==0.45.1 +wheel==0.46.3 # via # -r requirements/dev-enterprise_data.in # pip-tools +zipp==3.23.0 + # via importlib-metadata # The following packages are considered to be unsafe in a requirements file: # pip diff --git a/requirements/django.txt b/requirements/django.txt index d17004c3..4fabdee8 100644 --- a/requirements/django.txt +++ b/requirements/django.txt @@ -1 +1 @@ -django==4.2.25 +django==4.2.28 diff --git a/requirements/pip.txt b/requirements/pip.txt index 394969ce..03dfc55c 100644 --- a/requirements/pip.txt +++ b/requirements/pip.txt @@ -1,14 +1,19 @@ # -# This file is autogenerated by pip-compile with Python 3.12 +# This file is autogenerated by pip-compile with Python 3.11 # by the following command: # # make upgrade # -wheel==0.45.1 +packaging==26.0 + # via wheel +wheel==0.46.3 # via -r requirements/pip.in # The following packages are considered to be unsafe in a requirements file: -pip==25.3 - # via -r requirements/pip.in -setuptools==80.9.0 +pip==25.2 + # via + # -c requirements/common_constraints.txt + # -c requirements/constraints.txt + # -r requirements/pip.in +setuptools==80.10.2 # via -r requirements/pip.in diff --git a/requirements/pip_tools.txt b/requirements/pip_tools.txt index 0dc0bf32..97cff3f3 100644 --- a/requirements/pip_tools.txt +++ b/requirements/pip_tools.txt @@ -1,22 +1,24 @@ # -# This file is autogenerated by pip-compile with Python 3.12 +# This file is autogenerated by pip-compile with Python 3.11 # by the following command: # # make upgrade # -build==1.3.0 +build==1.4.0 # via pip-tools -click==8.3.0 +click==8.3.1 # via pip-tools -packaging==25.0 - # via build -pip-tools==7.5.1 +packaging==26.0 + # via + # build + # wheel +pip-tools==7.5.2 # via -r requirements/pip_tools.in pyproject-hooks==1.2.0 # via # build # pip-tools -wheel==0.45.1 +wheel==0.46.3 # via pip-tools # The following packages are considered to be unsafe in a requirements file: diff --git a/requirements/quality.txt b/requirements/quality.txt index 5071e001..66db32ee 100644 --- a/requirements/quality.txt +++ b/requirements/quality.txt @@ -1,42 +1,44 @@ # -# This file is autogenerated by pip-compile with Python 3.12 +# This file is autogenerated by pip-compile with Python 3.11 # by the following command: # # make upgrade # amqp==5.3.1 # via kombu -asgiref==3.10.0 +asgiref==3.11.1 # via django asn1crypto==1.5.1 # via snowflake-connector-python -astroid==3.3.11 +astroid==4.0.3 # via # pylint # pylint-celery -awscli==1.42.59 +awscli==1.44.32 # via -r requirements/reporting.in +backports-tarfile==1.2.0 + # via jaraco-context bcrypt==5.0.0 # via paramiko -billiard==4.2.2 +billiard==4.2.4 # via celery -boto3==1.40.59 +boto3==1.42.42 # via # -r requirements/reporting.in # snowflake-connector-python -botocore==1.40.59 +botocore==1.42.42 # via # awscli # boto3 # s3transfer # snowflake-connector-python -build==1.3.0 +build==1.4.0 # via pip-tools -cachetools==6.2.1 +cachetools==7.0.0 # via tox celery==5.3.6 # via -r requirements/reporting.in -certifi==2025.10.5 +certifi==2026.1.4 # via # py2neo # requests @@ -53,7 +55,7 @@ charset-normalizer==3.4.4 # via # requests # snowflake-connector-python -click==8.3.0 +click==8.3.1 # via # celery # click-didyoumean @@ -78,9 +80,9 @@ colorama==0.4.6 # via # awscli # tox -coverage[toml]==7.11.0 +coverage[toml]==7.13.3 # via pytest-cov -cryptography==46.0.3 +cryptography==46.0.4 # via # -r requirements/reporting.in # django-fernet-fields-v2 @@ -92,15 +94,16 @@ cryptography==46.0.3 # snowflake-connector-python ddt==1.7.2 # via -r requirements/test.in -diff-cover==9.7.1 +diff-cover==10.2.0 # via -r requirements/dev-enterprise_data.in -dill==0.4.0 +dill==0.4.1 # via pylint distlib==0.4.0 # via virtualenv -django==4.2.25 +django==4.2.28 # via # -c requirements/common_constraints.txt + # -c requirements/constraints.txt # -r requirements/base.in # django-crum # django-fernet-fields-v2 @@ -172,9 +175,9 @@ factory-boy==3.3.3 # via # -r requirements/base.in # -r requirements/test.in -faker==37.12.0 +faker==40.1.2 # via factory-boy -filelock==3.20.0 +filelock==3.20.3 # via # snowflake-connector-python # tox @@ -183,27 +186,29 @@ flaky==3.8.1 # via -r requirements/test.in freezegun==1.5.5 # via -r requirements/test.in -id==1.5.0 +id==1.6.1 # via twine idna==3.11 # via # requests # snowflake-connector-python +importlib-metadata==8.7.1 + # via keyring iniconfig==2.3.0 # via pytest interchange==2021.0.4 # via py2neo invoke==2.2.1 # via paramiko -isort==6.1.0 +isort==7.0.0 # via # -r requirements/quality.in # pylint jaraco-classes==3.4.0 # via keyring -jaraco-context==6.0.1 +jaraco-context==6.1.0 # via keyring -jaraco-functools==4.3.0 +jaraco-functools==4.4.0 # via keyring jeepney==0.9.0 # via @@ -213,13 +218,13 @@ jinja2==3.1.6 # via # code-annotations # diff-cover -jmespath==1.0.1 +jmespath==1.1.0 # via # boto3 # botocore -keyring==25.6.0 +keyring==25.7.0 # via twine -kombu==5.5.4 +kombu==5.6.2 # via celery lxml[html-clean]==6.0.2 # via @@ -244,10 +249,12 @@ more-itertools==10.8.0 # jaraco-classes # jaraco-functools mysql-connector-python==9.5.0 - # via -r requirements/base.in -nh3==0.3.1 + # via + # -c requirements/constraints.txt + # -r requirements/base.in +nh3==0.3.2 # via readme-renderer -packaging==25.0 +packaging==26.0 # via # build # kombu @@ -257,6 +264,7 @@ packaging==25.0 # snowflake-connector-python # tox # twine + # wheel pansi==2024.11.0 # via py2neo paramiko==4.0.0 @@ -265,11 +273,11 @@ path==16.16.0 # via edx-i18n-tools pgpy==0.6.0 # via -r requirements/reporting.in -pillow==12.0.0 +pillow==12.1.0 # via pansi -pip-tools==7.5.1 +pip-tools==7.5.2 # via -r requirements/dev-enterprise_data.in -platformdirs==4.5.0 +platformdirs==4.5.1 # via # pylint # snowflake-connector-python @@ -285,17 +293,17 @@ polib==1.2.0 # via edx-i18n-tools prompt-toolkit==3.0.52 # via click-repl -psutil==7.1.2 +psutil==7.2.2 # via edx-django-utils py2neo @ https://github.com/overhangio/py2neo/releases/download/2021.2.3/py2neo-2021.2.3.tar.gz # via -r requirements/reporting.in -pyasn1==0.6.1 +pyasn1==0.6.2 # via # pgpy # rsa pycodestyle==2.14.0 # via -r requirements/quality.in -pycparser==2.23 +pycparser==3.0 # via cffi pydocstyle==6.3.0 # via -r requirements/quality.in @@ -306,13 +314,13 @@ pygments==2.19.2 # pytest # readme-renderer # rich -pyjwt[crypto]==2.10.1 +pyjwt[crypto]==2.11.0 # via # drf-jwt # edx-drf-extensions # edx-rest-api-client # snowflake-connector-python -pylint==3.3.9 +pylint==4.0.4 # via # edx-lint # pylint-celery @@ -320,7 +328,7 @@ pylint==3.3.9 # pylint-plugin-utils pylint-celery==0.3 # via edx-lint -pylint-django==2.6.1 +pylint-django==2.7.0 # via edx-lint pylint-plugin-utils==0.9.0 # via @@ -328,9 +336,9 @@ pylint-plugin-utils==0.9.0 # pylint-django pyminizip==0.2.6 # via -r requirements/reporting.in -pymongo==4.15.3 +pymongo==4.16.0 # via edx-opaque-keys -pynacl==1.6.0 +pynacl==1.6.2 # via # edx-django-utils # paramiko @@ -342,7 +350,7 @@ pyproject-hooks==1.2.0 # via # build # pip-tools -pytest==8.4.2 +pytest==9.0.2 # via # pytest-cov # pytest-django @@ -375,7 +383,6 @@ requests==2.32.5 # -r requirements/base.in # edx-drf-extensions # edx-rest-api-client - # id # requests-toolbelt # responses # snowflake-connector-python @@ -386,17 +393,17 @@ responses==0.25.8 # via -r requirements/test.in rfc3986==2.0.0 # via twine -rich==14.2.0 +rich==14.3.2 # via twine rsa==4.7.2 # via awscli rules==3.5 # via -r requirements/base.in -s3transfer==0.14.0 +s3transfer==0.16.0 # via # awscli # boto3 -secretstorage==3.4.0 +secretstorage==3.5.0 # via keyring semantic-version==2.10.0 # via edx-drf-extensions @@ -410,28 +417,28 @@ six==1.17.0 # vertica-python snowballstemmer==3.0.1 # via pydocstyle -snowflake-connector-python==4.0.0 +snowflake-connector-python==4.2.0 # via -r requirements/reporting.in sortedcontainers==2.4.0 # via snowflake-connector-python -sqlparse==0.5.3 +sqlparse==0.5.5 # via django -stevedore==5.5.0 +stevedore==5.6.0 # via # code-annotations # edx-django-utils # edx-opaque-keys -testfixtures==9.2.0 +testfixtures==10.0.0 # via # -r requirements/quality.in # -r requirements/test.in text-unidecode==1.3 # via python-slugify -tomlkit==0.13.3 +tomlkit==0.14.0 # via # pylint # snowflake-connector-python -tox==4.32.0 +tox==4.34.1 # via -r requirements/dev-enterprise_data.in twine==6.2.0 # via -r requirements/dev-enterprise_data.in @@ -440,16 +447,16 @@ typing-extensions==4.15.0 # edx-opaque-keys # pyopenssl # snowflake-connector-python -tzdata==2025.2 +tzdata==2025.3 # via # celery - # faker # kombu unicodecsv==0.14.1 # via -r requirements/reporting.in -urllib3==2.5.0 +urllib3==2.6.3 # via # botocore + # id # py2neo # requests # responses @@ -461,14 +468,16 @@ vine==5.1.0 # amqp # celery # kombu -virtualenv==20.35.3 +virtualenv==20.36.1 # via tox -wcwidth==0.2.14 +wcwidth==0.5.3 # via prompt-toolkit -wheel==0.45.1 +wheel==0.46.3 # via # -r requirements/dev-enterprise_data.in # pip-tools +zipp==3.23.0 + # via importlib-metadata # The following packages are considered to be unsafe in a requirements file: # pip diff --git a/requirements/test-master.in b/requirements/test-master.in index 43cf03c7..a7641bcf 100644 --- a/requirements/test-master.in +++ b/requirements/test-master.in @@ -1,3 +1,5 @@ +-c constraints.txt + django # Application server djangorestframework # REST API extensions for Django edx-drf-extensions # edX extensions to django rest framework diff --git a/requirements/test-master.txt b/requirements/test-master.txt index 74594164..bb8c0599 100644 --- a/requirements/test-master.txt +++ b/requirements/test-master.txt @@ -1,26 +1,26 @@ # -# This file is autogenerated by pip-compile with Python 3.12 +# This file is autogenerated by pip-compile with Python 3.11 # by the following command: # # make upgrade # amqp==5.3.1 # via kombu -asgiref==3.10.0 +asgiref==3.11.1 # via django asn1crypto==1.5.1 # via snowflake-connector-python -awscli==1.42.59 +awscli==1.44.32 # via -r requirements/reporting.in bcrypt==5.0.0 # via paramiko -billiard==4.2.2 +billiard==4.2.4 # via celery -boto3==1.40.59 +boto3==1.42.42 # via # -r requirements/reporting.in # snowflake-connector-python -botocore==1.40.59 +botocore==1.42.42 # via # awscli # boto3 @@ -28,7 +28,7 @@ botocore==1.40.59 # snowflake-connector-python celery==5.3.6 # via -r requirements/reporting.in -certifi==2025.10.5 +certifi==2026.1.4 # via # py2neo # requests @@ -41,7 +41,7 @@ charset-normalizer==3.4.4 # via # requests # snowflake-connector-python -click==8.3.0 +click==8.3.1 # via # celery # click-didyoumean @@ -56,9 +56,9 @@ click-repl==0.3.0 # via celery colorama==0.4.6 # via awscli -coverage[toml]==7.11.0 +coverage[toml]==7.13.3 # via pytest-cov -cryptography==46.0.3 +cryptography==46.0.4 # via # -r requirements/reporting.in # django-fernet-fields-v2 @@ -71,6 +71,7 @@ ddt==1.7.2 # via -r requirements/test.in # via # -c requirements/common_constraints.txt + # -c requirements/constraints.txt # -r requirements/base.in # -r requirements/test-master.in # django-crum @@ -136,9 +137,9 @@ factory-boy==3.3.3 # via # -r requirements/base.in # -r requirements/test.in -faker==37.12.0 +faker==40.1.2 # via factory-boy -filelock==3.20.0 +filelock==3.20.3 # via snowflake-connector-python flaky==3.8.1 # via -r requirements/test.in @@ -154,19 +155,21 @@ interchange==2021.0.4 # via py2neo invoke==2.2.1 # via paramiko -jmespath==1.0.1 +jmespath==1.1.0 # via # boto3 # botocore -kombu==5.5.4 +kombu==5.6.2 # via celery mock==5.2.0 # via -r requirements/test.in monotonic==1.6 # via py2neo mysql-connector-python==9.5.0 - # via -r requirements/base.in -packaging==25.0 + # via + # -c requirements/constraints.txt + # -r requirements/base.in +packaging==26.0 # via # kombu # py2neo @@ -178,9 +181,9 @@ paramiko==4.0.0 # via -r requirements/reporting.in pgpy==0.6.0 # via -r requirements/reporting.in -pillow==12.0.0 +pillow==12.1.0 # via pansi -platformdirs==4.5.0 +platformdirs==4.5.1 # via snowflake-connector-python pluggy==1.6.0 # via @@ -188,21 +191,21 @@ pluggy==1.6.0 # pytest-cov prompt-toolkit==3.0.52 # via click-repl -psutil==7.1.2 +psutil==7.2.2 # via edx-django-utils py2neo @ https://github.com/overhangio/py2neo/releases/download/2021.2.3/py2neo-2021.2.3.tar.gz # via -r requirements/reporting.in -pyasn1==0.6.1 +pyasn1==0.6.2 # via # pgpy # rsa -pycparser==2.23 +pycparser==3.0 # via cffi pygments==2.19.2 # via # py2neo # pytest -pyjwt[crypto]==2.10.1 +pyjwt[crypto]==2.11.0 # via # drf-jwt # edx-drf-extensions @@ -210,15 +213,15 @@ pyjwt[crypto]==2.10.1 # snowflake-connector-python pyminizip==0.2.6 # via -r requirements/reporting.in -pymongo==4.15.3 +pymongo==4.16.0 # via edx-opaque-keys -pynacl==1.6.0 +pynacl==1.6.2 # via # edx-django-utils # paramiko pyopenssl==25.3.0 # via snowflake-connector-python -pytest==8.4.2 +pytest==9.0.2 # via # pytest-cov # pytest-django @@ -253,7 +256,7 @@ rsa==4.7.2 # via awscli rules==3.5 # via -r requirements/base.in -s3transfer==0.14.0 +s3transfer==0.16.0 # via # awscli # boto3 @@ -266,33 +269,32 @@ six==1.17.0 # py2neo # python-dateutil # vertica-python -snowflake-connector-python==4.0.0 +snowflake-connector-python==4.2.0 # via -r requirements/reporting.in sortedcontainers==2.4.0 # via snowflake-connector-python -sqlparse==0.5.3 +sqlparse==0.5.5 # via django -stevedore==5.5.0 +stevedore==5.6.0 # via # edx-django-utils # edx-opaque-keys -testfixtures==9.2.0 +testfixtures==10.0.0 # via -r requirements/test.in -tomlkit==0.13.3 +tomlkit==0.14.0 # via snowflake-connector-python typing-extensions==4.15.0 # via # edx-opaque-keys # pyopenssl # snowflake-connector-python -tzdata==2025.2 +tzdata==2025.3 # via # celery - # faker # kombu unicodecsv==0.14.1 # via -r requirements/reporting.in -urllib3==2.5.0 +urllib3==2.6.3 # via # botocore # py2neo @@ -305,7 +307,7 @@ vine==5.1.0 # amqp # celery # kombu -wcwidth==0.2.14 +wcwidth==0.5.3 # via prompt-toolkit # The following packages are considered to be unsafe in a requirements file: diff --git a/requirements/test-reporting.txt b/requirements/test-reporting.txt index b3bb8534..f32d745c 100644 --- a/requirements/test-reporting.txt +++ b/requirements/test-reporting.txt @@ -1,5 +1,5 @@ # -# This file is autogenerated by pip-compile with Python 3.12 +# This file is autogenerated by pip-compile with Python 3.11 # by the following command: # # make upgrade @@ -8,27 +8,27 @@ amqp==5.3.1 # via kombu asn1crypto==1.5.1 # via snowflake-connector-python -awscli==1.42.59 +awscli==1.44.32 # via -r requirements/reporting.in bcrypt==5.0.0 # via paramiko -billiard==4.2.2 +billiard==4.2.4 # via celery -boto3==1.40.59 +boto3==1.42.42 # via # -r requirements/reporting.in # snowflake-connector-python -botocore==1.40.59 +botocore==1.42.42 # via # awscli # boto3 # s3transfer # snowflake-connector-python -cachetools==6.2.1 +cachetools==7.0.0 # via tox celery==5.3.6 # via -r requirements/reporting.in -certifi==2025.10.5 +certifi==2026.1.4 # via # py2neo # requests @@ -43,7 +43,7 @@ charset-normalizer==3.4.4 # via # requests # snowflake-connector-python -click==8.3.0 +click==8.3.1 # via # celery # click-didyoumean @@ -59,9 +59,9 @@ colorama==0.4.6 # via # awscli # tox -coverage[toml]==7.11.0 +coverage[toml]==7.13.3 # via pytest-cov -cryptography==46.0.3 +cryptography==46.0.4 # via # -r requirements/reporting.in # paramiko @@ -74,7 +74,7 @@ distlib==0.4.0 # via virtualenv docutils==0.19 # via awscli -filelock==3.20.0 +filelock==3.20.3 # via # snowflake-connector-python # tox @@ -89,17 +89,17 @@ interchange==2021.0.4 # via py2neo invoke==2.2.1 # via paramiko -jmespath==1.0.1 +jmespath==1.1.0 # via # boto3 # botocore -kombu==5.5.4 +kombu==5.6.2 # via celery mock==2.0.0 # via -r requirements/test-reporting.in monotonic==1.6 # via py2neo -packaging==25.0 +packaging==26.0 # via # kombu # py2neo @@ -111,13 +111,13 @@ pansi==2024.11.0 # via py2neo paramiko==4.0.0 # via -r requirements/reporting.in -pbr==7.0.1 +pbr==7.0.3 # via mock pgpy==0.6.0 # via -r requirements/reporting.in -pillow==12.0.0 +pillow==12.1.0 # via pansi -platformdirs==4.5.0 +platformdirs==4.5.1 # via # snowflake-connector-python # tox @@ -130,19 +130,19 @@ prompt-toolkit==3.0.52 # via click-repl py2neo @ https://github.com/overhangio/py2neo/releases/download/2021.2.3/py2neo-2021.2.3.tar.gz # via -r requirements/reporting.in -pyasn1==0.6.1 +pyasn1==0.6.2 # via # pgpy # rsa -pycparser==2.23 +pycparser==3.0 # via cffi pygments==2.19.2 # via py2neo -pyjwt==2.10.1 +pyjwt==2.11.0 # via snowflake-connector-python pyminizip==0.2.6 # via -r requirements/reporting.in -pynacl==1.6.0 +pynacl==1.6.2 # via paramiko pyopenssl==25.3.0 # via snowflake-connector-python @@ -175,7 +175,7 @@ responses==0.25.8 # via -r requirements/test-reporting.in rsa==4.7.2 # via awscli -s3transfer==0.14.0 +s3transfer==0.16.0 # via # awscli # boto3 @@ -186,25 +186,25 @@ six==1.17.0 # py2neo # python-dateutil # vertica-python -snowflake-connector-python==4.0.0 +snowflake-connector-python==4.2.0 # via -r requirements/reporting.in sortedcontainers==2.4.0 # via snowflake-connector-python -tomlkit==0.13.3 +tomlkit==0.14.0 # via snowflake-connector-python -tox==4.32.0 +tox==4.34.1 # via -r requirements/test-reporting.in typing-extensions==4.15.0 # via # pyopenssl # snowflake-connector-python -tzdata==2025.2 +tzdata==2025.3 # via # celery # kombu unicodecsv==0.14.1 # via -r requirements/reporting.in -urllib3==2.5.0 +urllib3==2.6.3 # via # botocore # py2neo @@ -217,9 +217,9 @@ vine==5.1.0 # amqp # celery # kombu -virtualenv==20.35.3 +virtualenv==20.36.1 # via tox -wcwidth==0.2.14 +wcwidth==0.5.3 # via prompt-toolkit # The following packages are considered to be unsafe in a requirements file: diff --git a/requirements/test.txt b/requirements/test.txt index 40609916..29c0527e 100644 --- a/requirements/test.txt +++ b/requirements/test.txt @@ -1,26 +1,26 @@ # -# This file is autogenerated by pip-compile with Python 3.12 +# This file is autogenerated by pip-compile with Python 3.11 # by the following command: # # make upgrade # amqp==5.3.1 # via kombu -asgiref==3.10.0 +asgiref==3.11.1 # via django asn1crypto==1.5.1 # via snowflake-connector-python -awscli==1.42.59 +awscli==1.44.32 # via -r requirements/reporting.in bcrypt==5.0.0 # via paramiko -billiard==4.2.2 +billiard==4.2.4 # via celery -boto3==1.40.59 +boto3==1.42.42 # via # -r requirements/reporting.in # snowflake-connector-python -botocore==1.40.59 +botocore==1.42.42 # via # awscli # boto3 @@ -28,7 +28,7 @@ botocore==1.40.59 # snowflake-connector-python celery==5.3.6 # via -r requirements/reporting.in -certifi==2025.10.5 +certifi==2026.1.4 # via # py2neo # requests @@ -41,7 +41,7 @@ charset-normalizer==3.4.4 # via # requests # snowflake-connector-python -click==8.3.0 +click==8.3.1 # via # celery # click-didyoumean @@ -56,9 +56,9 @@ click-repl==0.3.0 # via celery colorama==0.4.6 # via awscli -coverage[toml]==7.11.0 +coverage[toml]==7.13.3 # via pytest-cov -cryptography==46.0.3 +cryptography==46.0.4 # via # -r requirements/reporting.in # django-fernet-fields-v2 @@ -69,9 +69,10 @@ cryptography==46.0.3 # snowflake-connector-python ddt==1.7.2 # via -r requirements/test.in -django==4.2.25 +django==4.2.28 # via # -c requirements/common_constraints.txt + # -c requirements/constraints.txt # -r requirements/base.in # django-crum # django-fernet-fields-v2 @@ -134,9 +135,9 @@ factory-boy==3.3.3 # via # -r requirements/base.in # -r requirements/test.in -faker==37.12.0 +faker==40.1.2 # via factory-boy -filelock==3.20.0 +filelock==3.20.3 # via snowflake-connector-python flaky==3.8.1 # via -r requirements/test.in @@ -152,19 +153,21 @@ interchange==2021.0.4 # via py2neo invoke==2.2.1 # via paramiko -jmespath==1.0.1 +jmespath==1.1.0 # via # boto3 # botocore -kombu==5.5.4 +kombu==5.6.2 # via celery mock==5.2.0 # via -r requirements/test.in monotonic==1.6 # via py2neo mysql-connector-python==9.5.0 - # via -r requirements/base.in -packaging==25.0 + # via + # -c requirements/constraints.txt + # -r requirements/base.in +packaging==26.0 # via # kombu # py2neo @@ -176,9 +179,9 @@ paramiko==4.0.0 # via -r requirements/reporting.in pgpy==0.6.0 # via -r requirements/reporting.in -pillow==12.0.0 +pillow==12.1.0 # via pansi -platformdirs==4.5.0 +platformdirs==4.5.1 # via snowflake-connector-python pluggy==1.6.0 # via @@ -186,21 +189,21 @@ pluggy==1.6.0 # pytest-cov prompt-toolkit==3.0.52 # via click-repl -psutil==7.1.2 +psutil==7.2.2 # via edx-django-utils py2neo @ https://github.com/overhangio/py2neo/releases/download/2021.2.3/py2neo-2021.2.3.tar.gz # via -r requirements/reporting.in -pyasn1==0.6.1 +pyasn1==0.6.2 # via # pgpy # rsa -pycparser==2.23 +pycparser==3.0 # via cffi pygments==2.19.2 # via # py2neo # pytest -pyjwt[crypto]==2.10.1 +pyjwt[crypto]==2.11.0 # via # drf-jwt # edx-drf-extensions @@ -208,15 +211,15 @@ pyjwt[crypto]==2.10.1 # snowflake-connector-python pyminizip==0.2.6 # via -r requirements/reporting.in -pymongo==4.15.3 +pymongo==4.16.0 # via edx-opaque-keys -pynacl==1.6.0 +pynacl==1.6.2 # via # edx-django-utils # paramiko pyopenssl==25.3.0 # via snowflake-connector-python -pytest==8.4.2 +pytest==9.0.2 # via # pytest-cov # pytest-django @@ -251,7 +254,7 @@ rsa==4.7.2 # via awscli rules==3.5 # via -r requirements/base.in -s3transfer==0.14.0 +s3transfer==0.16.0 # via # awscli # boto3 @@ -264,33 +267,32 @@ six==1.17.0 # py2neo # python-dateutil # vertica-python -snowflake-connector-python==4.0.0 +snowflake-connector-python==4.2.0 # via -r requirements/reporting.in sortedcontainers==2.4.0 # via snowflake-connector-python -sqlparse==0.5.3 +sqlparse==0.5.5 # via django -stevedore==5.5.0 +stevedore==5.6.0 # via # edx-django-utils # edx-opaque-keys -testfixtures==9.2.0 +testfixtures==10.0.0 # via -r requirements/test.in -tomlkit==0.13.3 +tomlkit==0.14.0 # via snowflake-connector-python typing-extensions==4.15.0 # via # edx-opaque-keys # pyopenssl # snowflake-connector-python -tzdata==2025.2 +tzdata==2025.3 # via # celery - # faker # kombu unicodecsv==0.14.1 # via -r requirements/reporting.in -urllib3==2.5.0 +urllib3==2.6.3 # via # botocore # py2neo @@ -303,7 +305,7 @@ vine==5.1.0 # amqp # celery # kombu -wcwidth==0.2.14 +wcwidth==0.5.3 # via prompt-toolkit # The following packages are considered to be unsafe in a requirements file: diff --git a/setup.py b/setup.py index 686de171..ad344e3f 100644 --- a/setup.py +++ b/setup.py @@ -131,7 +131,6 @@ def is_requirement(line): classifiers=[ 'Framework :: Django', 'Framework :: Django :: 4.2', - 'Framework :: Django :: 5.2', 'Programming Language :: Python :: 3', 'Programming Language :: Python :: 3.12', ], diff --git a/tox.ini b/tox.ini index bcc20f4e..18a4e050 100644 --- a/tox.ini +++ b/tox.ini @@ -1,5 +1,5 @@ [tox] -envlist = {data, reporting}-django{42, 52} +envlist = {data, reporting}-django{42} [wheel] universal = 1 @@ -39,7 +39,6 @@ setenv = deps = setuptools django42: Django>=4.2,<4.3 - django52: Django>=5.2,<5.3 data: -r{toxinidir}/requirements/test-master.txt reporting: -r{toxinidir}/requirements/test-reporting.txt commands =