From 47b1e06e1dbdf86483f1d9949fcea146b100a87f Mon Sep 17 00:00:00 2001 From: edX requirements bot Date: Tue, 27 Jan 2026 08:36:15 -0500 Subject: [PATCH 1/4] chore: Upgrade Python requirements --- requirements/all.txt | 161 ++++++++++++++-------------- requirements/base.txt | 89 ++++++++------- requirements/common_constraints.txt | 2 +- requirements/dev.txt | 137 ++++++++++++----------- requirements/django.txt | 2 +- requirements/docs.txt | 16 +-- requirements/pip.txt | 8 +- requirements/pip_tools.txt | 14 +-- requirements/production.txt | 110 +++++++++---------- requirements/test.txt | 127 +++++++++++----------- requirements/translations.txt | 10 +- 11 files changed, 329 insertions(+), 347 deletions(-) diff --git a/requirements/all.txt b/requirements/all.txt index 2dd5cc4d1..fae6982c8 100644 --- a/requirements/all.txt +++ b/requirements/all.txt @@ -4,18 +4,18 @@ # # make upgrade # -anyio==4.11.0 +anyio==4.12.1 # via # -r requirements/dev.txt # -r requirements/production.txt # httpx -asgiref==3.10.0 +asgiref==3.11.0 # via # -r requirements/dev.txt # -r requirements/production.txt # django # django-cors-headers -astroid==3.3.11 +astroid==4.0.3 # via # -r requirements/dev.txt # pylint @@ -31,33 +31,31 @@ backoff==2.2.1 # -r requirements/dev.txt # -r requirements/production.txt # segment-analytics-python -black==25.9.0 +black==26.1.0 # via -r requirements/dev.txt -bleach==6.2.0 +bleach==6.3.0 # via # -r requirements/dev.txt # -r requirements/production.txt -boto3==1.40.55 +boto3==1.42.35 # via # -r requirements/production.txt # django-ses -botocore==1.40.55 +botocore==1.42.35 # via # -r requirements/production.txt # boto3 # s3transfer -cachecontrol==0.14.3 +cachecontrol==0.14.4 # via # -r requirements/dev.txt # -r requirements/production.txt # firebase-admin -cachetools==6.2.1 +cachetools==6.2.5 # via # -r requirements/dev.txt - # -r requirements/production.txt - # google-auth # tox -certifi==2025.10.5 +certifi==2026.1.4 # via # -r requirements/dev.txt # -r requirements/production.txt @@ -79,7 +77,7 @@ charset-normalizer==3.4.4 # -r requirements/dev.txt # -r requirements/production.txt # requests -click==8.3.0 +click==8.3.1 # via # -r requirements/dev.txt # -r requirements/production.txt @@ -113,12 +111,13 @@ coreschema==0.0.4 # -r requirements/dev.txt # -r requirements/production.txt # coreapi -coverage==7.11.0 +coverage==7.13.2 # via -r requirements/dev.txt cryptography==46.0.3 # via # -r requirements/dev.txt # -r requirements/production.txt + # google-auth # pyjwt ddt==1.7.2 # via -r requirements/dev.txt @@ -132,7 +131,7 @@ didkit==0.3.3 # via # -r requirements/dev.txt # -r requirements/production.txt -dill==0.4.0 +dill==0.4.1 # via # -r requirements/dev.txt # pylint @@ -140,8 +139,9 @@ distlib==0.4.0 # via # -r requirements/dev.txt # virtualenv -django==5.2.7 +django==5.2.10 # via + # -c requirements/common_constraints.txt # -r requirements/dev.txt # -r requirements/production.txt # django-appconf @@ -177,7 +177,7 @@ django==5.2.7 # openedx-events # social-auth-app-django # xss-utils -django-appconf==1.1.0 +django-appconf==1.2.0 # via # -r requirements/dev.txt # -r requirements/production.txt @@ -196,7 +196,7 @@ django-crum==0.7.9 # -r requirements/production.txt # edx-django-utils # edx-toggles -django-debug-toolbar==6.0.0 +django-debug-toolbar==6.2.0 # via -r requirements/dev.txt django-extensions==4.1 # via @@ -210,7 +210,7 @@ django-model-utils==5.0.0 # via # -r requirements/dev.txt # -r requirements/production.txt -django-push-notifications==3.2.1 +django-push-notifications==3.3.0 # via # -r requirements/dev.txt # -r requirements/production.txt @@ -223,9 +223,9 @@ django-rest-swagger==2.2.0 # via # -r requirements/dev.txt # -r requirements/production.txt -django-ses==4.4.0 +django-ses==4.6.0 # via -r requirements/production.txt -django-simple-history==3.10.1 +django-simple-history==3.11.0 # via # -r requirements/dev.txt # -r requirements/production.txt @@ -241,9 +241,9 @@ django-storages==1.14.6 # via # -r requirements/dev.txt # -r requirements/production.txt -django-stubs==5.2.7 +django-stubs==5.2.9 # via -r requirements/dev.txt -django-stubs-ext==5.2.7 +django-stubs-ext==5.2.9 # via # -r requirements/dev.txt # django-stubs @@ -254,7 +254,7 @@ django-waffle==5.0.0 # edx-django-utils # edx-drf-extensions # edx-toggles -django-webpack-loader==3.2.1 +django-webpack-loader==3.2.3 # via # -r requirements/dev.txt # -r requirements/production.txt @@ -277,7 +277,7 @@ drf-jwt==1.19.2 # -r requirements/dev.txt # -r requirements/production.txt # edx-drf-extensions -drf-yasg==1.21.11 +drf-yasg==1.21.14 # via # -r requirements/dev.txt # -r requirements/production.txt @@ -285,7 +285,7 @@ edx-ace==1.15.0 # via # -r requirements/dev.txt # -r requirements/production.txt -edx-auth-backends==4.6.1 +edx-auth-backends==4.6.2 # via # -r requirements/dev.txt # -r requirements/production.txt @@ -358,7 +358,7 @@ edx-toggles==5.4.1 # edx-event-bus-redis factory-boy==3.3.3 # via -r requirements/dev.txt -faker==37.11.0 +faker==40.1.2 # via # -r requirements/dev.txt # factory-boy @@ -367,7 +367,7 @@ fastavro==1.12.1 # -r requirements/dev.txt # -r requirements/production.txt # openedx-events -filelock==3.20.0 +filelock==3.20.3 # via # -r requirements/dev.txt # tox @@ -379,7 +379,7 @@ firebase-admin==7.1.0 # edx-ace gevent==25.9.1 # via -r requirements/production.txt -google-api-core[grpc]==2.26.0 +google-api-core[grpc]==2.29.0 # via # -r requirements/dev.txt # -r requirements/production.txt @@ -387,7 +387,7 @@ google-api-core[grpc]==2.26.0 # google-cloud-core # google-cloud-firestore # google-cloud-storage -google-auth==2.41.1 +google-auth==2.48.0 # via # -r requirements/dev.txt # -r requirements/production.txt @@ -395,55 +395,55 @@ google-auth==2.41.1 # google-cloud-core # google-cloud-firestore # google-cloud-storage -google-cloud-core==2.4.3 +google-cloud-core==2.5.0 # via # -r requirements/dev.txt # -r requirements/production.txt # google-cloud-firestore # google-cloud-storage -google-cloud-firestore==2.21.0 +google-cloud-firestore==2.23.0 # via # -r requirements/dev.txt # -r requirements/production.txt # firebase-admin -google-cloud-storage==3.4.1 +google-cloud-storage==3.8.0 # via # -r requirements/dev.txt # -r requirements/production.txt # firebase-admin -google-crc32c==1.7.1 +google-crc32c==1.8.0 # via # -r requirements/dev.txt # -r requirements/production.txt # google-cloud-storage # google-resumable-media -google-resumable-media==2.7.2 +google-resumable-media==2.8.0 # via # -r requirements/dev.txt # -r requirements/production.txt # google-cloud-storage -googleapis-common-protos==1.71.0 +googleapis-common-protos==1.72.0 # via # -r requirements/dev.txt # -r requirements/production.txt # google-api-core # grpcio-status -greenlet==3.2.4 +greenlet==3.3.1 # via # -r requirements/production.txt # gevent -grpcio==1.75.1 +grpcio==1.76.0 # via # -r requirements/dev.txt # -r requirements/production.txt # google-api-core # grpcio-status -grpcio-status==1.75.1 +grpcio-status==1.76.0 # via # -r requirements/dev.txt # -r requirements/production.txt # google-api-core -gunicorn==23.0.0 +gunicorn==24.1.1 # via -r requirements/production.txt h11==0.16.0 # via @@ -493,7 +493,7 @@ iniconfig==2.3.0 # via # -r requirements/dev.txt # pytest -isort==6.1.0 +isort==7.0.0 # via # -r requirements/dev.txt # pylint @@ -508,11 +508,15 @@ jinja2==3.1.6 # -r requirements/production.txt # code-annotations # coreschema -jmespath==1.0.1 +jmespath==1.1.0 # via # -r requirements/production.txt # boto3 # botocore +librt==0.7.8 + # via + # -r requirements/dev.txt + # mypy lxml[html-clean]==6.0.2 # via # -r requirements/dev.txt @@ -525,7 +529,7 @@ lxml-html-clean==0.4.3 # -r requirements/dev.txt # -r requirements/production.txt # lxml -markdown==3.9 +markdown==3.10.1 # via # -r requirements/dev.txt # -r requirements/production.txt @@ -543,7 +547,7 @@ msgpack==1.1.2 # -r requirements/dev.txt # -r requirements/production.txt # cachecontrol -mypy==1.18.2 +mypy==1.19.1 # via -r requirements/dev.txt mypy-extensions==1.1.0 # via @@ -554,7 +558,7 @@ mysqlclient==2.2.7 # via # -r requirements/dev.txt # -r requirements/production.txt -nodeenv==1.9.1 +nodeenv==1.10.0 # via -r requirements/production.txt oauthlib==3.3.1 # via @@ -577,7 +581,7 @@ openedx-events==10.5.0 # -r requirements/production.txt # edx-event-bus-kafka # edx-event-bus-redis -packaging==25.0 +packaging==26.0 # via # -r requirements/dev.txt # -r requirements/production.txt @@ -592,16 +596,16 @@ path==16.16.0 # -r requirements/dev.txt # -r requirements/production.txt # edx-i18n-tools -pathspec==0.12.1 +pathspec==1.0.4 # via # -r requirements/dev.txt # black # mypy -pillow==12.0.0 +pillow==12.1.0 # via # -r requirements/dev.txt # -r requirements/production.txt -platformdirs==4.5.0 +platformdirs==4.5.1 # via # -r requirements/dev.txt # black @@ -618,13 +622,13 @@ polib==1.2.0 # -r requirements/dev.txt # -r requirements/production.txt # edx-i18n-tools -proto-plus==1.26.1 +proto-plus==1.27.0 # via # -r requirements/dev.txt # -r requirements/production.txt # google-api-core # google-cloud-firestore -protobuf==6.33.0 +protobuf==6.33.4 # via # -r requirements/dev.txt # -r requirements/production.txt @@ -633,12 +637,12 @@ protobuf==6.33.0 # googleapis-common-protos # grpcio-status # proto-plus -psutil==7.1.1 +psutil==7.2.1 # via # -r requirements/dev.txt # -r requirements/production.txt # edx-django-utils -pyasn1==0.6.1 +pyasn1==0.6.2 # via # -r requirements/dev.txt # -r requirements/production.txt @@ -649,7 +653,7 @@ pyasn1-modules==0.4.2 # -r requirements/dev.txt # -r requirements/production.txt # google-auth -pycparser==2.23 +pycparser==3.0 # via # -r requirements/dev.txt # -r requirements/production.txt @@ -670,7 +674,7 @@ pyjwt[crypto]==2.10.1 # firebase-admin # segment-analytics-python # social-auth-core -pylint==3.3.9 +pylint==4.0.4 # via # -r requirements/dev.txt # edx-lint @@ -681,7 +685,7 @@ pylint-celery==0.3 # via # -r requirements/dev.txt # edx-lint -pylint-django==2.6.1 +pylint-django==2.7.0 # via # -r requirements/dev.txt # edx-lint @@ -694,12 +698,12 @@ pymemcache==4.0.0 # via # -r requirements/dev.txt # -r requirements/production.txt -pymongo==4.15.3 +pymongo==4.16.0 # via # -r requirements/dev.txt # -r requirements/production.txt # edx-opaque-keys -pynacl==1.6.0 +pynacl==1.6.2 # via # -r requirements/dev.txt # -r requirements/production.txt @@ -708,7 +712,7 @@ pyproject-api==1.10.0 # via # -r requirements/dev.txt # tox -pytest==8.4.2 +pytest==9.0.2 # via # -r requirements/dev.txt # pytest-django @@ -735,7 +739,7 @@ python3-openid==3.2.0 # -r requirements/dev.txt # -r requirements/production.txt # social-auth-core -pytokens==0.2.0 +pytokens==0.4.0 # via # -r requirements/dev.txt # black @@ -759,7 +763,7 @@ qrcode==8.2 # via # -r requirements/dev.txt # -r requirements/production.txt -redis==6.4.0 +redis==7.1.0 # via # -r requirements/dev.txt # -r requirements/production.txt @@ -791,7 +795,7 @@ rsa==4.9.1 # -r requirements/dev.txt # -r requirements/production.txt # google-auth -s3transfer==0.14.0 +s3transfer==0.16.0 # via # -r requirements/production.txt # boto3 @@ -800,7 +804,7 @@ sailthru-client==2.2.3 # -r requirements/dev.txt # -r requirements/production.txt # edx-ace -segment-analytics-python==2.3.4 +segment-analytics-python==2.3.5 # via # -r requirements/dev.txt # -r requirements/production.txt @@ -825,30 +829,25 @@ six==1.17.0 # edx-django-release-util # edx-lint # python-dateutil -sniffio==1.3.1 - # via - # -r requirements/dev.txt - # -r requirements/production.txt - # anyio social-auth-app-django==5.4.3 # via # -c requirements/constraints.txt # -r requirements/dev.txt # -r requirements/production.txt # edx-auth-backends -social-auth-core==4.8.1 +social-auth-core==4.8.3 # via # -r requirements/dev.txt # -r requirements/production.txt # edx-auth-backends # social-auth-app-django -sqlparse==0.5.3 +sqlparse==0.5.5 # via # -r requirements/dev.txt # -r requirements/production.txt # django # django-debug-toolbar -stevedore==5.5.0 +stevedore==5.6.0 # via # -r requirements/dev.txt # -r requirements/production.txt @@ -856,18 +855,18 @@ stevedore==5.5.0 # edx-ace # edx-django-utils # edx-opaque-keys -testfixtures==9.2.0 +testfixtures==10.0.0 # via -r requirements/dev.txt text-unidecode==1.3 # via # -r requirements/dev.txt # -r requirements/production.txt # python-slugify -tomlkit==0.13.3 +tomlkit==0.14.0 # via # -r requirements/dev.txt # pylint -tox==4.31.0 +tox==4.34.1 # via -r requirements/dev.txt types-pyyaml==6.0.12.20250915 # via @@ -883,28 +882,24 @@ typing-extensions==4.15.0 # edx-opaque-keys # grpcio # mypy -tzdata==2025.2 - # via - # -r requirements/dev.txt - # faker uritemplate==4.2.0 # via # -r requirements/dev.txt # -r requirements/production.txt # coreapi # drf-yasg -urllib3==2.5.0 +urllib3==2.6.3 # via # -r requirements/dev.txt # -r requirements/production.txt # botocore # requests # responses -virtualenv==20.35.3 +virtualenv==20.36.1 # via # -r requirements/dev.txt # tox -walrus==0.9.5 +walrus==0.9.8 # via # -r requirements/dev.txt # -r requirements/production.txt @@ -918,11 +913,11 @@ xss-utils==0.8.0 # via # -r requirements/dev.txt # -r requirements/production.txt -zope-event==6.0 +zope-event==6.1 # via # -r requirements/production.txt # gevent -zope-interface==8.0.1 +zope-interface==8.2 # via # -r requirements/production.txt # gevent diff --git a/requirements/base.txt b/requirements/base.txt index 348bd5264..0c506ebca 100644 --- a/requirements/base.txt +++ b/requirements/base.txt @@ -4,9 +4,9 @@ # # make upgrade # -anyio==4.11.0 +anyio==4.12.1 # via httpx -asgiref==3.10.0 +asgiref==3.11.0 # via # django # django-cors-headers @@ -16,13 +16,11 @@ attrs==25.4.0 # openedx-events backoff==2.2.1 # via segment-analytics-python -bleach==6.2.0 +bleach==6.3.0 # via -r requirements/base.in -cachecontrol==0.14.3 +cachecontrol==0.14.4 # via firebase-admin -cachetools==6.2.1 - # via google-auth -certifi==2025.10.5 +certifi==2026.1.4 # via # httpcore # httpx @@ -33,7 +31,7 @@ cffi==2.0.0 # pynacl charset-normalizer==3.4.4 # via requests -click==8.3.0 +click==8.3.1 # via # code-annotations # edx-django-utils @@ -47,15 +45,18 @@ coreapi==2.3.3 coreschema==0.0.4 # via coreapi cryptography==46.0.3 - # via pyjwt + # via + # google-auth + # pyjwt defusedxml==0.7.1 # via # python3-openid # social-auth-core didkit==0.3.3 # via -r requirements/base.in -django==5.2.7 +django==5.2.10 # via + # -c requirements/common_constraints.txt # -r requirements/base.in # django-appconf # django-config-models @@ -86,7 +87,7 @@ django==5.2.7 # openedx-events # social-auth-app-django # xss-utils -django-appconf==1.1.0 +django-appconf==1.2.0 # via django-statici18n django-config-models==2.9.0 # via -r requirements/base.in @@ -102,13 +103,13 @@ django-filter==25.2 # via -r requirements/base.in django-model-utils==5.0.0 # via -r requirements/base.in -django-push-notifications==3.2.1 +django-push-notifications==3.3.0 # via edx-ace django-ratelimit==4.1.0 # via -r requirements/base.in django-rest-swagger==2.2.0 # via -r requirements/base.in -django-simple-history==3.10.1 +django-simple-history==3.11.0 # via -r requirements/base.in django-sortedm2m==4.0.0 # via -r requirements/base.in @@ -122,7 +123,7 @@ django-waffle==5.0.0 # edx-django-utils # edx-drf-extensions # edx-toggles -django-webpack-loader==3.2.1 +django-webpack-loader==3.2.3 # via -r requirements/base.in djangorestframework==3.16.1 # via @@ -136,11 +137,11 @@ dnspython==2.8.0 # via pymongo drf-jwt==1.19.2 # via edx-drf-extensions -drf-yasg==1.21.11 +drf-yasg==1.21.14 # via -r requirements/base.in edx-ace==1.15.0 # via -r requirements/base.in -edx-auth-backends==4.6.1 +edx-auth-backends==4.6.2 # via -r requirements/base.in edx-ccx-keys==2.0.2 # via openedx-events @@ -188,41 +189,41 @@ fastavro==1.12.1 # via openedx-events firebase-admin==7.1.0 # via edx-ace -google-api-core[grpc]==2.26.0 +google-api-core[grpc]==2.29.0 # via # firebase-admin # google-cloud-core # google-cloud-firestore # google-cloud-storage -google-auth==2.41.1 +google-auth==2.48.0 # via # google-api-core # google-cloud-core # google-cloud-firestore # google-cloud-storage -google-cloud-core==2.4.3 +google-cloud-core==2.5.0 # via # google-cloud-firestore # google-cloud-storage -google-cloud-firestore==2.21.0 +google-cloud-firestore==2.23.0 # via firebase-admin -google-cloud-storage==3.4.1 +google-cloud-storage==3.8.0 # via firebase-admin -google-crc32c==1.7.1 +google-crc32c==1.8.0 # via # google-cloud-storage # google-resumable-media -google-resumable-media==2.7.2 +google-resumable-media==2.8.0 # via google-cloud-storage -googleapis-common-protos==1.71.0 +googleapis-common-protos==1.72.0 # via # google-api-core # grpcio-status -grpcio==1.75.1 +grpcio==1.76.0 # via # google-api-core # grpcio-status -grpcio-status==1.75.1 +grpcio-status==1.76.0 # via google-api-core h11==0.16.0 # via httpcore @@ -256,7 +257,7 @@ lxml[html-clean]==6.0.2 # lxml-html-clean lxml-html-clean==0.4.3 # via lxml -markdown==3.9 +markdown==3.10.1 # via -r requirements/base.in markupsafe==3.0.3 # via jinja2 @@ -277,34 +278,34 @@ openedx-events==10.5.0 # -r requirements/base.in # edx-event-bus-kafka # edx-event-bus-redis -packaging==25.0 +packaging==26.0 # via drf-yasg path==16.16.0 # via edx-i18n-tools -pillow==12.0.0 +pillow==12.1.0 # via -r requirements/base.in polib==1.2.0 # via edx-i18n-tools -proto-plus==1.26.1 +proto-plus==1.27.0 # via # google-api-core # google-cloud-firestore -protobuf==6.33.0 +protobuf==6.33.4 # via # google-api-core # google-cloud-firestore # googleapis-common-protos # grpcio-status # proto-plus -psutil==7.1.1 +psutil==7.2.1 # via edx-django-utils -pyasn1==0.6.1 +pyasn1==0.6.2 # via # pyasn1-modules # rsa pyasn1-modules==0.4.2 # via google-auth -pycparser==2.23 +pycparser==3.0 # via cffi pygments==2.19.2 # via -r requirements/base.in @@ -319,9 +320,9 @@ pyjwt[crypto]==2.10.1 # social-auth-core pymemcache==4.0.0 # via -r requirements/base.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 python-dateutil==2.9.0.post0 # via @@ -345,7 +346,7 @@ pyyaml==6.0.3 # edx-i18n-tools qrcode==8.2 # via -r requirements/base.in -redis==6.4.0 +redis==7.1.0 # via walrus requests==2.32.5 # via @@ -366,7 +367,7 @@ rsa==4.9.1 # via google-auth sailthru-client==2.2.3 # via edx-ace -segment-analytics-python==2.3.4 +segment-analytics-python==2.3.5 # via -r requirements/base.in semantic-version==2.10.0 # via edx-drf-extensions @@ -381,20 +382,18 @@ six==1.17.0 # edx-ccx-keys # edx-django-release-util # python-dateutil -sniffio==1.3.1 - # via anyio social-auth-app-django==5.4.3 # via # -c requirements/constraints.txt # -r requirements/base.in # edx-auth-backends -social-auth-core==4.8.1 +social-auth-core==4.8.3 # via # edx-auth-backends # social-auth-app-django -sqlparse==0.5.3 +sqlparse==0.5.5 # via django -stevedore==5.5.0 +stevedore==5.6.0 # via # code-annotations # edx-ace @@ -411,9 +410,9 @@ uritemplate==4.2.0 # via # coreapi # drf-yasg -urllib3==2.5.0 +urllib3==2.6.3 # via requests -walrus==0.9.5 +walrus==0.9.8 # via edx-event-bus-redis webencodings==0.5.1 # via bleach diff --git a/requirements/common_constraints.txt b/requirements/common_constraints.txt index a920d65fb..43c7b4d2e 100644 --- a/requirements/common_constraints.txt +++ b/requirements/common_constraints.txt @@ -17,7 +17,7 @@ # this file from Github directly. It does not require packaging in edx-lint. # using LTS django version - +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 diff --git a/requirements/dev.txt b/requirements/dev.txt index 1cb6059a6..44f0dc041 100644 --- a/requirements/dev.txt +++ b/requirements/dev.txt @@ -4,16 +4,16 @@ # # make upgrade # -anyio==4.11.0 +anyio==4.12.1 # via # -r requirements/test.txt # httpx -asgiref==3.10.0 +asgiref==3.11.0 # via # -r requirements/test.txt # django # django-cors-headers -astroid==3.3.11 +astroid==4.0.3 # via # -r requirements/test.txt # pylint @@ -27,20 +27,19 @@ backoff==2.2.1 # via # -r requirements/test.txt # segment-analytics-python -black==25.9.0 +black==26.1.0 # via -r requirements/test.txt -bleach==6.2.0 +bleach==6.3.0 # via -r requirements/test.txt -cachecontrol==0.14.3 +cachecontrol==0.14.4 # via # -r requirements/test.txt # firebase-admin -cachetools==6.2.1 +cachetools==6.2.5 # via # -r requirements/test.txt - # google-auth # tox -certifi==2025.10.5 +certifi==2026.1.4 # via # -r requirements/test.txt # httpcore @@ -59,7 +58,7 @@ charset-normalizer==3.4.4 # via # -r requirements/test.txt # requests -click==8.3.0 +click==8.3.1 # via # -r requirements/test.txt # black @@ -89,11 +88,12 @@ coreschema==0.0.4 # via # -r requirements/test.txt # coreapi -coverage==7.11.0 +coverage==7.13.2 # via -r requirements/test.txt cryptography==46.0.3 # via # -r requirements/test.txt + # google-auth # pyjwt ddt==1.7.2 # via -r requirements/test.txt @@ -104,7 +104,7 @@ defusedxml==0.7.1 # social-auth-core didkit==0.3.3 # via -r requirements/test.txt -dill==0.4.0 +dill==0.4.1 # via # -r requirements/test.txt # pylint @@ -112,8 +112,9 @@ distlib==0.4.0 # via # -r requirements/test.txt # virtualenv -django==5.2.7 +django==5.2.10 # via + # -c requirements/common_constraints.txt # -r requirements/test.txt # django-appconf # django-config-models @@ -147,7 +148,7 @@ django==5.2.7 # openedx-events # social-auth-app-django # xss-utils -django-appconf==1.1.0 +django-appconf==1.2.0 # via # -r requirements/test.txt # django-statici18n @@ -160,7 +161,7 @@ django-crum==0.7.9 # -r requirements/test.txt # edx-django-utils # edx-toggles -django-debug-toolbar==6.0.0 +django-debug-toolbar==6.2.0 # via -r requirements/dev.in django-extensions==4.1 # via -r requirements/test.txt @@ -168,7 +169,7 @@ django-filter==25.2 # via -r requirements/test.txt django-model-utils==5.0.0 # via -r requirements/test.txt -django-push-notifications==3.2.1 +django-push-notifications==3.3.0 # via # -r requirements/test.txt # edx-ace @@ -176,7 +177,7 @@ django-ratelimit==4.1.0 # via -r requirements/test.txt django-rest-swagger==2.2.0 # via -r requirements/test.txt -django-simple-history==3.10.1 +django-simple-history==3.11.0 # via -r requirements/test.txt django-sortedm2m==4.0.0 # via -r requirements/test.txt @@ -184,9 +185,9 @@ django-statici18n==2.6.0 # via -r requirements/test.txt django-storages==1.14.6 # via -r requirements/test.txt -django-stubs==5.2.7 +django-stubs==5.2.9 # via -r requirements/dev.in -django-stubs-ext==5.2.7 +django-stubs-ext==5.2.9 # via django-stubs django-waffle==5.0.0 # via @@ -194,7 +195,7 @@ django-waffle==5.0.0 # edx-django-utils # edx-drf-extensions # edx-toggles -django-webpack-loader==3.2.1 +django-webpack-loader==3.2.3 # via -r requirements/test.txt djangorestframework==3.16.1 # via @@ -212,11 +213,11 @@ drf-jwt==1.19.2 # via # -r requirements/test.txt # edx-drf-extensions -drf-yasg==1.21.11 +drf-yasg==1.21.14 # via -r requirements/test.txt edx-ace==1.15.0 # via -r requirements/test.txt -edx-auth-backends==4.6.1 +edx-auth-backends==4.6.2 # via -r requirements/test.txt edx-ccx-keys==2.0.2 # via @@ -269,7 +270,7 @@ edx-toggles==5.4.1 # edx-event-bus-redis factory-boy==3.3.3 # via -r requirements/test.txt -faker==37.11.0 +faker==40.1.2 # via # -r requirements/test.txt # factory-boy @@ -277,7 +278,7 @@ fastavro==1.12.1 # via # -r requirements/test.txt # openedx-events -filelock==3.20.0 +filelock==3.20.3 # via # -r requirements/test.txt # tox @@ -286,53 +287,53 @@ firebase-admin==7.1.0 # via # -r requirements/test.txt # edx-ace -google-api-core[grpc]==2.26.0 +google-api-core[grpc]==2.29.0 # via # -r requirements/test.txt # firebase-admin # google-cloud-core # google-cloud-firestore # google-cloud-storage -google-auth==2.41.1 +google-auth==2.48.0 # via # -r requirements/test.txt # google-api-core # google-cloud-core # google-cloud-firestore # google-cloud-storage -google-cloud-core==2.4.3 +google-cloud-core==2.5.0 # via # -r requirements/test.txt # google-cloud-firestore # google-cloud-storage -google-cloud-firestore==2.21.0 +google-cloud-firestore==2.23.0 # via # -r requirements/test.txt # firebase-admin -google-cloud-storage==3.4.1 +google-cloud-storage==3.8.0 # via # -r requirements/test.txt # firebase-admin -google-crc32c==1.7.1 +google-crc32c==1.8.0 # via # -r requirements/test.txt # google-cloud-storage # google-resumable-media -google-resumable-media==2.7.2 +google-resumable-media==2.8.0 # via # -r requirements/test.txt # google-cloud-storage -googleapis-common-protos==1.71.0 +googleapis-common-protos==1.72.0 # via # -r requirements/test.txt # google-api-core # grpcio-status -grpcio==1.75.1 +grpcio==1.76.0 # via # -r requirements/test.txt # google-api-core # grpcio-status -grpcio-status==1.75.1 +grpcio-status==1.76.0 # via # -r requirements/test.txt # google-api-core @@ -376,7 +377,7 @@ iniconfig==2.3.0 # via # -r requirements/test.txt # pytest -isort==6.1.0 +isort==7.0.0 # via # -r requirements/test.txt # pylint @@ -389,6 +390,8 @@ jinja2==3.1.6 # -r requirements/test.txt # code-annotations # coreschema +librt==0.7.8 + # via mypy lxml[html-clean]==6.0.2 # via # -r requirements/test.txt @@ -399,7 +402,7 @@ lxml-html-clean==0.4.3 # via # -r requirements/test.txt # lxml -markdown==3.9 +markdown==3.10.1 # via -r requirements/test.txt markupsafe==3.0.3 # via @@ -413,7 +416,7 @@ msgpack==1.1.2 # via # -r requirements/test.txt # cachecontrol -mypy==1.18.2 +mypy==1.19.1 # via -r requirements/dev.in mypy-extensions==1.1.0 # via @@ -438,7 +441,7 @@ openedx-events==10.5.0 # -r requirements/test.txt # edx-event-bus-kafka # edx-event-bus-redis -packaging==25.0 +packaging==26.0 # via # -r requirements/test.txt # black @@ -450,14 +453,14 @@ path==16.16.0 # via # -r requirements/test.txt # edx-i18n-tools -pathspec==0.12.1 +pathspec==1.0.4 # via # -r requirements/test.txt # black # mypy -pillow==12.0.0 +pillow==12.1.0 # via -r requirements/test.txt -platformdirs==4.5.0 +platformdirs==4.5.1 # via # -r requirements/test.txt # black @@ -473,12 +476,12 @@ polib==1.2.0 # via # -r requirements/test.txt # edx-i18n-tools -proto-plus==1.26.1 +proto-plus==1.27.0 # via # -r requirements/test.txt # google-api-core # google-cloud-firestore -protobuf==6.33.0 +protobuf==6.33.4 # via # -r requirements/test.txt # google-api-core @@ -486,11 +489,11 @@ protobuf==6.33.0 # googleapis-common-protos # grpcio-status # proto-plus -psutil==7.1.1 +psutil==7.2.1 # via # -r requirements/test.txt # edx-django-utils -pyasn1==0.6.1 +pyasn1==0.6.2 # via # -r requirements/test.txt # pyasn1-modules @@ -499,7 +502,7 @@ pyasn1-modules==0.4.2 # via # -r requirements/test.txt # google-auth -pycparser==2.23 +pycparser==3.0 # via # -r requirements/test.txt # cffi @@ -517,7 +520,7 @@ pyjwt[crypto]==2.10.1 # firebase-admin # segment-analytics-python # social-auth-core -pylint==3.3.9 +pylint==4.0.4 # via # -r requirements/test.txt # edx-lint @@ -528,7 +531,7 @@ pylint-celery==0.3 # via # -r requirements/test.txt # edx-lint -pylint-django==2.6.1 +pylint-django==2.7.0 # via # -r requirements/test.txt # edx-lint @@ -539,11 +542,11 @@ pylint-plugin-utils==0.9.0 # pylint-django pymemcache==4.0.0 # via -r requirements/test.txt -pymongo==4.15.3 +pymongo==4.16.0 # via # -r requirements/test.txt # edx-opaque-keys -pynacl==1.6.0 +pynacl==1.6.2 # via # -r requirements/test.txt # edx-django-utils @@ -551,7 +554,7 @@ pyproject-api==1.10.0 # via # -r requirements/test.txt # tox -pytest==8.4.2 +pytest==9.0.2 # via # -r requirements/test.txt # pytest-django @@ -572,7 +575,7 @@ python3-openid==3.2.0 # via # -r requirements/test.txt # social-auth-core -pytokens==0.2.0 +pytokens==0.4.0 # via # -r requirements/test.txt # black @@ -592,7 +595,7 @@ pyyaml==6.0.3 # responses qrcode==8.2 # via -r requirements/test.txt -redis==6.4.0 +redis==7.1.0 # via # -r requirements/test.txt # walrus @@ -624,7 +627,7 @@ sailthru-client==2.2.3 # via # -r requirements/test.txt # edx-ace -segment-analytics-python==2.3.4 +segment-analytics-python==2.3.5 # via -r requirements/test.txt semantic-version==2.10.0 # via @@ -644,43 +647,39 @@ six==1.17.0 # edx-django-release-util # edx-lint # python-dateutil -sniffio==1.3.1 - # via - # -r requirements/test.txt - # anyio social-auth-app-django==5.4.3 # via # -c requirements/constraints.txt # -r requirements/test.txt # edx-auth-backends -social-auth-core==4.8.1 +social-auth-core==4.8.3 # via # -r requirements/test.txt # edx-auth-backends # social-auth-app-django -sqlparse==0.5.3 +sqlparse==0.5.5 # via # -r requirements/test.txt # django # django-debug-toolbar -stevedore==5.5.0 +stevedore==5.6.0 # via # -r requirements/test.txt # code-annotations # edx-ace # edx-django-utils # edx-opaque-keys -testfixtures==9.2.0 +testfixtures==10.0.0 # via -r requirements/test.txt text-unidecode==1.3 # via # -r requirements/test.txt # python-slugify -tomlkit==0.13.3 +tomlkit==0.14.0 # via # -r requirements/test.txt # pylint -tox==4.31.0 +tox==4.34.1 # via -r requirements/test.txt types-pyyaml==6.0.12.20250915 # via django-stubs @@ -693,25 +692,21 @@ typing-extensions==4.15.0 # edx-opaque-keys # grpcio # mypy -tzdata==2025.2 - # via - # -r requirements/test.txt - # faker uritemplate==4.2.0 # via # -r requirements/test.txt # coreapi # drf-yasg -urllib3==2.5.0 +urllib3==2.6.3 # via # -r requirements/test.txt # requests # responses -virtualenv==20.35.3 +virtualenv==20.36.1 # via # -r requirements/test.txt # tox -walrus==0.9.5 +walrus==0.9.8 # via # -r requirements/test.txt # edx-event-bus-redis diff --git a/requirements/django.txt b/requirements/django.txt index 9109eb206..5c02b4d56 100644 --- a/requirements/django.txt +++ b/requirements/django.txt @@ -1 +1 @@ -django==5.2.7 +django==5.2.10 diff --git a/requirements/docs.txt b/requirements/docs.txt index 341dad0ad..795c1a15d 100644 --- a/requirements/docs.txt +++ b/requirements/docs.txt @@ -12,13 +12,13 @@ babel==2.17.0 # via # pydata-sphinx-theme # sphinx -beautifulsoup4==4.14.2 +beautifulsoup4==4.14.3 # via pydata-sphinx-theme -certifi==2025.10.5 +certifi==2026.1.4 # via requests charset-normalizer==3.4.4 # via requests -docutils==0.21.2 +docutils==0.22.4 # via # pydata-sphinx-theme # sphinx @@ -32,7 +32,7 @@ jsx-lexer==2.0.1 # via -r requirements/docs.in markupsafe==3.0.3 # via jinja2 -packaging==25.0 +packaging==26.0 # via # pydata-sphinx-theme # sphinx @@ -46,13 +46,13 @@ pygments==2.19.2 # sphinx requests==2.32.5 # via sphinx -roman-numerals-py==3.1.0 +roman-numerals==4.1.0 # via sphinx snowballstemmer==3.0.1 # via sphinx -soupsieve==2.8 +soupsieve==2.8.3 # via beautifulsoup4 -sphinx==8.2.3 +sphinx==9.1.0 # via # -r requirements/docs.in # pydata-sphinx-theme @@ -75,5 +75,5 @@ typing-extensions==4.15.0 # via # beautifulsoup4 # pydata-sphinx-theme -urllib3==2.5.0 +urllib3==2.6.3 # via requests diff --git a/requirements/pip.txt b/requirements/pip.txt index 42c703428..e9b7e0688 100644 --- a/requirements/pip.txt +++ b/requirements/pip.txt @@ -4,11 +4,13 @@ # # 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.2 +pip==25.3 # via -r requirements/pip.in -setuptools==80.9.0 +setuptools==80.10.2 # via -r requirements/pip.in diff --git a/requirements/pip_tools.txt b/requirements/pip_tools.txt index 0dc0bf329..10ced58a1 100644 --- a/requirements/pip_tools.txt +++ b/requirements/pip_tools.txt @@ -4,19 +4,21 @@ # # 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/production.txt b/requirements/production.txt index f87ae7728..1a4199a38 100644 --- a/requirements/production.txt +++ b/requirements/production.txt @@ -4,11 +4,11 @@ # # make upgrade # -anyio==4.11.0 +anyio==4.12.1 # via # -r requirements/base.txt # httpx -asgiref==3.10.0 +asgiref==3.11.0 # via # -r requirements/base.txt # django @@ -22,23 +22,19 @@ backoff==2.2.1 # via # -r requirements/base.txt # segment-analytics-python -bleach==6.2.0 +bleach==6.3.0 # via -r requirements/base.txt -boto3==1.40.55 +boto3==1.42.35 # via django-ses -botocore==1.40.55 +botocore==1.42.35 # via # boto3 # s3transfer -cachecontrol==0.14.3 +cachecontrol==0.14.4 # via # -r requirements/base.txt # firebase-admin -cachetools==6.2.1 - # via - # -r requirements/base.txt - # google-auth -certifi==2025.10.5 +certifi==2026.1.4 # via # -r requirements/base.txt # httpcore @@ -53,7 +49,7 @@ charset-normalizer==3.4.4 # via # -r requirements/base.txt # requests -click==8.3.0 +click==8.3.1 # via # -r requirements/base.txt # code-annotations @@ -74,6 +70,7 @@ coreschema==0.0.4 cryptography==46.0.3 # via # -r requirements/base.txt + # google-auth # pyjwt defusedxml==0.7.1 # via @@ -82,8 +79,9 @@ defusedxml==0.7.1 # social-auth-core didkit==0.3.3 # via -r requirements/base.txt -django==5.2.7 +django==5.2.10 # via + # -c requirements/common_constraints.txt # -r requirements/base.txt # django-appconf # django-config-models @@ -115,7 +113,7 @@ django==5.2.7 # openedx-events # social-auth-app-django # xss-utils -django-appconf==1.1.0 +django-appconf==1.2.0 # via # -r requirements/base.txt # django-statici18n @@ -134,7 +132,7 @@ django-filter==25.2 # via -r requirements/base.txt django-model-utils==5.0.0 # via -r requirements/base.txt -django-push-notifications==3.2.1 +django-push-notifications==3.3.0 # via # -r requirements/base.txt # edx-ace @@ -142,9 +140,9 @@ django-ratelimit==4.1.0 # via -r requirements/base.txt django-rest-swagger==2.2.0 # via -r requirements/base.txt -django-ses==4.4.0 +django-ses==4.6.0 # via -r requirements/production.in -django-simple-history==3.10.1 +django-simple-history==3.11.0 # via -r requirements/base.txt django-sortedm2m==4.0.0 # via -r requirements/base.txt @@ -158,7 +156,7 @@ django-waffle==5.0.0 # edx-django-utils # edx-drf-extensions # edx-toggles -django-webpack-loader==3.2.1 +django-webpack-loader==3.2.3 # via -r requirements/base.txt djangorestframework==3.16.1 # via @@ -176,11 +174,11 @@ drf-jwt==1.19.2 # via # -r requirements/base.txt # edx-drf-extensions -drf-yasg==1.21.11 +drf-yasg==1.21.14 # via -r requirements/base.txt edx-ace==1.15.0 # via -r requirements/base.txt -edx-auth-backends==4.6.1 +edx-auth-backends==4.6.2 # via -r requirements/base.txt edx-ccx-keys==2.0.2 # via @@ -238,59 +236,59 @@ firebase-admin==7.1.0 # edx-ace gevent==25.9.1 # via -r requirements/production.in -google-api-core[grpc]==2.26.0 +google-api-core[grpc]==2.29.0 # via # -r requirements/base.txt # firebase-admin # google-cloud-core # google-cloud-firestore # google-cloud-storage -google-auth==2.41.1 +google-auth==2.48.0 # via # -r requirements/base.txt # google-api-core # google-cloud-core # google-cloud-firestore # google-cloud-storage -google-cloud-core==2.4.3 +google-cloud-core==2.5.0 # via # -r requirements/base.txt # google-cloud-firestore # google-cloud-storage -google-cloud-firestore==2.21.0 +google-cloud-firestore==2.23.0 # via # -r requirements/base.txt # firebase-admin -google-cloud-storage==3.4.1 +google-cloud-storage==3.8.0 # via # -r requirements/base.txt # firebase-admin -google-crc32c==1.7.1 +google-crc32c==1.8.0 # via # -r requirements/base.txt # google-cloud-storage # google-resumable-media -google-resumable-media==2.7.2 +google-resumable-media==2.8.0 # via # -r requirements/base.txt # google-cloud-storage -googleapis-common-protos==1.71.0 +googleapis-common-protos==1.72.0 # via # -r requirements/base.txt # google-api-core # grpcio-status -greenlet==3.2.4 +greenlet==3.3.1 # via gevent -grpcio==1.75.1 +grpcio==1.76.0 # via # -r requirements/base.txt # google-api-core # grpcio-status -grpcio-status==1.75.1 +grpcio-status==1.76.0 # via # -r requirements/base.txt # google-api-core -gunicorn==23.0.0 +gunicorn==24.1.1 # via -r requirements/production.in h11==0.16.0 # via @@ -335,7 +333,7 @@ jinja2==3.1.6 # -r requirements/base.txt # code-annotations # coreschema -jmespath==1.0.1 +jmespath==1.1.0 # via # boto3 # botocore @@ -349,7 +347,7 @@ lxml-html-clean==0.4.3 # via # -r requirements/base.txt # lxml -markdown==3.9 +markdown==3.10.1 # via -r requirements/base.txt markupsafe==3.0.3 # via @@ -361,7 +359,7 @@ msgpack==1.1.2 # cachecontrol mysqlclient==2.2.7 # via -r requirements/base.txt -nodeenv==1.9.1 +nodeenv==1.10.0 # via -r requirements/production.in oauthlib==3.3.1 # via @@ -379,7 +377,7 @@ openedx-events==10.5.0 # -r requirements/base.txt # edx-event-bus-kafka # edx-event-bus-redis -packaging==25.0 +packaging==26.0 # via # -r requirements/base.txt # drf-yasg @@ -388,18 +386,18 @@ path==16.16.0 # via # -r requirements/base.txt # edx-i18n-tools -pillow==12.0.0 +pillow==12.1.0 # via -r requirements/base.txt polib==1.2.0 # via # -r requirements/base.txt # edx-i18n-tools -proto-plus==1.26.1 +proto-plus==1.27.0 # via # -r requirements/base.txt # google-api-core # google-cloud-firestore -protobuf==6.33.0 +protobuf==6.33.4 # via # -r requirements/base.txt # google-api-core @@ -407,11 +405,11 @@ protobuf==6.33.0 # googleapis-common-protos # grpcio-status # proto-plus -psutil==7.1.1 +psutil==7.2.1 # via # -r requirements/base.txt # edx-django-utils -pyasn1==0.6.1 +pyasn1==0.6.2 # via # -r requirements/base.txt # pyasn1-modules @@ -420,7 +418,7 @@ pyasn1-modules==0.4.2 # via # -r requirements/base.txt # google-auth -pycparser==2.23 +pycparser==3.0 # via # -r requirements/base.txt # cffi @@ -438,11 +436,11 @@ pyjwt[crypto]==2.10.1 # social-auth-core pymemcache==4.0.0 # via -r requirements/base.txt -pymongo==4.15.3 +pymongo==4.16.0 # via # -r requirements/base.txt # edx-opaque-keys -pynacl==1.6.0 +pynacl==1.6.2 # via # -r requirements/base.txt # edx-django-utils @@ -476,7 +474,7 @@ pyyaml==6.0.3 # edx-i18n-tools qrcode==8.2 # via -r requirements/base.txt -redis==6.4.0 +redis==7.1.0 # via # -r requirements/base.txt # walrus @@ -501,13 +499,13 @@ rsa==4.9.1 # via # -r requirements/base.txt # google-auth -s3transfer==0.14.0 +s3transfer==0.16.0 # via boto3 sailthru-client==2.2.3 # via # -r requirements/base.txt # edx-ace -segment-analytics-python==2.3.4 +segment-analytics-python==2.3.5 # via -r requirements/base.txt semantic-version==2.10.0 # via @@ -526,25 +524,21 @@ six==1.17.0 # edx-ccx-keys # edx-django-release-util # python-dateutil -sniffio==1.3.1 - # via - # -r requirements/base.txt - # anyio social-auth-app-django==5.4.3 # via # -c requirements/constraints.txt # -r requirements/base.txt # edx-auth-backends -social-auth-core==4.8.1 +social-auth-core==4.8.3 # via # -r requirements/base.txt # edx-auth-backends # social-auth-app-django -sqlparse==0.5.3 +sqlparse==0.5.5 # via # -r requirements/base.txt # django -stevedore==5.5.0 +stevedore==5.6.0 # via # -r requirements/base.txt # code-annotations @@ -566,12 +560,12 @@ uritemplate==4.2.0 # -r requirements/base.txt # coreapi # drf-yasg -urllib3==2.5.0 +urllib3==2.6.3 # via # -r requirements/base.txt # botocore # requests -walrus==0.9.5 +walrus==0.9.8 # via # -r requirements/base.txt # edx-event-bus-redis @@ -581,9 +575,9 @@ webencodings==0.5.1 # bleach xss-utils==0.8.0 # via -r requirements/base.txt -zope-event==6.0 +zope-event==6.1 # via gevent -zope-interface==8.0.1 +zope-interface==8.2 # via gevent # The following packages are considered to be unsafe in a requirements file: diff --git a/requirements/test.txt b/requirements/test.txt index 507325554..7191ddc5e 100644 --- a/requirements/test.txt +++ b/requirements/test.txt @@ -4,16 +4,16 @@ # # make upgrade # -anyio==4.11.0 +anyio==4.12.1 # via # -r requirements/base.txt # httpx -asgiref==3.10.0 +asgiref==3.11.0 # via # -r requirements/base.txt # django # django-cors-headers -astroid==3.3.11 +astroid==4.0.3 # via # pylint # pylint-celery @@ -26,20 +26,17 @@ backoff==2.2.1 # via # -r requirements/base.txt # segment-analytics-python -black==25.9.0 +black==26.1.0 # via -r requirements/test.in -bleach==6.2.0 +bleach==6.3.0 # via -r requirements/base.txt -cachecontrol==0.14.3 +cachecontrol==0.14.4 # via # -r requirements/base.txt # firebase-admin -cachetools==6.2.1 - # via - # -r requirements/base.txt - # google-auth - # tox -certifi==2025.10.5 +cachetools==6.2.5 + # via tox +certifi==2026.1.4 # via # -r requirements/base.txt # httpcore @@ -56,7 +53,7 @@ charset-normalizer==3.4.4 # via # -r requirements/base.txt # requests -click==8.3.0 +click==8.3.1 # via # -r requirements/base.txt # black @@ -83,11 +80,12 @@ coreschema==0.0.4 # via # -r requirements/base.txt # coreapi -coverage==7.11.0 +coverage==7.13.2 # via -r requirements/test.in cryptography==46.0.3 # via # -r requirements/base.txt + # google-auth # pyjwt ddt==1.7.2 # via -r requirements/test.in @@ -98,11 +96,12 @@ defusedxml==0.7.1 # social-auth-core didkit==0.3.3 # via -r requirements/base.txt -dill==0.4.0 +dill==0.4.1 # via pylint distlib==0.4.0 # via virtualenv # via + # -c requirements/common_constraints.txt # -r requirements/base.txt # django-appconf # django-config-models @@ -133,7 +132,7 @@ distlib==0.4.0 # openedx-events # social-auth-app-django # xss-utils -django-appconf==1.1.0 +django-appconf==1.2.0 # via # -r requirements/base.txt # django-statici18n @@ -152,7 +151,7 @@ django-filter==25.2 # via -r requirements/base.txt django-model-utils==5.0.0 # via -r requirements/base.txt -django-push-notifications==3.2.1 +django-push-notifications==3.3.0 # via # -r requirements/base.txt # edx-ace @@ -160,7 +159,7 @@ django-ratelimit==4.1.0 # via -r requirements/base.txt django-rest-swagger==2.2.0 # via -r requirements/base.txt -django-simple-history==3.10.1 +django-simple-history==3.11.0 # via -r requirements/base.txt django-sortedm2m==4.0.0 # via -r requirements/base.txt @@ -174,7 +173,7 @@ django-waffle==5.0.0 # edx-django-utils # edx-drf-extensions # edx-toggles -django-webpack-loader==3.2.1 +django-webpack-loader==3.2.3 # via -r requirements/base.txt djangorestframework==3.16.1 # via @@ -192,11 +191,11 @@ drf-jwt==1.19.2 # via # -r requirements/base.txt # edx-drf-extensions -drf-yasg==1.21.11 +drf-yasg==1.21.14 # via -r requirements/base.txt edx-ace==1.15.0 # via -r requirements/base.txt -edx-auth-backends==4.6.1 +edx-auth-backends==4.6.2 # via -r requirements/base.txt edx-ccx-keys==2.0.2 # via @@ -248,13 +247,13 @@ edx-toggles==5.4.1 # edx-event-bus-redis factory-boy==3.3.3 # via -r requirements/test.in -faker==37.11.0 +faker==40.1.2 # via factory-boy fastavro==1.12.1 # via # -r requirements/base.txt # openedx-events -filelock==3.20.0 +filelock==3.20.3 # via # tox # virtualenv @@ -262,53 +261,53 @@ firebase-admin==7.1.0 # via # -r requirements/base.txt # edx-ace -google-api-core[grpc]==2.26.0 +google-api-core[grpc]==2.29.0 # via # -r requirements/base.txt # firebase-admin # google-cloud-core # google-cloud-firestore # google-cloud-storage -google-auth==2.41.1 +google-auth==2.48.0 # via # -r requirements/base.txt # google-api-core # google-cloud-core # google-cloud-firestore # google-cloud-storage -google-cloud-core==2.4.3 +google-cloud-core==2.5.0 # via # -r requirements/base.txt # google-cloud-firestore # google-cloud-storage -google-cloud-firestore==2.21.0 +google-cloud-firestore==2.23.0 # via # -r requirements/base.txt # firebase-admin -google-cloud-storage==3.4.1 +google-cloud-storage==3.8.0 # via # -r requirements/base.txt # firebase-admin -google-crc32c==1.7.1 +google-crc32c==1.8.0 # via # -r requirements/base.txt # google-cloud-storage # google-resumable-media -google-resumable-media==2.7.2 +google-resumable-media==2.8.0 # via # -r requirements/base.txt # google-cloud-storage -googleapis-common-protos==1.71.0 +googleapis-common-protos==1.72.0 # via # -r requirements/base.txt # google-api-core # grpcio-status -grpcio==1.75.1 +grpcio==1.76.0 # via # -r requirements/base.txt # google-api-core # grpcio-status -grpcio-status==1.75.1 +grpcio-status==1.76.0 # via # -r requirements/base.txt # google-api-core @@ -350,7 +349,7 @@ inflection==0.5.1 # drf-yasg iniconfig==2.3.0 # via pytest -isort==6.1.0 +isort==7.0.0 # via # -r requirements/test.in # pylint @@ -373,7 +372,7 @@ lxml-html-clean==0.4.3 # via # -r requirements/base.txt # lxml -markdown==3.9 +markdown==3.10.1 # via -r requirements/base.txt markupsafe==3.0.3 # via @@ -405,7 +404,7 @@ openedx-events==10.5.0 # -r requirements/base.txt # edx-event-bus-kafka # edx-event-bus-redis -packaging==25.0 +packaging==26.0 # via # -r requirements/base.txt # black @@ -417,11 +416,11 @@ path==16.16.0 # via # -r requirements/base.txt # edx-i18n-tools -pathspec==0.12.1 +pathspec==1.0.4 # via black -pillow==12.0.0 +pillow==12.1.0 # via -r requirements/base.txt -platformdirs==4.5.0 +platformdirs==4.5.1 # via # black # pylint @@ -435,12 +434,12 @@ polib==1.2.0 # via # -r requirements/base.txt # edx-i18n-tools -proto-plus==1.26.1 +proto-plus==1.27.0 # via # -r requirements/base.txt # google-api-core # google-cloud-firestore -protobuf==6.33.0 +protobuf==6.33.4 # via # -r requirements/base.txt # google-api-core @@ -448,11 +447,11 @@ protobuf==6.33.0 # googleapis-common-protos # grpcio-status # proto-plus -psutil==7.1.1 +psutil==7.2.1 # via # -r requirements/base.txt # edx-django-utils -pyasn1==0.6.1 +pyasn1==0.6.2 # via # -r requirements/base.txt # pyasn1-modules @@ -461,7 +460,7 @@ pyasn1-modules==0.4.2 # via # -r requirements/base.txt # google-auth -pycparser==2.23 +pycparser==3.0 # via # -r requirements/base.txt # cffi @@ -479,7 +478,7 @@ pyjwt[crypto]==2.10.1 # firebase-admin # segment-analytics-python # social-auth-core -pylint==3.3.9 +pylint==4.0.4 # via # edx-lint # pylint-celery @@ -487,7 +486,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 @@ -495,17 +494,17 @@ pylint-plugin-utils==0.9.0 # pylint-django pymemcache==4.0.0 # via -r requirements/base.txt -pymongo==4.15.3 +pymongo==4.16.0 # via # -r requirements/base.txt # edx-opaque-keys -pynacl==1.6.0 +pynacl==1.6.2 # via # -r requirements/base.txt # edx-django-utils pyproject-api==1.10.0 # via tox -pytest==8.4.2 +pytest==9.0.2 # via # -r requirements/test.in # pytest-django @@ -526,7 +525,7 @@ python3-openid==3.2.0 # via # -r requirements/base.txt # social-auth-core -pytokens==0.2.0 +pytokens==0.4.0 # via black pytz==2025.2 # via @@ -542,7 +541,7 @@ pyyaml==6.0.3 # responses qrcode==8.2 # via -r requirements/base.txt -redis==6.4.0 +redis==7.1.0 # via # -r requirements/base.txt # walrus @@ -574,7 +573,7 @@ sailthru-client==2.2.3 # via # -r requirements/base.txt # edx-ace -segment-analytics-python==2.3.4 +segment-analytics-python==2.3.5 # via -r requirements/base.txt semantic-version==2.10.0 # via @@ -594,40 +593,36 @@ six==1.17.0 # edx-django-release-util # edx-lint # python-dateutil -sniffio==1.3.1 - # via - # -r requirements/base.txt - # anyio social-auth-app-django==5.4.3 # via # -c requirements/constraints.txt # -r requirements/base.txt # edx-auth-backends -social-auth-core==4.8.1 +social-auth-core==4.8.3 # via # -r requirements/base.txt # edx-auth-backends # social-auth-app-django -sqlparse==0.5.3 +sqlparse==0.5.5 # via # -r requirements/base.txt # django -stevedore==5.5.0 +stevedore==5.6.0 # via # -r requirements/base.txt # code-annotations # edx-ace # edx-django-utils # edx-opaque-keys -testfixtures==9.2.0 +testfixtures==10.0.0 # via -r requirements/test.in text-unidecode==1.3 # via # -r requirements/base.txt # python-slugify -tomlkit==0.13.3 +tomlkit==0.14.0 # via pylint -tox==4.31.0 +tox==4.34.1 # via -r requirements/test.in typing-extensions==4.15.0 # via @@ -635,21 +630,19 @@ typing-extensions==4.15.0 # anyio # edx-opaque-keys # grpcio -tzdata==2025.2 - # via faker uritemplate==4.2.0 # via # -r requirements/base.txt # coreapi # drf-yasg -urllib3==2.5.0 +urllib3==2.6.3 # via # -r requirements/base.txt # requests # responses -virtualenv==20.35.3 +virtualenv==20.36.1 # via tox -walrus==0.9.5 +walrus==0.9.8 # via # -r requirements/base.txt # edx-event-bus-redis diff --git a/requirements/translations.txt b/requirements/translations.txt index 9d57833dc..ace935501 100644 --- a/requirements/translations.txt +++ b/requirements/translations.txt @@ -4,10 +4,12 @@ # # make upgrade # -asgiref==3.10.0 +asgiref==3.11.0 # via django -django==5.2.7 - # via edx-i18n-tools +django==5.2.10 + # via + # -c requirements/common_constraints.txt + # edx-i18n-tools edx-i18n-tools==1.9.0 # via -r requirements/translations.in lxml[html-clean]==6.0.2 @@ -22,5 +24,5 @@ polib==1.2.0 # via edx-i18n-tools pyyaml==6.0.3 # via edx-i18n-tools -sqlparse==0.5.3 +sqlparse==0.5.5 # via django From 1e5706a8472f82f2248fec7cc192221530c5d4cd Mon Sep 17 00:00:00 2001 From: Deborah Kaplan Date: Tue, 3 Feb 2026 18:26:10 +0000 Subject: [PATCH 2/4] chore: letting the breaking changes on black reformat [black 26.0.1](https://github.com/psf/black/blob/main/CHANGES.md#2610) contains breaking changes, including enforcing the number of lines after the imports. Rather than reconfiguring black this is a one time reformat to make these files compliant with the out-of-the-box standard. --- credentials/apps/api/accreditors.py | 1 - credentials/apps/api/authentication.py | 1 - credentials/apps/api/tests/mixins.py | 1 - credentials/apps/api/tests/test_accreditors.py | 1 - credentials/apps/api/urls.py | 1 - credentials/apps/api/v2/decorators.py | 1 - credentials/apps/api/v2/serializers.py | 1 - credentials/apps/api/v2/tests/test_views.py | 1 - credentials/apps/api/v2/urls.py | 1 - credentials/apps/api/v2/views.py | 1 - credentials/apps/badges/accredible/api_client.py | 1 - credentials/apps/badges/admin.py | 13 ++++--------- credentials/apps/badges/base_api_client.py | 1 - credentials/apps/badges/credly/api_client.py | 1 - credentials/apps/badges/credly/webhooks.py | 1 - credentials/apps/badges/issuers.py | 1 - .../commands/sync_organization_badge_templates.py | 1 - credentials/apps/badges/models.py | 1 - credentials/apps/badges/processing/generic.py | 1 - credentials/apps/badges/processing/progression.py | 1 - credentials/apps/badges/processing/regression.py | 1 - credentials/apps/badges/signals/handlers.py | 1 - credentials/apps/badges/signals/signals.py | 1 - credentials/apps/badges/tests/test_admin_forms.py | 1 - credentials/apps/badges/tests/test_issuers.py | 1 - credentials/apps/badges/tests/test_services.py | 1 - credentials/apps/badges/tests/test_utils.py | 1 - credentials/apps/badges/toggles.py | 1 - credentials/apps/badges/urls.py | 1 - .../catalog/management/commands/copy_catalog.py | 1 - credentials/apps/catalog/models.py | 1 - credentials/apps/catalog/tests/test_api.py | 1 - credentials/apps/catalog/utils.py | 1 - credentials/apps/core/api.py | 1 - .../management/commands/create_or_update_site.py | 1 - .../commands/make_is_active_match_platform.py | 1 - .../management/commands/sync_ids_from_platform.py | 1 - .../tests/test_make_is_active_match_platform.py | 1 - .../commands/tests/test_sync_ids_from_platform.py | 1 - .../commands/tests/test_truncate_social_auth.py | 1 - .../management/commands/truncate_social_auth.py | 1 - credentials/apps/core/tests/factories.py | 1 - credentials/apps/core/tests/mixins.py | 1 - .../apps/core/tests/test_context_processors.py | 1 - credentials/apps/core/tests/test_views.py | 1 - credentials/apps/core/views.py | 1 - credentials/apps/credentials/api.py | 1 - credentials/apps/credentials/apps.py | 1 - credentials/apps/credentials/issuers.py | 1 - .../create_program_certificate_configuration.py | 1 - .../commands/populate_missing_courserun_info.py | 1 - .../management/commands/revoke_certificates.py | 1 - ...test_create_program_certificate_configuration.py | 1 - credentials/apps/credentials/messages.py | 1 - credentials/apps/credentials/models.py | 1 - credentials/apps/credentials/rest_api/urls.py | 1 - .../credentials/rest_api/v1/tests/test_views.py | 1 - credentials/apps/credentials/rest_api/v1/urls.py | 1 - credentials/apps/credentials/rest_api/v1/views.py | 1 - credentials/apps/credentials/signals.py | 1 - credentials/apps/credentials/templatetags/html.py | 1 - .../apps/credentials/templatetags/i18n_assets.py | 1 - credentials/apps/credentials/tests/factories.py | 1 - credentials/apps/credentials/tests/test_apps.py | 1 - credentials/apps/credentials/tests/test_issuer.py | 1 - credentials/apps/credentials/tests/test_models.py | 1 - credentials/apps/credentials/tests/test_utils.py | 1 - credentials/apps/credentials/urls.py | 1 - credentials/apps/credentials/utils.py | 1 - credentials/apps/credentials/views.py | 1 - credentials/apps/edx_django_extensions/urls.py | 1 - credentials/apps/edx_django_extensions/views.py | 1 - credentials/apps/plugins/constants.py | 1 - credentials/apps/records/api.py | 1 - .../records/management/commands/seed-records.py | 1 - credentials/apps/records/rest_api/urls.py | 1 - credentials/apps/records/rest_api/v1/urls.py | 1 - credentials/apps/records/rest_api/v1/views.py | 1 - credentials/apps/records/tests/test_views.py | 1 - credentials/apps/records/urls.py | 1 - credentials/apps/records/utils.py | 1 - credentials/apps/records/views.py | 1 - .../composition/status_list.py | 1 - credentials/apps/verifiable_credentials/conftest.py | 2 +- .../apps/verifiable_credentials/issuance/main.py | 1 - .../apps/verifiable_credentials/issuance/models.py | 1 - .../verifiable_credentials/issuance/status_list.py | 1 - .../issuance/tests/test_main.py | 1 - .../issuance/tests/test_status_list.py | 1 - .../management/commands/create_default_issuer.py | 1 - .../commands/generate_issuer_credentials.py | 1 - .../management/commands/generate_status_list.py | 1 - .../commands/remove_issuance_configuration.py | 1 - .../commands/tests/test_create_default_issuer.py | 1 - .../apps/verifiable_credentials/permissions.py | 1 - .../apps/verifiable_credentials/rest_api/urls.py | 1 - .../rest_api/v1/tests/test_views.py | 1 - .../apps/verifiable_credentials/rest_api/v1/urls.py | 1 - .../verifiable_credentials/rest_api/v1/views.py | 7 ++----- credentials/apps/verifiable_credentials/settings.py | 1 - credentials/apps/verifiable_credentials/toggles.py | 1 - credentials/apps/verifiable_credentials/urls.py | 1 - credentials/conf/locale/en/LC_MESSAGES/django.po | 4 ++-- credentials/conf/locale/en/LC_MESSAGES/djangojs.po | 4 ++-- credentials/conf/locale/eo/LC_MESSAGES/django.po | 4 ++-- credentials/conf/locale/eo/LC_MESSAGES/djangojs.po | 4 ++-- credentials/conf/locale/rtl/LC_MESSAGES/django.po | 4 ++-- credentials/conf/locale/rtl/LC_MESSAGES/djangojs.po | 4 ++-- credentials/docker_gunicorn_configuration.py | 1 - credentials/settings/base.py | 1 - credentials/urls.py | 1 - credentials/wsgi.py | 1 - 112 files changed, 19 insertions(+), 130 deletions(-) diff --git a/credentials/apps/api/accreditors.py b/credentials/apps/api/accreditors.py index f9f38c519..459d5b750 100644 --- a/credentials/apps/api/accreditors.py +++ b/credentials/apps/api/accreditors.py @@ -4,7 +4,6 @@ from credentials.apps.credentials.constants import UserCredentialStatus from credentials.apps.credentials.issuers import CourseCertificateIssuer, ProgramCertificateIssuer - logger = logging.getLogger(__name__) diff --git a/credentials/apps/api/authentication.py b/credentials/apps/api/authentication.py index 4caef0ed9..18d0583c4 100644 --- a/credentials/apps/api/authentication.py +++ b/credentials/apps/api/authentication.py @@ -9,7 +9,6 @@ from credentials.apps.core.constants import Role - logger = logging.getLogger(__name__) diff --git a/credentials/apps/api/tests/mixins.py b/credentials/apps/api/tests/mixins.py index b860c5d13..a0104caff 100644 --- a/credentials/apps/api/tests/mixins.py +++ b/credentials/apps/api/tests/mixins.py @@ -14,7 +14,6 @@ from credentials.apps.core.constants import Role from credentials.apps.core.tests.factories import UserFactory - JWT_AUTH = "JWT_AUTH" diff --git a/credentials/apps/api/tests/test_accreditors.py b/credentials/apps/api/tests/test_accreditors.py index 56fa49205..34e730b7d 100644 --- a/credentials/apps/api/tests/test_accreditors.py +++ b/credentials/apps/api/tests/test_accreditors.py @@ -13,7 +13,6 @@ from credentials.apps.credentials.models import CourseCertificate, ProgramCertificate from credentials.apps.credentials.tests.factories import CourseCertificateFactory, ProgramCertificateFactory - LOGGER_NAME = "credentials.apps.api.accreditors" diff --git a/credentials/apps/api/urls.py b/credentials/apps/api/urls.py index d2c64ef8b..8a1eb364d 100644 --- a/credentials/apps/api/urls.py +++ b/credentials/apps/api/urls.py @@ -7,7 +7,6 @@ from django.urls import include, path - urlpatterns = [ path("v2/", include(("credentials.apps.api.v2.urls", "v2"), namespace="v2")), ] diff --git a/credentials/apps/api/v2/decorators.py b/credentials/apps/api/v2/decorators.py index fb63a1439..54bab4e39 100644 --- a/credentials/apps/api/v2/decorators.py +++ b/credentials/apps/api/v2/decorators.py @@ -6,7 +6,6 @@ from django.conf import settings - logger = logging.getLogger(__name__) diff --git a/credentials/apps/api/v2/serializers.py b/credentials/apps/api/v2/serializers.py index 3357fe8b3..89304d1d6 100644 --- a/credentials/apps/api/v2/serializers.py +++ b/credentials/apps/api/v2/serializers.py @@ -23,7 +23,6 @@ ) from credentials.apps.records.models import UserGrade - if TYPE_CHECKING: from credentials.apps.credentials.models import AbstractCertificate diff --git a/credentials/apps/api/v2/tests/test_views.py b/credentials/apps/api/v2/tests/test_views.py index e8df1226a..a0c1b65cc 100644 --- a/credentials/apps/api/v2/tests/test_views.py +++ b/credentials/apps/api/v2/tests/test_views.py @@ -33,7 +33,6 @@ from credentials.apps.records.models import UserGrade from credentials.apps.records.tests.factories import UserGradeFactory - JSON_CONTENT_TYPE = "application/json" LOGGER_NAME = "credentials.apps.credentials.issuers" LOGGER_NAME_SERIALIZER = "credentials.apps.api.v2.serializers" diff --git a/credentials/apps/api/v2/urls.py b/credentials/apps/api/v2/urls.py index 300730778..b6ffa98c7 100644 --- a/credentials/apps/api/v2/urls.py +++ b/credentials/apps/api/v2/urls.py @@ -3,7 +3,6 @@ from credentials.apps.api.v2 import views - # NOTE: Although this is v2 and other APIs in this application are v1, # the API naming and code layout convention here is not to be used for new # endpoints, per: diff --git a/credentials/apps/api/v2/views.py b/credentials/apps/api/v2/views.py index 6d092fb5e..00b0de9c4 100644 --- a/credentials/apps/api/v2/views.py +++ b/credentials/apps/api/v2/views.py @@ -22,7 +22,6 @@ from credentials.apps.credentials.models import CourseCertificate, UserCredential from credentials.apps.records.models import UserGrade - log = logging.getLogger(__name__) diff --git a/credentials/apps/badges/accredible/api_client.py b/credentials/apps/badges/accredible/api_client.py index 4dc46bcc9..53e4aa9b7 100644 --- a/credentials/apps/badges/accredible/api_client.py +++ b/credentials/apps/badges/accredible/api_client.py @@ -10,7 +10,6 @@ from credentials.apps.badges.base_api_client import BaseBadgeProviderClient from credentials.apps.badges.models import AccredibleAPIConfig, AccredibleGroup - logger = logging.getLogger(__name__) diff --git a/credentials/apps/badges/admin.py b/credentials/apps/badges/admin.py index e27068efd..82dbf2663 100644 --- a/credentials/apps/badges/admin.py +++ b/credentials/apps/badges/admin.py @@ -38,7 +38,6 @@ ) from credentials.apps.badges.toggles import is_badges_enabled - ADMIN_CHANGE_VIEW_REVERSE_NAMES = { CredlyBadgeTemplate.ORIGIN: "admin:badges_credlybadgetemplate_change", AccredibleGroup.ORIGIN: "admin:badges_accrediblegroup_change", @@ -254,13 +253,11 @@ class CredlyBadgeTemplateAdmin(admin.ModelAdmin): "site", "is_active", ), - "description": _( - """ + "description": _(""" WARNING: avoid configuration updates on activated badges. Active badge templates are continuously processed and learners may already have progress on them. Any changes in badge template requirements (including data rules) will affect learners' experience! - """ - ), + """), }, ), ( @@ -657,13 +654,11 @@ class AccredibleGroupAdmin(admin.ModelAdmin): "site", "is_active", ), - "description": _( - """ + "description": _(""" WARNING: avoid configuration updates on activated badges. Active badge templates are continuously processed and learners may already have progress on them. Any changes in badge template requirements (including data rules) will affect learners' experience! - """ - ), + """), }, ), ( diff --git a/credentials/apps/badges/base_api_client.py b/credentials/apps/badges/base_api_client.py index 082bdaf07..4ea83a2cf 100644 --- a/credentials/apps/badges/base_api_client.py +++ b/credentials/apps/badges/base_api_client.py @@ -7,7 +7,6 @@ from .exceptions import BadgeProviderError - logger = logging.getLogger(__name__) diff --git a/credentials/apps/badges/credly/api_client.py b/credentials/apps/badges/credly/api_client.py index 3b587045d..4fa0f44e4 100644 --- a/credentials/apps/badges/credly/api_client.py +++ b/credentials/apps/badges/credly/api_client.py @@ -13,7 +13,6 @@ from credentials.apps.badges.credly.utils import get_credly_api_base_url from credentials.apps.badges.models import CredlyBadgeTemplate, CredlyOrganization - logger = logging.getLogger(__name__) diff --git a/credentials/apps/badges/credly/webhooks.py b/credentials/apps/badges/credly/webhooks.py index b103ffe68..a7b740aa8 100644 --- a/credentials/apps/badges/credly/webhooks.py +++ b/credentials/apps/badges/credly/webhooks.py @@ -9,7 +9,6 @@ from ..models import CredlyBadgeTemplate, CredlyOrganization from .api_client import CredlyAPIClient - logger = logging.getLogger(__name__) diff --git a/credentials/apps/badges/issuers.py b/credentials/apps/badges/issuers.py index b56510361..7cbc29f93 100644 --- a/credentials/apps/badges/issuers.py +++ b/credentials/apps/badges/issuers.py @@ -32,7 +32,6 @@ from credentials.apps.credentials.constants import UserCredentialStatus from credentials.apps.credentials.issuers import AbstractCredentialIssuer - REVOCATION_STATES = { CredlyBadge: CredlyBadge.STATES.revoked, AccredibleBadge: AccredibleBadge.STATES.expired, diff --git a/credentials/apps/badges/management/commands/sync_organization_badge_templates.py b/credentials/apps/badges/management/commands/sync_organization_badge_templates.py index b55e968ab..bd35a03fb 100644 --- a/credentials/apps/badges/management/commands/sync_organization_badge_templates.py +++ b/credentials/apps/badges/management/commands/sync_organization_badge_templates.py @@ -5,7 +5,6 @@ from credentials.apps.badges.credly.api_client import CredlyAPIClient from credentials.apps.badges.models import CredlyOrganization - logger = logging.getLogger(__name__) diff --git a/credentials/apps/badges/models.py b/credentials/apps/badges/models.py index 225e137b7..5c21fb128 100644 --- a/credentials/apps/badges/models.py +++ b/credentials/apps/badges/models.py @@ -27,7 +27,6 @@ from credentials.apps.core.api import get_user_by_username from credentials.apps.credentials.models import AbstractCredential, UserCredential - logger = logging.getLogger(__name__) diff --git a/credentials/apps/badges/processing/generic.py b/credentials/apps/badges/processing/generic.py index 105831d42..2853b696e 100644 --- a/credentials/apps/badges/processing/generic.py +++ b/credentials/apps/badges/processing/generic.py @@ -10,7 +10,6 @@ from credentials.apps.badges.utils import extract_payload, get_user_data from credentials.apps.core.api import get_or_create_user_from_event_data - logger = logging.getLogger(__name__) diff --git a/credentials/apps/badges/processing/progression.py b/credentials/apps/badges/processing/progression.py index a967018fb..356d9bdf5 100644 --- a/credentials/apps/badges/processing/progression.py +++ b/credentials/apps/badges/processing/progression.py @@ -9,7 +9,6 @@ from credentials.apps.badges.models import BadgeRequirement - logger = logging.getLogger(__name__) diff --git a/credentials/apps/badges/processing/regression.py b/credentials/apps/badges/processing/regression.py index e88e51842..74e9714b6 100644 --- a/credentials/apps/badges/processing/regression.py +++ b/credentials/apps/badges/processing/regression.py @@ -9,7 +9,6 @@ from credentials.apps.badges.models import BadgePenalty - logger = logging.getLogger(__name__) diff --git a/credentials/apps/badges/signals/handlers.py b/credentials/apps/badges/signals/handlers.py index 2f6155bf1..70418c405 100644 --- a/credentials/apps/badges/signals/handlers.py +++ b/credentials/apps/badges/signals/handlers.py @@ -20,7 +20,6 @@ ) from credentials.apps.badges.utils import get_badging_event_types - logger = logging.getLogger(__name__) diff --git a/credentials/apps/badges/signals/signals.py b/credentials/apps/badges/signals/signals.py index a02dec413..dc42dc3de 100644 --- a/credentials/apps/badges/signals/signals.py +++ b/credentials/apps/badges/signals/signals.py @@ -7,7 +7,6 @@ from django.dispatch import Signal from openedx_events.learning.signals import BADGE_AWARDED, BADGE_REVOKED - logger = logging.getLogger(__name__) diff --git a/credentials/apps/badges/tests/test_admin_forms.py b/credentials/apps/badges/tests/test_admin_forms.py index 1c41d4013..36effb2fd 100644 --- a/credentials/apps/badges/tests/test_admin_forms.py +++ b/credentials/apps/badges/tests/test_admin_forms.py @@ -14,7 +14,6 @@ from credentials.apps.badges.exceptions import BadgeProviderError from credentials.apps.badges.models import BadgeRequirement, BadgeTemplate - COURSE_PASSING_EVENT = "org.openedx.learning.course.passing.status.updated.v1" diff --git a/credentials/apps/badges/tests/test_issuers.py b/credentials/apps/badges/tests/test_issuers.py index 5f9e3a427..793596b09 100644 --- a/credentials/apps/badges/tests/test_issuers.py +++ b/credentials/apps/badges/tests/test_issuers.py @@ -20,7 +20,6 @@ ) from credentials.apps.credentials.constants import UserCredentialStatus - User = get_user_model() diff --git a/credentials/apps/badges/tests/test_services.py b/credentials/apps/badges/tests/test_services.py index 87dc685e2..b6f91e8c8 100644 --- a/credentials/apps/badges/tests/test_services.py +++ b/credentials/apps/badges/tests/test_services.py @@ -25,7 +25,6 @@ from credentials.apps.badges.signals import BADGE_PROGRESS_COMPLETE from credentials.apps.badges.signals.handlers import handle_badge_completion - COURSE_PASSING_EVENT = "org.openedx.learning.course.passing.status.updated.v1" COURSE_PASSING_DATA = CoursePassingStatusData( is_passing=True, diff --git a/credentials/apps/badges/tests/test_utils.py b/credentials/apps/badges/tests/test_utils.py index 2d79f873c..e787e359e 100644 --- a/credentials/apps/badges/tests/test_utils.py +++ b/credentials/apps/badges/tests/test_utils.py @@ -18,7 +18,6 @@ keypath, ) - COURSE_PASSING_EVENT = "org.openedx.learning.course.passing.status.updated.v1" diff --git a/credentials/apps/badges/toggles.py b/credentials/apps/badges/toggles.py index b82d510d5..70d7c0973 100644 --- a/credentials/apps/badges/toggles.py +++ b/credentials/apps/badges/toggles.py @@ -4,7 +4,6 @@ from edx_toggles.toggles import SettingToggle - # .. toggle_name: BADGES_ENABLED # .. toggle_implementation: DjangoSetting # .. toggle_default: False diff --git a/credentials/apps/badges/urls.py b/credentials/apps/badges/urls.py index c2d906812..33ca21f0b 100644 --- a/credentials/apps/badges/urls.py +++ b/credentials/apps/badges/urls.py @@ -6,7 +6,6 @@ from .credly.webhooks import CredlyWebhook - urlpatterns = [ path("credly/webhook/", CredlyWebhook.as_view(), name="credly-webhook"), ] diff --git a/credentials/apps/catalog/management/commands/copy_catalog.py b/credentials/apps/catalog/management/commands/copy_catalog.py index c84744910..18d6d9990 100644 --- a/credentials/apps/catalog/management/commands/copy_catalog.py +++ b/credentials/apps/catalog/management/commands/copy_catalog.py @@ -9,7 +9,6 @@ from credentials.apps.catalog.utils import CatalogDataSynchronizer from credentials.apps.core.models import SiteConfiguration - logger = logging.getLogger(__name__) diff --git a/credentials/apps/catalog/models.py b/credentials/apps/catalog/models.py index 2a8c5014f..436721835 100644 --- a/credentials/apps/catalog/models.py +++ b/credentials/apps/catalog/models.py @@ -11,7 +11,6 @@ from .data import PathwayStatus, ProgramStatus - logger = logging.getLogger(__name__) diff --git a/credentials/apps/catalog/tests/test_api.py b/credentials/apps/catalog/tests/test_api.py index 776d0d2a5..4b17b3d1b 100644 --- a/credentials/apps/catalog/tests/test_api.py +++ b/credentials/apps/catalog/tests/test_api.py @@ -19,7 +19,6 @@ from credentials.apps.core.tests.mixins import SiteMixin from credentials.apps.credentials.tests.factories import CourseCertificateFactory - if TYPE_CHECKING: from credentials.apps.credentials.models import CourseCertificate diff --git a/credentials/apps/catalog/utils.py b/credentials/apps/catalog/utils.py index 1ce839ee9..dfec63230 100644 --- a/credentials/apps/catalog/utils.py +++ b/credentials/apps/catalog/utils.py @@ -8,7 +8,6 @@ from credentials.apps.catalog.data import PathwayStatus from credentials.apps.catalog.models import Course, CourseRun, Organization, Pathway, Program - logger = logging.getLogger(__name__) diff --git a/credentials/apps/core/api.py b/credentials/apps/core/api.py index cfc4341df..b13e4548b 100644 --- a/credentials/apps/core/api.py +++ b/credentials/apps/core/api.py @@ -7,7 +7,6 @@ from django.contrib.auth import get_user_model from openedx_events.learning.data import UserData - User = get_user_model() logger = logging.getLogger(__name__) diff --git a/credentials/apps/core/management/commands/create_or_update_site.py b/credentials/apps/core/management/commands/create_or_update_site.py index 33f4444cd..c1808d2a2 100644 --- a/credentials/apps/core/management/commands/create_or_update_site.py +++ b/credentials/apps/core/management/commands/create_or_update_site.py @@ -7,7 +7,6 @@ from credentials.apps.core.models import SiteConfiguration - logger = logging.getLogger(__name__) diff --git a/credentials/apps/core/management/commands/make_is_active_match_platform.py b/credentials/apps/core/management/commands/make_is_active_match_platform.py index cb947d71a..7966c3268 100644 --- a/credentials/apps/core/management/commands/make_is_active_match_platform.py +++ b/credentials/apps/core/management/commands/make_is_active_match_platform.py @@ -18,7 +18,6 @@ from credentials.apps.core.models import SiteConfiguration - if TYPE_CHECKING: from django.contrib.auth.models import AbstractUser diff --git a/credentials/apps/core/management/commands/sync_ids_from_platform.py b/credentials/apps/core/management/commands/sync_ids_from_platform.py index bc063ccbe..c6720895f 100644 --- a/credentials/apps/core/management/commands/sync_ids_from_platform.py +++ b/credentials/apps/core/management/commands/sync_ids_from_platform.py @@ -11,7 +11,6 @@ from credentials.apps.core.models import SiteConfiguration - logger = logging.getLogger(__name__) User = get_user_model() diff --git a/credentials/apps/core/management/commands/tests/test_make_is_active_match_platform.py b/credentials/apps/core/management/commands/tests/test_make_is_active_match_platform.py index ccd5b233d..496d6c20e 100644 --- a/credentials/apps/core/management/commands/tests/test_make_is_active_match_platform.py +++ b/credentials/apps/core/management/commands/tests/test_make_is_active_match_platform.py @@ -12,7 +12,6 @@ from credentials.apps.core.tests.factories import UserFactory from credentials.apps.core.tests.mixins import SiteMixin - User = get_user_model() JSON = "application/json" diff --git a/credentials/apps/core/management/commands/tests/test_sync_ids_from_platform.py b/credentials/apps/core/management/commands/tests/test_sync_ids_from_platform.py index d23f128c5..844c3fccf 100644 --- a/credentials/apps/core/management/commands/tests/test_sync_ids_from_platform.py +++ b/credentials/apps/core/management/commands/tests/test_sync_ids_from_platform.py @@ -12,7 +12,6 @@ from credentials.apps.core.tests.factories import UserFactory from credentials.apps.core.tests.mixins import SiteMixin - User = get_user_model() JSON = "application/json" diff --git a/credentials/apps/core/management/commands/tests/test_truncate_social_auth.py b/credentials/apps/core/management/commands/tests/test_truncate_social_auth.py index 14d5cf78e..b519993f6 100644 --- a/credentials/apps/core/management/commands/tests/test_truncate_social_auth.py +++ b/credentials/apps/core/management/commands/tests/test_truncate_social_auth.py @@ -12,7 +12,6 @@ from credentials.apps.core.tests.factories import UserFactory, UserSocialAuthFactory - User = get_user_model() JSON = "application/json" diff --git a/credentials/apps/core/management/commands/truncate_social_auth.py b/credentials/apps/core/management/commands/truncate_social_auth.py index ac84ea7d4..f4fbb013e 100644 --- a/credentials/apps/core/management/commands/truncate_social_auth.py +++ b/credentials/apps/core/management/commands/truncate_social_auth.py @@ -15,7 +15,6 @@ from django.core.management.base import BaseCommand from social_django.models import UserSocialAuth - logger = logging.getLogger(__name__) User = get_user_model() diff --git a/credentials/apps/core/tests/factories.py b/credentials/apps/core/tests/factories.py index d9855995c..bb1c17aaa 100644 --- a/credentials/apps/core/tests/factories.py +++ b/credentials/apps/core/tests/factories.py @@ -8,7 +8,6 @@ from credentials.apps.core.models import SiteConfiguration, User - USER_PASSWORD = "password" diff --git a/credentials/apps/core/tests/mixins.py b/credentials/apps/core/tests/mixins.py index 0a8d91f6f..7c281af6a 100644 --- a/credentials/apps/core/tests/mixins.py +++ b/credentials/apps/core/tests/mixins.py @@ -8,7 +8,6 @@ from credentials.apps.core.tests.factories import SiteConfigurationFactory - JSON = "application/json" diff --git a/credentials/apps/core/tests/test_context_processors.py b/credentials/apps/core/tests/test_context_processors.py index fe62001b8..f07a612c3 100644 --- a/credentials/apps/core/tests/test_context_processors.py +++ b/credentials/apps/core/tests/test_context_processors.py @@ -6,7 +6,6 @@ from credentials.apps.core.context_processors import core from credentials.apps.core.tests import factories - LANGUAGE_CODE = "en" diff --git a/credentials/apps/core/tests/test_views.py b/credentials/apps/core/tests/test_views.py index 99757ceb7..6ca46c1e8 100644 --- a/credentials/apps/core/tests/test_views.py +++ b/credentials/apps/core/tests/test_views.py @@ -14,7 +14,6 @@ from credentials.apps.core.constants import Status from credentials.apps.core.tests.mixins import SiteMixin - User = get_user_model() diff --git a/credentials/apps/core/views.py b/credentials/apps/core/views.py index 9e7a97f26..16ebbc226 100644 --- a/credentials/apps/core/views.py +++ b/credentials/apps/core/views.py @@ -15,7 +15,6 @@ from credentials.apps.core.constants import Status - logger = logging.getLogger(__name__) User = get_user_model() diff --git a/credentials/apps/credentials/api.py b/credentials/apps/credentials/api.py index 55d2b270c..b8e24028c 100644 --- a/credentials/apps/credentials/api.py +++ b/credentials/apps/credentials/api.py @@ -15,7 +15,6 @@ ) from credentials.apps.credentials.utils import filter_visible, get_credential_visible_date, get_credential_visible_dates - if TYPE_CHECKING: from django.contrib.sites.models import Site diff --git a/credentials/apps/credentials/apps.py b/credentials/apps/credentials/apps.py index 3672ac97a..787835ff4 100644 --- a/credentials/apps/credentials/apps.py +++ b/credentials/apps/credentials/apps.py @@ -7,7 +7,6 @@ from django.apps import AppConfig from django.conf import settings - log = logging.getLogger(__name__) diff --git a/credentials/apps/credentials/issuers.py b/credentials/apps/credentials/issuers.py index c3d27b948..17899c55a 100644 --- a/credentials/apps/credentials/issuers.py +++ b/credentials/apps/credentials/issuers.py @@ -26,7 +26,6 @@ from credentials.apps.credentials.utils import send_program_certificate_created_message, validate_duplicate_attributes from credentials.apps.records.utils import send_updated_emails_for_program - logger = logging.getLogger(__name__) diff --git a/credentials/apps/credentials/management/commands/create_program_certificate_configuration.py b/credentials/apps/credentials/management/commands/create_program_certificate_configuration.py index 23dade0dc..f966288f3 100644 --- a/credentials/apps/credentials/management/commands/create_program_certificate_configuration.py +++ b/credentials/apps/credentials/management/commands/create_program_certificate_configuration.py @@ -8,7 +8,6 @@ from credentials.apps.catalog.models import Program from credentials.apps.credentials.models import ProgramCertificate - logger = logging.getLogger(__name__) diff --git a/credentials/apps/credentials/management/commands/populate_missing_courserun_info.py b/credentials/apps/credentials/management/commands/populate_missing_courserun_info.py index 0a60ca5cf..23ce2fc24 100644 --- a/credentials/apps/credentials/management/commands/populate_missing_courserun_info.py +++ b/credentials/apps/credentials/management/commands/populate_missing_courserun_info.py @@ -11,7 +11,6 @@ from credentials.apps.catalog.api import get_course_runs_by_course_run_keys from credentials.apps.credentials.models import CourseCertificate - if TYPE_CHECKING: from credentials.apps.catalog.models import CourseRun diff --git a/credentials/apps/credentials/management/commands/revoke_certificates.py b/credentials/apps/credentials/management/commands/revoke_certificates.py index c49564811..184ac18a3 100644 --- a/credentials/apps/credentials/management/commands/revoke_certificates.py +++ b/credentials/apps/credentials/management/commands/revoke_certificates.py @@ -9,7 +9,6 @@ from credentials.apps.credentials.models import RevokeCertificatesConfig, UserCredential - if TYPE_CHECKING: from argparse import ArgumentParser diff --git a/credentials/apps/credentials/management/commands/tests/test_create_program_certificate_configuration.py b/credentials/apps/credentials/management/commands/tests/test_create_program_certificate_configuration.py index b93179a35..7358bd271 100644 --- a/credentials/apps/credentials/management/commands/tests/test_create_program_certificate_configuration.py +++ b/credentials/apps/credentials/management/commands/tests/test_create_program_certificate_configuration.py @@ -18,7 +18,6 @@ ) from credentials.apps.credentials.models import ProgramCertificate - COMMAND = "create_program_certificate_configuration" diff --git a/credentials/apps/credentials/messages.py b/credentials/apps/credentials/messages.py index 696de7312..7592025f6 100644 --- a/credentials/apps/credentials/messages.py +++ b/credentials/apps/credentials/messages.py @@ -2,7 +2,6 @@ from edx_ace import MessageType - log = logging.getLogger(__name__) diff --git a/credentials/apps/credentials/models.py b/credentials/apps/credentials/models.py index d482e1724..03b0319a0 100644 --- a/credentials/apps/credentials/models.py +++ b/credentials/apps/credentials/models.py @@ -28,7 +28,6 @@ from credentials.apps.credentials import constants from credentials.apps.credentials.exceptions import NoMatchingProgramException - if TYPE_CHECKING: from credentials.apps.catalog.data import ProgramDetails diff --git a/credentials/apps/credentials/rest_api/urls.py b/credentials/apps/credentials/rest_api/urls.py index 06ed95dfc..a219af240 100644 --- a/credentials/apps/credentials/rest_api/urls.py +++ b/credentials/apps/credentials/rest_api/urls.py @@ -2,7 +2,6 @@ from credentials.apps.credentials.rest_api.v1 import urls as v1_credentials_api_urls - # NOTE: Although this is v1 and other APIs in this application are v2, # the API naming and code layout convention here is what we are using, per # https://openedx.atlassian.net/wiki/spaces/AC/pages/18350757/edX+REST+API+Conventions diff --git a/credentials/apps/credentials/rest_api/v1/tests/test_views.py b/credentials/apps/credentials/rest_api/v1/tests/test_views.py index 39b0baece..4d0142385 100644 --- a/credentials/apps/credentials/rest_api/v1/tests/test_views.py +++ b/credentials/apps/credentials/rest_api/v1/tests/test_views.py @@ -14,7 +14,6 @@ from credentials.apps.credentials.tests.factories import CourseCertificateFactory, UserCredentialFactory from credentials.apps.records.tests.factories import UserGradeFactory - if TYPE_CHECKING: from credentials.apps.core.models import User from credentials.apps.credentials.models import CourseCertificate, CourseRun diff --git a/credentials/apps/credentials/rest_api/v1/urls.py b/credentials/apps/credentials/rest_api/v1/urls.py index 7286232e1..21d8050f4 100644 --- a/credentials/apps/credentials/rest_api/v1/urls.py +++ b/credentials/apps/credentials/rest_api/v1/urls.py @@ -5,7 +5,6 @@ LearnerCertificateStatusView, ) - urlpatterns = [ path( "learner_cert_status/", diff --git a/credentials/apps/credentials/rest_api/v1/views.py b/credentials/apps/credentials/rest_api/v1/views.py index f7e83bbec..ad011bfc4 100644 --- a/credentials/apps/credentials/rest_api/v1/views.py +++ b/credentials/apps/credentials/rest_api/v1/views.py @@ -13,7 +13,6 @@ from credentials.apps.credentials.rest_api.v1.permissions import CanGetLearnerStatus from credentials.apps.records.api import single_learner_cert_status - log = logging.getLogger(__name__) diff --git a/credentials/apps/credentials/signals.py b/credentials/apps/credentials/signals.py index b075cf332..7d97a4621 100644 --- a/credentials/apps/credentials/signals.py +++ b/credentials/apps/credentials/signals.py @@ -12,7 +12,6 @@ from credentials.apps.credentials.api import process_course_credential_update from credentials.apps.credentials.constants import UserCredentialStatus - logger = logging.getLogger(__name__) diff --git a/credentials/apps/credentials/templatetags/html.py b/credentials/apps/credentials/templatetags/html.py index 910ed9a20..5f50f680d 100644 --- a/credentials/apps/credentials/templatetags/html.py +++ b/credentials/apps/credentials/templatetags/html.py @@ -6,7 +6,6 @@ from django.template.defaultfilters import date from django.utils.translation import get_language - register = template.Library() diff --git a/credentials/apps/credentials/templatetags/i18n_assets.py b/credentials/apps/credentials/templatetags/i18n_assets.py index 2e451e1f1..ad51c605c 100644 --- a/credentials/apps/credentials/templatetags/i18n_assets.py +++ b/credentials/apps/credentials/templatetags/i18n_assets.py @@ -11,7 +11,6 @@ from django.template.loader import select_template from django.utils.translation import get_language - register = template.Library() logger = logging.getLogger(__name__) diff --git a/credentials/apps/credentials/tests/factories.py b/credentials/apps/credentials/tests/factories.py index 925295724..38b2c909a 100644 --- a/credentials/apps/credentials/tests/factories.py +++ b/credentials/apps/credentials/tests/factories.py @@ -8,7 +8,6 @@ from credentials.apps.core.tests.factories import SiteFactory from credentials.apps.credentials import constants, models - if TYPE_CHECKING: from credentials.apps.credentials.models import CourseRun diff --git a/credentials/apps/credentials/tests/test_apps.py b/credentials/apps/credentials/tests/test_apps.py index cfdbe28fe..66d3abaf9 100644 --- a/credentials/apps/credentials/tests/test_apps.py +++ b/credentials/apps/credentials/tests/test_apps.py @@ -3,7 +3,6 @@ from django.test import TestCase from testfixtures import LogCapture - LOGGER_NAME = "credentials.apps.credentials.apps" diff --git a/credentials/apps/credentials/tests/test_issuer.py b/credentials/apps/credentials/tests/test_issuer.py index 97d13675c..fb1a1b1c3 100644 --- a/credentials/apps/credentials/tests/test_issuer.py +++ b/credentials/apps/credentials/tests/test_issuer.py @@ -27,7 +27,6 @@ UserCredentialFactory, ) - User = get_user_model() LOGGER_NAME = "credentials.apps.credentials.issuers" diff --git a/credentials/apps/credentials/tests/test_models.py b/credentials/apps/credentials/tests/test_models.py index 921580a95..f59033223 100644 --- a/credentials/apps/credentials/tests/test_models.py +++ b/credentials/apps/credentials/tests/test_models.py @@ -30,7 +30,6 @@ ) from credentials.settings.base import MEDIA_ROOT - TEST_DATA_ROOT = MEDIA_ROOT + "/test/data/" diff --git a/credentials/apps/credentials/tests/test_utils.py b/credentials/apps/credentials/tests/test_utils.py index c62699680..22a390ff5 100644 --- a/credentials/apps/credentials/tests/test_utils.py +++ b/credentials/apps/credentials/tests/test_utils.py @@ -16,7 +16,6 @@ from credentials.apps.credentials.tests.factories import ProgramCertificateFactory from credentials.apps.credentials.utils import send_program_certificate_created_message, validate_duplicate_attributes - User = get_user_model() diff --git a/credentials/apps/credentials/urls.py b/credentials/apps/credentials/urls.py index 8fb1ee391..728c6e80f 100644 --- a/credentials/apps/credentials/urls.py +++ b/credentials/apps/credentials/urls.py @@ -7,7 +7,6 @@ from credentials.apps.credentials import views from credentials.apps.credentials.constants import UUID_PATTERN - urlpatterns = [ path("example/", views.ExampleCredential.as_view(), name="example"), re_path(rf"^example/{UUID_PATTERN}/$", views.RenderExampleProgramCredential.as_view(), name="render_example"), diff --git a/credentials/apps/credentials/utils.py b/credentials/apps/credentials/utils.py index 03706ef32..ca2e25292 100644 --- a/credentials/apps/credentials/utils.py +++ b/credentials/apps/credentials/utils.py @@ -14,7 +14,6 @@ from credentials.apps.credentials.messages import ProgramCertificateIssuedMessage from credentials.apps.credentials.models import ProgramCompletionEmailConfiguration, UserCredential - if TYPE_CHECKING: from django.db.models import DateTimeField from django.db.models.query import QuerySet diff --git a/credentials/apps/credentials/views.py b/credentials/apps/credentials/views.py index fbb32661f..b05969824 100644 --- a/credentials/apps/credentials/views.py +++ b/credentials/apps/credentials/views.py @@ -20,7 +20,6 @@ from credentials.apps.credentials.models import ProgramCertificate, UserCredential from credentials.apps.credentials.utils import get_credential_visible_date, to_language - logger = logging.getLogger(__name__) diff --git a/credentials/apps/edx_django_extensions/urls.py b/credentials/apps/edx_django_extensions/urls.py index ba3437cce..83c35c2a1 100644 --- a/credentials/apps/edx_django_extensions/urls.py +++ b/credentials/apps/edx_django_extensions/urls.py @@ -2,7 +2,6 @@ from credentials.apps.edx_django_extensions import views - urlpatterns = [ path("", views.ManagementView.as_view(), name="index"), ] diff --git a/credentials/apps/edx_django_extensions/views.py b/credentials/apps/edx_django_extensions/views.py index 0037a65f6..ea690e9c0 100644 --- a/credentials/apps/edx_django_extensions/views.py +++ b/credentials/apps/edx_django_extensions/views.py @@ -6,7 +6,6 @@ from django.utils.translation import gettext as _ from django.views.generic import TemplateView - logger = logging.getLogger(__name__) diff --git a/credentials/apps/plugins/constants.py b/credentials/apps/plugins/constants.py index c46dfe4b3..8c37a664c 100644 --- a/credentials/apps/plugins/constants.py +++ b/credentials/apps/plugins/constants.py @@ -8,7 +8,6 @@ from edx_django_utils.plugins import PluginSignals # pylint: disable=unused-import from edx_django_utils.plugins import PluginURLs # pylint: disable=unused-import - PROJECT_TYPE = "credentials.djangoapp" diff --git a/credentials/apps/records/api.py b/credentials/apps/records/api.py index cb9d265ca..6c07e5393 100644 --- a/credentials/apps/records/api.py +++ b/credentials/apps/records/api.py @@ -19,7 +19,6 @@ from credentials.apps.records.models import ProgramCertRecord, UserCreditPathway, UserGrade from credentials.apps.records.utils import get_credentials - if TYPE_CHECKING: from credentials.apps.credentials.models import CourseRun diff --git a/credentials/apps/records/management/commands/seed-records.py b/credentials/apps/records/management/commands/seed-records.py index 6216b1118..0f6593c20 100644 --- a/credentials/apps/records/management/commands/seed-records.py +++ b/credentials/apps/records/management/commands/seed-records.py @@ -16,7 +16,6 @@ from credentials.settings.base import TIME_ZONE_CLASS from credentials.shared.constants import PathwayType - logger = logging.getLogger(__name__) diff --git a/credentials/apps/records/rest_api/urls.py b/credentials/apps/records/rest_api/urls.py index 7deee7808..c76996407 100644 --- a/credentials/apps/records/rest_api/urls.py +++ b/credentials/apps/records/rest_api/urls.py @@ -2,7 +2,6 @@ from credentials.apps.records.rest_api.v1 import urls as v1_records_rest_api_urls - urlpatterns = [ path("v1/", include((v1_records_rest_api_urls, "v1"), namespace="v1")), ] diff --git a/credentials/apps/records/rest_api/v1/urls.py b/credentials/apps/records/rest_api/v1/urls.py index b6dd22922..b87a6d9da 100644 --- a/credentials/apps/records/rest_api/v1/urls.py +++ b/credentials/apps/records/rest_api/v1/urls.py @@ -2,7 +2,6 @@ from credentials.apps.records.rest_api.v1 import views - router = routers.DefaultRouter() router.register(r"program_records", views.ProgramRecordsViewSet, basename="records") diff --git a/credentials/apps/records/rest_api/v1/views.py b/credentials/apps/records/rest_api/v1/views.py index 44f00b6a9..60fdc37e4 100644 --- a/credentials/apps/records/rest_api/v1/views.py +++ b/credentials/apps/records/rest_api/v1/views.py @@ -13,7 +13,6 @@ from credentials.apps.records.rest_api.v1.serializers import ProgramRecordSerializer, ProgramSerializer from credentials.apps.records.utils import get_user_program_data - User = get_user_model() log = logging.getLogger(__name__) diff --git a/credentials/apps/records/tests/test_views.py b/credentials/apps/records/tests/test_views.py index 91de024dc..a2ab3e3de 100644 --- a/credentials/apps/records/tests/test_views.py +++ b/credentials/apps/records/tests/test_views.py @@ -43,7 +43,6 @@ ) from credentials.apps.records.tests.utils import dump_random_state - JSON_CONTENT_TYPE = "application/json" diff --git a/credentials/apps/records/urls.py b/credentials/apps/records/urls.py index 56e36e27c..681df9db5 100644 --- a/credentials/apps/records/urls.py +++ b/credentials/apps/records/urls.py @@ -4,7 +4,6 @@ from . import views - urlpatterns = [ path("", views.RecordsView.as_view(), name="index"), path("api/", include(("credentials.apps.records.rest_api.urls", "api"), namespace="api")), diff --git a/credentials/apps/records/utils.py b/credentials/apps/records/utils.py index 628c745ad..7fa367ce9 100644 --- a/credentials/apps/records/utils.py +++ b/credentials/apps/records/utils.py @@ -21,7 +21,6 @@ from credentials.apps.records.messages import ProgramCreditRequest from credentials.apps.records.models import ProgramCertRecord, UserCreditPathway - if TYPE_CHECKING: from django.contrib.sites.models import Site diff --git a/credentials/apps/records/views.py b/credentials/apps/records/views.py index b4af70a69..db6330a22 100644 --- a/credentials/apps/records/views.py +++ b/credentials/apps/records/views.py @@ -33,7 +33,6 @@ from .constants import RECORDS_RATE_LIMIT - if TYPE_CHECKING: from credentials.apps.core.models import SiteConfiguration diff --git a/credentials/apps/verifiable_credentials/composition/status_list.py b/credentials/apps/verifiable_credentials/composition/status_list.py index 53385b9a3..e3768dcab 100644 --- a/credentials/apps/verifiable_credentials/composition/status_list.py +++ b/credentials/apps/verifiable_credentials/composition/status_list.py @@ -7,7 +7,6 @@ from ..settings import vc_settings from . import CredentialDataModel - STATUS_LIST_PURPOSE = "revocation" diff --git a/credentials/apps/verifiable_credentials/conftest.py b/credentials/apps/verifiable_credentials/conftest.py index 2c2b62371..437033a1e 100644 --- a/credentials/apps/verifiable_credentials/conftest.py +++ b/credentials/apps/verifiable_credentials/conftest.py @@ -2,6 +2,7 @@ """ Pytest: Verifiable Credentials base testing config/fixtures. """ + import pytest from credentials.apps.catalog.tests.factories import ( @@ -18,7 +19,6 @@ ) from credentials.apps.verifiable_credentials.issuance.tests.factories import IssuanceLineFactory - TEST_ISSUER_CONFIG = { "ID": "test-issuer-did", "KEY": "test-issuer-key", diff --git a/credentials/apps/verifiable_credentials/issuance/main.py b/credentials/apps/verifiable_credentials/issuance/main.py index a82bce879..52b2cf81e 100644 --- a/credentials/apps/verifiable_credentials/issuance/main.py +++ b/credentials/apps/verifiable_credentials/issuance/main.py @@ -18,7 +18,6 @@ from ..storages.utils import get_storage from .models import IssuanceLine - logger = logging.getLogger(__name__) diff --git a/credentials/apps/verifiable_credentials/issuance/models.py b/credentials/apps/verifiable_credentials/issuance/models.py index 1c7340ae0..82a6e615c 100644 --- a/credentials/apps/verifiable_credentials/issuance/models.py +++ b/credentials/apps/verifiable_credentials/issuance/models.py @@ -21,7 +21,6 @@ from ..settings import vc_settings from ..storages.utils import get_storage - User = get_user_model() diff --git a/credentials/apps/verifiable_credentials/issuance/status_list.py b/credentials/apps/verifiable_credentials/issuance/status_list.py index 611ea61e4..f46dc64cc 100644 --- a/credentials/apps/verifiable_credentials/issuance/status_list.py +++ b/credentials/apps/verifiable_credentials/issuance/status_list.py @@ -13,7 +13,6 @@ from ..settings import vc_settings from . import IssuanceException - logger = logging.getLogger(__name__) diff --git a/credentials/apps/verifiable_credentials/issuance/tests/test_main.py b/credentials/apps/verifiable_credentials/issuance/tests/test_main.py index 99713c490..4d5d72ce8 100644 --- a/credentials/apps/verifiable_credentials/issuance/tests/test_main.py +++ b/credentials/apps/verifiable_credentials/issuance/tests/test_main.py @@ -27,7 +27,6 @@ from .. import IssuanceException - LOGGER_NAME = "credentials.apps.verifiable_credentials.issuance.main" diff --git a/credentials/apps/verifiable_credentials/issuance/tests/test_status_list.py b/credentials/apps/verifiable_credentials/issuance/tests/test_status_list.py index c113d0c33..de2b61827 100644 --- a/credentials/apps/verifiable_credentials/issuance/tests/test_status_list.py +++ b/credentials/apps/verifiable_credentials/issuance/tests/test_status_list.py @@ -8,7 +8,6 @@ from .. import IssuanceException from ..status_list import issue_status_list - LOGGER_NAME = "credentials.apps.verifiable_credentials.issuance.status_list" diff --git a/credentials/apps/verifiable_credentials/management/commands/create_default_issuer.py b/credentials/apps/verifiable_credentials/management/commands/create_default_issuer.py index f3496dbb7..8d7032130 100644 --- a/credentials/apps/verifiable_credentials/management/commands/create_default_issuer.py +++ b/credentials/apps/verifiable_credentials/management/commands/create_default_issuer.py @@ -13,7 +13,6 @@ is_verifiable_credentials_enabled, ) - logger = logging.getLogger(__name__) diff --git a/credentials/apps/verifiable_credentials/management/commands/generate_issuer_credentials.py b/credentials/apps/verifiable_credentials/management/commands/generate_issuer_credentials.py index 6e5daab29..220d32cd2 100644 --- a/credentials/apps/verifiable_credentials/management/commands/generate_issuer_credentials.py +++ b/credentials/apps/verifiable_credentials/management/commands/generate_issuer_credentials.py @@ -6,7 +6,6 @@ import didkit from django.core.management import BaseCommand - logger = logging.getLogger(__name__) diff --git a/credentials/apps/verifiable_credentials/management/commands/generate_status_list.py b/credentials/apps/verifiable_credentials/management/commands/generate_status_list.py index 3eb6456c5..36b3a79f5 100644 --- a/credentials/apps/verifiable_credentials/management/commands/generate_status_list.py +++ b/credentials/apps/verifiable_credentials/management/commands/generate_status_list.py @@ -7,7 +7,6 @@ from credentials.apps.verifiable_credentials.issuance.status_list import issue_status_list - logger = logging.getLogger(__name__) diff --git a/credentials/apps/verifiable_credentials/management/commands/remove_issuance_configuration.py b/credentials/apps/verifiable_credentials/management/commands/remove_issuance_configuration.py index f6c03dbd7..913dd0cbd 100644 --- a/credentials/apps/verifiable_credentials/management/commands/remove_issuance_configuration.py +++ b/credentials/apps/verifiable_credentials/management/commands/remove_issuance_configuration.py @@ -8,7 +8,6 @@ from credentials.apps.verifiable_credentials.issuance.models import IssuanceConfiguration - logger = logging.getLogger(__name__) diff --git a/credentials/apps/verifiable_credentials/management/commands/tests/test_create_default_issuer.py b/credentials/apps/verifiable_credentials/management/commands/tests/test_create_default_issuer.py index 444917f56..671f34972 100644 --- a/credentials/apps/verifiable_credentials/management/commands/tests/test_create_default_issuer.py +++ b/credentials/apps/verifiable_credentials/management/commands/tests/test_create_default_issuer.py @@ -5,7 +5,6 @@ from ..create_default_issuer import Command as CreateDefaultIssuerCommand - logger = logging.getLogger(__name__) diff --git a/credentials/apps/verifiable_credentials/permissions.py b/credentials/apps/verifiable_credentials/permissions.py index 5bc6aee55..07b05e14d 100644 --- a/credentials/apps/verifiable_credentials/permissions.py +++ b/credentials/apps/verifiable_credentials/permissions.py @@ -11,7 +11,6 @@ from .issuance.models import IssuanceLine from .issuance.utils import didkit_verify_presentation - logger = logging.getLogger(__name__) diff --git a/credentials/apps/verifiable_credentials/rest_api/urls.py b/credentials/apps/verifiable_credentials/rest_api/urls.py index d16a82d6d..6ee08f793 100644 --- a/credentials/apps/verifiable_credentials/rest_api/urls.py +++ b/credentials/apps/verifiable_credentials/rest_api/urls.py @@ -2,7 +2,6 @@ from django.urls import include, path - urlpatterns = [ path("v1/", include(("credentials.apps.verifiable_credentials.rest_api.v1.urls", "v1"), namespace="v1")), ] diff --git a/credentials/apps/verifiable_credentials/rest_api/v1/tests/test_views.py b/credentials/apps/verifiable_credentials/rest_api/v1/tests/test_views.py index f2afd8093..ba80dd5e1 100644 --- a/credentials/apps/verifiable_credentials/rest_api/v1/tests/test_views.py +++ b/credentials/apps/verifiable_credentials/rest_api/v1/tests/test_views.py @@ -25,7 +25,6 @@ from credentials.apps.verifiable_credentials.storages.learner_credential_wallet import LCWallet from credentials.apps.verifiable_credentials.utils import get_user_credentials_data - JSON_CONTENT_TYPE = "application/json" diff --git a/credentials/apps/verifiable_credentials/rest_api/v1/urls.py b/credentials/apps/verifiable_credentials/rest_api/v1/urls.py index 103577134..d23c47a4c 100644 --- a/credentials/apps/verifiable_credentials/rest_api/v1/urls.py +++ b/credentials/apps/verifiable_credentials/rest_api/v1/urls.py @@ -7,7 +7,6 @@ from credentials.apps.verifiable_credentials.rest_api.v1 import views - router = routers.DefaultRouter() router.register(r"credentials", views.CredentialsViewSet, basename="credentials") diff --git a/credentials/apps/verifiable_credentials/rest_api/v1/views.py b/credentials/apps/verifiable_credentials/rest_api/v1/views.py index af48b2c26..7a86d4505 100644 --- a/credentials/apps/verifiable_credentials/rest_api/v1/views.py +++ b/credentials/apps/verifiable_credentials/rest_api/v1/views.py @@ -29,7 +29,6 @@ is_valid_uuid, ) - logger = logging.getLogger(__name__) User = get_user_model() @@ -170,10 +169,8 @@ def post(self, request): storage = get_storage(storage_id) if not storage: available_storages_ids = [storage.ID for storage in get_available_storages()] - msg = _( - "Provided storage backend ({storage_id}) isn't active. \ - Storages: {active_storages}" - ).format(storage_id=storage_id, active_storages=available_storages_ids) + msg = _("Provided storage backend ({storage_id}) isn't active. \ + Storages: {active_storages}").format(storage_id=storage_id, active_storages=available_storages_ids) logger.exception(msg) raise NotFound({"storage_id": msg}) diff --git a/credentials/apps/verifiable_credentials/settings.py b/credentials/apps/verifiable_credentials/settings.py index 182184896..71bcade40 100644 --- a/credentials/apps/verifiable_credentials/settings.py +++ b/credentials/apps/verifiable_credentials/settings.py @@ -19,7 +19,6 @@ from django.core.signals import setting_changed from django.utils.module_loading import import_string - logger = logging.getLogger(__name__) DEFAULTS = { diff --git a/credentials/apps/verifiable_credentials/toggles.py b/credentials/apps/verifiable_credentials/toggles.py index 766e61a01..188ba1159 100644 --- a/credentials/apps/verifiable_credentials/toggles.py +++ b/credentials/apps/verifiable_credentials/toggles.py @@ -4,7 +4,6 @@ from edx_toggles.toggles import SettingToggle - # .. toggle_name: ENABLE_VERIFIABLE_CREDENTIALS # .. toggle_implementation: DjangoSetting # .. toggle_default: False diff --git a/credentials/apps/verifiable_credentials/urls.py b/credentials/apps/verifiable_credentials/urls.py index 1957b41a6..dfd0cd70f 100644 --- a/credentials/apps/verifiable_credentials/urls.py +++ b/credentials/apps/verifiable_credentials/urls.py @@ -4,7 +4,6 @@ from django.urls import include, path - urlpatterns = [ path("api/", include(("credentials.apps.verifiable_credentials.rest_api.urls", "api"), namespace="api")), ] diff --git a/credentials/conf/locale/en/LC_MESSAGES/django.po b/credentials/conf/locale/en/LC_MESSAGES/django.po index e54b902b8..1fafa911d 100644 --- a/credentials/conf/locale/en/LC_MESSAGES/django.po +++ b/credentials/conf/locale/en/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # edX translation file. -# Copyright (C) 2025 EdX +# Copyright (C) 2026 EdX # This file is distributed under the GNU AFFERO GENERAL PUBLIC LICENSE. -# EdX Team , 2025. +# EdX Team , 2026. # msgid "" msgstr "" diff --git a/credentials/conf/locale/en/LC_MESSAGES/djangojs.po b/credentials/conf/locale/en/LC_MESSAGES/djangojs.po index b6338fef5..fd8ee0850 100644 --- a/credentials/conf/locale/en/LC_MESSAGES/djangojs.po +++ b/credentials/conf/locale/en/LC_MESSAGES/djangojs.po @@ -1,7 +1,7 @@ # edX translation file. -# Copyright (C) 2025 EdX +# Copyright (C) 2026 EdX # This file is distributed under the GNU AFFERO GENERAL PUBLIC LICENSE. -# EdX Team , 2025. +# EdX Team , 2026. # msgid "" msgstr "" diff --git a/credentials/conf/locale/eo/LC_MESSAGES/django.po b/credentials/conf/locale/eo/LC_MESSAGES/django.po index 496cf2f21..c86b7f351 100644 --- a/credentials/conf/locale/eo/LC_MESSAGES/django.po +++ b/credentials/conf/locale/eo/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # edX translation file. -# Copyright (C) 2025 EdX +# Copyright (C) 2026 EdX # This file is distributed under the GNU AFFERO GENERAL PUBLIC LICENSE. -# EdX Team , 2025. +# EdX Team , 2026. # msgid "" msgstr "" diff --git a/credentials/conf/locale/eo/LC_MESSAGES/djangojs.po b/credentials/conf/locale/eo/LC_MESSAGES/djangojs.po index a076364d7..49d99d213 100644 --- a/credentials/conf/locale/eo/LC_MESSAGES/djangojs.po +++ b/credentials/conf/locale/eo/LC_MESSAGES/djangojs.po @@ -1,7 +1,7 @@ # edX translation file. -# Copyright (C) 2025 EdX +# Copyright (C) 2026 EdX # This file is distributed under the GNU AFFERO GENERAL PUBLIC LICENSE. -# EdX Team , 2025. +# EdX Team , 2026. # msgid "" msgstr "" diff --git a/credentials/conf/locale/rtl/LC_MESSAGES/django.po b/credentials/conf/locale/rtl/LC_MESSAGES/django.po index 3389d2cfe..10b56b737 100644 --- a/credentials/conf/locale/rtl/LC_MESSAGES/django.po +++ b/credentials/conf/locale/rtl/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # edX translation file. -# Copyright (C) 2025 EdX +# Copyright (C) 2026 EdX # This file is distributed under the GNU AFFERO GENERAL PUBLIC LICENSE. -# EdX Team , 2025. +# EdX Team , 2026. # msgid "" msgstr "" diff --git a/credentials/conf/locale/rtl/LC_MESSAGES/djangojs.po b/credentials/conf/locale/rtl/LC_MESSAGES/djangojs.po index 5b58270f4..78c14360b 100644 --- a/credentials/conf/locale/rtl/LC_MESSAGES/djangojs.po +++ b/credentials/conf/locale/rtl/LC_MESSAGES/djangojs.po @@ -1,7 +1,7 @@ # edX translation file. -# Copyright (C) 2025 EdX +# Copyright (C) 2026 EdX # This file is distributed under the GNU AFFERO GENERAL PUBLIC LICENSE. -# EdX Team , 2025. +# EdX Team , 2026. # msgid "" msgstr "" diff --git a/credentials/docker_gunicorn_configuration.py b/credentials/docker_gunicorn_configuration.py index b8b5b3ee2..bc0e7ed7a 100644 --- a/credentials/docker_gunicorn_configuration.py +++ b/credentials/docker_gunicorn_configuration.py @@ -8,7 +8,6 @@ from django.core import cache as django_cache from django.core.management import call_command - preload_app = True timeout = 300 bind = "0.0.0.0:18150" diff --git a/credentials/settings/base.py b/credentials/settings/base.py index f2ecf8b50..11899a3ae 100644 --- a/credentials/settings/base.py +++ b/credentials/settings/base.py @@ -10,7 +10,6 @@ from credentials.settings.utils import get_logger_config from credentials.apps.plugins.constants import PROJECT_TYPE, SettingsType - # PATH vars here = lambda *x: join(abspath(dirname(__file__)), *x) diff --git a/credentials/urls.py b/credentials/urls.py index 2906694e6..5a32a7c13 100644 --- a/credentials/urls.py +++ b/credentials/urls.py @@ -33,7 +33,6 @@ from credentials.apps.verifiable_credentials.toggles import is_verifiable_credentials_enabled from credentials.views import FaviconView - admin.autodiscover() admin.site.site_header = _("Credentials Administration") admin.site.site_title = admin.site.site_header diff --git a/credentials/wsgi.py b/credentials/wsgi.py index 49bd84910..892dc91f7 100644 --- a/credentials/wsgi.py +++ b/credentials/wsgi.py @@ -13,7 +13,6 @@ from django.core.wsgi import get_wsgi_application - SITE_ROOT = dirname(dirname(abspath(__file__))) path.append(SITE_ROOT) From f20331e0cbcf1af48d6068e3327634b2b768fa96 Mon Sep 17 00:00:00 2001 From: Deborah Kaplan Date: Tue, 3 Feb 2026 18:35:56 +0000 Subject: [PATCH 3/4] chore: updating requirements ran make upgrade to deal with the conflict, which incidentally will also bring in the security patch for django --- requirements/all.txt | 26 +++++++++++++------------- requirements/base.txt | 14 +++++++------- requirements/common_constraints.txt | 6 ++++++ requirements/dev.txt | 20 ++++++++++---------- requirements/django.txt | 2 +- requirements/docs.txt | 2 +- requirements/pip.txt | 4 +++- requirements/production.txt | 20 ++++++++++---------- requirements/test.txt | 18 +++++++++--------- requirements/translations.txt | 4 ++-- 10 files changed, 62 insertions(+), 54 deletions(-) diff --git a/requirements/all.txt b/requirements/all.txt index fae6982c8..f5f5a1a42 100644 --- a/requirements/all.txt +++ b/requirements/all.txt @@ -9,7 +9,7 @@ anyio==4.12.1 # -r requirements/dev.txt # -r requirements/production.txt # httpx -asgiref==3.11.0 +asgiref==3.11.1 # via # -r requirements/dev.txt # -r requirements/production.txt @@ -37,11 +37,11 @@ bleach==6.3.0 # via # -r requirements/dev.txt # -r requirements/production.txt -boto3==1.42.35 +boto3==1.42.40 # via # -r requirements/production.txt # django-ses -botocore==1.42.35 +botocore==1.42.40 # via # -r requirements/production.txt # boto3 @@ -51,7 +51,7 @@ cachecontrol==0.14.4 # -r requirements/dev.txt # -r requirements/production.txt # firebase-admin -cachetools==6.2.5 +cachetools==7.0.0 # via # -r requirements/dev.txt # tox @@ -111,9 +111,9 @@ coreschema==0.0.4 # -r requirements/dev.txt # -r requirements/production.txt # coreapi -coverage==7.13.2 +coverage==7.13.3 # via -r requirements/dev.txt -cryptography==46.0.3 +cryptography==46.0.4 # via # -r requirements/dev.txt # -r requirements/production.txt @@ -139,7 +139,7 @@ distlib==0.4.0 # via # -r requirements/dev.txt # virtualenv -django==5.2.10 +django==5.2.11 # via # -c requirements/common_constraints.txt # -r requirements/dev.txt @@ -406,7 +406,7 @@ google-cloud-firestore==2.23.0 # -r requirements/dev.txt # -r requirements/production.txt # firebase-admin -google-cloud-storage==3.8.0 +google-cloud-storage==3.9.0 # via # -r requirements/dev.txt # -r requirements/production.txt @@ -443,7 +443,7 @@ grpcio-status==1.76.0 # -r requirements/dev.txt # -r requirements/production.txt # google-api-core -gunicorn==24.1.1 +gunicorn==25.0.1 # via -r requirements/production.txt h11==0.16.0 # via @@ -622,13 +622,13 @@ polib==1.2.0 # -r requirements/dev.txt # -r requirements/production.txt # edx-i18n-tools -proto-plus==1.27.0 +proto-plus==1.27.1 # via # -r requirements/dev.txt # -r requirements/production.txt # google-api-core # google-cloud-firestore -protobuf==6.33.4 +protobuf==6.33.5 # via # -r requirements/dev.txt # -r requirements/production.txt @@ -637,7 +637,7 @@ protobuf==6.33.4 # googleapis-common-protos # grpcio-status # proto-plus -psutil==7.2.1 +psutil==7.2.2 # via # -r requirements/dev.txt # -r requirements/production.txt @@ -739,7 +739,7 @@ python3-openid==3.2.0 # -r requirements/dev.txt # -r requirements/production.txt # social-auth-core -pytokens==0.4.0 +pytokens==0.4.1 # via # -r requirements/dev.txt # black diff --git a/requirements/base.txt b/requirements/base.txt index 0c506ebca..f0b4aa150 100644 --- a/requirements/base.txt +++ b/requirements/base.txt @@ -6,7 +6,7 @@ # anyio==4.12.1 # via httpx -asgiref==3.11.0 +asgiref==3.11.1 # via # django # django-cors-headers @@ -44,7 +44,7 @@ coreapi==2.3.3 # openapi-codec coreschema==0.0.4 # via coreapi -cryptography==46.0.3 +cryptography==46.0.4 # via # google-auth # pyjwt @@ -54,7 +54,7 @@ defusedxml==0.7.1 # social-auth-core didkit==0.3.3 # via -r requirements/base.in -django==5.2.10 +django==5.2.11 # via # -c requirements/common_constraints.txt # -r requirements/base.in @@ -207,7 +207,7 @@ google-cloud-core==2.5.0 # google-cloud-storage google-cloud-firestore==2.23.0 # via firebase-admin -google-cloud-storage==3.8.0 +google-cloud-storage==3.9.0 # via firebase-admin google-crc32c==1.8.0 # via @@ -286,18 +286,18 @@ pillow==12.1.0 # via -r requirements/base.in polib==1.2.0 # via edx-i18n-tools -proto-plus==1.27.0 +proto-plus==1.27.1 # via # google-api-core # google-cloud-firestore -protobuf==6.33.4 +protobuf==6.33.5 # via # google-api-core # google-cloud-firestore # googleapis-common-protos # grpcio-status # proto-plus -psutil==7.2.1 +psutil==7.2.2 # via edx-django-utils pyasn1==0.6.2 # via diff --git a/requirements/common_constraints.txt b/requirements/common_constraints.txt index 43c7b4d2e..5207999a4 100644 --- a/requirements/common_constraints.txt +++ b/requirements/common_constraints.txt @@ -23,3 +23,9 @@ Django<6.0 # 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/dev.txt b/requirements/dev.txt index 44f0dc041..5d01a9297 100644 --- a/requirements/dev.txt +++ b/requirements/dev.txt @@ -8,7 +8,7 @@ anyio==4.12.1 # via # -r requirements/test.txt # httpx -asgiref==3.11.0 +asgiref==3.11.1 # via # -r requirements/test.txt # django @@ -35,7 +35,7 @@ cachecontrol==0.14.4 # via # -r requirements/test.txt # firebase-admin -cachetools==6.2.5 +cachetools==7.0.0 # via # -r requirements/test.txt # tox @@ -88,9 +88,9 @@ coreschema==0.0.4 # via # -r requirements/test.txt # coreapi -coverage==7.13.2 +coverage==7.13.3 # via -r requirements/test.txt -cryptography==46.0.3 +cryptography==46.0.4 # via # -r requirements/test.txt # google-auth @@ -112,7 +112,7 @@ distlib==0.4.0 # via # -r requirements/test.txt # virtualenv -django==5.2.10 +django==5.2.11 # via # -c requirements/common_constraints.txt # -r requirements/test.txt @@ -310,7 +310,7 @@ google-cloud-firestore==2.23.0 # via # -r requirements/test.txt # firebase-admin -google-cloud-storage==3.8.0 +google-cloud-storage==3.9.0 # via # -r requirements/test.txt # firebase-admin @@ -476,12 +476,12 @@ polib==1.2.0 # via # -r requirements/test.txt # edx-i18n-tools -proto-plus==1.27.0 +proto-plus==1.27.1 # via # -r requirements/test.txt # google-api-core # google-cloud-firestore -protobuf==6.33.4 +protobuf==6.33.5 # via # -r requirements/test.txt # google-api-core @@ -489,7 +489,7 @@ protobuf==6.33.4 # googleapis-common-protos # grpcio-status # proto-plus -psutil==7.2.1 +psutil==7.2.2 # via # -r requirements/test.txt # edx-django-utils @@ -575,7 +575,7 @@ python3-openid==3.2.0 # via # -r requirements/test.txt # social-auth-core -pytokens==0.4.0 +pytokens==0.4.1 # via # -r requirements/test.txt # black diff --git a/requirements/django.txt b/requirements/django.txt index 5c02b4d56..331730a28 100644 --- a/requirements/django.txt +++ b/requirements/django.txt @@ -1 +1 @@ -django==5.2.10 +django==5.2.11 diff --git a/requirements/docs.txt b/requirements/docs.txt index 795c1a15d..36c3f0bed 100644 --- a/requirements/docs.txt +++ b/requirements/docs.txt @@ -8,7 +8,7 @@ accessible-pygments==0.0.5 # via pydata-sphinx-theme alabaster==1.0.0 # via sphinx -babel==2.17.0 +babel==2.18.0 # via # pydata-sphinx-theme # sphinx diff --git a/requirements/pip.txt b/requirements/pip.txt index e9b7e0688..ca9d4270f 100644 --- a/requirements/pip.txt +++ b/requirements/pip.txt @@ -11,6 +11,8 @@ wheel==0.46.3 # The following packages are considered to be unsafe in a requirements file: pip==25.3 - # via -r requirements/pip.in + # via + # -c requirements/common_constraints.txt + # -r requirements/pip.in setuptools==80.10.2 # via -r requirements/pip.in diff --git a/requirements/production.txt b/requirements/production.txt index 1a4199a38..760079fbb 100644 --- a/requirements/production.txt +++ b/requirements/production.txt @@ -8,7 +8,7 @@ anyio==4.12.1 # via # -r requirements/base.txt # httpx -asgiref==3.11.0 +asgiref==3.11.1 # via # -r requirements/base.txt # django @@ -24,9 +24,9 @@ backoff==2.2.1 # segment-analytics-python bleach==6.3.0 # via -r requirements/base.txt -boto3==1.42.35 +boto3==1.42.40 # via django-ses -botocore==1.42.35 +botocore==1.42.40 # via # boto3 # s3transfer @@ -67,7 +67,7 @@ coreschema==0.0.4 # via # -r requirements/base.txt # coreapi -cryptography==46.0.3 +cryptography==46.0.4 # via # -r requirements/base.txt # google-auth @@ -79,7 +79,7 @@ defusedxml==0.7.1 # social-auth-core didkit==0.3.3 # via -r requirements/base.txt -django==5.2.10 +django==5.2.11 # via # -c requirements/common_constraints.txt # -r requirements/base.txt @@ -259,7 +259,7 @@ google-cloud-firestore==2.23.0 # via # -r requirements/base.txt # firebase-admin -google-cloud-storage==3.8.0 +google-cloud-storage==3.9.0 # via # -r requirements/base.txt # firebase-admin @@ -288,7 +288,7 @@ grpcio-status==1.76.0 # via # -r requirements/base.txt # google-api-core -gunicorn==24.1.1 +gunicorn==25.0.1 # via -r requirements/production.in h11==0.16.0 # via @@ -392,12 +392,12 @@ polib==1.2.0 # via # -r requirements/base.txt # edx-i18n-tools -proto-plus==1.27.0 +proto-plus==1.27.1 # via # -r requirements/base.txt # google-api-core # google-cloud-firestore -protobuf==6.33.4 +protobuf==6.33.5 # via # -r requirements/base.txt # google-api-core @@ -405,7 +405,7 @@ protobuf==6.33.4 # googleapis-common-protos # grpcio-status # proto-plus -psutil==7.2.1 +psutil==7.2.2 # via # -r requirements/base.txt # edx-django-utils diff --git a/requirements/test.txt b/requirements/test.txt index 7191ddc5e..ec2871457 100644 --- a/requirements/test.txt +++ b/requirements/test.txt @@ -8,7 +8,7 @@ anyio==4.12.1 # via # -r requirements/base.txt # httpx -asgiref==3.11.0 +asgiref==3.11.1 # via # -r requirements/base.txt # django @@ -34,7 +34,7 @@ cachecontrol==0.14.4 # via # -r requirements/base.txt # firebase-admin -cachetools==6.2.5 +cachetools==7.0.0 # via tox certifi==2026.1.4 # via @@ -80,9 +80,9 @@ coreschema==0.0.4 # via # -r requirements/base.txt # coreapi -coverage==7.13.2 +coverage==7.13.3 # via -r requirements/test.in -cryptography==46.0.3 +cryptography==46.0.4 # via # -r requirements/base.txt # google-auth @@ -284,7 +284,7 @@ google-cloud-firestore==2.23.0 # via # -r requirements/base.txt # firebase-admin -google-cloud-storage==3.8.0 +google-cloud-storage==3.9.0 # via # -r requirements/base.txt # firebase-admin @@ -434,12 +434,12 @@ polib==1.2.0 # via # -r requirements/base.txt # edx-i18n-tools -proto-plus==1.27.0 +proto-plus==1.27.1 # via # -r requirements/base.txt # google-api-core # google-cloud-firestore -protobuf==6.33.4 +protobuf==6.33.5 # via # -r requirements/base.txt # google-api-core @@ -447,7 +447,7 @@ protobuf==6.33.4 # googleapis-common-protos # grpcio-status # proto-plus -psutil==7.2.1 +psutil==7.2.2 # via # -r requirements/base.txt # edx-django-utils @@ -525,7 +525,7 @@ python3-openid==3.2.0 # via # -r requirements/base.txt # social-auth-core -pytokens==0.4.0 +pytokens==0.4.1 # via black pytz==2025.2 # via diff --git a/requirements/translations.txt b/requirements/translations.txt index ace935501..22f37b4a6 100644 --- a/requirements/translations.txt +++ b/requirements/translations.txt @@ -4,9 +4,9 @@ # # make upgrade # -asgiref==3.11.0 +asgiref==3.11.1 # via django -django==5.2.10 +django==5.2.11 # via # -c requirements/common_constraints.txt # edx-i18n-tools From 83c04e997e42a63380157141f4f82c04bc567d6b Mon Sep 17 00:00:00 2001 From: Deborah Kaplan Date: Tue, 3 Feb 2026 19:45:54 +0000 Subject: [PATCH 4/4] chore: updating isort config Making the configuration for isort match the new configuration for black --- pyproject.toml | 1 - 1 file changed, 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index f2ca6d892..c4de471b6 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -11,7 +11,6 @@ profile = "black" line_length = 120 multi_line_output = 3 known_first_party = ["credentials"] -lines_after_imports = 2 combine_as_imports = true skip = ["migrations", "settings"] include_trailing_comma = true