From a7a5a6f7ee17653ec4a8aabdd6ccf905087082f8 Mon Sep 17 00:00:00 2001 From: Kira Miller <31229189+kiram15@users.noreply.github.com> Date: Thu, 9 Apr 2026 15:29:05 +0000 Subject: [PATCH 1/4] feat: replace enterprise_support import with AccountSettingsReadOnlyFieldsRequested filter --- lms/envs/common.py | 12 +++ lms/envs/production.py | 14 +++ .../core/djangoapps/user_api/accounts/api.py | 10 ++- .../user_api/accounts/tests/test_api.py | 90 ++++--------------- requirements/edx/base.txt | 2 +- requirements/edx/development.txt | 2 +- requirements/edx/doc.txt | 2 +- requirements/edx/testing.txt | 2 +- 8 files changed, 56 insertions(+), 78 deletions(-) diff --git a/lms/envs/common.py b/lms/envs/common.py index 045eea8ec710..b465fd6eca21 100644 --- a/lms/envs/common.py +++ b/lms/envs/common.py @@ -3695,6 +3695,18 @@ def _should_send_certificate_events(settings): # The project ID should be obtained from the Google Cloud Console when creating a reCAPTCHA RECAPTCHA_PROJECT_ID = None +# .. setting_name: OPEN_EDX_FILTERS_CONFIG +# .. setting_default: {} +# .. setting_description: Configuration dict for openedx-filters pipeline steps. +# Keys are filter type strings; values are dicts with 'fail_silently' (bool) and +# 'pipeline' (list of dotted-path strings to PipelineStep subclasses). +OPEN_EDX_FILTERS_CONFIG = { + "org.openedx.learning.account.settings.read_only_fields.requested.v1": { + "fail_silently": True, + "pipeline": ["enterprise.filters.accounts.AccountSettingsReadOnlyFieldsStep"], + }, +} + ############################## Miscellaneous ############################### # To limit the number of courses displayed on learner dashboard diff --git a/lms/envs/production.py b/lms/envs/production.py index aeccaf0c0fbf..8045bc48df5b 100644 --- a/lms/envs/production.py +++ b/lms/envs/production.py @@ -84,6 +84,7 @@ def get_env_setting(setting): 'EVENT_BUS_PRODUCER_CONFIG', 'DEFAULT_FILE_STORAGE', 'STATICFILES_STORAGE', + 'OPEN_EDX_FILTERS_CONFIG', ] }) @@ -281,6 +282,19 @@ def get_env_setting(setting): EVENT_TRACKING_SEGMENTIO_EMIT_WHITELIST ) +# Merge OPEN_EDX_FILTERS_CONFIG from YAML into the default defined in common.py. +# Pipeline steps from YAML are appended after steps defined in common.py. +# The fail_silently value from YAML takes precedence over the one in common.py. +for _filter_type, _filter_config in _YAML_TOKENS.get('OPEN_EDX_FILTERS_CONFIG', {}).items(): + if _filter_type in OPEN_EDX_FILTERS_CONFIG: + OPEN_EDX_FILTERS_CONFIG[_filter_type]['pipeline'].extend( + _filter_config.get('pipeline', []) + ) + if 'fail_silently' in _filter_config: + OPEN_EDX_FILTERS_CONFIG[_filter_type]['fail_silently'] = _filter_config['fail_silently'] + else: + OPEN_EDX_FILTERS_CONFIG[_filter_type] = _filter_config + if ENABLE_THIRD_PARTY_AUTH: AUTHENTICATION_BACKENDS = _YAML_TOKENS.get('THIRD_PARTY_AUTH_BACKENDS', [ 'social_core.backends.google.GoogleOAuth2', diff --git a/openedx/core/djangoapps/user_api/accounts/api.py b/openedx/core/djangoapps/user_api/accounts/api.py index 6970ea6f852f..9fc2b0f228bd 100644 --- a/openedx/core/djangoapps/user_api/accounts/api.py +++ b/openedx/core/djangoapps/user_api/accounts/api.py @@ -38,8 +38,8 @@ from openedx.core.djangoapps.user_authn.utils import check_pwned_password from openedx.core.djangoapps.user_authn.views.registration_form import validate_name, validate_username from openedx.core.lib.api.view_utils import add_serializer_errors -from openedx.features.enterprise_support.utils import get_enterprise_readonly_account_fields from openedx.features.name_affirmation_api.utils import is_name_affirmation_installed +from openedx_filters.learning.filters import AccountSettingsReadOnlyFieldsRequested from .serializers import AccountLegacyProfileSerializer, AccountUserSerializer, UserReadOnlySerializer, _visible_fields @@ -193,11 +193,17 @@ def update_account_settings(requesting_user, update, username=None): def _validate_read_only_fields(user, data, field_errors): # Check for fields that are not editable. Marking them read-only causes them to be ignored, but we wish to 400. + plugin_readonly_fields, __ = AccountSettingsReadOnlyFieldsRequested.run_filter( + readonly_fields=set(), + user=user, + ) + plugin_readonly_fields = plugin_readonly_fields or set() + read_only_fields = set(data.keys()).intersection( # Remove email since it is handled separately below when checking for changing_email. (set(AccountUserSerializer.get_read_only_fields()) - {"email"}) | set(AccountLegacyProfileSerializer.get_read_only_fields() or set()) | - get_enterprise_readonly_account_fields(user) + plugin_readonly_fields ) for read_only_field in read_only_fields: diff --git a/openedx/core/djangoapps/user_api/accounts/tests/test_api.py b/openedx/core/djangoapps/user_api/accounts/tests/test_api.py index b779f4bd9a4a..600d51f5ea4a 100644 --- a/openedx/core/djangoapps/user_api/accounts/tests/test_api.py +++ b/openedx/core/djangoapps/user_api/accounts/tests/test_api.py @@ -4,7 +4,6 @@ """ import datetime -import itertools import unicodedata from unittest.mock import Mock, patch @@ -18,7 +17,6 @@ from django.test.client import RequestFactory from django.urls import reverse from pytz import UTC -from social_django.models import UserSocialAuth from common.djangoapps.student.models import ( AccountRecovery, @@ -104,10 +102,12 @@ def setUp(self): self.staff_user = UserFactory(is_staff=True, password=self.password) self.reset_tracker() - enterprise_patcher = patch('openedx.features.enterprise_support.api.enterprise_customer_for_request') - enterprise_learner_patcher = enterprise_patcher.start() - enterprise_learner_patcher.return_value = {} - self.addCleanup(enterprise_learner_patcher.stop) + filter_patcher = patch( + 'openedx.core.djangoapps.user_api.accounts.api.AccountSettingsReadOnlyFieldsRequested.run_filter', + return_value=(set(), None), + ) + filter_patcher.start() + self.addCleanup(filter_patcher.stop) def test_get_username_provided(self): """Test the difference in behavior when a username is supplied to get_account_settings.""" @@ -248,73 +248,19 @@ def test_update_success_for_enterprise(self): account_settings = get_account_settings(self.default_request)[0] assert level_of_education == account_settings['level_of_education'] - @patch('openedx.features.enterprise_support.api.enterprise_customer_for_request') - @patch('openedx.features.enterprise_support.utils.third_party_auth.provider.Registry.get') - @ddt.data( - *itertools.product( - # field_name_value values - (("email", "new_email@example.com"), ("name", "new name"), ("country", "IN")), - # is_enterprise_user - (True, False), - # is_synch_learner_profile_data - (True, False), - # has `UserSocialAuth` record - (True, False), - ) + @patch( + 'openedx.core.djangoapps.user_api.accounts.api.AccountSettingsReadOnlyFieldsRequested.run_filter', + return_value=({'country'}, None), ) - @ddt.unpack - def test_update_validation_error_for_enterprise( - self, - field_name_value, - is_enterprise_user, - is_synch_learner_profile_data, - has_user_social_auth_record, - mock_auth_provider, - mock_customer, - ): - idp_backend_name = 'tpa-saml' - mock_customer.return_value = {} - if is_enterprise_user: - mock_customer.return_value.update({ - 'uuid': 'real-ent-uuid', - 'name': 'Dummy Enterprise', - 'identity_provider': 'saml-ubc', - 'identity_providers': [ - { - "provider_id": "saml-ubc", - } - ], - }) - mock_auth_provider.return_value.sync_learner_profile_data = is_synch_learner_profile_data - mock_auth_provider.return_value.backend_name = idp_backend_name - - update_data = {field_name_value[0]: field_name_value[1]} - - user_fullname_editable = False - if has_user_social_auth_record: - UserSocialAuth.objects.create( - provider=idp_backend_name, - user=self.user - ) - else: - UserSocialAuth.objects.all().delete() - # user's fullname is editable if no `UserSocialAuth` record exists - user_fullname_editable = field_name_value[0] == 'name' - - # prevent actual email change requests - with patch('openedx.core.djangoapps.user_api.accounts.api.student_views.do_email_change_request'): - # expect field un-editability only when all of the following conditions are met - if is_enterprise_user and is_synch_learner_profile_data and not user_fullname_editable: - with pytest.raises(AccountValidationError) as validation_error: - update_account_settings(self.user, update_data) - field_errors = validation_error.value.field_errors - assert 'This field is not editable via this API' == \ - field_errors[field_name_value[0]]['developer_message'] - else: - update_account_settings(self.user, update_data) - account_settings = get_account_settings(self.default_request)[0] - if field_name_value[0] != "email": - assert field_name_value[1] == account_settings[field_name_value[0]] + def test_readonly_field_from_filter_is_rejected(self, mock_run_filter): # pylint: disable=unused-argument + """ + When AccountSettingsReadOnlyFieldsRequested.run_filter returns a field as read-only, + update_account_settings should raise AccountValidationError for that field. + """ + with pytest.raises(AccountValidationError) as exc_info: + update_account_settings(self.user, {"country": "IN"}) + field_errors = exc_info.value.field_errors + assert 'This field is not editable via this API' == field_errors['country']['developer_message'] def test_update_error_validating(self): """Test that AccountValidationError is thrown if incorrect values are supplied.""" diff --git a/requirements/edx/base.txt b/requirements/edx/base.txt index 661b72370e1c..b9c68a7ec113 100644 --- a/requirements/edx/base.txt +++ b/requirements/edx/base.txt @@ -830,7 +830,7 @@ openedx-events==10.5.0 # edx-name-affirmation # event-tracking # ora2 -openedx-filters==2.1.0 +openedx-filters==3.1.0 # via # -r requirements/edx/kernel.in # edx-enterprise diff --git a/requirements/edx/development.txt b/requirements/edx/development.txt index b9ab88b74b6b..a02307d33f38 100644 --- a/requirements/edx/development.txt +++ b/requirements/edx/development.txt @@ -1379,7 +1379,7 @@ openedx-events==10.5.0 # edx-name-affirmation # event-tracking # ora2 -openedx-filters==2.1.0 +openedx-filters==3.1.0 # via # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt diff --git a/requirements/edx/doc.txt b/requirements/edx/doc.txt index be3d6e42bda3..ff3e396755bc 100644 --- a/requirements/edx/doc.txt +++ b/requirements/edx/doc.txt @@ -1004,7 +1004,7 @@ openedx-events==10.5.0 # edx-name-affirmation # event-tracking # ora2 -openedx-filters==2.1.0 +openedx-filters==3.1.0 # via # -r requirements/edx/base.txt # edx-enterprise diff --git a/requirements/edx/testing.txt b/requirements/edx/testing.txt index dfe552680934..342edc58cfc0 100644 --- a/requirements/edx/testing.txt +++ b/requirements/edx/testing.txt @@ -1049,7 +1049,7 @@ openedx-events==10.5.0 # edx-name-affirmation # event-tracking # ora2 -openedx-filters==2.1.0 +openedx-filters==3.1.0 # via # -r requirements/edx/base.txt # edx-enterprise From ce563a651c11ed7fa6fc3c2c82cd3bcfcef29888 Mon Sep 17 00:00:00 2001 From: Kira Miller <31229189+kiram15@users.noreply.github.com> Date: Thu, 9 Apr 2026 16:40:45 +0000 Subject: [PATCH 2/4] chore: make upgrade to upgrade the openedx-filters version --- requirements/edx-sandbox/base.txt | 32 +-- requirements/edx/assets.txt | 4 +- requirements/edx/base.txt | 370 +++++++++++++------------ requirements/edx/coverage.txt | 8 +- requirements/edx/doc.txt | 406 ++++++++++++++------------- requirements/edx/testing.txt | 443 ++++++++++++++++-------------- requirements/pip-tools.txt | 14 +- requirements/pip.txt | 8 +- 8 files changed, 694 insertions(+), 591 deletions(-) diff --git a/requirements/edx-sandbox/base.txt b/requirements/edx-sandbox/base.txt index a2013ea7485f..0bb9dbfaebec 100644 --- a/requirements/edx-sandbox/base.txt +++ b/requirements/edx-sandbox/base.txt @@ -8,7 +8,7 @@ cffi==2.0.0 # via cryptography chem==2.0.0 # via -r requirements/edx-sandbox/base.in -click==8.3.0 +click==8.3.2 # via nltk codejail-includes==2.0.0 # via -r requirements/edx-sandbox/base.in @@ -20,11 +20,11 @@ cryptography==45.0.7 # -r requirements/edx-sandbox/base.in cycler==0.12.1 # via matplotlib -fonttools==4.60.1 +fonttools==4.62.1 # via matplotlib -joblib==1.5.2 +joblib==1.5.3 # via nltk -kiwisolver==1.4.9 +kiwisolver==1.5.0 # via matplotlib lxml[html-clean]==5.3.2 # via @@ -32,19 +32,19 @@ lxml[html-clean]==5.3.2 # -r requirements/edx-sandbox/base.in # lxml-html-clean # openedx-calc -lxml-html-clean==0.4.3 +lxml-html-clean==0.4.4 # via lxml markupsafe==3.0.3 # via # chem # openedx-calc -matplotlib==3.10.6 +matplotlib==3.10.8 # via -r requirements/edx-sandbox/base.in mpmath==1.3.0 # via sympy -networkx==3.5 +networkx==3.6.1 # via -r requirements/edx-sandbox/base.in -nltk==3.9.2 +nltk==3.9.4 # via # -r requirements/edx-sandbox/base.in # chem @@ -56,15 +56,15 @@ numpy==1.26.4 # matplotlib # openedx-calc # scipy -openedx-calc==4.0.2 +openedx-calc==4.0.3 # via -r requirements/edx-sandbox/base.in -packaging==25.0 +packaging==26.0 # via matplotlib -pillow==11.3.0 +pillow==12.2.0 # via matplotlib -pycparser==2.23 +pycparser==3.0 # via cffi -pyparsing==3.2.5 +pyparsing==3.3.2 # via # -r requirements/edx-sandbox/base.in # chem @@ -74,9 +74,9 @@ python-dateutil==2.9.0.post0 # via matplotlib random2==1.0.2 # via -r requirements/edx-sandbox/base.in -regex==2025.9.18 +regex==2026.4.4 # via nltk -scipy==1.16.2 +scipy==1.17.1 # via # -r requirements/edx-sandbox/base.in # chem @@ -86,5 +86,5 @@ sympy==1.14.0 # via # -r requirements/edx-sandbox/base.in # openedx-calc -tqdm==4.67.1 +tqdm==4.67.3 # via nltk diff --git a/requirements/edx/assets.txt b/requirements/edx/assets.txt index f66289e09b21..12e66aadbf9f 100644 --- a/requirements/edx/assets.txt +++ b/requirements/edx/assets.txt @@ -4,13 +4,13 @@ # # make upgrade # -click==8.3.0 +click==8.3.2 # via -r requirements/edx/assets.in libsass==0.10.0 # via # -c requirements/constraints.txt # -r requirements/edx/assets.in -nodeenv==1.9.1 +nodeenv==1.10.0 # via -r requirements/edx/assets.in six==1.17.0 # via libsass diff --git a/requirements/edx/base.txt b/requirements/edx/base.txt index b9c68a7ec113..eb0fb4a697f2 100644 --- a/requirements/edx/base.txt +++ b/requirements/edx/base.txt @@ -8,7 +8,7 @@ acid-xblock==0.4.1 # via -r requirements/edx/kernel.in aiohappyeyeballs==2.6.1 # via aiohttp -aiohttp==3.13.3 +aiohttp==3.13.5 # via geoip2 aiosignal==1.4.0 # via aiohttp @@ -22,18 +22,18 @@ aniso8601==10.0.1 # tincan annotated-types==0.7.0 # via pydantic -anyio==4.11.0 +anyio==4.13.0 # via httpx appdirs==1.4.4 # via fs -asgiref==3.10.0 +asgiref==3.11.1 # via # django # django-cors-headers # django-countries asn1crypto==1.5.1 # via snowflake-connector-python -attrs==25.4.0 +attrs==26.1.0 # via # -r requirements/edx/kernel.in # aiohttp @@ -43,7 +43,7 @@ attrs==25.4.0 # openedx-events # openedx-learning # referencing -babel==2.17.0 +babel==2.18.0 # via # -r requirements/edx/kernel.in # enmerkar @@ -52,13 +52,14 @@ backoff==1.10.0 # via analytics-python bcrypt==5.0.0 # via paramiko -beautifulsoup4==4.14.2 +beautifulsoup4==4.14.3 # via # openedx-forum # pynliner -billiard==4.2.2 + # xblocks-contrib +billiard==4.2.4 # via celery -bleach[css]==6.2.0 +bleach[css]==6.3.0 # via # edx-enterprise # lti-consumer-xblock @@ -68,14 +69,14 @@ bleach[css]==6.2.0 # xblock-poll boto==2.49.0 # via -r requirements/edx/kernel.in -boto3==1.40.46 +boto3==1.42.86 # via # -r requirements/edx/kernel.in # django-ses # fs-s3fs # ora2 # snowflake-connector-python -botocore==1.40.46 +botocore==1.42.86 # via # -r requirements/edx/kernel.in # boto3 @@ -83,15 +84,13 @@ botocore==1.40.46 # snowflake-connector-python bridgekeeper==0.9 # via -r requirements/edx/kernel.in -cachecontrol==0.14.3 +cachecontrol==0.14.4 # via firebase-admin -cachetools==6.2.0 - # via - # edxval - # google-auth -camel-converter[pydantic]==4.0.1 +cachetools==7.0.5 + # via edxval +camel-converter[pydantic]==5.1.0 # via meilisearch -celery==5.5.3 +celery==5.6.3 # via # -c requirements/constraints.txt # -r requirements/edx/kernel.in @@ -102,26 +101,28 @@ celery==5.5.3 # enterprise-integrated-channels # event-tracking # openedx-learning -certifi==2025.10.5 +certifi==2026.2.25 # via # elasticsearch # httpcore # httpx # requests # snowflake-connector-python -cffi==1.17.1 +cffi==2.0.0 # via # cryptography # pynacl -chardet==5.2.0 +chardet==7.4.1 # via pysrt -charset-normalizer==3.4.3 +charset-normalizer==3.4.7 # via # requests # snowflake-connector-python chem==2.0.0 - # via -r requirements/edx/kernel.in -click==8.3.0 + # via + # -r requirements/edx/kernel.in + # xblocks-contrib +click==8.3.2 # via # celery # click-didyoumean @@ -136,13 +137,13 @@ click-plugins==1.1.1.2 # via celery click-repl==0.3.0 # via celery -code-annotations==2.3.0 +code-annotations==2.3.2 # via # edx-enterprise # edx-toggles codejail-includes==2.0.0 # via -r requirements/edx/kernel.in -crowdsourcehinter-xblock==0.8 +crowdsourcehinter-xblock==1.0.0 # via -r requirements/edx/bundled.in cryptography==45.0.7 # via @@ -150,13 +151,13 @@ cryptography==45.0.7 # -r requirements/edx/kernel.in # django-fernet-fields-v2 # edx-enterprise + # google-auth # jwcrypto # paramiko # pgpy # pyjwt # pyopenssl # snowflake-connector-python - # social-auth-core cssutils==2.11.1 # via pynliner defusedxml==0.7.1 @@ -166,7 +167,8 @@ defusedxml==0.7.1 # ora2 # python3-openid # social-auth-core -django==4.2.28 + # xblocks-contrib +django==4.2.30 # via # -c requirements/common_constraints.txt # -c requirements/constraints.txt @@ -240,8 +242,9 @@ django==4.2.28 # social-auth-app-django # super-csv # xblock-google-drive + # xblocks-contrib # xss-utils -django-appconf==1.1.0 +django-appconf==1.2.0 # via django-statici18n django-autocomplete-light==3.12.1 # via -r requirements/edx/kernel.in @@ -251,7 +254,7 @@ django-celery-results==2.6.0 # via -r requirements/edx/kernel.in django-classy-tags==4.1.0 # via django-sekizai -django-config-models==2.9.0 +django-config-models==3.0.0 # via # -r requirements/edx/kernel.in # edx-enterprise @@ -260,7 +263,7 @@ django-config-models==2.9.0 # lti-consumer-xblock django-cors-headers==4.9.0 # via -r requirements/edx/kernel.in -django-countries==7.6.1 +django-countries==8.2.0 # via # -r requirements/edx/kernel.in # edx-enterprise @@ -330,7 +333,7 @@ django-object-actions==5.0.0 # enterprise-integrated-channels django-pipeline==4.1.0 # via -r requirements/edx/kernel.in -django-push-notifications==3.2.1 +django-push-notifications==3.3.0 # via edx-ace django-ratelimit==4.1.0 # via -r requirements/edx/kernel.in @@ -338,9 +341,9 @@ django-sekizai==4.1.0 # via # -r requirements/edx/kernel.in # openedx-django-wiki -django-ses==4.4.0 +django-ses==4.7.2 # via -r requirements/edx/bundled.in -django-simple-history==3.10.1 +django-simple-history==3.11.0 # via # -r requirements/edx/kernel.in # edx-enterprise @@ -349,18 +352,17 @@ django-simple-history==3.10.1 # edx-proctoring # enterprise-integrated-channels # ora2 -django-statici18n==2.6.0 +django-statici18n==2.7.1 # via # -r requirements/edx/kernel.in # lti-consumer-xblock # xblock-drag-and-drop-v2 # xblock-poll - # xblocks-contrib django-storages==1.14.6 # via # -r requirements/edx/kernel.in # edxval -django-user-tasks==3.4.3 +django-user-tasks==4.0.0 # via -r requirements/edx/kernel.in django-waffle==5.0.0 # via @@ -370,11 +372,11 @@ django-waffle==5.0.0 # edx-enterprise # edx-proctoring # edx-toggles -django-webpack-loader==3.2.1 +django-webpack-loader==3.2.3 # via # -r requirements/edx/kernel.in # edx-proctoring -djangorestframework==3.16.1 +djangorestframework==3.17.1 # via # -r requirements/edx/kernel.in # django-config-models @@ -398,25 +400,25 @@ djangorestframework-xml==2.0.0 # via edx-enterprise dnspython==2.8.0 # via pymongo -done-xblock==2.5.0 +done-xblock==3.0.0 # via -r requirements/edx/bundled.in drf-jwt==1.19.2 # via edx-drf-extensions -drf-spectacular==0.28.0 +drf-spectacular==0.29.0 # via -r requirements/edx/kernel.in -drf-yasg==1.21.11 +drf-yasg==1.21.15 # via # django-user-tasks # edx-api-doc-tools edx-ace==1.15.0 # via -r requirements/edx/kernel.in -edx-api-doc-tools==2.1.0 +edx-api-doc-tools==3.0.0 # via # -r requirements/edx/kernel.in # edx-name-affirmation -edx-auth-backends==4.6.1 +edx-auth-backends==5.0.0 # via -r requirements/edx/kernel.in -edx-bulk-grades==1.2.0 +edx-bulk-grades==2.0.0 # via # -r requirements/edx/kernel.in # staff-graded-xblock @@ -425,21 +427,23 @@ edx-ccx-keys==2.0.2 # -r requirements/edx/kernel.in # lti-consumer-xblock # openedx-events -edx-celeryutils==1.4.0 +edx-celeryutils==2.0.0 # via # -r requirements/edx/kernel.in # edx-name-affirmation # super-csv -edx-codejail==4.0.0 - # via -r requirements/edx/kernel.in -edx-completion==4.9 +edx-codejail==4.1.0 + # via + # -r requirements/edx/kernel.in + # xblocks-contrib +edx-completion==5.0.0 # via -r requirements/edx/kernel.in edx-django-release-util==1.5.0 # via # -r requirements/edx/kernel.in # edx-submissions # edxval -edx-django-sites-extensions==5.1.0 +edx-django-sites-extensions==6.0.0 # via -r requirements/edx/kernel.in edx-django-utils==8.0.1 # via @@ -460,6 +464,7 @@ edx-django-utils==8.0.1 # openedx-events # ora2 # super-csv + # xblocks-contrib edx-drf-extensions==10.6.0 # via # -r requirements/edx/kernel.in @@ -481,16 +486,15 @@ edx-event-bus-kafka==6.1.0 # via -r requirements/edx/kernel.in edx-event-bus-redis==0.6.1 # via -r requirements/edx/kernel.in -edx-i18n-tools==1.9.0 +edx-i18n-tools==2.0.0 # via # -r requirements/edx/bundled.in # ora2 - # xblocks-contrib -edx-milestones==1.1.0 +edx-milestones==2.0.0 # via -r requirements/edx/kernel.in edx-name-affirmation==3.0.2 # via -r requirements/edx/kernel.in -edx-opaque-keys[django]==3.0.0 +edx-opaque-keys[django]==4.0.0 # via # -r requirements/edx/kernel.in # edx-bulk-grades @@ -508,33 +512,34 @@ edx-opaque-keys[django]==3.0.0 # openedx-filters # ora2 # xblocks-contrib -edx-organizations==7.3.0 +edx-organizations==8.0.0 # via -r requirements/edx/kernel.in edx-proctoring==5.2.0 # via -r requirements/edx/kernel.in -edx-rbac==2.1.0 +edx-rbac==3.0.0 # via # edx-enterprise # enterprise-integrated-channels -edx-rest-api-client==6.2.0 +edx-rest-api-client==7.0.0 # via # -r requirements/edx/kernel.in # edx-enterprise # edx-proctoring # enterprise-integrated-channels -edx-search==4.3.0 +edx-search==5.0.0 # via # -r requirements/edx/kernel.in # openedx-forum -edx-sga==0.26.0 +edx-sga==0.27.1 # via -r requirements/edx/bundled.in -edx-submissions==3.12.0 +edx-submissions==4.0.0 # via # -r requirements/edx/kernel.in # ora2 + # xblocks-contrib edx-tincan-py35==2.0.0 # via enterprise-integrated-channels -edx-toggles==5.4.1 +edx-toggles==6.0.0 # via # -r requirements/edx/kernel.in # edx-auth-backends @@ -547,12 +552,15 @@ edx-toggles==5.4.1 # edxval # event-tracking # ora2 -edx-when==3.0.0 + # xblocks-contrib +edx-when==4.0.0 # via # -r requirements/edx/kernel.in # edx-proctoring -edxval==3.1.0 - # via -r requirements/edx/kernel.in +edxval==4.0.0 + # via + # -r requirements/edx/kernel.in + # xblocks-contrib elasticsearch==7.9.1 # via # -c requirements/common_constraints.txt @@ -565,17 +573,17 @@ enmerkar-underscore==2.4.0 # via -r requirements/edx/kernel.in enterprise-integrated-channels==0.1.56 # via -r requirements/edx/bundled.in -event-tracking==3.3.0 +event-tracking==4.0.0 # via # -r requirements/edx/kernel.in # edx-completion # edx-proctoring # edx-search -fastavro==1.12.0 +fastavro==1.12.1 # via openedx-events -filelock==3.19.1 +filelock==3.25.2 # via snowflake-connector-python -firebase-admin==7.1.0 +firebase-admin==7.3.0 # via edx-ace frozenlist==1.8.0 # via @@ -587,57 +595,59 @@ fs==2.4.16 # fs-s3fs # openedx-django-pyfs # xblock + # xblocks-contrib fs-s3fs==1.1.1 # via # -r requirements/edx/kernel.in # openedx-django-pyfs -geoip2==5.1.0 +geoip2==5.2.0 # via -r requirements/edx/kernel.in glob2==0.7 # via -r requirements/edx/kernel.in -google-api-core[grpc]==2.25.2 +google-api-core[grpc]==2.30.2 # via # firebase-admin # google-cloud-core # google-cloud-firestore # google-cloud-storage -google-auth==2.41.1 +google-auth==2.49.1 # via # google-api-core # google-cloud-core # google-cloud-firestore # google-cloud-storage -google-cloud-core==2.4.3 +google-cloud-core==2.5.1 # via # google-cloud-firestore # google-cloud-storage -google-cloud-firestore==2.21.0 +google-cloud-firestore==2.26.0 # via firebase-admin -google-cloud-storage==3.4.0 +google-cloud-storage==3.10.1 # 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.2 # via google-cloud-storage -googleapis-common-protos==1.70.0 +googleapis-common-protos==1.74.0 # via # google-api-core # grpcio-status -grpcio==1.75.1 +grpcio==1.80.0 # via # google-api-core + # google-cloud-firestore # grpcio-status -grpcio-status==1.75.1 +grpcio-status==1.80.0 # via google-api-core -gunicorn==23.0.0 +gunicorn==25.3.0 # via -r requirements/edx/kernel.in h11==0.16.0 # via httpcore h2==4.3.0 # via httpx -help-tokens==3.2.0 +help-tokens==4.0.0 # via -r requirements/edx/kernel.in hpack==4.1.0 # via h2 @@ -645,15 +655,18 @@ html5lib==1.1 # via # -r requirements/edx/kernel.in # ora2 + # xblocks-contrib httpcore==1.0.9 # via httpx httpx[http2]==0.28.1 - # via firebase-admin + # via + # firebase-admin + # typesense hyperframe==6.1.0 # via h2 -icalendar==6.3.1 +icalendar==7.0.3 # via -r requirements/edx/kernel.in -idna==3.10 +idna==3.11 # via # anyio # httpx @@ -661,13 +674,13 @@ idna==3.10 # requests # snowflake-connector-python # yarl -importlib-metadata==8.7.0 +importlib-metadata==9.0.0 # via -r requirements/edx/kernel.in inflection==0.5.1 # via # drf-spectacular # drf-yasg -invoke==2.2.0 +invoke==3.0.3 # via paramiko ipaddress==1.0.23 # via -r requirements/edx/kernel.in @@ -675,11 +688,11 @@ isodate==0.7.2 # via python3-saml jinja2==3.1.6 # via code-annotations -jmespath==1.0.1 +jmespath==1.1.0 # via # boto3 # botocore -joblib==1.5.2 +joblib==1.5.3 # via nltk jsondiff==2.2.1 # via edx-enterprise @@ -693,17 +706,17 @@ jsonfield==3.2.0 # enterprise-integrated-channels # lti-consumer-xblock # ora2 -jsonschema==4.25.1 +jsonschema==4.26.0 # via # drf-spectacular # optimizely-sdk jsonschema-specifications==2025.9.1 # via jsonschema -jwcrypto==1.5.6 +jwcrypto==1.5.7 # via # django-oauth-toolkit # pylti1p3 -kombu==5.5.4 +kombu==5.6.2 # via celery laboratory==1.0.2 # via -r requirements/edx/kernel.in @@ -713,9 +726,7 @@ lazy==1.6 # lti-consumer-xblock # ora2 # xblock -loremipsum==1.0.5 - # via ora2 -lti-consumer-xblock==9.14.2 +lti-consumer-xblock==10.0.1 # via -r requirements/edx/kernel.in lxml[html-clean]==5.3.2 # via @@ -730,8 +741,9 @@ lxml[html-clean]==5.3.2 # ora2 # python3-saml # xblock + # xblocks-contrib # xmlsec -lxml-html-clean==0.4.3 +lxml-html-clean==0.4.4 # via lxml mailsnake==1.6.4 # via -r requirements/edx/bundled.in @@ -742,7 +754,7 @@ mako==1.3.10 # lti-consumer-xblock # xblock # xblock-utils -markdown==3.9 +markdown==3.10.2 # via # -r requirements/edx/kernel.in # openedx-django-wiki @@ -755,37 +767,38 @@ markupsafe==3.0.3 # mako # openedx-calc # xblock -maxminddb==2.8.2 + # xblocks-contrib +maxminddb==3.1.1 # via geoip2 -meilisearch==0.37.0 +meilisearch==0.40.0 # via # -r requirements/edx/kernel.in # edx-search -mongoengine==0.29.1 +mongoengine==0.29.3 # via -r requirements/edx/kernel.in monotonic==1.6 # via analytics-python -more-itertools==10.8.0 +more-itertools==11.0.2 # via cssutils mpmath==1.3.0 # via sympy -msgpack==1.1.1 +msgpack==1.1.2 # via cachecontrol -multidict==6.7.0 +multidict==6.7.1 # via # aiohttp # yarl -mysqlclient==2.2.7 +mysqlclient==2.2.8 # via # -r requirements/edx/kernel.in # openedx-forum -nh3==0.3.0 +nh3==0.3.4 # via # -r requirements/edx/kernel.in # xblocks-contrib -nltk==3.9.2 +nltk==3.9.4 # via chem -nodeenv==1.9.1 +nodeenv==1.10.0 # via -r requirements/edx/kernel.in numpy==1.26.4 # via @@ -794,6 +807,7 @@ numpy==1.26.4 # openedx-calc # scipy # shapely + # xblocks-contrib oauthlib==3.3.1 # via # -r requirements/edx/kernel.in @@ -810,13 +824,12 @@ openedx-atlas==0.7.0 # edx-enterprise # enterprise-integrated-channels # openedx-forum -openedx-calc==4.0.2 - # via -r requirements/edx/kernel.in -openedx-django-pyfs==3.8.0 +openedx-calc==4.0.3 # via - # lti-consumer-xblock - # xblock + # -r requirements/edx/kernel.in # xblocks-contrib +openedx-django-pyfs==4.0.0 + # via xblock openedx-django-require==3.0.0 # via -r requirements/edx/kernel.in openedx-django-wiki==3.1.1 @@ -830,28 +843,29 @@ openedx-events==10.5.0 # edx-name-affirmation # event-tracking # ora2 -openedx-filters==3.1.0 +openedx-filters==2.1.0 # via # -r requirements/edx/kernel.in # edx-enterprise # lti-consumer-xblock # ora2 -openedx-forum==0.3.8 +openedx-forum==0.4.1 # via -r requirements/edx/kernel.in openedx-learning==0.27.1 # via # -c requirements/constraints.txt # -r requirements/edx/kernel.in -optimizely-sdk==5.2.0 +optimizely-sdk==5.4.0 # via -r requirements/edx/bundled.in -ora2==6.16.4 +ora2==7.0.0 # via -r requirements/edx/bundled.in -packaging==25.0 +packaging==26.0 # via # drf-yasg # gunicorn # kombu # snowflake-connector-python + # wheel paramiko==4.0.0 # via edx-enterprise path==16.11.0 @@ -860,6 +874,7 @@ path==16.11.0 # -r requirements/edx/kernel.in # edx-i18n-tools # path-py + # xblocks-contrib path-py==12.5.0 # via # edx-enterprise @@ -869,58 +884,57 @@ pgpy==0.6.0 # via edx-enterprise piexif==1.1.3 # via -r requirements/edx/kernel.in -pillow==11.3.0 +pillow==12.2.0 # via # -r requirements/edx/kernel.in # edx-enterprise # edx-organizations # edxval -platformdirs==4.4.0 +platformdirs==4.9.6 # via snowflake-connector-python polib==1.2.0 # via edx-i18n-tools prompt-toolkit==3.0.52 # via click-repl -propcache==0.4.0 +propcache==0.4.1 # via # aiohttp # yarl -proto-plus==1.26.1 +proto-plus==1.27.2 # via # google-api-core # google-cloud-firestore -protobuf==6.32.1 +protobuf==6.33.6 # via # google-api-core # google-cloud-firestore # googleapis-common-protos # grpcio-status # proto-plus -psutil==7.1.0 +psutil==7.2.2 # via # -r requirements/edx/kernel.in # edx-django-utils -pyasn1==0.6.1 +pyasn1==0.6.3 # via # pgpy # pyasn1-modules - # rsa pyasn1-modules==0.4.2 # via google-auth -pycountry==24.6.1 +pycountry==26.2.16 # via -r requirements/edx/kernel.in -pycparser==2.23 +pycparser==3.0 # via cffi pycryptodomex==3.23.0 # via # -r requirements/edx/kernel.in # edx-proctoring # lti-consumer-xblock -pydantic==2.11.10 +pydantic==2.12.5 # via camel-converter -pydantic-core==2.33.2 +pydantic-core==2.41.5 # via pydantic -pyjwt[crypto]==2.10.1 +pyjwt[crypto]==2.12.1 # via # -r requirements/edx/kernel.in # drf-jwt @@ -947,7 +961,7 @@ pymongo==4.4.0 # event-tracking # mongoengine # openedx-forum -pynacl==1.6.0 +pynacl==1.6.2 # via # edx-django-utils # paramiko @@ -955,10 +969,11 @@ pynliner==0.8.0 # via -r requirements/edx/kernel.in pyopenssl==25.3.0 # via snowflake-connector-python -pyparsing==3.2.5 +pyparsing==3.3.2 # via # chem # openedx-calc + # xblocks-contrib pyrsistent==0.20.0 # via optimizely-sdk pysrt==1.1.2 @@ -982,7 +997,7 @@ python-ipware==3.0.0 # via django-ipware python-slugify==8.0.4 # via code-annotations -python-swiftclient==4.8.0 +python-swiftclient==4.10.0 # via ora2 python3-openid==3.2.0 ; python_version >= "3" # via @@ -990,7 +1005,7 @@ python3-openid==3.2.0 ; python_version >= "3" # social-auth-core python3-saml==1.16.0 # via -r requirements/edx/kernel.in -pytz==2025.2 +pytz==2026.1.post1 # via # -r requirements/edx/kernel.in # drf-yasg @@ -1006,6 +1021,7 @@ pytz==2025.2 # snowflake-connector-python # tincan # xblock + # xblocks-contrib pyuca==1.2 # via -r requirements/edx/kernel.in pyyaml==6.0.3 @@ -1019,20 +1035,22 @@ pyyaml==6.0.3 # jsondiff # xblock random2==1.0.2 - # via -r requirements/edx/kernel.in -recommender-xblock==3.1.0 + # via + # -r requirements/edx/kernel.in + # xblocks-contrib +recommender-xblock==5.0.0 # via -r requirements/edx/bundled.in -redis==6.4.0 +redis==7.4.0 # via # -r requirements/edx/kernel.in # walrus -referencing==0.36.2 +referencing==0.37.0 # via # jsonschema # jsonschema-specifications -regex==2025.9.18 +regex==2026.4.4 # via nltk -requests==2.32.5 +requests==2.33.1 # via # analytics-python # cachecontrol @@ -1057,32 +1075,33 @@ requests==2.32.5 # snowflake-connector-python # social-auth-core # xblock-google-drive + # xblocks-contrib requests-oauthlib==2.0.0 # via # -r requirements/edx/kernel.in # social-auth-core -rpds-py==0.27.1 +rpds-py==0.30.0 # via # jsonschema # referencing -rsa==4.9.1 - # via google-auth rules==3.5 # via # -r requirements/edx/kernel.in # edx-enterprise # edx-proctoring # openedx-learning -s3transfer==0.14.0 +s3transfer==0.16.0 # via boto3 sailthru-client==2.2.3 # via edx-ace -scipy==1.16.2 +scipy==1.17.1 # via chem semantic-version==2.10.0 # via edx-drf-extensions shapely==2.1.2 - # via -r requirements/edx/kernel.in + # via + # -r requirements/edx/kernel.in + # xblocks-contrib simplejson==3.20.2 # via # -r requirements/edx/kernel.in @@ -1090,6 +1109,7 @@ simplejson==3.20.2 # super-csv # xblock # xblock-utils + # xblocks-contrib six==1.17.0 # via # -r requirements/edx/kernel.in @@ -1113,9 +1133,7 @@ slumber==0.7.1 # edx-bulk-grades # edx-enterprise # enterprise-integrated-channels -sniffio==1.3.1 - # via anyio -snowflake-connector-python==4.2.0 +snowflake-connector-python==4.3.0 # via # edx-enterprise # enterprise-integrated-channels @@ -1125,12 +1143,12 @@ social-auth-app-django==5.4.1 # -r requirements/edx/kernel.in # edx-auth-backends # edx-enterprise -social-auth-core==4.7.0 +social-auth-core==4.8.5 # via # -r requirements/edx/kernel.in # edx-auth-backends # social-auth-app-django -sorl-thumbnail==12.11.0 +sorl-thumbnail==13.0.0 # via # -r requirements/edx/kernel.in # openedx-django-wiki @@ -1138,13 +1156,13 @@ sortedcontainers==2.4.0 # via # -r requirements/edx/kernel.in # snowflake-connector-python -soupsieve==2.8 +soupsieve==2.8.3 # via beautifulsoup4 -sqlparse==0.5.3 +sqlparse==0.5.5 # via django -staff-graded-xblock==3.1.0 +staff-graded-xblock==4.0.0 # via -r requirements/edx/bundled.in -stevedore==5.5.0 +stevedore==5.7.0 # via # -r requirements/edx/kernel.in # code-annotations @@ -1152,11 +1170,11 @@ stevedore==5.5.0 # edx-django-utils # edx-enterprise # edx-opaque-keys -super-csv==4.1.0 +super-csv==5.0.0 # via edx-bulk-grades sympy==1.14.0 # via openedx-calc -testfixtures==9.1.0 +testfixtures==11.0.0 # via edx-enterprise text-unidecode==1.3 # via python-slugify @@ -1164,12 +1182,16 @@ tincan==1.0.0 # via edx-enterprise tinycss2==1.4.0 # via bleach -tomlkit==0.13.3 +tomlkit==0.14.0 # via # openedx-learning # snowflake-connector-python -tqdm==4.67.1 +tqdm==4.67.3 # via nltk +typesense==2.0.0 + # via + # edx-search + # openedx-forum typing-extensions==4.15.0 # via # aiosignal @@ -1178,6 +1200,7 @@ typing-extensions==4.15.0 # django-countries # edx-opaque-keys # grpcio + # icalendar # jwcrypto # pydantic # pydantic-core @@ -1185,13 +1208,16 @@ typing-extensions==4.15.0 # pyopenssl # referencing # snowflake-connector-python + # typesense # typing-inspection typing-inspection==0.4.2 # via pydantic -tzdata==2025.2 +tzdata==2026.1 # via # icalendar # kombu +tzlocal==5.3.1 + # via celery unicodecsv==0.14.1 # via # -r requirements/edx/kernel.in @@ -1203,7 +1229,7 @@ uritemplate==4.2.0 # via # drf-spectacular # drf-yasg -urllib3==2.5.0 +urllib3==2.6.3 # via # botocore # elasticsearch @@ -1213,13 +1239,13 @@ vine==5.1.0 # amqp # celery # kombu -voluptuous==0.15.2 +voluptuous==0.16.0 # via ora2 -walrus==0.9.5 +walrus==0.9.8 # via edx-event-bus-redis -wcwidth==0.2.14 +wcwidth==0.6.0 # via prompt-toolkit -web-fragments==3.1.0 +web-fragments==4.0.0 # via # -r requirements/edx/kernel.in # crowdsourcehinter-xblock @@ -1227,6 +1253,7 @@ web-fragments==3.1.0 # staff-graded-xblock # xblock # xblock-utils + # xblocks-contrib webencodings==0.5.1 # via # bleach @@ -1236,11 +1263,14 @@ webob==1.8.9 # via # -r requirements/edx/kernel.in # xblock -wheel==0.45.1 + # xblocks-contrib +wheel==0.46.3 # via django-pipeline -wrapt==1.17.3 - # via -r requirements/edx/kernel.in -xblock[django]==5.2.0 +wrapt==2.1.2 + # via + # -r requirements/edx/kernel.in + # xblocks-contrib +xblock[django]==6.0.0 # via # -r requirements/edx/kernel.in # acid-xblock @@ -1266,15 +1296,15 @@ xblock-utils==4.0.0 # via # edx-sga # xblock-poll -xblocks-contrib==0.6.0 +xblocks-contrib==0.13.1 # via -r requirements/edx/bundled.in xmlsec==1.3.14 # via # -c requirements/constraints.txt # python3-saml -xss-utils==0.8.0 +xss-utils==1.0.0 # via -r requirements/edx/kernel.in -yarl==1.22.0 +yarl==1.23.0 # via aiohttp zipp==3.23.0 # via importlib-metadata diff --git a/requirements/edx/coverage.txt b/requirements/edx/coverage.txt index 010306d68c45..86fcd7de4345 100644 --- a/requirements/edx/coverage.txt +++ b/requirements/edx/coverage.txt @@ -4,11 +4,11 @@ # # make upgrade # -chardet==5.2.0 +chardet==7.4.1 # via diff-cover -coverage==7.10.7 +coverage==7.13.5 # via -r requirements/edx/coverage.in -diff-cover==9.7.1 +diff-cover==10.2.0 # via -r requirements/edx/coverage.in jinja2==3.1.6 # via diff-cover @@ -16,5 +16,5 @@ markupsafe==3.0.3 # via jinja2 pluggy==1.6.0 # via diff-cover -pygments==2.19.2 +pygments==2.20.0 # via diff-cover diff --git a/requirements/edx/doc.txt b/requirements/edx/doc.txt index ff3e396755bc..1cdce6872bff 100644 --- a/requirements/edx/doc.txt +++ b/requirements/edx/doc.txt @@ -12,7 +12,7 @@ aiohappyeyeballs==2.6.1 # via # -r requirements/edx/base.txt # aiohttp -aiohttp==3.13.3 +aiohttp==3.13.5 # via # -r requirements/edx/base.txt # geoip2 @@ -37,7 +37,7 @@ annotated-types==0.7.0 # via # -r requirements/edx/base.txt # pydantic -anyio==4.11.0 +anyio==4.13.0 # via # -r requirements/edx/base.txt # httpx @@ -45,7 +45,7 @@ appdirs==1.4.4 # via # -r requirements/edx/base.txt # fs -asgiref==3.10.0 +asgiref==3.11.1 # via # -r requirements/edx/base.txt # django @@ -55,9 +55,9 @@ asn1crypto==1.5.1 # via # -r requirements/edx/base.txt # snowflake-connector-python -astroid==4.0.3 +astroid==4.1.2 # via sphinx-autoapi -attrs==25.4.0 +attrs==26.1.0 # via # -r requirements/edx/base.txt # aiohttp @@ -67,7 +67,7 @@ attrs==25.4.0 # openedx-events # openedx-learning # referencing -babel==2.17.0 +babel==2.18.0 # via # -r requirements/edx/base.txt # enmerkar @@ -82,17 +82,18 @@ bcrypt==5.0.0 # via # -r requirements/edx/base.txt # paramiko -beautifulsoup4==4.14.2 +beautifulsoup4==4.14.3 # via # -r requirements/edx/base.txt # openedx-forum # pydata-sphinx-theme # pynliner -billiard==4.2.2 + # xblocks-contrib +billiard==4.2.4 # via # -r requirements/edx/base.txt # celery -bleach[css]==6.2.0 +bleach[css]==6.3.0 # via # -r requirements/edx/base.txt # edx-enterprise @@ -103,14 +104,14 @@ bleach[css]==6.2.0 # xblock-poll boto==2.49.0 # via -r requirements/edx/base.txt -boto3==1.40.46 +boto3==1.42.86 # via # -r requirements/edx/base.txt # django-ses # fs-s3fs # ora2 # snowflake-connector-python -botocore==1.40.46 +botocore==1.42.86 # via # -r requirements/edx/base.txt # boto3 @@ -118,20 +119,19 @@ botocore==1.40.46 # snowflake-connector-python bridgekeeper==0.9 # via -r requirements/edx/base.txt -cachecontrol==0.14.3 +cachecontrol==0.14.4 # via # -r requirements/edx/base.txt # firebase-admin -cachetools==6.2.0 +cachetools==7.0.5 # via # -r requirements/edx/base.txt # edxval - # google-auth -camel-converter[pydantic]==4.0.1 +camel-converter[pydantic]==5.1.0 # via # -r requirements/edx/base.txt # meilisearch -celery==5.5.3 +celery==5.6.3 # via # -c requirements/constraints.txt # -r requirements/edx/base.txt @@ -142,7 +142,7 @@ celery==5.5.3 # enterprise-integrated-channels # event-tracking # openedx-learning -certifi==2025.10.5 +certifi==2026.2.25 # via # -r requirements/edx/base.txt # elasticsearch @@ -150,23 +150,25 @@ certifi==2025.10.5 # httpx # requests # snowflake-connector-python -cffi==1.17.1 +cffi==2.0.0 # via # -r requirements/edx/base.txt # cryptography # pynacl -chardet==5.2.0 +chardet==7.4.1 # via # -r requirements/edx/base.txt # pysrt -charset-normalizer==3.4.3 +charset-normalizer==3.4.7 # via # -r requirements/edx/base.txt # requests # snowflake-connector-python chem==2.0.0 - # via -r requirements/edx/base.txt -click==8.3.0 + # via + # -r requirements/edx/base.txt + # xblocks-contrib +click==8.3.2 # via # -r requirements/edx/base.txt # celery @@ -188,7 +190,7 @@ click-repl==0.3.0 # via # -r requirements/edx/base.txt # celery -code-annotations==2.3.0 +code-annotations==2.3.2 # via # -r requirements/edx/base.txt # -r requirements/edx/doc.in @@ -196,7 +198,7 @@ code-annotations==2.3.0 # edx-toggles codejail-includes==2.0.0 # via -r requirements/edx/base.txt -crowdsourcehinter-xblock==0.8 +crowdsourcehinter-xblock==1.0.0 # via -r requirements/edx/base.txt cryptography==45.0.7 # via @@ -204,13 +206,13 @@ cryptography==45.0.7 # -r requirements/edx/base.txt # django-fernet-fields-v2 # edx-enterprise + # google-auth # jwcrypto # paramiko # pgpy # pyjwt # pyopenssl # snowflake-connector-python - # social-auth-core cssutils==2.11.1 # via # -r requirements/edx/base.txt @@ -224,7 +226,8 @@ defusedxml==0.7.1 # ora2 # python3-openid # social-auth-core -django==4.2.28 + # xblocks-contrib +django==4.2.30 # via # -c requirements/common_constraints.txt # -c requirements/constraints.txt @@ -298,8 +301,9 @@ django==4.2.28 # social-auth-app-django # super-csv # xblock-google-drive + # xblocks-contrib # xss-utils -django-appconf==1.1.0 +django-appconf==1.2.0 # via # -r requirements/edx/base.txt # django-statici18n @@ -315,7 +319,7 @@ django-classy-tags==4.1.0 # via # -r requirements/edx/base.txt # django-sekizai -django-config-models==2.9.0 +django-config-models==3.0.0 # via # -r requirements/edx/base.txt # edx-enterprise @@ -324,7 +328,7 @@ django-config-models==2.9.0 # lti-consumer-xblock django-cors-headers==4.9.0 # via -r requirements/edx/base.txt -django-countries==7.6.1 +django-countries==8.2.0 # via # -r requirements/edx/base.txt # edx-enterprise @@ -400,7 +404,7 @@ django-object-actions==5.0.0 # enterprise-integrated-channels django-pipeline==4.1.0 # via -r requirements/edx/base.txt -django-push-notifications==3.2.1 +django-push-notifications==3.3.0 # via # -r requirements/edx/base.txt # edx-ace @@ -410,9 +414,9 @@ django-sekizai==4.1.0 # via # -r requirements/edx/base.txt # openedx-django-wiki -django-ses==4.4.0 +django-ses==4.7.2 # via -r requirements/edx/base.txt -django-simple-history==3.10.1 +django-simple-history==3.11.0 # via # -r requirements/edx/base.txt # edx-enterprise @@ -421,18 +425,17 @@ django-simple-history==3.10.1 # edx-proctoring # enterprise-integrated-channels # ora2 -django-statici18n==2.6.0 +django-statici18n==2.7.1 # via # -r requirements/edx/base.txt # lti-consumer-xblock # xblock-drag-and-drop-v2 # xblock-poll - # xblocks-contrib django-storages==1.14.6 # via # -r requirements/edx/base.txt # edxval -django-user-tasks==3.4.3 +django-user-tasks==4.0.0 # via -r requirements/edx/base.txt django-waffle==5.0.0 # via @@ -442,11 +445,11 @@ django-waffle==5.0.0 # edx-enterprise # edx-proctoring # edx-toggles -django-webpack-loader==3.2.1 +django-webpack-loader==3.2.3 # via # -r requirements/edx/base.txt # edx-proctoring -djangorestframework==3.16.1 +djangorestframework==3.17.1 # via # -r requirements/edx/base.txt # django-config-models @@ -474,33 +477,33 @@ dnspython==2.8.0 # via # -r requirements/edx/base.txt # pymongo -docutils==0.21.2 +docutils==0.22.4 # via # pydata-sphinx-theme # sphinx # sphinx-mdinclude -done-xblock==2.5.0 +done-xblock==3.0.0 # via -r requirements/edx/base.txt drf-jwt==1.19.2 # via # -r requirements/edx/base.txt # edx-drf-extensions -drf-spectacular==0.28.0 +drf-spectacular==0.29.0 # via -r requirements/edx/base.txt -drf-yasg==1.21.11 +drf-yasg==1.21.15 # via # -r requirements/edx/base.txt # django-user-tasks # edx-api-doc-tools edx-ace==1.15.0 # via -r requirements/edx/base.txt -edx-api-doc-tools==2.1.0 +edx-api-doc-tools==3.0.0 # via # -r requirements/edx/base.txt # edx-name-affirmation -edx-auth-backends==4.6.1 +edx-auth-backends==5.0.0 # via -r requirements/edx/base.txt -edx-bulk-grades==1.2.0 +edx-bulk-grades==2.0.0 # via # -r requirements/edx/base.txt # staff-graded-xblock @@ -509,21 +512,23 @@ edx-ccx-keys==2.0.2 # -r requirements/edx/base.txt # lti-consumer-xblock # openedx-events -edx-celeryutils==1.4.0 +edx-celeryutils==2.0.0 # via # -r requirements/edx/base.txt # edx-name-affirmation # super-csv -edx-codejail==4.0.0 - # via -r requirements/edx/base.txt -edx-completion==4.9 +edx-codejail==4.1.0 + # via + # -r requirements/edx/base.txt + # xblocks-contrib +edx-completion==5.0.0 # via -r requirements/edx/base.txt edx-django-release-util==1.5.0 # via # -r requirements/edx/base.txt # edx-submissions # edxval -edx-django-sites-extensions==5.1.0 +edx-django-sites-extensions==6.0.0 # via -r requirements/edx/base.txt edx-django-utils==8.0.1 # via @@ -544,6 +549,7 @@ edx-django-utils==8.0.1 # openedx-events # ora2 # super-csv + # xblocks-contrib edx-drf-extensions==10.6.0 # via # -r requirements/edx/base.txt @@ -565,16 +571,15 @@ edx-event-bus-kafka==6.1.0 # via -r requirements/edx/base.txt edx-event-bus-redis==0.6.1 # via -r requirements/edx/base.txt -edx-i18n-tools==1.9.0 +edx-i18n-tools==2.0.0 # via # -r requirements/edx/base.txt # ora2 - # xblocks-contrib -edx-milestones==1.1.0 +edx-milestones==2.0.0 # via -r requirements/edx/base.txt edx-name-affirmation==3.0.2 # via -r requirements/edx/base.txt -edx-opaque-keys[django]==3.0.0 +edx-opaque-keys[django]==4.0.0 # via # -r requirements/edx/base.txt # edx-bulk-grades @@ -592,36 +597,37 @@ edx-opaque-keys[django]==3.0.0 # openedx-filters # ora2 # xblocks-contrib -edx-organizations==7.3.0 +edx-organizations==8.0.0 # via -r requirements/edx/base.txt edx-proctoring==5.2.0 # via -r requirements/edx/base.txt -edx-rbac==2.1.0 +edx-rbac==3.0.0 # via # -r requirements/edx/base.txt # edx-enterprise # enterprise-integrated-channels -edx-rest-api-client==6.2.0 +edx-rest-api-client==7.0.0 # via # -r requirements/edx/base.txt # edx-enterprise # edx-proctoring # enterprise-integrated-channels -edx-search==4.3.0 +edx-search==5.0.0 # via # -r requirements/edx/base.txt # openedx-forum -edx-sga==0.26.0 +edx-sga==0.27.1 # via -r requirements/edx/base.txt -edx-submissions==3.12.0 +edx-submissions==4.0.0 # via # -r requirements/edx/base.txt # ora2 + # xblocks-contrib edx-tincan-py35==2.0.0 # via # -r requirements/edx/base.txt # enterprise-integrated-channels -edx-toggles==5.4.1 +edx-toggles==6.0.0 # via # -r requirements/edx/base.txt # edx-auth-backends @@ -634,12 +640,15 @@ edx-toggles==5.4.1 # edxval # event-tracking # ora2 -edx-when==3.0.0 + # xblocks-contrib +edx-when==4.0.0 # via # -r requirements/edx/base.txt # edx-proctoring -edxval==3.1.0 - # via -r requirements/edx/base.txt +edxval==4.0.0 + # via + # -r requirements/edx/base.txt + # xblocks-contrib elasticsearch==7.9.1 # via # -c requirements/common_constraints.txt @@ -655,21 +664,21 @@ enmerkar-underscore==2.4.0 # via -r requirements/edx/base.txt enterprise-integrated-channels==0.1.56 # via -r requirements/edx/base.txt -event-tracking==3.3.0 +event-tracking==4.0.0 # via # -r requirements/edx/base.txt # edx-completion # edx-proctoring # edx-search -fastavro==1.12.0 +fastavro==1.12.1 # via # -r requirements/edx/base.txt # openedx-events -filelock==3.19.1 +filelock==3.25.2 # via # -r requirements/edx/base.txt # snowflake-connector-python -firebase-admin==7.1.0 +firebase-admin==7.3.0 # via # -r requirements/edx/base.txt # edx-ace @@ -684,69 +693,71 @@ fs==2.4.16 # fs-s3fs # openedx-django-pyfs # xblock + # xblocks-contrib fs-s3fs==1.1.1 # via # -r requirements/edx/base.txt # openedx-django-pyfs -geoip2==5.1.0 +geoip2==5.2.0 # via -r requirements/edx/base.txt gitdb==4.0.12 # via gitpython -gitpython==3.1.45 +gitpython==3.1.46 # via -r requirements/edx/doc.in glob2==0.7 # via -r requirements/edx/base.txt -google-api-core[grpc]==2.25.2 +google-api-core[grpc]==2.30.2 # via # -r requirements/edx/base.txt # firebase-admin # google-cloud-core # google-cloud-firestore # google-cloud-storage -google-auth==2.41.1 +google-auth==2.49.1 # via # -r requirements/edx/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.1 # via # -r requirements/edx/base.txt # google-cloud-firestore # google-cloud-storage -google-cloud-firestore==2.21.0 +google-cloud-firestore==2.26.0 # via # -r requirements/edx/base.txt # firebase-admin -google-cloud-storage==3.4.0 +google-cloud-storage==3.10.1 # via # -r requirements/edx/base.txt # firebase-admin -google-crc32c==1.7.1 +google-crc32c==1.8.0 # via # -r requirements/edx/base.txt # google-cloud-storage # google-resumable-media -google-resumable-media==2.7.2 +google-resumable-media==2.8.2 # via # -r requirements/edx/base.txt # google-cloud-storage -googleapis-common-protos==1.70.0 +googleapis-common-protos==1.74.0 # via # -r requirements/edx/base.txt # google-api-core # grpcio-status -grpcio==1.75.1 +grpcio==1.80.0 # via # -r requirements/edx/base.txt # google-api-core + # google-cloud-firestore # grpcio-status -grpcio-status==1.75.1 +grpcio-status==1.80.0 # via # -r requirements/edx/base.txt # google-api-core -gunicorn==23.0.0 +gunicorn==25.3.0 # via -r requirements/edx/base.txt h11==0.16.0 # via @@ -756,7 +767,7 @@ h2==4.3.0 # via # -r requirements/edx/base.txt # httpx -help-tokens==3.2.0 +help-tokens==4.0.0 # via -r requirements/edx/base.txt hpack==4.1.0 # via @@ -766,6 +777,7 @@ html5lib==1.1 # via # -r requirements/edx/base.txt # ora2 + # xblocks-contrib httpcore==1.0.9 # via # -r requirements/edx/base.txt @@ -774,13 +786,14 @@ httpx[http2]==0.28.1 # via # -r requirements/edx/base.txt # firebase-admin + # typesense hyperframe==6.1.0 # via # -r requirements/edx/base.txt # h2 -icalendar==6.3.1 +icalendar==7.0.3 # via -r requirements/edx/base.txt -idna==3.10 +idna==3.11 # via # -r requirements/edx/base.txt # anyio @@ -789,16 +802,16 @@ idna==3.10 # requests # snowflake-connector-python # yarl -imagesize==1.4.1 +imagesize==2.0.0 # via sphinx -importlib-metadata==8.7.0 +importlib-metadata==9.0.0 # via -r requirements/edx/base.txt inflection==0.5.1 # via # -r requirements/edx/base.txt # drf-spectacular # drf-yasg -invoke==2.2.0 +invoke==3.0.3 # via # -r requirements/edx/base.txt # paramiko @@ -814,12 +827,12 @@ jinja2==3.1.6 # code-annotations # sphinx # sphinx-autoapi -jmespath==1.0.1 +jmespath==1.1.0 # via # -r requirements/edx/base.txt # boto3 # botocore -joblib==1.5.2 +joblib==1.5.3 # via # -r requirements/edx/base.txt # nltk @@ -837,7 +850,7 @@ jsonfield==3.2.0 # enterprise-integrated-channels # lti-consumer-xblock # ora2 -jsonschema==4.25.1 +jsonschema==4.26.0 # via # -r requirements/edx/base.txt # drf-spectacular @@ -847,12 +860,12 @@ jsonschema-specifications==2025.9.1 # via # -r requirements/edx/base.txt # jsonschema -jwcrypto==1.5.6 +jwcrypto==1.5.7 # via # -r requirements/edx/base.txt # django-oauth-toolkit # pylti1p3 -kombu==5.5.4 +kombu==5.6.2 # via # -r requirements/edx/base.txt # celery @@ -865,11 +878,7 @@ lazy==1.6 # lti-consumer-xblock # ora2 # xblock -loremipsum==1.0.5 - # via - # -r requirements/edx/base.txt - # ora2 -lti-consumer-xblock==9.14.2 +lti-consumer-xblock==10.0.1 # via -r requirements/edx/base.txt lxml[html-clean]==5.3.2 # via @@ -884,8 +893,9 @@ lxml[html-clean]==5.3.2 # ora2 # python3-saml # xblock + # xblocks-contrib # xmlsec -lxml-html-clean==0.4.3 +lxml-html-clean==0.4.4 # via # -r requirements/edx/base.txt # lxml @@ -898,7 +908,7 @@ mako==1.3.10 # lti-consumer-xblock # xblock # xblock-utils -markdown==3.9 +markdown==3.10.2 # via # -r requirements/edx/base.txt # openedx-django-wiki @@ -912,23 +922,24 @@ markupsafe==3.0.3 # mako # openedx-calc # xblock -maxminddb==2.8.2 + # xblocks-contrib +maxminddb==3.1.1 # via # -r requirements/edx/base.txt # geoip2 -meilisearch==0.37.0 +meilisearch==0.40.0 # via # -r requirements/edx/base.txt # edx-search -mistune==3.1.4 +mistune==3.2.0 # via sphinx-mdinclude -mongoengine==0.29.1 +mongoengine==0.29.3 # via -r requirements/edx/base.txt monotonic==1.6 # via # -r requirements/edx/base.txt # analytics-python -more-itertools==10.8.0 +more-itertools==11.0.2 # via # -r requirements/edx/base.txt # cssutils @@ -936,28 +947,28 @@ mpmath==1.3.0 # via # -r requirements/edx/base.txt # sympy -msgpack==1.1.1 +msgpack==1.1.2 # via # -r requirements/edx/base.txt # cachecontrol -multidict==6.7.0 +multidict==6.7.1 # via # -r requirements/edx/base.txt # aiohttp # yarl -mysqlclient==2.2.7 +mysqlclient==2.2.8 # via # -r requirements/edx/base.txt # openedx-forum -nh3==0.3.0 +nh3==0.3.4 # via # -r requirements/edx/base.txt # xblocks-contrib -nltk==3.9.2 +nltk==3.9.4 # via # -r requirements/edx/base.txt # chem -nodeenv==1.9.1 +nodeenv==1.10.0 # via -r requirements/edx/base.txt numpy==1.26.4 # via @@ -967,6 +978,7 @@ numpy==1.26.4 # openedx-calc # scipy # shapely + # xblocks-contrib oauthlib==3.3.1 # via # -r requirements/edx/base.txt @@ -983,14 +995,14 @@ openedx-atlas==0.7.0 # edx-enterprise # enterprise-integrated-channels # openedx-forum -openedx-calc==4.0.2 - # via -r requirements/edx/base.txt -openedx-django-pyfs==3.8.0 +openedx-calc==4.0.3 # via # -r requirements/edx/base.txt - # lti-consumer-xblock - # xblock # xblocks-contrib +openedx-django-pyfs==4.0.0 + # via + # -r requirements/edx/base.txt + # xblock openedx-django-require==3.0.0 # via -r requirements/edx/base.txt openedx-django-wiki==3.1.1 @@ -1004,31 +1016,31 @@ openedx-events==10.5.0 # edx-name-affirmation # event-tracking # ora2 -openedx-filters==3.1.0 +openedx-filters==2.1.0 # via # -r requirements/edx/base.txt # edx-enterprise # lti-consumer-xblock # ora2 -openedx-forum==0.3.8 +openedx-forum==0.4.1 # via -r requirements/edx/base.txt openedx-learning==0.27.1 # via # -c requirements/constraints.txt # -r requirements/edx/base.txt -optimizely-sdk==5.2.0 +optimizely-sdk==5.4.0 # via -r requirements/edx/base.txt -ora2==6.16.4 +ora2==7.0.0 # via -r requirements/edx/base.txt -packaging==25.0 +packaging==26.0 # via # -r requirements/edx/base.txt # drf-yasg # gunicorn # kombu - # pydata-sphinx-theme # snowflake-connector-python # sphinx + # wheel paramiko==4.0.0 # via # -r requirements/edx/base.txt @@ -1039,6 +1051,7 @@ path==16.11.0 # -r requirements/edx/base.txt # edx-i18n-tools # path-py + # xblocks-contrib path-py==12.5.0 # via # -r requirements/edx/base.txt @@ -1053,13 +1066,13 @@ picobox==4.0.0 # via sphinxcontrib-openapi piexif==1.1.3 # via -r requirements/edx/base.txt -pillow==11.3.0 +pillow==12.2.0 # via # -r requirements/edx/base.txt # edx-enterprise # edx-organizations # edxval -platformdirs==4.4.0 +platformdirs==4.9.6 # via # -r requirements/edx/base.txt # snowflake-connector-python @@ -1071,17 +1084,17 @@ prompt-toolkit==3.0.52 # via # -r requirements/edx/base.txt # click-repl -propcache==0.4.0 +propcache==0.4.1 # via # -r requirements/edx/base.txt # aiohttp # yarl -proto-plus==1.26.1 +proto-plus==1.27.2 # via # -r requirements/edx/base.txt # google-api-core # google-cloud-firestore -protobuf==6.32.1 +protobuf==6.33.6 # via # -r requirements/edx/base.txt # google-api-core @@ -1089,23 +1102,22 @@ protobuf==6.32.1 # googleapis-common-protos # grpcio-status # proto-plus -psutil==7.1.0 +psutil==7.2.2 # via # -r requirements/edx/base.txt # edx-django-utils -pyasn1==0.6.1 +pyasn1==0.6.3 # via # -r requirements/edx/base.txt # pgpy # pyasn1-modules - # rsa pyasn1-modules==0.4.2 # via # -r requirements/edx/base.txt # google-auth -pycountry==24.6.1 +pycountry==26.2.16 # via -r requirements/edx/base.txt -pycparser==2.23 +pycparser==3.0 # via # -r requirements/edx/base.txt # cffi @@ -1114,23 +1126,23 @@ pycryptodomex==3.23.0 # -r requirements/edx/base.txt # edx-proctoring # lti-consumer-xblock -pydantic==2.11.10 +pydantic==2.12.5 # via # -r requirements/edx/base.txt # camel-converter -pydantic-core==2.33.2 +pydantic-core==2.41.5 # via # -r requirements/edx/base.txt # pydantic -pydata-sphinx-theme==0.15.4 +pydata-sphinx-theme==0.16.1 # via sphinx-book-theme -pygments==2.19.2 +pygments==2.20.0 # via # accessible-pygments # pydata-sphinx-theme # sphinx # sphinx-mdinclude -pyjwt[crypto]==2.10.1 +pyjwt[crypto]==2.12.1 # via # -r requirements/edx/base.txt # drf-jwt @@ -1159,7 +1171,7 @@ pymongo==4.4.0 # event-tracking # mongoengine # openedx-forum -pynacl==1.6.0 +pynacl==1.6.2 # via # -r requirements/edx/base.txt # edx-django-utils @@ -1170,11 +1182,12 @@ pyopenssl==25.3.0 # via # -r requirements/edx/base.txt # snowflake-connector-python -pyparsing==3.2.5 +pyparsing==3.3.2 # via # -r requirements/edx/base.txt # chem # openedx-calc + # xblocks-contrib pyrsistent==0.20.0 # via # -r requirements/edx/base.txt @@ -1204,7 +1217,7 @@ python-slugify==8.0.4 # via # -r requirements/edx/base.txt # code-annotations -python-swiftclient==4.8.0 +python-swiftclient==4.10.0 # via # -r requirements/edx/base.txt # ora2 @@ -1214,7 +1227,7 @@ python3-openid==3.2.0 ; python_version >= "3" # social-auth-core python3-saml==1.16.0 # via -r requirements/edx/base.txt -pytz==2025.2 +pytz==2026.1.post1 # via # -r requirements/edx/base.txt # drf-yasg @@ -1230,6 +1243,7 @@ pytz==2025.2 # snowflake-connector-python # tincan # xblock + # xblocks-contrib pyuca==1.2 # via -r requirements/edx/base.txt pyyaml==6.0.3 @@ -1245,23 +1259,25 @@ pyyaml==6.0.3 # sphinxcontrib-openapi # xblock random2==1.0.2 + # via + # -r requirements/edx/base.txt + # xblocks-contrib +recommender-xblock==5.0.0 # via -r requirements/edx/base.txt -recommender-xblock==3.1.0 - # via -r requirements/edx/base.txt -redis==6.4.0 +redis==7.4.0 # via # -r requirements/edx/base.txt # walrus -referencing==0.36.2 +referencing==0.37.0 # via # -r requirements/edx/base.txt # jsonschema # jsonschema-specifications -regex==2025.9.18 +regex==2026.4.4 # via # -r requirements/edx/base.txt # nltk -requests==2.32.5 +requests==2.33.1 # via # -r requirements/edx/base.txt # analytics-python @@ -1288,28 +1304,25 @@ requests==2.32.5 # social-auth-core # sphinx # xblock-google-drive + # xblocks-contrib requests-oauthlib==2.0.0 # via # -r requirements/edx/base.txt # social-auth-core -roman-numerals-py==3.1.0 +roman-numerals==4.1.0 # via sphinx -rpds-py==0.27.1 +rpds-py==0.30.0 # via # -r requirements/edx/base.txt # jsonschema # referencing -rsa==4.9.1 - # via - # -r requirements/edx/base.txt - # google-auth rules==3.5 # via # -r requirements/edx/base.txt # edx-enterprise # edx-proctoring # openedx-learning -s3transfer==0.14.0 +s3transfer==0.16.0 # via # -r requirements/edx/base.txt # boto3 @@ -1317,7 +1330,7 @@ sailthru-client==2.2.3 # via # -r requirements/edx/base.txt # edx-ace -scipy==1.16.2 +scipy==1.17.1 # via # -r requirements/edx/base.txt # chem @@ -1326,7 +1339,9 @@ semantic-version==2.10.0 # -r requirements/edx/base.txt # edx-drf-extensions shapely==2.1.2 - # via -r requirements/edx/base.txt + # via + # -r requirements/edx/base.txt + # xblocks-contrib simplejson==3.20.2 # via # -r requirements/edx/base.txt @@ -1334,6 +1349,7 @@ simplejson==3.20.2 # super-csv # xblock # xblock-utils + # xblocks-contrib six==1.17.0 # via # -r requirements/edx/base.txt @@ -1351,22 +1367,17 @@ six==1.17.0 # fs-s3fs # html5lib # python-dateutil - # sphinxcontrib-httpdomain slumber==0.7.1 # via # -r requirements/edx/base.txt # edx-bulk-grades # edx-enterprise # enterprise-integrated-channels -smmap==5.0.2 +smmap==5.0.3 # via gitdb -sniffio==1.3.1 - # via - # -r requirements/edx/base.txt - # anyio snowballstemmer==3.0.1 # via sphinx -snowflake-connector-python==4.2.0 +snowflake-connector-python==4.3.0 # via # -r requirements/edx/base.txt # edx-enterprise @@ -1377,12 +1388,12 @@ social-auth-app-django==5.4.1 # -r requirements/edx/base.txt # edx-auth-backends # edx-enterprise -social-auth-core==4.7.0 +social-auth-core==4.8.5 # via # -r requirements/edx/base.txt # edx-auth-backends # social-auth-app-django -sorl-thumbnail==12.11.0 +sorl-thumbnail==13.0.0 # via # -r requirements/edx/base.txt # openedx-django-wiki @@ -1390,11 +1401,11 @@ sortedcontainers==2.4.0 # via # -r requirements/edx/base.txt # snowflake-connector-python -soupsieve==2.8 +soupsieve==2.8.3 # via # -r requirements/edx/base.txt # beautifulsoup4 -sphinx==8.2.3 +sphinx==9.0.4 # via # -r requirements/edx/doc.in # pydata-sphinx-theme @@ -1410,13 +1421,13 @@ sphinx-autoapi==3.6.0 # via # -c requirements/constraints.txt # -r requirements/edx/doc.in -sphinx-book-theme==1.1.4 +sphinx-book-theme==1.2.0 # via -r requirements/edx/doc.in -sphinx-design==0.6.1 +sphinx-design==0.7.0 # via -r requirements/edx/doc.in sphinx-mdinclude==0.6.2 # via sphinxcontrib-openapi -sphinx-reredirects==1.0.0 +sphinx-reredirects==1.1.0 # via -r requirements/edx/doc.in sphinxcontrib-applehelp==2.0.0 # via sphinx @@ -1424,11 +1435,11 @@ sphinxcontrib-devhelp==2.0.0 # via sphinx sphinxcontrib-htmlhelp==2.1.0 # via sphinx -sphinxcontrib-httpdomain==1.8.1 +sphinxcontrib-httpdomain==2.0.0 # via sphinxcontrib-openapi sphinxcontrib-jsmath==1.0.1 # via sphinx -sphinxcontrib-openapi[markdown]==0.8.4 +sphinxcontrib-openapi[markdown]==0.9.0 # via -r requirements/edx/doc.in sphinxcontrib-qthelp==2.0.0 # via sphinx @@ -1436,13 +1447,13 @@ sphinxcontrib-serializinghtml==2.0.0 # via sphinx sphinxext-rediraffe==0.3.0 # via -r requirements/edx/doc.in -sqlparse==0.5.3 +sqlparse==0.5.5 # via # -r requirements/edx/base.txt # django -staff-graded-xblock==3.1.0 +staff-graded-xblock==4.0.0 # via -r requirements/edx/base.txt -stevedore==5.5.0 +stevedore==5.7.0 # via # -r requirements/edx/base.txt # code-annotations @@ -1450,7 +1461,7 @@ stevedore==5.5.0 # edx-django-utils # edx-enterprise # edx-opaque-keys -super-csv==4.1.0 +super-csv==5.0.0 # via # -r requirements/edx/base.txt # edx-bulk-grades @@ -1458,7 +1469,7 @@ sympy==1.14.0 # via # -r requirements/edx/base.txt # openedx-calc -testfixtures==9.1.0 +testfixtures==11.0.0 # via # -r requirements/edx/base.txt # edx-enterprise @@ -1474,15 +1485,20 @@ tinycss2==1.4.0 # via # -r requirements/edx/base.txt # bleach -tomlkit==0.13.3 +tomlkit==0.14.0 # via # -r requirements/edx/base.txt # openedx-learning # snowflake-connector-python -tqdm==4.67.1 +tqdm==4.67.3 # via # -r requirements/edx/base.txt # nltk +typesense==2.0.0 + # via + # -r requirements/edx/base.txt + # edx-search + # openedx-forum typing-extensions==4.15.0 # via # -r requirements/edx/base.txt @@ -1492,6 +1508,7 @@ typing-extensions==4.15.0 # django-countries # edx-opaque-keys # grpcio + # icalendar # jwcrypto # pydantic # pydantic-core @@ -1500,16 +1517,21 @@ typing-extensions==4.15.0 # pyopenssl # referencing # snowflake-connector-python + # typesense # typing-inspection typing-inspection==0.4.2 # via # -r requirements/edx/base.txt # pydantic -tzdata==2025.2 +tzdata==2026.1 # via # -r requirements/edx/base.txt # icalendar # kombu +tzlocal==5.3.1 + # via + # -r requirements/edx/base.txt + # celery unicodecsv==0.14.1 # via # -r requirements/edx/base.txt @@ -1522,7 +1544,7 @@ uritemplate==4.2.0 # -r requirements/edx/base.txt # drf-spectacular # drf-yasg -urllib3==2.5.0 +urllib3==2.6.3 # via # -r requirements/edx/base.txt # botocore @@ -1534,19 +1556,19 @@ vine==5.1.0 # amqp # celery # kombu -voluptuous==0.15.2 +voluptuous==0.16.0 # via # -r requirements/edx/base.txt # ora2 -walrus==0.9.5 +walrus==0.9.8 # via # -r requirements/edx/base.txt # edx-event-bus-redis -wcwidth==0.2.14 +wcwidth==0.6.0 # via # -r requirements/edx/base.txt # prompt-toolkit -web-fragments==3.1.0 +web-fragments==4.0.0 # via # -r requirements/edx/base.txt # crowdsourcehinter-xblock @@ -1554,6 +1576,7 @@ web-fragments==3.1.0 # staff-graded-xblock # xblock # xblock-utils + # xblocks-contrib webencodings==0.5.1 # via # -r requirements/edx/base.txt @@ -1564,13 +1587,16 @@ webob==1.8.9 # via # -r requirements/edx/base.txt # xblock -wheel==0.45.1 + # xblocks-contrib +wheel==0.46.3 # via # -r requirements/edx/base.txt # django-pipeline -wrapt==1.17.3 - # via -r requirements/edx/base.txt -xblock[django]==5.2.0 +wrapt==2.1.2 + # via + # -r requirements/edx/base.txt + # xblocks-contrib +xblock[django]==6.0.0 # via # -r requirements/edx/base.txt # acid-xblock @@ -1597,16 +1623,16 @@ xblock-utils==4.0.0 # -r requirements/edx/base.txt # edx-sga # xblock-poll -xblocks-contrib==0.6.0 +xblocks-contrib==0.13.1 # via -r requirements/edx/base.txt xmlsec==1.3.14 # via # -c requirements/constraints.txt # -r requirements/edx/base.txt # python3-saml -xss-utils==0.8.0 +xss-utils==1.0.0 # via -r requirements/edx/base.txt -yarl==1.22.0 +yarl==1.23.0 # via # -r requirements/edx/base.txt # aiohttp diff --git a/requirements/edx/testing.txt b/requirements/edx/testing.txt index 342edc58cfc0..b5768a571526 100644 --- a/requirements/edx/testing.txt +++ b/requirements/edx/testing.txt @@ -10,7 +10,7 @@ aiohappyeyeballs==2.6.1 # via # -r requirements/edx/base.txt # aiohttp -aiohttp==3.13.3 +aiohttp==3.13.5 # via # -r requirements/edx/base.txt # geoip2 @@ -29,11 +29,13 @@ aniso8601==10.0.1 # -r requirements/edx/base.txt # edx-tincan-py35 # tincan +annotated-doc==0.0.4 + # via fastapi annotated-types==0.7.0 # via # -r requirements/edx/base.txt # pydantic -anyio==4.11.0 +anyio==4.13.0 # via # -r requirements/edx/base.txt # httpx @@ -42,7 +44,7 @@ appdirs==1.4.4 # via # -r requirements/edx/base.txt # fs -asgiref==3.10.0 +asgiref==3.11.1 # via # -r requirements/edx/base.txt # django @@ -52,11 +54,11 @@ asn1crypto==1.5.1 # via # -r requirements/edx/base.txt # snowflake-connector-python -astroid==4.0.3 +astroid==4.0.4 # via # pylint # pylint-celery -attrs==25.4.0 +attrs==26.1.0 # via # -r requirements/edx/base.txt # aiohttp @@ -66,7 +68,7 @@ attrs==25.4.0 # openedx-events # openedx-learning # referencing -babel==2.17.0 +babel==2.18.0 # via # -r requirements/edx/base.txt # enmerkar @@ -79,17 +81,18 @@ bcrypt==5.0.0 # via # -r requirements/edx/base.txt # paramiko -beautifulsoup4==4.14.2 +beautifulsoup4==4.14.3 # via # -r requirements/edx/base.txt # -r requirements/edx/testing.in # openedx-forum # pynliner -billiard==4.2.2 + # xblocks-contrib +billiard==4.2.4 # via # -r requirements/edx/base.txt # celery -bleach[css]==6.2.0 +bleach[css]==6.3.0 # via # -r requirements/edx/base.txt # edx-enterprise @@ -100,14 +103,14 @@ bleach[css]==6.2.0 # xblock-poll boto==2.49.0 # via -r requirements/edx/base.txt -boto3==1.40.46 +boto3==1.42.86 # via # -r requirements/edx/base.txt # django-ses # fs-s3fs # ora2 # snowflake-connector-python -botocore==1.40.46 +botocore==1.42.86 # via # -r requirements/edx/base.txt # boto3 @@ -115,21 +118,20 @@ botocore==1.40.46 # snowflake-connector-python bridgekeeper==0.9 # via -r requirements/edx/base.txt -cachecontrol==0.14.3 +cachecontrol==0.14.4 # via # -r requirements/edx/base.txt # firebase-admin -cachetools==6.2.0 +cachetools==7.0.5 # via # -r requirements/edx/base.txt # edxval - # google-auth # tox -camel-converter[pydantic]==4.0.1 +camel-converter[pydantic]==5.1.0 # via # -r requirements/edx/base.txt # meilisearch -celery==5.5.3 +celery==5.6.3 # via # -c requirements/constraints.txt # -r requirements/edx/base.txt @@ -140,7 +142,7 @@ celery==5.5.3 # enterprise-integrated-channels # event-tracking # openedx-learning -certifi==2025.10.5 +certifi==2026.2.25 # via # -r requirements/edx/base.txt # elasticsearch @@ -148,27 +150,27 @@ certifi==2025.10.5 # httpx # requests # snowflake-connector-python -cffi==1.17.1 +cffi==2.0.0 # via # -r requirements/edx/base.txt # cryptography - # pact-python # pynacl -chardet==5.2.0 +chardet==7.4.1 # via # -r requirements/edx/base.txt # -r requirements/edx/coverage.txt # diff-cover # pysrt - # tox -charset-normalizer==3.4.3 +charset-normalizer==3.4.7 # via # -r requirements/edx/base.txt # requests # snowflake-connector-python chem==2.0.0 - # via -r requirements/edx/base.txt -click==8.3.0 + # via + # -r requirements/edx/base.txt + # xblocks-contrib +click==8.3.2 # via # -r requirements/edx/base.txt # celery @@ -197,7 +199,7 @@ click-repl==0.3.0 # via # -r requirements/edx/base.txt # celery -code-annotations==2.3.0 +code-annotations==2.3.2 # via # -r requirements/edx/base.txt # -r requirements/edx/testing.in @@ -208,11 +210,11 @@ codejail-includes==2.0.0 # via -r requirements/edx/base.txt colorama==0.4.6 # via tox -coverage[toml]==7.10.7 +coverage[toml]==7.13.5 # via # -r requirements/edx/coverage.txt # pytest-cov -crowdsourcehinter-xblock==0.8 +crowdsourcehinter-xblock==1.0.0 # via -r requirements/edx/base.txt cryptography==45.0.7 # via @@ -220,14 +222,14 @@ cryptography==45.0.7 # -r requirements/edx/base.txt # django-fernet-fields-v2 # edx-enterprise + # google-auth # jwcrypto # paramiko # pgpy # pyjwt # pyopenssl # snowflake-connector-python - # social-auth-core -cssselect==1.3.0 +cssselect==1.4.0 # via # -r requirements/edx/testing.in # pyquery @@ -244,13 +246,14 @@ defusedxml==0.7.1 # ora2 # python3-openid # social-auth-core -diff-cover==9.7.1 + # xblocks-contrib +diff-cover==10.2.0 # via -r requirements/edx/coverage.txt -dill==0.4.0 +dill==0.4.1 # via pylint distlib==0.4.0 # via virtualenv -django==4.2.28 +django==4.2.30 # via # -c requirements/common_constraints.txt # -c requirements/constraints.txt @@ -324,8 +327,9 @@ django==4.2.28 # social-auth-app-django # super-csv # xblock-google-drive + # xblocks-contrib # xss-utils -django-appconf==1.1.0 +django-appconf==1.2.0 # via # -r requirements/edx/base.txt # django-statici18n @@ -341,7 +345,7 @@ django-classy-tags==4.1.0 # via # -r requirements/edx/base.txt # django-sekizai -django-config-models==2.9.0 +django-config-models==3.0.0 # via # -r requirements/edx/base.txt # edx-enterprise @@ -350,7 +354,7 @@ django-config-models==2.9.0 # lti-consumer-xblock django-cors-headers==4.9.0 # via -r requirements/edx/base.txt -django-countries==7.6.1 +django-countries==8.2.0 # via # -r requirements/edx/base.txt # edx-enterprise @@ -426,7 +430,7 @@ django-object-actions==5.0.0 # enterprise-integrated-channels django-pipeline==4.1.0 # via -r requirements/edx/base.txt -django-push-notifications==3.2.1 +django-push-notifications==3.3.0 # via # -r requirements/edx/base.txt # edx-ace @@ -436,9 +440,9 @@ django-sekizai==4.1.0 # via # -r requirements/edx/base.txt # openedx-django-wiki -django-ses==4.4.0 +django-ses==4.7.2 # via -r requirements/edx/base.txt -django-simple-history==3.10.1 +django-simple-history==3.11.0 # via # -r requirements/edx/base.txt # edx-enterprise @@ -447,18 +451,17 @@ django-simple-history==3.10.1 # edx-proctoring # enterprise-integrated-channels # ora2 -django-statici18n==2.6.0 +django-statici18n==2.7.1 # via # -r requirements/edx/base.txt # lti-consumer-xblock # xblock-drag-and-drop-v2 # xblock-poll - # xblocks-contrib django-storages==1.14.6 # via # -r requirements/edx/base.txt # edxval -django-user-tasks==3.4.3 +django-user-tasks==4.0.0 # via -r requirements/edx/base.txt django-waffle==5.0.0 # via @@ -468,11 +471,11 @@ django-waffle==5.0.0 # edx-enterprise # edx-proctoring # edx-toggles -django-webpack-loader==3.2.1 +django-webpack-loader==3.2.3 # via # -r requirements/edx/base.txt # edx-proctoring -djangorestframework==3.16.1 +djangorestframework==3.17.1 # via # -r requirements/edx/base.txt # django-config-models @@ -500,28 +503,28 @@ dnspython==2.8.0 # via # -r requirements/edx/base.txt # pymongo -done-xblock==2.5.0 +done-xblock==3.0.0 # via -r requirements/edx/base.txt drf-jwt==1.19.2 # via # -r requirements/edx/base.txt # edx-drf-extensions -drf-spectacular==0.28.0 +drf-spectacular==0.29.0 # via -r requirements/edx/base.txt -drf-yasg==1.21.11 +drf-yasg==1.21.15 # via # -r requirements/edx/base.txt # django-user-tasks # edx-api-doc-tools edx-ace==1.15.0 # via -r requirements/edx/base.txt -edx-api-doc-tools==2.1.0 +edx-api-doc-tools==3.0.0 # via # -r requirements/edx/base.txt # edx-name-affirmation -edx-auth-backends==4.6.1 +edx-auth-backends==5.0.0 # via -r requirements/edx/base.txt -edx-bulk-grades==1.2.0 +edx-bulk-grades==2.0.0 # via # -r requirements/edx/base.txt # staff-graded-xblock @@ -530,21 +533,23 @@ edx-ccx-keys==2.0.2 # -r requirements/edx/base.txt # lti-consumer-xblock # openedx-events -edx-celeryutils==1.4.0 +edx-celeryutils==2.0.0 # via # -r requirements/edx/base.txt # edx-name-affirmation # super-csv -edx-codejail==4.0.0 - # via -r requirements/edx/base.txt -edx-completion==4.9 +edx-codejail==4.1.0 + # via + # -r requirements/edx/base.txt + # xblocks-contrib +edx-completion==5.0.0 # via -r requirements/edx/base.txt edx-django-release-util==1.5.0 # via # -r requirements/edx/base.txt # edx-submissions # edxval -edx-django-sites-extensions==5.1.0 +edx-django-sites-extensions==6.0.0 # via -r requirements/edx/base.txt edx-django-utils==8.0.1 # via @@ -565,6 +570,7 @@ edx-django-utils==8.0.1 # openedx-events # ora2 # super-csv + # xblocks-contrib edx-drf-extensions==10.6.0 # via # -r requirements/edx/base.txt @@ -586,18 +592,17 @@ edx-event-bus-kafka==6.1.0 # via -r requirements/edx/base.txt edx-event-bus-redis==0.6.1 # via -r requirements/edx/base.txt -edx-i18n-tools==1.9.0 +edx-i18n-tools==2.0.0 # via # -r requirements/edx/base.txt # ora2 - # xblocks-contrib -edx-lint==5.6.0 +edx-lint==6.0.0 # via -r requirements/edx/testing.in -edx-milestones==1.1.0 +edx-milestones==2.0.0 # via -r requirements/edx/base.txt edx-name-affirmation==3.0.2 # via -r requirements/edx/base.txt -edx-opaque-keys[django]==3.0.0 +edx-opaque-keys[django]==4.0.0 # via # -r requirements/edx/base.txt # edx-bulk-grades @@ -615,36 +620,37 @@ edx-opaque-keys[django]==3.0.0 # openedx-filters # ora2 # xblocks-contrib -edx-organizations==7.3.0 +edx-organizations==8.0.0 # via -r requirements/edx/base.txt edx-proctoring==5.2.0 # via -r requirements/edx/base.txt -edx-rbac==2.1.0 +edx-rbac==3.0.0 # via # -r requirements/edx/base.txt # edx-enterprise # enterprise-integrated-channels -edx-rest-api-client==6.2.0 +edx-rest-api-client==7.0.0 # via # -r requirements/edx/base.txt # edx-enterprise # edx-proctoring # enterprise-integrated-channels -edx-search==4.3.0 +edx-search==5.0.0 # via # -r requirements/edx/base.txt # openedx-forum -edx-sga==0.26.0 +edx-sga==0.27.1 # via -r requirements/edx/base.txt -edx-submissions==3.12.0 +edx-submissions==4.0.0 # via # -r requirements/edx/base.txt # ora2 + # xblocks-contrib edx-tincan-py35==2.0.0 # via # -r requirements/edx/base.txt # enterprise-integrated-channels -edx-toggles==5.4.1 +edx-toggles==6.0.0 # via # -r requirements/edx/base.txt # edx-auth-backends @@ -657,12 +663,15 @@ edx-toggles==5.4.1 # edxval # event-tracking # ora2 -edx-when==3.0.0 + # xblocks-contrib +edx-when==4.0.0 # via # -r requirements/edx/base.txt # edx-proctoring -edxval==3.1.0 - # via -r requirements/edx/base.txt +edxval==4.0.0 + # via + # -r requirements/edx/base.txt + # xblocks-contrib elasticsearch==7.9.1 # via # -c requirements/common_constraints.txt @@ -678,31 +687,32 @@ enmerkar-underscore==2.4.0 # via -r requirements/edx/base.txt enterprise-integrated-channels==0.1.56 # via -r requirements/edx/base.txt -event-tracking==3.3.0 +event-tracking==4.0.0 # via # -r requirements/edx/base.txt # edx-completion # edx-proctoring # edx-search -execnet==2.1.1 +execnet==2.1.2 # via pytest-xdist factory-boy==3.3.3 # via -r requirements/edx/testing.in -faker==37.8.0 +faker==40.13.0 # via factory-boy -fastapi==0.118.0 +fastapi==0.135.3 # via pact-python -fastavro==1.12.0 +fastavro==1.12.1 # via # -r requirements/edx/base.txt # openedx-events -filelock==3.19.1 +filelock==3.25.2 # via # -r requirements/edx/base.txt + # python-discovery # snowflake-connector-python # tox # virtualenv -firebase-admin==7.1.0 +firebase-admin==7.3.0 # via # -r requirements/edx/base.txt # edx-ace @@ -719,67 +729,69 @@ fs==2.4.16 # fs-s3fs # openedx-django-pyfs # xblock + # xblocks-contrib fs-s3fs==1.1.1 # via # -r requirements/edx/base.txt # openedx-django-pyfs -geoip2==5.1.0 +geoip2==5.2.0 # via -r requirements/edx/base.txt glob2==0.7 # via -r requirements/edx/base.txt -google-api-core[grpc]==2.25.2 +google-api-core[grpc]==2.30.2 # via # -r requirements/edx/base.txt # firebase-admin # google-cloud-core # google-cloud-firestore # google-cloud-storage -google-auth==2.41.1 +google-auth==2.49.1 # via # -r requirements/edx/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.1 # via # -r requirements/edx/base.txt # google-cloud-firestore # google-cloud-storage -google-cloud-firestore==2.21.0 +google-cloud-firestore==2.26.0 # via # -r requirements/edx/base.txt # firebase-admin -google-cloud-storage==3.4.0 +google-cloud-storage==3.10.1 # via # -r requirements/edx/base.txt # firebase-admin -google-crc32c==1.7.1 +google-crc32c==1.8.0 # via # -r requirements/edx/base.txt # google-cloud-storage # google-resumable-media -google-resumable-media==2.7.2 +google-resumable-media==2.8.2 # via # -r requirements/edx/base.txt # google-cloud-storage -googleapis-common-protos==1.70.0 +googleapis-common-protos==1.74.0 # via # -r requirements/edx/base.txt # google-api-core # grpcio-status -grimp==3.11 +grimp==3.14 # via import-linter -grpcio==1.75.1 +grpcio==1.80.0 # via # -r requirements/edx/base.txt # google-api-core + # google-cloud-firestore # grpcio-status -grpcio-status==1.75.1 +grpcio-status==1.80.0 # via # -r requirements/edx/base.txt # google-api-core -gunicorn==23.0.0 +gunicorn==25.3.0 # via -r requirements/edx/base.txt h11==0.16.0 # via @@ -790,7 +802,7 @@ h2==4.3.0 # via # -r requirements/edx/base.txt # httpx -help-tokens==3.2.0 +help-tokens==4.0.0 # via -r requirements/edx/base.txt hpack==4.1.0 # via @@ -800,6 +812,7 @@ html5lib==1.1 # via # -r requirements/edx/base.txt # ora2 + # xblocks-contrib httpcore==1.0.9 # via # -r requirements/edx/base.txt @@ -810,13 +823,14 @@ httpx[http2]==0.28.1 # via # -r requirements/edx/base.txt # firebase-admin + # typesense hyperframe==6.1.0 # via # -r requirements/edx/base.txt # h2 -icalendar==6.3.1 +icalendar==7.0.3 # via -r requirements/edx/base.txt -idna==3.10 +idna==3.11 # via # -r requirements/edx/base.txt # anyio @@ -825,18 +839,18 @@ idna==3.10 # requests # snowflake-connector-python # yarl -import-linter==2.5 +import-linter==2.11 # via -r requirements/edx/testing.in -importlib-metadata==8.7.0 +importlib-metadata==9.0.0 # via -r requirements/edx/base.txt inflection==0.5.1 # via # -r requirements/edx/base.txt # drf-spectacular # drf-yasg -iniconfig==2.1.0 +iniconfig==2.3.0 # via pytest -invoke==2.2.0 +invoke==3.0.3 # via # -r requirements/edx/base.txt # paramiko @@ -846,7 +860,7 @@ isodate==0.7.2 # via # -r requirements/edx/base.txt # python3-saml -isort==6.1.0 +isort==8.0.1 # via # -r requirements/edx/testing.in # pylint @@ -856,12 +870,12 @@ jinja2==3.1.6 # -r requirements/edx/coverage.txt # code-annotations # diff-cover -jmespath==1.0.1 +jmespath==1.1.0 # via # -r requirements/edx/base.txt # boto3 # botocore -joblib==1.5.2 +joblib==1.5.3 # via # -r requirements/edx/base.txt # nltk @@ -879,7 +893,7 @@ jsonfield==3.2.0 # enterprise-integrated-channels # lti-consumer-xblock # ora2 -jsonschema==4.25.1 +jsonschema==4.26.0 # via # -r requirements/edx/base.txt # drf-spectacular @@ -888,12 +902,12 @@ jsonschema-specifications==2025.9.1 # via # -r requirements/edx/base.txt # jsonschema -jwcrypto==1.5.6 +jwcrypto==1.5.7 # via # -r requirements/edx/base.txt # django-oauth-toolkit # pylti1p3 -kombu==5.5.4 +kombu==5.6.2 # via # -r requirements/edx/base.txt # celery @@ -906,11 +920,7 @@ lazy==1.6 # lti-consumer-xblock # ora2 # xblock -loremipsum==1.0.5 - # via - # -r requirements/edx/base.txt - # ora2 -lti-consumer-xblock==9.14.2 +lti-consumer-xblock==10.0.1 # via -r requirements/edx/base.txt lxml[html-clean]==5.3.2 # via @@ -926,8 +936,9 @@ lxml[html-clean]==5.3.2 # pyquery # python3-saml # xblock + # xblocks-contrib # xmlsec -lxml-html-clean==0.4.3 +lxml-html-clean==0.4.4 # via # -r requirements/edx/base.txt # lxml @@ -940,12 +951,14 @@ mako==1.3.10 # lti-consumer-xblock # xblock # xblock-utils -markdown==3.9 +markdown==3.10.2 # via # -r requirements/edx/base.txt # openedx-django-wiki # staff-graded-xblock # xblock-poll +markdown-it-py==4.0.0 + # via rich markupsafe==3.0.3 # via # -r requirements/edx/base.txt @@ -955,25 +968,28 @@ markupsafe==3.0.3 # mako # openedx-calc # xblock -maxminddb==2.8.2 + # xblocks-contrib +maxminddb==3.1.1 # via # -r requirements/edx/base.txt # geoip2 mccabe==0.7.0 # via pylint -meilisearch==0.37.0 +mdurl==0.1.2 + # via markdown-it-py +meilisearch==0.40.0 # via # -r requirements/edx/base.txt # edx-search mock==5.2.0 # via -r requirements/edx/testing.in -mongoengine==0.29.1 +mongoengine==0.29.3 # via -r requirements/edx/base.txt monotonic==1.6 # via # -r requirements/edx/base.txt # analytics-python -more-itertools==10.8.0 +more-itertools==11.0.2 # via # -r requirements/edx/base.txt # cssutils @@ -981,28 +997,28 @@ mpmath==1.3.0 # via # -r requirements/edx/base.txt # sympy -msgpack==1.1.1 +msgpack==1.1.2 # via # -r requirements/edx/base.txt # cachecontrol -multidict==6.7.0 +multidict==6.7.1 # via # -r requirements/edx/base.txt # aiohttp # yarl -mysqlclient==2.2.7 +mysqlclient==2.2.8 # via # -r requirements/edx/base.txt # openedx-forum -nh3==0.3.0 +nh3==0.3.4 # via # -r requirements/edx/base.txt # xblocks-contrib -nltk==3.9.2 +nltk==3.9.4 # via # -r requirements/edx/base.txt # chem -nodeenv==1.9.1 +nodeenv==1.10.0 # via -r requirements/edx/base.txt numpy==1.26.4 # via @@ -1012,6 +1028,7 @@ numpy==1.26.4 # openedx-calc # scipy # shapely + # xblocks-contrib oauthlib==3.3.1 # via # -r requirements/edx/base.txt @@ -1028,14 +1045,14 @@ openedx-atlas==0.7.0 # edx-enterprise # enterprise-integrated-channels # openedx-forum -openedx-calc==4.0.2 - # via -r requirements/edx/base.txt -openedx-django-pyfs==3.8.0 +openedx-calc==4.0.3 # via # -r requirements/edx/base.txt - # lti-consumer-xblock - # xblock # xblocks-contrib +openedx-django-pyfs==4.0.0 + # via + # -r requirements/edx/base.txt + # xblock openedx-django-require==3.0.0 # via -r requirements/edx/base.txt openedx-django-wiki==3.1.1 @@ -1049,23 +1066,23 @@ openedx-events==10.5.0 # edx-name-affirmation # event-tracking # ora2 -openedx-filters==3.1.0 +openedx-filters==2.1.0 # via # -r requirements/edx/base.txt # edx-enterprise # lti-consumer-xblock # ora2 -openedx-forum==0.3.8 +openedx-forum==0.4.1 # via -r requirements/edx/base.txt openedx-learning==0.27.1 # via # -c requirements/constraints.txt # -r requirements/edx/base.txt -optimizely-sdk==5.2.0 +optimizely-sdk==5.4.0 # via -r requirements/edx/base.txt -ora2==6.16.4 +ora2==7.0.0 # via -r requirements/edx/base.txt -packaging==25.0 +packaging==26.0 # via # -r requirements/edx/base.txt # drf-yasg @@ -1075,7 +1092,8 @@ packaging==25.0 # pytest # snowflake-connector-python # tox -pact-python==2.3.3 + # wheel +pact-python==1.6.0 # via # -c requirements/constraints.txt # -r requirements/edx/testing.in @@ -1089,6 +1107,7 @@ path==16.11.0 # -r requirements/edx/base.txt # edx-i18n-tools # path-py + # xblocks-contrib path-py==12.5.0 # via # -r requirements/edx/base.txt @@ -1101,16 +1120,17 @@ pgpy==0.6.0 # edx-enterprise piexif==1.1.3 # via -r requirements/edx/base.txt -pillow==11.3.0 +pillow==12.2.0 # via # -r requirements/edx/base.txt # edx-enterprise # edx-organizations # edxval -platformdirs==4.4.0 +platformdirs==4.9.6 # via # -r requirements/edx/base.txt # pylint + # python-discovery # snowflake-connector-python # tox # virtualenv @@ -1130,17 +1150,17 @@ prompt-toolkit==3.0.52 # via # -r requirements/edx/base.txt # click-repl -propcache==0.4.0 +propcache==0.4.1 # via # -r requirements/edx/base.txt # aiohttp # yarl -proto-plus==1.26.1 +proto-plus==1.27.2 # via # -r requirements/edx/base.txt # google-api-core # google-cloud-firestore -protobuf==6.32.1 +protobuf==6.33.6 # via # -r requirements/edx/base.txt # google-api-core @@ -1148,7 +1168,7 @@ protobuf==6.32.1 # googleapis-common-protos # grpcio-status # proto-plus -psutil==7.1.0 +psutil==7.2.2 # via # -r requirements/edx/base.txt # edx-django-utils @@ -1156,12 +1176,11 @@ psutil==7.1.0 # pytest-xdist py==1.11.0 # via -r requirements/edx/testing.in -pyasn1==0.6.1 +pyasn1==0.6.3 # via # -r requirements/edx/base.txt # pgpy # pyasn1-modules - # rsa pyasn1-modules==0.4.2 # via # -r requirements/edx/base.txt @@ -1170,9 +1189,9 @@ pycodestyle==2.8.0 # via # -c requirements/constraints.txt # -r requirements/edx/testing.in -pycountry==24.6.1 +pycountry==26.2.16 # via -r requirements/edx/base.txt -pycparser==2.23 +pycparser==3.0 # via # -r requirements/edx/base.txt # cffi @@ -1181,20 +1200,21 @@ pycryptodomex==3.23.0 # -r requirements/edx/base.txt # edx-proctoring # lti-consumer-xblock -pydantic==2.11.10 +pydantic==2.12.5 # via # -r requirements/edx/base.txt # camel-converter # fastapi -pydantic-core==2.33.2 +pydantic-core==2.41.5 # via # -r requirements/edx/base.txt # pydantic -pygments==2.19.2 +pygments==2.20.0 # via # -r requirements/edx/coverage.txt # diff-cover -pyjwt[crypto]==2.10.1 + # rich +pyjwt[crypto]==2.12.1 # via # -r requirements/edx/base.txt # drf-jwt @@ -1211,7 +1231,7 @@ pylatexenc==2.10 # via # -r requirements/edx/base.txt # olxcleaner -pylint==4.0.4 +pylint==4.0.5 # via # edx-lint # pylint-celery @@ -1240,7 +1260,7 @@ pymongo==4.4.0 # event-tracking # mongoengine # openedx-forum -pynacl==1.6.0 +pynacl==1.6.2 # via # -r requirements/edx/base.txt # edx-django-utils @@ -1251,12 +1271,13 @@ pyopenssl==25.3.0 # via # -r requirements/edx/base.txt # snowflake-connector-python -pyparsing==3.2.5 +pyparsing==3.3.2 # via # -r requirements/edx/base.txt # chem # openedx-calc -pyproject-api==1.9.1 + # xblocks-contrib +pyproject-api==1.10.0 # via tox pyquery==2.0.1 # via -r requirements/edx/testing.in @@ -1281,9 +1302,9 @@ pytest==8.2.0 # pytest-xdist pytest-attrib==0.1.3 # via -r requirements/edx/testing.in -pytest-cov==7.0.0 +pytest-cov==7.1.0 # via -r requirements/edx/testing.in -pytest-django==4.11.1 +pytest-django==4.12.0 # via -r requirements/edx/testing.in pytest-json-report==1.5.0 # via -r requirements/edx/testing.in @@ -1309,6 +1330,10 @@ python-dateutil==2.9.0.post0 # olxcleaner # ora2 # xblock +python-discovery==1.2.2 + # via + # tox + # virtualenv python-ipware==3.0.0 # via # -r requirements/edx/base.txt @@ -1317,7 +1342,7 @@ python-slugify==8.0.4 # via # -r requirements/edx/base.txt # code-annotations -python-swiftclient==4.8.0 +python-swiftclient==4.10.0 # via # -r requirements/edx/base.txt # ora2 @@ -1327,7 +1352,7 @@ python3-openid==3.2.0 ; python_version >= "3" # social-auth-core python3-saml==1.16.0 # via -r requirements/edx/base.txt -pytz==2025.2 +pytz==2026.1.post1 # via # -r requirements/edx/base.txt # drf-yasg @@ -1343,6 +1368,7 @@ pytz==2025.2 # snowflake-connector-python # tincan # xblock + # xblocks-contrib pyuca==1.2 # via -r requirements/edx/base.txt pyyaml==6.0.3 @@ -1356,23 +1382,25 @@ pyyaml==6.0.3 # jsondiff # xblock random2==1.0.2 + # via + # -r requirements/edx/base.txt + # xblocks-contrib +recommender-xblock==5.0.0 # via -r requirements/edx/base.txt -recommender-xblock==3.1.0 - # via -r requirements/edx/base.txt -redis==6.4.0 +redis==7.4.0 # via # -r requirements/edx/base.txt # walrus -referencing==0.36.2 +referencing==0.37.0 # via # -r requirements/edx/base.txt # jsonschema # jsonschema-specifications -regex==2025.9.18 +regex==2026.4.4 # via # -r requirements/edx/base.txt # nltk -requests==2.32.5 +requests==2.33.1 # via # -r requirements/edx/base.txt # analytics-python @@ -1399,26 +1427,25 @@ requests==2.32.5 # snowflake-connector-python # social-auth-core # xblock-google-drive + # xblocks-contrib requests-oauthlib==2.0.0 # via # -r requirements/edx/base.txt # social-auth-core -rpds-py==0.27.1 +rich==14.3.3 + # via import-linter +rpds-py==0.30.0 # via # -r requirements/edx/base.txt # jsonschema # referencing -rsa==4.9.1 - # via - # -r requirements/edx/base.txt - # google-auth rules==3.5 # via # -r requirements/edx/base.txt # edx-enterprise # edx-proctoring # openedx-learning -s3transfer==0.14.0 +s3transfer==0.16.0 # via # -r requirements/edx/base.txt # boto3 @@ -1426,7 +1453,7 @@ sailthru-client==2.2.3 # via # -r requirements/edx/base.txt # edx-ace -scipy==1.16.2 +scipy==1.17.1 # via # -r requirements/edx/base.txt # chem @@ -1435,7 +1462,9 @@ semantic-version==2.10.0 # -r requirements/edx/base.txt # edx-drf-extensions shapely==2.1.2 - # via -r requirements/edx/base.txt + # via + # -r requirements/edx/base.txt + # xblocks-contrib simplejson==3.20.2 # via # -r requirements/edx/base.txt @@ -1443,6 +1472,7 @@ simplejson==3.20.2 # super-csv # xblock # xblock-utils + # xblocks-contrib singledispatch==4.1.2 # via -r requirements/edx/testing.in six==1.17.0 @@ -1470,11 +1500,7 @@ slumber==0.7.1 # edx-bulk-grades # edx-enterprise # enterprise-integrated-channels -sniffio==1.3.1 - # via - # -r requirements/edx/base.txt - # anyio -snowflake-connector-python==4.2.0 +snowflake-connector-python==4.3.0 # via # -r requirements/edx/base.txt # edx-enterprise @@ -1485,12 +1511,12 @@ social-auth-app-django==5.4.1 # -r requirements/edx/base.txt # edx-auth-backends # edx-enterprise -social-auth-core==4.7.0 +social-auth-core==4.8.5 # via # -r requirements/edx/base.txt # edx-auth-backends # social-auth-app-django -sorl-thumbnail==12.11.0 +sorl-thumbnail==13.0.0 # via # -r requirements/edx/base.txt # openedx-django-wiki @@ -1498,19 +1524,19 @@ sortedcontainers==2.4.0 # via # -r requirements/edx/base.txt # snowflake-connector-python -soupsieve==2.8 +soupsieve==2.8.3 # via # -r requirements/edx/base.txt # beautifulsoup4 -sqlparse==0.5.3 +sqlparse==0.5.5 # via # -r requirements/edx/base.txt # django -staff-graded-xblock==3.1.0 +staff-graded-xblock==4.0.0 # via -r requirements/edx/base.txt -starlette==0.48.0 +starlette==1.0.0 # via fastapi -stevedore==5.5.0 +stevedore==5.7.0 # via # -r requirements/edx/base.txt # code-annotations @@ -1518,7 +1544,7 @@ stevedore==5.5.0 # edx-django-utils # edx-enterprise # edx-opaque-keys -super-csv==4.1.0 +super-csv==5.0.0 # via # -r requirements/edx/base.txt # edx-bulk-grades @@ -1526,7 +1552,7 @@ sympy==1.14.0 # via # -r requirements/edx/base.txt # openedx-calc -testfixtures==9.1.0 +testfixtures==11.0.0 # via # -r requirements/edx/base.txt # -r requirements/edx/testing.in @@ -1543,18 +1569,25 @@ tinycss2==1.4.0 # via # -r requirements/edx/base.txt # bleach -tomlkit==0.13.3 +tomli-w==1.2.0 + # via tox +tomlkit==0.14.0 # via # -r requirements/edx/base.txt # openedx-learning # pylint # snowflake-connector-python -tox==4.30.3 +tox==4.52.0 # via -r requirements/edx/testing.in -tqdm==4.67.1 +tqdm==4.67.3 # via # -r requirements/edx/base.txt # nltk +typesense==2.0.0 + # via + # -r requirements/edx/base.txt + # edx-search + # openedx-forum typing-extensions==4.15.0 # via # -r requirements/edx/base.txt @@ -1566,6 +1599,7 @@ typing-extensions==4.15.0 # fastapi # grimp # grpcio + # icalendar # import-linter # jwcrypto # pydantic @@ -1575,17 +1609,22 @@ typing-extensions==4.15.0 # referencing # snowflake-connector-python # starlette + # typesense # typing-inspection typing-inspection==0.4.2 # via # -r requirements/edx/base.txt + # fastapi # pydantic -tzdata==2025.2 +tzdata==2026.1 # via # -r requirements/edx/base.txt - # faker # icalendar # kombu +tzlocal==5.3.1 + # via + # -r requirements/edx/base.txt + # celery unicodecsv==0.14.1 # via # -r requirements/edx/base.txt @@ -1600,13 +1639,14 @@ uritemplate==4.2.0 # -r requirements/edx/base.txt # drf-spectacular # drf-yasg -urllib3==2.5.0 +urllib3==2.6.3 # via # -r requirements/edx/base.txt # botocore # elasticsearch + # pact-python # requests -uvicorn==0.37.0 +uvicorn==0.44.0 # via pact-python vine==5.1.0 # via @@ -1614,21 +1654,21 @@ vine==5.1.0 # amqp # celery # kombu -virtualenv==20.34.0 +virtualenv==21.2.0 # via tox -voluptuous==0.15.2 +voluptuous==0.16.0 # via # -r requirements/edx/base.txt # ora2 -walrus==0.9.5 +walrus==0.9.8 # via # -r requirements/edx/base.txt # edx-event-bus-redis -wcwidth==0.2.14 +wcwidth==0.6.0 # via # -r requirements/edx/base.txt # prompt-toolkit -web-fragments==3.1.0 +web-fragments==4.0.0 # via # -r requirements/edx/base.txt # crowdsourcehinter-xblock @@ -1636,6 +1676,7 @@ web-fragments==3.1.0 # staff-graded-xblock # xblock # xblock-utils + # xblocks-contrib webencodings==0.5.1 # via # -r requirements/edx/base.txt @@ -1646,13 +1687,16 @@ webob==1.8.9 # via # -r requirements/edx/base.txt # xblock -wheel==0.45.1 + # xblocks-contrib +wheel==0.46.3 # via # -r requirements/edx/base.txt # django-pipeline -wrapt==1.17.3 - # via -r requirements/edx/base.txt -xblock[django]==5.2.0 +wrapt==2.1.2 + # via + # -r requirements/edx/base.txt + # xblocks-contrib +xblock[django]==6.0.0 # via # -r requirements/edx/base.txt # acid-xblock @@ -1679,20 +1723,19 @@ xblock-utils==4.0.0 # -r requirements/edx/base.txt # edx-sga # xblock-poll -xblocks-contrib==0.6.0 +xblocks-contrib==0.13.1 # via -r requirements/edx/base.txt xmlsec==1.3.14 # via # -c requirements/constraints.txt # -r requirements/edx/base.txt # python3-saml -xss-utils==0.8.0 +xss-utils==1.0.0 # via -r requirements/edx/base.txt -yarl==1.22.0 +yarl==1.23.0 # via # -r requirements/edx/base.txt # aiohttp - # pact-python zipp==3.23.0 # via # -r requirements/edx/base.txt diff --git a/requirements/pip-tools.txt b/requirements/pip-tools.txt index e97cb1b3d356..533332376c9f 100644 --- a/requirements/pip-tools.txt +++ b/requirements/pip-tools.txt @@ -4,19 +4,21 @@ # # make upgrade # -build==1.3.0 +build==1.4.2 # via pip-tools -click==8.3.0 +click==8.3.2 # via pip-tools -packaging==25.0 - # via build -pip-tools==7.5.1 +packaging==26.0 + # via + # build + # wheel +pip-tools==7.5.3 # 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/pip.txt b/requirements/pip.txt index dec15874f740..341a251b5cad 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==26.0.1 # via -r requirements/pip.in -setuptools==80.9.0 +setuptools==82.0.1 # via -r requirements/pip.in From 747934c42cac6a60083c7f2f2f9c86813e067581 Mon Sep 17 00:00:00 2001 From: Kira Miller <31229189+kiram15@users.noreply.github.com> Date: Mon, 4 May 2026 18:26:15 +0000 Subject: [PATCH 3/4] fix: requirements update --- .../core/djangoapps/user_api/accounts/api.py | 1 + requirements/constraints.txt | 14 +- requirements/edx-sandbox/base.txt | 6 +- requirements/edx/assets.txt | 2 +- requirements/edx/base.txt | 78 +-- requirements/edx/coverage.txt | 2 +- requirements/edx/development.txt | 515 ++++++++++-------- requirements/edx/doc.txt | 93 ++-- requirements/edx/semgrep.txt | 107 ++-- requirements/edx/testing.txt | 95 ++-- requirements/pip-tools.txt | 8 +- requirements/pip.txt | 8 +- .../structures_pruning/requirements/base.txt | 6 +- .../requirements/testing.txt | 14 +- scripts/user_retirement/requirements/base.txt | 81 ++- .../user_retirement/requirements/testing.txt | 105 ++-- scripts/xblock/requirements.txt | 10 +- 17 files changed, 612 insertions(+), 533 deletions(-) diff --git a/openedx/core/djangoapps/user_api/accounts/api.py b/openedx/core/djangoapps/user_api/accounts/api.py index c3943b90b122..1fe25234ea01 100644 --- a/openedx/core/djangoapps/user_api/accounts/api.py +++ b/openedx/core/djangoapps/user_api/accounts/api.py @@ -22,6 +22,7 @@ email_exists_or_retired, username_exists_or_retired ) +from common.djangoapps.third_party_auth.utils import get_saml_provider_for_user from common.djangoapps.util.model_utils import emit_settings_changed_event from common.djangoapps.util.password_policy_validators import validate_password from lms.djangoapps.certificates.api import get_certificates_for_user diff --git a/requirements/constraints.txt b/requirements/constraints.txt index abd8e7f52390..d5e80ed2de9d 100644 --- a/requirements/constraints.txt +++ b/requirements/constraints.txt @@ -138,7 +138,13 @@ cryptography<46.0.0 pact-python<3.0.0 # Date 2026-02-05 -# sphinx-autoapi==3.6.1 is incompatible with astroid==4.x under python 3.11. Since we (2U) currently -# deploy edxapp to edx.org using python 3.11, we must pin sphinx-autoapi to avoid dependency -# conflicts. Remove this constraint once we migrate to python 3.12. -sphinx-autoapi<3.6.1 +# Pin astroid to 4.0.4 for compatibility with sphinx-autoapi and pylint under Python 3.11 +# sphinx-autoapi<3.6.1 is incompatible with astroid>=4.1.2, so we pin astroid to 4.0.x series +# to ensure all dependencies can resolve properly. +# Remove this constraint once we migrate to Python 3.12. +astroid==4.0.4 + +# Date: 2026-05-04 +# lti-consumer-xblock 11.x introduced breaking changes that are not yet +# compatible with this branch. Pin to 9.14.5 until we move officially to python 3.12. +lti-consumer-xblock==9.14.5 diff --git a/requirements/edx-sandbox/base.txt b/requirements/edx-sandbox/base.txt index 0bb9dbfaebec..c85d280e6dd0 100644 --- a/requirements/edx-sandbox/base.txt +++ b/requirements/edx-sandbox/base.txt @@ -8,7 +8,7 @@ cffi==2.0.0 # via cryptography chem==2.0.0 # via -r requirements/edx-sandbox/base.in -click==8.3.2 +click==8.3.3 # via nltk codejail-includes==2.0.0 # via -r requirements/edx-sandbox/base.in @@ -38,7 +38,7 @@ markupsafe==3.0.3 # via # chem # openedx-calc -matplotlib==3.10.8 +matplotlib==3.10.9 # via -r requirements/edx-sandbox/base.in mpmath==1.3.0 # via sympy @@ -58,7 +58,7 @@ numpy==1.26.4 # scipy openedx-calc==4.0.3 # via -r requirements/edx-sandbox/base.in -packaging==26.0 +packaging==26.2 # via matplotlib pillow==12.2.0 # via matplotlib diff --git a/requirements/edx/assets.txt b/requirements/edx/assets.txt index 12e66aadbf9f..b59df189050b 100644 --- a/requirements/edx/assets.txt +++ b/requirements/edx/assets.txt @@ -4,7 +4,7 @@ # # make upgrade # -click==8.3.2 +click==8.3.3 # via -r requirements/edx/assets.in libsass==0.10.0 # via diff --git a/requirements/edx/base.txt b/requirements/edx/base.txt index 94f1dfc19e62..a3e2951737f8 100644 --- a/requirements/edx/base.txt +++ b/requirements/edx/base.txt @@ -69,14 +69,14 @@ bleach[css]==6.3.0 # xblock-poll boto==2.49.0 # via -r requirements/edx/kernel.in -boto3==1.42.86 +boto3==1.43.2 # via # -r requirements/edx/kernel.in # django-ses # fs-s3fs # ora2 # snowflake-connector-python -botocore==1.42.86 +botocore==1.43.2 # via # -r requirements/edx/kernel.in # boto3 @@ -86,7 +86,7 @@ bridgekeeper==0.9 # via -r requirements/edx/kernel.in cachecontrol==0.14.4 # via firebase-admin -cachetools==7.0.5 +cachetools==7.1.1 # via edxval camel-converter[pydantic]==5.1.0 # via meilisearch @@ -101,7 +101,7 @@ celery==5.6.3 # enterprise-integrated-channels # event-tracking # openedx-learning -certifi==2026.2.25 +certifi==2026.4.22 # via # elasticsearch # httpcore @@ -112,8 +112,10 @@ cffi==2.0.0 # via # cryptography # pynacl -chardet==7.4.1 - # via pysrt +chardet==7.4.3 + # via + # encutils + # pysrt charset-normalizer==3.4.7 # via # requests @@ -122,7 +124,7 @@ chem==2.0.0 # via # -r requirements/edx/kernel.in # xblocks-contrib -click==8.3.2 +click==8.3.3 # via # celery # click-didyoumean @@ -158,7 +160,7 @@ cryptography==45.0.7 # pyjwt # pyopenssl # snowflake-connector-python -cssutils==2.11.1 +cssutils==2.15.0 # via pynliner defusedxml==0.7.1 # via @@ -327,7 +329,7 @@ django-oauth-toolkit==1.7.1 # -r requirements/edx/kernel.in # edx-enterprise # enterprise-integrated-channels -django-object-actions==5.0.0 +django-object-actions==5.0.1 # via # edx-enterprise # enterprise-integrated-channels @@ -530,7 +532,7 @@ edx-search==5.0.0 # via # -r requirements/edx/kernel.in # openedx-forum -edx-sga==0.27.1 +edx-sga==0.28.0 # via -r requirements/edx/bundled.in edx-submissions==4.0.0 # via @@ -567,6 +569,8 @@ elasticsearch==7.9.1 # -c requirements/constraints.txt # edx-search # openedx-forum +encutils==1.0.0 + # via cssutils enmerkar==0.7.1 # via enmerkar-underscore enmerkar-underscore==2.4.0 @@ -579,11 +583,11 @@ event-tracking==4.0.0 # edx-completion # edx-proctoring # edx-search -fastavro==1.12.1 +fastavro==1.12.2 # via openedx-events -filelock==3.25.2 +filelock==3.29.0 # via snowflake-connector-python -firebase-admin==7.3.0 +firebase-admin==7.4.0 # via edx-ace frozenlist==1.8.0 # via @@ -604,13 +608,13 @@ geoip2==5.2.0 # via -r requirements/edx/kernel.in glob2==0.7 # via -r requirements/edx/kernel.in -google-api-core[grpc]==2.30.2 +google-api-core[grpc]==2.30.3 # via # firebase-admin # google-cloud-core # google-cloud-firestore # google-cloud-storage -google-auth==2.49.1 +google-auth==2.50.0 # via # google-api-core # google-cloud-core @@ -620,7 +624,7 @@ google-cloud-core==2.5.1 # via # google-cloud-firestore # google-cloud-storage -google-cloud-firestore==2.26.0 +google-cloud-firestore==2.27.0 # via firebase-admin google-cloud-storage==3.10.1 # via firebase-admin @@ -664,9 +668,9 @@ httpx[http2]==0.28.1 # typesense hyperframe==6.1.0 # via h2 -icalendar==7.0.3 +icalendar==7.1.0 # via -r requirements/edx/kernel.in -idna==3.11 +idna==3.13 # via # anyio # httpx @@ -726,8 +730,10 @@ lazy==1.6 # lti-consumer-xblock # ora2 # xblock -lti-consumer-xblock==10.0.1 - # via -r requirements/edx/kernel.in +lti-consumer-xblock==9.14.5 + # via + # -c requirements/constraints.txt + # -r requirements/edx/kernel.in lxml[html-clean]==5.3.2 # via # -c requirements/constraints.txt @@ -748,7 +754,7 @@ lxml-html-clean==0.4.4 # via lxml mailsnake==1.6.4 # via -r requirements/edx/bundled.in -mako==1.3.10 +mako==1.3.12 # via # -r requirements/edx/kernel.in # acid-xblock @@ -771,7 +777,7 @@ markupsafe==3.0.3 # xblocks-contrib maxminddb==3.1.1 # via geoip2 -meilisearch==0.40.0 +meilisearch==0.41.0 # via # -r requirements/edx/kernel.in # edx-search @@ -793,7 +799,7 @@ mysqlclient==2.2.8 # via # -r requirements/edx/kernel.in # openedx-forum -nh3==0.3.4 +nh3==0.3.5 # via # -r requirements/edx/kernel.in # xblocks-contrib @@ -856,11 +862,11 @@ openedx-learning==0.27.1 # via # -c requirements/constraints.txt # -r requirements/edx/kernel.in -optimizely-sdk==5.4.0 +optimizely-sdk==5.5.0 # via -r requirements/edx/bundled.in ora2==7.0.0 # via -r requirements/edx/bundled.in -packaging==26.0 +packaging==26.2 # via # drf-yasg # gunicorn @@ -931,9 +937,9 @@ pycryptodomex==3.23.0 # -r requirements/edx/kernel.in # edx-proctoring # lti-consumer-xblock -pydantic==2.12.5 +pydantic==2.13.3 # via camel-converter -pydantic-core==2.41.5 +pydantic-core==2.46.3 # via pydantic pyjwt[crypto]==2.12.1 # via @@ -1006,7 +1012,7 @@ python3-openid==3.2.0 ; python_version >= "3" # social-auth-core python3-saml==1.16.0 # via -r requirements/edx/kernel.in -pytz==2026.1.post1 +pytz==2026.2 # via # -r requirements/edx/kernel.in # drf-yasg @@ -1091,7 +1097,7 @@ rules==3.5 # edx-enterprise # edx-proctoring # openedx-learning -s3transfer==0.16.0 +s3transfer==0.17.0 # via boto3 sailthru-client==2.2.3 # via edx-ace @@ -1103,7 +1109,7 @@ shapely==2.1.2 # via # -r requirements/edx/kernel.in # xblocks-contrib -simplejson==3.20.2 +simplejson==4.1.1 # via # -r requirements/edx/kernel.in # sailthru-client @@ -1144,7 +1150,7 @@ social-auth-app-django==5.4.1 # -r requirements/edx/kernel.in # edx-auth-backends # edx-enterprise -social-auth-core==4.8.5 +social-auth-core==4.8.7 # via # -r requirements/edx/kernel.in # edx-auth-backends @@ -1213,7 +1219,7 @@ typing-extensions==4.15.0 # typing-inspection typing-inspection==0.4.2 # via pydantic -tzdata==2026.1 +tzdata==2026.2 # via # icalendar # kombu @@ -1244,7 +1250,7 @@ voluptuous==0.16.0 # via ora2 walrus==0.9.8 # via edx-event-bus-redis -wcwidth==0.6.0 +wcwidth==0.7.0 # via prompt-toolkit web-fragments==4.0.0 # via @@ -1265,13 +1271,13 @@ webob==1.8.9 # -r requirements/edx/kernel.in # xblock # xblocks-contrib -wheel==0.46.3 +wheel==0.47.0 # via django-pipeline wrapt==2.1.2 # via # -r requirements/edx/kernel.in # xblocks-contrib -xblock[django]==6.0.0 +xblock[django]==6.1.0 # via # -r requirements/edx/kernel.in # acid-xblock @@ -1307,7 +1313,7 @@ xss-utils==1.0.0 # via -r requirements/edx/kernel.in yarl==1.23.0 # via aiohttp -zipp==3.23.0 +zipp==3.23.1 # via importlib-metadata # The following packages are considered to be unsafe in a requirements file: diff --git a/requirements/edx/coverage.txt b/requirements/edx/coverage.txt index 86fcd7de4345..b08389520cad 100644 --- a/requirements/edx/coverage.txt +++ b/requirements/edx/coverage.txt @@ -4,7 +4,7 @@ # # make upgrade # -chardet==7.4.1 +chardet==7.4.3 # via diff-cover coverage==7.13.5 # via -r requirements/edx/coverage.in diff --git a/requirements/edx/development.txt b/requirements/edx/development.txt index 9be42e86fe3f..90b6d92ba076 100644 --- a/requirements/edx/development.txt +++ b/requirements/edx/development.txt @@ -17,7 +17,7 @@ aiohappyeyeballs==2.6.1 # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt # aiohttp -aiohttp==3.13.3 +aiohttp==3.13.5 # via # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt @@ -46,12 +46,16 @@ aniso8601==10.0.1 # -r requirements/edx/testing.txt # edx-tincan-py35 # tincan +annotated-doc==0.0.4 + # via + # -r requirements/edx/testing.txt + # fastapi annotated-types==0.7.0 # via # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt # pydantic -anyio==4.11.0 +anyio==4.13.0 # via # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt @@ -62,7 +66,7 @@ appdirs==1.4.4 # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt # fs -asgiref==3.10.0 +asgiref==3.11.1 # via # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt @@ -74,14 +78,15 @@ asn1crypto==1.5.1 # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt # snowflake-connector-python -astroid==4.0.3 +astroid==4.0.4 # via + # -c requirements/constraints.txt # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt # pylint # pylint-celery # sphinx-autoapi -attrs==25.4.0 +attrs==26.1.0 # via # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt @@ -92,7 +97,7 @@ attrs==25.4.0 # openedx-events # openedx-learning # referencing -babel==2.17.0 +babel==2.18.0 # via # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt @@ -110,19 +115,20 @@ bcrypt==5.0.0 # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt # paramiko -beautifulsoup4==4.14.2 +beautifulsoup4==4.14.3 # via # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt # openedx-forum # pydata-sphinx-theme # pynliner -billiard==4.2.2 + # xblocks-contrib +billiard==4.2.4 # via # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt # celery -bleach[css]==6.2.0 +bleach[css]==6.3.0 # via # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt @@ -136,7 +142,7 @@ boto==2.49.0 # via # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt -boto3==1.40.46 +boto3==1.43.2 # via # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt @@ -144,7 +150,7 @@ boto3==1.40.46 # fs-s3fs # ora2 # snowflake-connector-python -botocore==1.40.46 +botocore==1.43.2 # via # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt @@ -155,28 +161,27 @@ bridgekeeper==0.9 # via # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt -build==1.3.0 +build==1.5.0 # via # -r requirements/pip-tools.txt # pip-tools -cachecontrol==0.14.3 +cachecontrol==0.14.4 # via # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt # firebase-admin -cachetools==6.2.0 +cachetools==7.1.1 # via # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt # edxval - # google-auth # tox -camel-converter[pydantic]==4.0.1 +camel-converter[pydantic]==5.1.0 # via # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt # meilisearch -celery==5.5.3 +celery==5.6.3 # via # -c requirements/constraints.txt # -r requirements/edx/doc.txt @@ -188,7 +193,7 @@ celery==5.5.3 # enterprise-integrated-channels # event-tracking # openedx-learning -certifi==2025.10.5 +certifi==2026.4.22 # via # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt @@ -197,21 +202,20 @@ certifi==2025.10.5 # httpx # requests # snowflake-connector-python -cffi==1.17.1 +cffi==2.0.0 # via # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt # cryptography - # pact-python # pynacl -chardet==5.2.0 +chardet==7.4.3 # via # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt # diff-cover + # encutils # pysrt - # tox -charset-normalizer==3.4.3 +charset-normalizer==3.4.7 # via # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt @@ -221,7 +225,8 @@ chem==2.0.0 # via # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt -click==8.3.0 + # xblocks-contrib +click==8.3.3 # via # -r requirements/edx/assets.txt # -r requirements/edx/development.in @@ -260,7 +265,7 @@ click-repl==0.3.0 # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt # celery -code-annotations==2.3.0 +code-annotations==2.3.2 # via # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt @@ -275,11 +280,11 @@ colorama==0.4.6 # via # -r requirements/edx/testing.txt # tox -coverage[toml]==7.10.7 +coverage[toml]==7.13.5 # via # -r requirements/edx/testing.txt # pytest-cov -crowdsourcehinter-xblock==0.8 +crowdsourcehinter-xblock==1.0.0 # via # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt @@ -290,18 +295,18 @@ cryptography==45.0.7 # -r requirements/edx/testing.txt # django-fernet-fields-v2 # edx-enterprise + # google-auth # jwcrypto # paramiko # pgpy # pyjwt # pyopenssl # snowflake-connector-python - # social-auth-core -cssselect==1.3.0 +cssselect==1.4.0 # via # -r requirements/edx/testing.txt # pyquery -cssutils==2.11.1 +cssutils==2.15.0 # via # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt @@ -320,9 +325,10 @@ defusedxml==0.7.1 # ora2 # python3-openid # social-auth-core -diff-cover==9.7.1 + # xblocks-contrib +diff-cover==10.2.0 # via -r requirements/edx/testing.txt -dill==0.4.0 +dill==0.4.1 # via # -r requirements/edx/testing.txt # pylint @@ -330,7 +336,7 @@ distlib==0.4.0 # via # -r requirements/edx/testing.txt # virtualenv -django==4.2.28 +django==4.2.30 # via # -c requirements/common_constraints.txt # -c requirements/constraints.txt @@ -408,8 +414,9 @@ django==4.2.28 # social-auth-app-django # super-csv # xblock-google-drive + # xblocks-contrib # xss-utils -django-appconf==1.1.0 +django-appconf==1.2.0 # via # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt @@ -432,7 +439,7 @@ django-classy-tags==4.1.0 # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt # django-sekizai -django-config-models==2.9.0 +django-config-models==3.0.0 # via # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt @@ -444,7 +451,7 @@ django-cors-headers==4.9.0 # via # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt -django-countries==7.6.1 +django-countries==8.2.0 # via # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt @@ -531,7 +538,7 @@ django-oauth-toolkit==1.7.1 # -r requirements/edx/testing.txt # edx-enterprise # enterprise-integrated-channels -django-object-actions==5.0.0 +django-object-actions==5.0.1 # via # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt @@ -541,7 +548,7 @@ django-pipeline==4.1.0 # via # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt -django-push-notifications==3.2.1 +django-push-notifications==3.3.0 # via # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt @@ -555,11 +562,11 @@ django-sekizai==4.1.0 # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt # openedx-django-wiki -django-ses==4.4.0 +django-ses==4.7.2 # via # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt -django-simple-history==3.10.1 +django-simple-history==3.11.0 # via # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt @@ -569,27 +576,26 @@ django-simple-history==3.10.1 # edx-proctoring # enterprise-integrated-channels # ora2 -django-statici18n==2.6.0 +django-statici18n==2.7.1 # via # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt # lti-consumer-xblock # xblock-drag-and-drop-v2 # xblock-poll - # xblocks-contrib django-storages==1.14.6 # via # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt # edxval -django-stubs[compatible-mypy]==5.2.6 +django-stubs[compatible-mypy]==5.2.9 # via # -c requirements/constraints.txt # -r requirements/edx/development.in # djangorestframework-stubs -django-stubs-ext==5.2.6 +django-stubs-ext==6.0.3 # via django-stubs -django-user-tasks==3.4.3 +django-user-tasks==4.0.0 # via # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt @@ -602,12 +608,12 @@ django-waffle==5.0.0 # edx-enterprise # edx-proctoring # edx-toggles -django-webpack-loader==3.2.1 +django-webpack-loader==3.2.3 # via # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt # edx-proctoring -djangorestframework==3.16.1 +djangorestframework==3.17.1 # via # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt @@ -628,7 +634,7 @@ djangorestframework==3.16.1 # openedx-learning # ora2 # super-csv -djangorestframework-stubs==3.16.4 +djangorestframework-stubs==3.16.9 # via -r requirements/edx/development.in djangorestframework-xml==2.0.0 # via @@ -640,13 +646,13 @@ dnspython==2.8.0 # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt # pymongo -docutils==0.21.2 +docutils==0.22.4 # via # -r requirements/edx/doc.txt # pydata-sphinx-theme # sphinx # sphinx-mdinclude -done-xblock==2.5.0 +done-xblock==3.0.0 # via # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt @@ -655,11 +661,11 @@ drf-jwt==1.19.2 # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt # edx-drf-extensions -drf-spectacular==0.28.0 +drf-spectacular==0.29.0 # via # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt -drf-yasg==1.21.11 +drf-yasg==1.21.15 # via # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt @@ -669,16 +675,16 @@ edx-ace==1.15.0 # via # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt -edx-api-doc-tools==2.1.0 +edx-api-doc-tools==3.0.0 # via # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt # edx-name-affirmation -edx-auth-backends==4.6.1 +edx-auth-backends==5.0.0 # via # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt -edx-bulk-grades==1.2.0 +edx-bulk-grades==2.0.0 # via # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt @@ -689,17 +695,18 @@ edx-ccx-keys==2.0.2 # -r requirements/edx/testing.txt # lti-consumer-xblock # openedx-events -edx-celeryutils==1.4.0 +edx-celeryutils==2.0.0 # via # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt # edx-name-affirmation # super-csv -edx-codejail==4.0.0 +edx-codejail==4.1.0 # via # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt -edx-completion==4.9 + # xblocks-contrib +edx-completion==5.0.0 # via # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt @@ -709,7 +716,7 @@ edx-django-release-util==1.5.0 # -r requirements/edx/testing.txt # edx-submissions # edxval -edx-django-sites-extensions==5.1.0 +edx-django-sites-extensions==6.0.0 # via # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt @@ -733,6 +740,7 @@ edx-django-utils==8.0.1 # openedx-events # ora2 # super-csv + # xblocks-contrib edx-drf-extensions==10.6.0 # via # -r requirements/edx/doc.txt @@ -760,15 +768,14 @@ edx-event-bus-redis==0.6.1 # via # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt -edx-i18n-tools==1.9.0 +edx-i18n-tools==2.0.0 # via # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt # ora2 - # xblocks-contrib -edx-lint==5.6.0 +edx-lint==6.1.0 # via -r requirements/edx/testing.txt -edx-milestones==1.1.0 +edx-milestones==2.0.0 # via # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt @@ -776,7 +783,7 @@ edx-name-affirmation==3.0.2 # via # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt -edx-opaque-keys[django]==3.0.0 +edx-opaque-keys[django]==4.0.0 # via # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt @@ -795,7 +802,7 @@ edx-opaque-keys[django]==3.0.0 # openedx-filters # ora2 # xblocks-contrib -edx-organizations==7.3.0 +edx-organizations==8.0.0 # via # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt @@ -803,39 +810,40 @@ edx-proctoring==5.2.0 # via # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt -edx-rbac==2.1.0 +edx-rbac==3.0.0 # via # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt # edx-enterprise # enterprise-integrated-channels -edx-rest-api-client==6.2.0 +edx-rest-api-client==7.0.0 # via # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt # edx-enterprise # edx-proctoring # enterprise-integrated-channels -edx-search==4.3.0 +edx-search==5.0.0 # via # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt # openedx-forum -edx-sga==0.26.0 +edx-sga==0.28.0 # via # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt -edx-submissions==3.12.0 +edx-submissions==4.0.0 # via # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt # ora2 + # xblocks-contrib edx-tincan-py35==2.0.0 # via # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt # enterprise-integrated-channels -edx-toggles==5.4.1 +edx-toggles==6.0.0 # via # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt @@ -849,15 +857,17 @@ edx-toggles==5.4.1 # edxval # event-tracking # ora2 -edx-when==3.0.0 + # xblocks-contrib +edx-when==4.0.0 # via # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt # edx-proctoring -edxval==3.1.0 +edxval==4.0.0 # via # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt + # xblocks-contrib elasticsearch==7.9.1 # via # -c requirements/common_constraints.txt @@ -866,6 +876,11 @@ elasticsearch==7.9.1 # -r requirements/edx/testing.txt # edx-search # openedx-forum +encutils==1.0.0 + # via + # -r requirements/edx/doc.txt + # -r requirements/edx/testing.txt + # cssutils enmerkar==0.7.1 # via # -r requirements/edx/doc.txt @@ -879,40 +894,41 @@ enterprise-integrated-channels==0.1.57 # via # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt -event-tracking==3.3.0 +event-tracking==4.0.0 # via # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt # edx-completion # edx-proctoring # edx-search -execnet==2.1.1 +execnet==2.1.2 # via # -r requirements/edx/testing.txt # pytest-xdist factory-boy==3.3.3 # via -r requirements/edx/testing.txt -faker==37.8.0 +faker==40.15.0 # via # -r requirements/edx/testing.txt # factory-boy -fastapi==0.118.0 +fastapi==0.136.1 # via # -r requirements/edx/testing.txt # pact-python -fastavro==1.12.0 +fastavro==1.12.2 # via # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt # openedx-events -filelock==3.19.1 +filelock==3.29.0 # via # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt + # python-discovery # snowflake-connector-python # tox # virtualenv -firebase-admin==7.1.0 +firebase-admin==7.4.0 # via # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt @@ -932,12 +948,13 @@ fs==2.4.16 # fs-s3fs # openedx-django-pyfs # xblock + # xblocks-contrib fs-s3fs==1.1.1 # via # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt # openedx-django-pyfs -geoip2==5.1.0 +geoip2==5.2.0 # via # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt @@ -945,13 +962,13 @@ gitdb==4.0.12 # via # -r requirements/edx/doc.txt # gitpython -gitpython==3.1.45 +gitpython==3.1.49 # via -r requirements/edx/doc.txt glob2==0.7 # via # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt -google-api-core[grpc]==2.25.2 +google-api-core[grpc]==2.30.3 # via # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt @@ -959,7 +976,7 @@ google-api-core[grpc]==2.25.2 # google-cloud-core # google-cloud-firestore # google-cloud-storage -google-auth==2.41.1 +google-auth==2.50.0 # via # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt @@ -967,55 +984,56 @@ 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.1 # via # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt # google-cloud-firestore # google-cloud-storage -google-cloud-firestore==2.21.0 +google-cloud-firestore==2.27.0 # via # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt # firebase-admin -google-cloud-storage==3.4.0 +google-cloud-storage==3.10.1 # via # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt # firebase-admin -google-crc32c==1.7.1 +google-crc32c==1.8.0 # via # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt # google-cloud-storage # google-resumable-media -google-resumable-media==2.7.2 +google-resumable-media==2.8.2 # via # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt # google-cloud-storage -googleapis-common-protos==1.70.0 +googleapis-common-protos==1.74.0 # via # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt # google-api-core # grpcio-status -grimp==3.11 +grimp==3.14 # via # -r requirements/edx/testing.txt # import-linter -grpcio==1.75.1 +grpcio==1.80.0 # via # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt # google-api-core + # google-cloud-firestore # grpcio-status -grpcio-status==1.75.1 +grpcio-status==1.80.0 # via # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt # google-api-core -gunicorn==23.0.0 +gunicorn==25.3.0 # via # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt @@ -1030,7 +1048,7 @@ h2==4.3.0 # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt # httpx -help-tokens==3.2.0 +help-tokens==4.0.0 # via # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt @@ -1044,6 +1062,7 @@ html5lib==1.1 # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt # ora2 + # xblocks-contrib httpcore==1.0.9 # via # -r requirements/edx/doc.txt @@ -1056,16 +1075,17 @@ httpx[http2]==0.28.1 # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt # firebase-admin + # typesense hyperframe==6.1.0 # via # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt # h2 -icalendar==6.3.1 +icalendar==7.1.0 # via # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt -idna==3.10 +idna==3.13 # via # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt @@ -1075,13 +1095,13 @@ idna==3.10 # requests # snowflake-connector-python # yarl -imagesize==1.4.1 +imagesize==2.0.0 # via # -r requirements/edx/doc.txt # sphinx -import-linter==2.5 +import-linter==2.11 # via -r requirements/edx/testing.txt -importlib-metadata==8.7.0 +importlib-metadata==9.0.0 # via # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt @@ -1091,11 +1111,11 @@ inflection==0.5.1 # -r requirements/edx/testing.txt # drf-spectacular # drf-yasg -iniconfig==2.1.0 +iniconfig==2.3.0 # via # -r requirements/edx/testing.txt # pytest -invoke==2.2.0 +invoke==3.0.3 # via # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt @@ -1109,7 +1129,7 @@ isodate==0.7.2 # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt # python3-saml -isort==6.1.0 +isort==8.0.1 # via # -r requirements/edx/testing.txt # pylint @@ -1121,13 +1141,13 @@ jinja2==3.1.6 # diff-cover # sphinx # sphinx-autoapi -jmespath==1.0.1 +jmespath==1.1.0 # via # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt # boto3 # botocore -joblib==1.5.2 +joblib==1.5.3 # via # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt @@ -1148,7 +1168,7 @@ jsonfield==3.2.0 # enterprise-integrated-channels # lti-consumer-xblock # ora2 -jsonschema==4.25.1 +jsonschema==4.26.0 # via # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt @@ -1160,13 +1180,13 @@ jsonschema-specifications==2025.9.1 # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt # jsonschema -jwcrypto==1.5.6 +jwcrypto==1.5.7 # via # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt # django-oauth-toolkit # pylti1p3 -kombu==5.5.4 +kombu==5.6.2 # via # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt @@ -1183,17 +1203,15 @@ lazy==1.6 # lti-consumer-xblock # ora2 # xblock +librt==0.9.0 + # via mypy libsass==0.10.0 # via # -c requirements/constraints.txt # -r requirements/edx/assets.txt -loremipsum==1.0.5 - # via - # -r requirements/edx/doc.txt - # -r requirements/edx/testing.txt - # ora2 -lti-consumer-xblock==9.14.2 +lti-consumer-xblock==9.14.5 # via + # -c requirements/constraints.txt # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt lxml[html-clean]==5.3.2 @@ -1212,8 +1230,9 @@ lxml[html-clean]==5.3.2 # pyquery # python3-saml # xblock + # xblocks-contrib # xmlsec -lxml-html-clean==0.4.3 +lxml-html-clean==0.4.4 # via # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt @@ -1222,7 +1241,7 @@ mailsnake==1.6.4 # via # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt -mako==1.3.10 +mako==1.3.12 # via # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt @@ -1230,13 +1249,17 @@ mako==1.3.10 # lti-consumer-xblock # xblock # xblock-utils -markdown==3.9 +markdown==3.10.2 # via # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt # openedx-django-wiki # staff-graded-xblock # xblock-poll +markdown-it-py==4.0.0 + # via + # -r requirements/edx/testing.txt + # rich markupsafe==3.0.3 # via # -r requirements/edx/doc.txt @@ -1246,7 +1269,8 @@ markupsafe==3.0.3 # mako # openedx-calc # xblock -maxminddb==2.8.2 + # xblocks-contrib +maxminddb==3.1.1 # via # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt @@ -1255,18 +1279,22 @@ mccabe==0.7.0 # via # -r requirements/edx/testing.txt # pylint -meilisearch==0.37.0 +mdurl==0.1.2 + # via + # -r requirements/edx/testing.txt + # markdown-it-py +meilisearch==0.41.0 # via # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt # edx-search -mistune==3.1.4 +mistune==3.2.1 # via # -r requirements/edx/doc.txt # sphinx-mdinclude mock==5.2.0 # via -r requirements/edx/testing.txt -mongoengine==0.29.1 +mongoengine==0.29.3 # via # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt @@ -1275,7 +1303,7 @@ monotonic==1.6 # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt # analytics-python -more-itertools==10.8.0 +more-itertools==11.0.2 # via # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt @@ -1285,39 +1313,39 @@ mpmath==1.3.0 # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt # sympy -msgpack==1.1.1 +msgpack==1.1.2 # via # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt # cachecontrol -multidict==6.7.0 +multidict==6.7.1 # via # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt # aiohttp # yarl -mypy==1.18.2 +mypy==1.19.1 # via # -r requirements/edx/development.in # django-stubs mypy-extensions==1.1.0 # via mypy -mysqlclient==2.2.7 +mysqlclient==2.2.8 # via # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt # openedx-forum -nh3==0.3.0 +nh3==0.3.5 # via # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt # xblocks-contrib -nltk==3.9.2 +nltk==3.9.4 # via # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt # chem -nodeenv==1.9.1 +nodeenv==1.10.0 # via # -r requirements/edx/assets.txt # -r requirements/edx/doc.txt @@ -1331,6 +1359,7 @@ numpy==1.26.4 # openedx-calc # scipy # shapely + # xblocks-contrib oauthlib==3.3.1 # via # -r requirements/edx/doc.txt @@ -1351,17 +1380,16 @@ openedx-atlas==0.7.0 # edx-enterprise # enterprise-integrated-channels # openedx-forum -openedx-calc==4.0.2 +openedx-calc==4.0.3 # via # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt -openedx-django-pyfs==3.8.0 + # xblocks-contrib +openedx-django-pyfs==4.0.0 # via # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt - # lti-consumer-xblock # xblock - # xblocks-contrib openedx-django-require==3.0.0 # via # -r requirements/edx/doc.txt @@ -1387,7 +1415,7 @@ openedx-filters==3.3.0 # edx-enterprise # lti-consumer-xblock # ora2 -openedx-forum==0.3.8 +openedx-forum==0.4.1 # via # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt @@ -1396,15 +1424,15 @@ openedx-learning==0.27.1 # -c requirements/constraints.txt # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt -optimizely-sdk==5.2.0 +optimizely-sdk==5.5.0 # via # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt -ora2==6.16.4 +ora2==7.0.0 # via # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt -packaging==25.0 +packaging==26.2 # via # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt @@ -1413,13 +1441,13 @@ packaging==25.0 # drf-yasg # gunicorn # kombu - # pydata-sphinx-theme # pyproject-api # pytest # snowflake-connector-python # sphinx # tox -pact-python==2.3.3 + # wheel +pact-python==1.6.0 # via # -c requirements/constraints.txt # -r requirements/edx/testing.txt @@ -1435,6 +1463,7 @@ path==16.11.0 # -r requirements/edx/testing.txt # edx-i18n-tools # path-py + # xblocks-contrib path-py==12.5.0 # via # -r requirements/edx/doc.txt @@ -1442,7 +1471,7 @@ path-py==12.5.0 # edx-enterprise # ora2 # staff-graded-xblock -pathspec==0.12.1 +pathspec==1.1.1 # via mypy pgpy==0.6.0 # via @@ -1457,20 +1486,21 @@ piexif==1.1.3 # via # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt -pillow==11.3.0 +pillow==12.2.0 # via # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt # edx-enterprise # edx-organizations # edxval -pip-tools==7.5.1 +pip-tools==7.5.3 # via -r requirements/pip-tools.txt -platformdirs==4.4.0 +platformdirs==4.9.6 # via # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt # pylint + # python-discovery # snowflake-connector-python # tox # virtualenv @@ -1491,19 +1521,19 @@ prompt-toolkit==3.0.52 # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt # click-repl -propcache==0.4.0 +propcache==0.4.1 # via # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt # aiohttp # yarl -proto-plus==1.26.1 +proto-plus==1.27.2 # via # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt # google-api-core # google-cloud-firestore -protobuf==6.32.1 +protobuf==6.33.6 # via # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt @@ -1512,7 +1542,7 @@ protobuf==6.32.1 # googleapis-common-protos # grpcio-status # proto-plus -psutil==7.1.0 +psutil==7.2.2 # via # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt @@ -1521,13 +1551,12 @@ psutil==7.1.0 # pytest-xdist py==1.11.0 # via -r requirements/edx/testing.txt -pyasn1==0.6.1 +pyasn1==0.6.3 # via # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt # pgpy # pyasn1-modules - # rsa pyasn1-modules==0.4.2 # via # -r requirements/edx/doc.txt @@ -1537,11 +1566,11 @@ pycodestyle==2.8.0 # via # -c requirements/constraints.txt # -r requirements/edx/testing.txt -pycountry==24.6.1 +pycountry==26.2.16 # via # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt -pycparser==2.23 +pycparser==3.0 # via # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt @@ -1552,31 +1581,32 @@ pycryptodomex==3.23.0 # -r requirements/edx/testing.txt # edx-proctoring # lti-consumer-xblock -pydantic==2.11.10 +pydantic==2.13.3 # via # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt # camel-converter # fastapi -pydantic-core==2.33.2 +pydantic-core==2.46.3 # via # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt # pydantic -pydata-sphinx-theme==0.15.4 +pydata-sphinx-theme==0.16.1 # via # -r requirements/edx/doc.txt # sphinx-book-theme -pygments==2.19.2 +pygments==2.20.0 # via # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt # accessible-pygments # diff-cover # pydata-sphinx-theme + # rich # sphinx # sphinx-mdinclude -pyjwt[crypto]==2.10.1 +pyjwt[crypto]==2.12.1 # via # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt @@ -1595,7 +1625,7 @@ pylatexenc==2.10 # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt # olxcleaner -pylint==4.0.4 +pylint==4.0.5 # via # -r requirements/edx/testing.txt # edx-lint @@ -1635,7 +1665,7 @@ pymongo==4.4.0 # event-tracking # mongoengine # openedx-forum -pynacl==1.6.0 +pynacl==1.6.2 # via # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt @@ -1650,13 +1680,14 @@ pyopenssl==25.3.0 # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt # snowflake-connector-python -pyparsing==3.2.5 +pyparsing==3.3.2 # via # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt # chem # openedx-calc -pyproject-api==1.9.1 + # xblocks-contrib +pyproject-api==1.10.0 # via # -r requirements/edx/testing.txt # tox @@ -1690,9 +1721,9 @@ pytest==8.2.0 # pytest-xdist pytest-attrib==0.1.3 # via -r requirements/edx/testing.txt -pytest-cov==7.0.0 +pytest-cov==7.1.0 # via -r requirements/edx/testing.txt -pytest-django==4.11.1 +pytest-django==4.12.0 # via -r requirements/edx/testing.txt pytest-json-report==1.5.0 # via -r requirements/edx/testing.txt @@ -1700,7 +1731,7 @@ pytest-metadata==3.1.1 # via # -r requirements/edx/testing.txt # pytest-json-report -pytest-randomly==4.0.1 +pytest-randomly==4.1.0 # via -r requirements/edx/testing.txt pytest-xdist[psutil]==3.8.0 # via -r requirements/edx/testing.txt @@ -1719,6 +1750,11 @@ python-dateutil==2.9.0.post0 # olxcleaner # ora2 # xblock +python-discovery==1.2.2 + # via + # -r requirements/edx/testing.txt + # tox + # virtualenv python-ipware==3.0.0 # via # -r requirements/edx/doc.txt @@ -1729,7 +1765,7 @@ python-slugify==8.0.4 # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt # code-annotations -python-swiftclient==4.8.0 +python-swiftclient==4.10.0 # via # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt @@ -1743,7 +1779,7 @@ python3-saml==1.16.0 # via # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt -pytz==2025.2 +pytz==2026.2 # via # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt @@ -1760,6 +1796,7 @@ pytz==2025.2 # snowflake-connector-python # tincan # xblock + # xblocks-contrib pyuca==1.2 # via # -r requirements/edx/doc.txt @@ -1783,34 +1820,34 @@ random2==1.0.2 # via # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt -recommender-xblock==3.1.0 + # xblocks-contrib +recommender-xblock==5.0.0 # via # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt -redis==6.4.0 +redis==7.4.0 # via # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt # walrus -referencing==0.36.2 +referencing==0.37.0 # via # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt # jsonschema # jsonschema-specifications -regex==2025.9.18 +regex==2026.4.4 # via # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt # nltk -requests==2.32.5 +requests==2.33.1 # via # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt # analytics-python # cachecontrol # django-oauth-toolkit - # djangorestframework-stubs # edx-bulk-grades # edx-drf-extensions # edx-enterprise @@ -1833,26 +1870,26 @@ requests==2.32.5 # social-auth-core # sphinx # xblock-google-drive + # xblocks-contrib requests-oauthlib==2.0.0 # via # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt # social-auth-core -roman-numerals-py==3.1.0 +rich==15.0.0 + # via + # -r requirements/edx/testing.txt + # import-linter +roman-numerals==4.1.0 # via # -r requirements/edx/doc.txt # sphinx -rpds-py==0.27.1 +rpds-py==0.30.0 # via # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt # jsonschema # referencing -rsa==4.9.1 - # via - # -r requirements/edx/doc.txt - # -r requirements/edx/testing.txt - # google-auth rules==3.5 # via # -r requirements/edx/doc.txt @@ -1860,7 +1897,7 @@ rules==3.5 # edx-enterprise # edx-proctoring # openedx-learning -s3transfer==0.14.0 +s3transfer==0.17.0 # via # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt @@ -1870,7 +1907,7 @@ sailthru-client==2.2.3 # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt # edx-ace -scipy==1.16.2 +scipy==1.17.1 # via # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt @@ -1884,7 +1921,8 @@ shapely==2.1.2 # via # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt -simplejson==3.20.2 + # xblocks-contrib +simplejson==4.1.1 # via # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt @@ -1892,6 +1930,7 @@ simplejson==3.20.2 # super-csv # xblock # xblock-utils + # xblocks-contrib singledispatch==4.1.2 # via -r requirements/edx/testing.txt six==1.17.0 @@ -1916,7 +1955,6 @@ six==1.17.0 # libsass # pact-python # python-dateutil - # sphinxcontrib-httpdomain slumber==0.7.1 # via # -r requirements/edx/doc.txt @@ -1924,20 +1962,15 @@ slumber==0.7.1 # edx-bulk-grades # edx-enterprise # enterprise-integrated-channels -smmap==5.0.2 +smmap==5.0.3 # via # -r requirements/edx/doc.txt # gitdb -sniffio==1.3.1 - # via - # -r requirements/edx/doc.txt - # -r requirements/edx/testing.txt - # anyio snowballstemmer==3.0.1 # via # -r requirements/edx/doc.txt # sphinx -snowflake-connector-python==4.2.0 +snowflake-connector-python==4.3.0 # via # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt @@ -1950,13 +1983,13 @@ social-auth-app-django==5.4.1 # -r requirements/edx/testing.txt # edx-auth-backends # edx-enterprise -social-auth-core==4.7.0 +social-auth-core==4.8.7 # via # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt # edx-auth-backends # social-auth-app-django -sorl-thumbnail==12.11.0 +sorl-thumbnail==13.0.0 # via # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt @@ -1966,12 +1999,12 @@ sortedcontainers==2.4.0 # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt # snowflake-connector-python -soupsieve==2.8 +soupsieve==2.8.3 # via # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt # beautifulsoup4 -sphinx==8.2.3 +sphinx==9.0.4 # via # -r requirements/edx/doc.txt # pydata-sphinx-theme @@ -1983,19 +2016,17 @@ sphinx==8.2.3 # sphinxcontrib-httpdomain # sphinxcontrib-openapi # sphinxext-rediraffe -sphinx-autoapi==3.6.0 - # via - # -c requirements/constraints.txt - # -r requirements/edx/doc.txt -sphinx-book-theme==1.1.4 +sphinx-autoapi==3.8.0 + # via -r requirements/edx/doc.txt +sphinx-book-theme==1.2.0 # via -r requirements/edx/doc.txt -sphinx-design==0.6.1 +sphinx-design==0.7.0 # via -r requirements/edx/doc.txt sphinx-mdinclude==0.6.2 # via # -r requirements/edx/doc.txt # sphinxcontrib-openapi -sphinx-reredirects==1.0.0 +sphinx-reredirects==1.1.0 # via -r requirements/edx/doc.txt sphinxcontrib-applehelp==2.0.0 # via @@ -2009,7 +2040,7 @@ sphinxcontrib-htmlhelp==2.1.0 # via # -r requirements/edx/doc.txt # sphinx -sphinxcontrib-httpdomain==1.8.1 +sphinxcontrib-httpdomain==2.0.0 # via # -r requirements/edx/doc.txt # sphinxcontrib-openapi @@ -2017,7 +2048,7 @@ sphinxcontrib-jsmath==1.0.1 # via # -r requirements/edx/doc.txt # sphinx -sphinxcontrib-openapi[markdown]==0.8.4 +sphinxcontrib-openapi[markdown]==0.9.0 # via -r requirements/edx/doc.txt sphinxcontrib-qthelp==2.0.0 # via @@ -2029,21 +2060,21 @@ sphinxcontrib-serializinghtml==2.0.0 # sphinx sphinxext-rediraffe==0.3.0 # via -r requirements/edx/doc.txt -sqlparse==0.5.3 +sqlparse==0.5.5 # via # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt # django # django-debug-toolbar -staff-graded-xblock==3.1.0 +staff-graded-xblock==4.0.0 # via # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt -starlette==0.48.0 +starlette==1.0.0 # via # -r requirements/edx/testing.txt # fastapi -stevedore==5.5.0 +stevedore==5.7.0 # via # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt @@ -2052,7 +2083,7 @@ stevedore==5.5.0 # edx-django-utils # edx-enterprise # edx-opaque-keys -super-csv==4.1.0 +super-csv==5.0.0 # via # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt @@ -2062,7 +2093,7 @@ sympy==1.14.0 # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt # openedx-calc -testfixtures==9.1.0 +testfixtures==11.0.0 # via # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt @@ -2082,26 +2113,35 @@ tinycss2==1.4.0 # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt # bleach -tomlkit==0.13.3 +tomli-w==1.2.0 + # via + # -r requirements/edx/testing.txt + # tox +tomlkit==0.14.0 # via # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt + # edx-lint # openedx-learning # pylint # snowflake-connector-python -tox==4.30.3 +tox==4.53.1 # via -r requirements/edx/testing.txt -tqdm==4.67.1 +tqdm==4.67.3 # via # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt # nltk -types-pyyaml==6.0.12.20250915 +types-pyyaml==6.0.12.20260408 # via # django-stubs # djangorestframework-stubs -types-requests==2.32.4.20250913 - # via djangorestframework-stubs +typesense==2.0.0 + # via + # -r requirements/edx/doc.txt + # -r requirements/edx/testing.txt + # edx-search + # openedx-forum typing-extensions==4.15.0 # via # -r requirements/edx/doc.txt @@ -2117,6 +2157,7 @@ typing-extensions==4.15.0 # fastapi # grimp # grpcio + # icalendar # import-linter # jwcrypto # mypy @@ -2128,19 +2169,25 @@ typing-extensions==4.15.0 # referencing # snowflake-connector-python # starlette + # typesense # typing-inspection typing-inspection==0.4.2 # via # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt + # fastapi # pydantic -tzdata==2025.2 +tzdata==2026.2 # via # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt - # faker # icalendar # kombu +tzlocal==5.3.1 + # via + # -r requirements/edx/doc.txt + # -r requirements/edx/testing.txt + # celery unicodecsv==0.14.1 # via # -r requirements/edx/doc.txt @@ -2159,15 +2206,15 @@ uritemplate==4.2.0 # -r requirements/edx/testing.txt # drf-spectacular # drf-yasg -urllib3==2.5.0 +urllib3==2.6.3 # via # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt # botocore # elasticsearch + # pact-python # requests - # types-requests -uvicorn==0.37.0 +uvicorn==0.46.0 # via # -r requirements/edx/testing.txt # pact-python @@ -2178,30 +2225,30 @@ vine==5.1.0 # amqp # celery # kombu -virtualenv==20.34.0 +virtualenv==21.3.0 # via # -r requirements/edx/testing.txt # tox -voluptuous==0.15.2 +voluptuous==0.16.0 # via # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt # ora2 -vulture==2.14 +vulture==2.16 # via -r requirements/edx/development.in -walrus==0.9.5 +walrus==0.9.8 # via # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt # edx-event-bus-redis watchdog==6.0.0 # via -r requirements/edx/development.in -wcwidth==0.2.14 +wcwidth==0.7.0 # via # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt # prompt-toolkit -web-fragments==3.1.0 +web-fragments==4.0.0 # via # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt @@ -2210,6 +2257,7 @@ web-fragments==3.1.0 # staff-graded-xblock # xblock # xblock-utils + # xblocks-contrib webencodings==0.5.1 # via # -r requirements/edx/doc.txt @@ -2222,18 +2270,20 @@ webob==1.8.9 # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt # xblock -wheel==0.45.1 + # xblocks-contrib +wheel==0.47.0 # via # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt # -r requirements/pip-tools.txt # django-pipeline # pip-tools -wrapt==1.17.3 +wrapt==2.1.2 # via # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt -xblock[django]==5.2.0 + # xblocks-contrib +xblock[django]==6.1.0 # via # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt @@ -2268,7 +2318,7 @@ xblock-utils==4.0.0 # -r requirements/edx/testing.txt # edx-sga # xblock-poll -xblocks-contrib==0.6.0 +xblocks-contrib==0.13.1 # via # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt @@ -2278,17 +2328,16 @@ xmlsec==1.3.14 # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt # python3-saml -xss-utils==0.8.0 +xss-utils==1.0.0 # via # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt -yarl==1.22.0 +yarl==1.23.0 # via # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt # aiohttp - # pact-python -zipp==3.23.0 +zipp==3.23.1 # via # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt diff --git a/requirements/edx/doc.txt b/requirements/edx/doc.txt index daf00472556d..4a0217448518 100644 --- a/requirements/edx/doc.txt +++ b/requirements/edx/doc.txt @@ -55,8 +55,10 @@ asn1crypto==1.5.1 # via # -r requirements/edx/base.txt # snowflake-connector-python -astroid==4.1.2 - # via sphinx-autoapi +astroid==4.0.4 + # via + # -c requirements/constraints.txt + # sphinx-autoapi attrs==26.1.0 # via # -r requirements/edx/base.txt @@ -104,14 +106,14 @@ bleach[css]==6.3.0 # xblock-poll boto==2.49.0 # via -r requirements/edx/base.txt -boto3==1.42.86 +boto3==1.43.2 # via # -r requirements/edx/base.txt # django-ses # fs-s3fs # ora2 # snowflake-connector-python -botocore==1.42.86 +botocore==1.43.2 # via # -r requirements/edx/base.txt # boto3 @@ -123,7 +125,7 @@ cachecontrol==0.14.4 # via # -r requirements/edx/base.txt # firebase-admin -cachetools==7.0.5 +cachetools==7.1.1 # via # -r requirements/edx/base.txt # edxval @@ -142,7 +144,7 @@ celery==5.6.3 # enterprise-integrated-channels # event-tracking # openedx-learning -certifi==2026.2.25 +certifi==2026.4.22 # via # -r requirements/edx/base.txt # elasticsearch @@ -155,9 +157,10 @@ cffi==2.0.0 # -r requirements/edx/base.txt # cryptography # pynacl -chardet==7.4.1 +chardet==7.4.3 # via # -r requirements/edx/base.txt + # encutils # pysrt charset-normalizer==3.4.7 # via @@ -168,7 +171,7 @@ chem==2.0.0 # via # -r requirements/edx/base.txt # xblocks-contrib -click==8.3.2 +click==8.3.3 # via # -r requirements/edx/base.txt # celery @@ -213,7 +216,7 @@ cryptography==45.0.7 # pyjwt # pyopenssl # snowflake-connector-python -cssutils==2.11.1 +cssutils==2.15.0 # via # -r requirements/edx/base.txt # pynliner @@ -397,7 +400,7 @@ django-oauth-toolkit==1.7.1 # -r requirements/edx/base.txt # edx-enterprise # enterprise-integrated-channels -django-object-actions==5.0.0 +django-object-actions==5.0.1 # via # -r requirements/edx/base.txt # edx-enterprise @@ -616,7 +619,7 @@ edx-search==5.0.0 # via # -r requirements/edx/base.txt # openedx-forum -edx-sga==0.27.1 +edx-sga==0.28.0 # via -r requirements/edx/base.txt edx-submissions==4.0.0 # via @@ -656,6 +659,10 @@ elasticsearch==7.9.1 # -r requirements/edx/base.txt # edx-search # openedx-forum +encutils==1.0.0 + # via + # -r requirements/edx/base.txt + # cssutils enmerkar==0.7.1 # via # -r requirements/edx/base.txt @@ -670,15 +677,15 @@ event-tracking==4.0.0 # edx-completion # edx-proctoring # edx-search -fastavro==1.12.1 +fastavro==1.12.2 # via # -r requirements/edx/base.txt # openedx-events -filelock==3.25.2 +filelock==3.29.0 # via # -r requirements/edx/base.txt # snowflake-connector-python -firebase-admin==7.3.0 +firebase-admin==7.4.0 # via # -r requirements/edx/base.txt # edx-ace @@ -702,18 +709,18 @@ geoip2==5.2.0 # via -r requirements/edx/base.txt gitdb==4.0.12 # via gitpython -gitpython==3.1.46 +gitpython==3.1.49 # via -r requirements/edx/doc.in glob2==0.7 # via -r requirements/edx/base.txt -google-api-core[grpc]==2.30.2 +google-api-core[grpc]==2.30.3 # via # -r requirements/edx/base.txt # firebase-admin # google-cloud-core # google-cloud-firestore # google-cloud-storage -google-auth==2.49.1 +google-auth==2.50.0 # via # -r requirements/edx/base.txt # google-api-core @@ -725,7 +732,7 @@ google-cloud-core==2.5.1 # -r requirements/edx/base.txt # google-cloud-firestore # google-cloud-storage -google-cloud-firestore==2.26.0 +google-cloud-firestore==2.27.0 # via # -r requirements/edx/base.txt # firebase-admin @@ -791,9 +798,9 @@ hyperframe==6.1.0 # via # -r requirements/edx/base.txt # h2 -icalendar==7.0.3 +icalendar==7.1.0 # via -r requirements/edx/base.txt -idna==3.11 +idna==3.13 # via # -r requirements/edx/base.txt # anyio @@ -878,8 +885,10 @@ lazy==1.6 # lti-consumer-xblock # ora2 # xblock -lti-consumer-xblock==10.0.1 - # via -r requirements/edx/base.txt +lti-consumer-xblock==9.14.5 + # via + # -c requirements/constraints.txt + # -r requirements/edx/base.txt lxml[html-clean]==5.3.2 # via # -c requirements/constraints.txt @@ -902,7 +911,7 @@ lxml-html-clean==0.4.4 # lxml mailsnake==1.6.4 # via -r requirements/edx/base.txt -mako==1.3.10 +mako==1.3.12 # via # -r requirements/edx/base.txt # acid-xblock @@ -928,11 +937,11 @@ maxminddb==3.1.1 # via # -r requirements/edx/base.txt # geoip2 -meilisearch==0.40.0 +meilisearch==0.41.0 # via # -r requirements/edx/base.txt # edx-search -mistune==3.2.0 +mistune==3.2.1 # via sphinx-mdinclude mongoengine==0.29.3 # via -r requirements/edx/base.txt @@ -961,7 +970,7 @@ mysqlclient==2.2.8 # via # -r requirements/edx/base.txt # openedx-forum -nh3==0.3.4 +nh3==0.3.5 # via # -r requirements/edx/base.txt # xblocks-contrib @@ -1029,11 +1038,11 @@ openedx-learning==0.27.1 # via # -c requirements/constraints.txt # -r requirements/edx/base.txt -optimizely-sdk==5.4.0 +optimizely-sdk==5.5.0 # via -r requirements/edx/base.txt ora2==7.0.0 # via -r requirements/edx/base.txt -packaging==26.0 +packaging==26.2 # via # -r requirements/edx/base.txt # drf-yasg @@ -1127,11 +1136,11 @@ pycryptodomex==3.23.0 # -r requirements/edx/base.txt # edx-proctoring # lti-consumer-xblock -pydantic==2.12.5 +pydantic==2.13.3 # via # -r requirements/edx/base.txt # camel-converter -pydantic-core==2.41.5 +pydantic-core==2.46.3 # via # -r requirements/edx/base.txt # pydantic @@ -1228,7 +1237,7 @@ python3-openid==3.2.0 ; python_version >= "3" # social-auth-core python3-saml==1.16.0 # via -r requirements/edx/base.txt -pytz==2026.1.post1 +pytz==2026.2 # via # -r requirements/edx/base.txt # drf-yasg @@ -1323,7 +1332,7 @@ rules==3.5 # edx-enterprise # edx-proctoring # openedx-learning -s3transfer==0.16.0 +s3transfer==0.17.0 # via # -r requirements/edx/base.txt # boto3 @@ -1343,7 +1352,7 @@ shapely==2.1.2 # via # -r requirements/edx/base.txt # xblocks-contrib -simplejson==3.20.2 +simplejson==4.1.1 # via # -r requirements/edx/base.txt # sailthru-client @@ -1389,7 +1398,7 @@ social-auth-app-django==5.4.1 # -r requirements/edx/base.txt # edx-auth-backends # edx-enterprise -social-auth-core==4.8.5 +social-auth-core==4.8.7 # via # -r requirements/edx/base.txt # edx-auth-backends @@ -1418,10 +1427,8 @@ sphinx==9.0.4 # sphinxcontrib-httpdomain # sphinxcontrib-openapi # sphinxext-rediraffe -sphinx-autoapi==3.6.0 - # via - # -c requirements/constraints.txt - # -r requirements/edx/doc.in +sphinx-autoapi==3.8.0 + # via -r requirements/edx/doc.in sphinx-book-theme==1.2.0 # via -r requirements/edx/doc.in sphinx-design==0.7.0 @@ -1524,7 +1531,7 @@ typing-inspection==0.4.2 # via # -r requirements/edx/base.txt # pydantic -tzdata==2026.1 +tzdata==2026.2 # via # -r requirements/edx/base.txt # icalendar @@ -1565,7 +1572,7 @@ walrus==0.9.8 # via # -r requirements/edx/base.txt # edx-event-bus-redis -wcwidth==0.6.0 +wcwidth==0.7.0 # via # -r requirements/edx/base.txt # prompt-toolkit @@ -1589,7 +1596,7 @@ webob==1.8.9 # -r requirements/edx/base.txt # xblock # xblocks-contrib -wheel==0.46.3 +wheel==0.47.0 # via # -r requirements/edx/base.txt # django-pipeline @@ -1597,7 +1604,7 @@ wrapt==2.1.2 # via # -r requirements/edx/base.txt # xblocks-contrib -xblock[django]==6.0.0 +xblock[django]==6.1.0 # via # -r requirements/edx/base.txt # acid-xblock @@ -1637,7 +1644,7 @@ yarl==1.23.0 # via # -r requirements/edx/base.txt # aiohttp -zipp==3.23.0 +zipp==3.23.1 # via # -r requirements/edx/base.txt # importlib-metadata diff --git a/requirements/edx/semgrep.txt b/requirements/edx/semgrep.txt index 6adeb975ef01..4279df4043d9 100644 --- a/requirements/edx/semgrep.txt +++ b/requirements/edx/semgrep.txt @@ -6,13 +6,13 @@ # annotated-types==0.7.0 # via pydantic -anyio==4.11.0 +anyio==4.13.0 # via # httpx # mcp # sse-starlette # starlette -attrs==25.4.0 +attrs==26.1.0 # via # glom # jsonschema @@ -25,31 +25,35 @@ boltons==21.0.0 # semgrep bracex==2.6 # via wcmatch -certifi==2025.10.5 +certifi==2026.4.22 # via # httpcore # httpx # requests -charset-normalizer==3.4.3 +cffi==2.0.0 + # via cryptography +charset-normalizer==3.4.7 # via requests click==8.1.8 # via # click-option-group # semgrep # uvicorn -click-option-group==0.5.8 +click-option-group==0.5.9 # via semgrep colorama==0.4.6 # via semgrep -defusedxml==0.7.1 - # via semgrep +cryptography==45.0.7 + # via + # -c requirements/constraints.txt + # pyjwt exceptiongroup==1.2.2 # via semgrep -face==24.0.0 +face==26.0.0 # via glom -glom==22.1.0 +glom==25.12.0 # via semgrep -googleapis-common-protos==1.70.0 +googleapis-common-protos==1.74.0 # via opentelemetry-exporter-otlp-proto-http h11==0.16.0 # via @@ -59,16 +63,16 @@ httpcore==1.0.9 # via httpx httpx==0.28.1 # via mcp -httpx-sse==0.4.1 +httpx-sse==0.4.3 # via mcp -idna==3.10 +idna==3.13 # via # anyio # httpx # requests -importlib-metadata==8.7.0 +importlib-metadata==8.7.1 # via opentelemetry-api -jsonschema==4.20.0 +jsonschema==4.25.1 # via # mcp # semgrep @@ -76,7 +80,7 @@ jsonschema-specifications==2025.9.1 # via jsonschema markdown-it-py==4.0.0 # via rich -mcp==1.12.2 +mcp==1.23.3 # via semgrep mdurl==0.1.2 # via markdown-it-py @@ -85,6 +89,7 @@ opentelemetry-api==1.37.0 # opentelemetry-exporter-otlp-proto-http # opentelemetry-instrumentation # opentelemetry-instrumentation-requests + # opentelemetry-instrumentation-threading # opentelemetry-sdk # opentelemetry-semantic-conventions # semgrep @@ -93,9 +98,13 @@ opentelemetry-exporter-otlp-proto-common==1.37.0 opentelemetry-exporter-otlp-proto-http==1.37.0 # via semgrep opentelemetry-instrumentation==0.58b0 - # via opentelemetry-instrumentation-requests + # via + # opentelemetry-instrumentation-requests + # opentelemetry-instrumentation-threading opentelemetry-instrumentation-requests==0.58b0 # via semgrep +opentelemetry-instrumentation-threading==0.58b0 + # via semgrep opentelemetry-proto==1.37.0 # via # opentelemetry-exporter-otlp-proto-common @@ -111,63 +120,70 @@ opentelemetry-semantic-conventions==0.58b0 # opentelemetry-sdk opentelemetry-util-http==0.58b0 # via opentelemetry-instrumentation-requests -packaging==25.0 +packaging==26.2 # via # opentelemetry-instrumentation # semgrep -peewee==3.18.2 +peewee==3.19.0 # via semgrep -protobuf==6.32.1 +protobuf==6.33.6 # via # googleapis-common-protos # opentelemetry-proto -pydantic==2.11.10 +pycparser==3.0 + # via cffi +pydantic==2.13.3 # via # mcp # pydantic-settings -pydantic-core==2.33.2 +pydantic-core==2.46.3 # via pydantic -pydantic-settings==2.11.0 +pydantic-settings==2.14.0 # via mcp -pygments==2.19.2 +pygments==2.20.0 # via rich -python-dotenv==1.1.1 +pyjwt[crypto]==2.12.1 + # via + # mcp + # semgrep +python-dotenv==1.2.2 # via pydantic-settings -python-multipart==0.0.20 +python-multipart==0.0.27 # via mcp -referencing==0.36.2 +referencing==0.37.0 # via # jsonschema # jsonschema-specifications -requests==2.32.5 +requests==2.33.1 # via # opentelemetry-exporter-otlp-proto-http # semgrep -rich==13.5.3 +rich==15.0.0 # via semgrep -rpds-py==0.27.1 +rpds-py==0.30.0 # via # jsonschema # referencing -ruamel-yaml==0.18.15 +ruamel-yaml==0.19.1 # via semgrep -ruamel-yaml-clib==0.2.12 - # via - # ruamel-yaml - # semgrep -semgrep==1.139.0 +ruamel-yaml-clib==0.2.14 + # via semgrep +semantic-version==2.10.0 + # via semgrep +semgrep==1.161.0 # via -r requirements/edx/semgrep.in -sniffio==1.3.1 - # via anyio -sse-starlette==3.0.2 - # via mcp -starlette==0.48.0 +sse-starlette==3.4.1 # via mcp +starlette==1.0.0 + # via + # mcp + # sse-starlette tomli==2.0.2 # via semgrep typing-extensions==4.15.0 # via # anyio + # mcp # opentelemetry-api # opentelemetry-exporter-otlp-proto-http # opentelemetry-sdk @@ -180,17 +196,20 @@ typing-extensions==4.15.0 # typing-inspection typing-inspection==0.4.2 # via + # mcp # pydantic # pydantic-settings -urllib3==2.5.0 +urllib3==2.6.3 # via # requests # semgrep -uvicorn==0.37.0 +uvicorn==0.46.0 # via mcp wcmatch==8.5.2 # via semgrep wrapt==1.17.3 - # via opentelemetry-instrumentation -zipp==3.23.0 + # via + # opentelemetry-instrumentation + # opentelemetry-instrumentation-threading +zipp==3.23.1 # via importlib-metadata diff --git a/requirements/edx/testing.txt b/requirements/edx/testing.txt index 20780beabac2..1d988cc727de 100644 --- a/requirements/edx/testing.txt +++ b/requirements/edx/testing.txt @@ -56,6 +56,7 @@ asn1crypto==1.5.1 # snowflake-connector-python astroid==4.0.4 # via + # -c requirements/constraints.txt # pylint # pylint-celery attrs==26.1.0 @@ -103,14 +104,14 @@ bleach[css]==6.3.0 # xblock-poll boto==2.49.0 # via -r requirements/edx/base.txt -boto3==1.42.86 +boto3==1.43.2 # via # -r requirements/edx/base.txt # django-ses # fs-s3fs # ora2 # snowflake-connector-python -botocore==1.42.86 +botocore==1.43.2 # via # -r requirements/edx/base.txt # boto3 @@ -122,7 +123,7 @@ cachecontrol==0.14.4 # via # -r requirements/edx/base.txt # firebase-admin -cachetools==7.0.5 +cachetools==7.1.1 # via # -r requirements/edx/base.txt # edxval @@ -142,7 +143,7 @@ celery==5.6.3 # enterprise-integrated-channels # event-tracking # openedx-learning -certifi==2026.2.25 +certifi==2026.4.22 # via # -r requirements/edx/base.txt # elasticsearch @@ -155,11 +156,12 @@ cffi==2.0.0 # -r requirements/edx/base.txt # cryptography # pynacl -chardet==7.4.1 +chardet==7.4.3 # via # -r requirements/edx/base.txt # -r requirements/edx/coverage.txt # diff-cover + # encutils # pysrt charset-normalizer==3.4.7 # via @@ -170,7 +172,7 @@ chem==2.0.0 # via # -r requirements/edx/base.txt # xblocks-contrib -click==8.3.2 +click==8.3.3 # via # -r requirements/edx/base.txt # celery @@ -233,7 +235,7 @@ cssselect==1.4.0 # via # -r requirements/edx/testing.in # pyquery -cssutils==2.11.1 +cssutils==2.15.0 # via # -r requirements/edx/base.txt # pynliner @@ -423,7 +425,7 @@ django-oauth-toolkit==1.7.1 # -r requirements/edx/base.txt # edx-enterprise # enterprise-integrated-channels -django-object-actions==5.0.0 +django-object-actions==5.0.1 # via # -r requirements/edx/base.txt # edx-enterprise @@ -596,7 +598,7 @@ edx-i18n-tools==2.0.0 # via # -r requirements/edx/base.txt # ora2 -edx-lint==6.0.0 +edx-lint==6.1.0 # via -r requirements/edx/testing.in edx-milestones==2.0.0 # via -r requirements/edx/base.txt @@ -639,7 +641,7 @@ edx-search==5.0.0 # via # -r requirements/edx/base.txt # openedx-forum -edx-sga==0.27.1 +edx-sga==0.28.0 # via -r requirements/edx/base.txt edx-submissions==4.0.0 # via @@ -679,6 +681,10 @@ elasticsearch==7.9.1 # -r requirements/edx/base.txt # edx-search # openedx-forum +encutils==1.0.0 + # via + # -r requirements/edx/base.txt + # cssutils enmerkar==0.7.1 # via # -r requirements/edx/base.txt @@ -697,22 +703,22 @@ execnet==2.1.2 # via pytest-xdist factory-boy==3.3.3 # via -r requirements/edx/testing.in -faker==40.13.0 +faker==40.15.0 # via factory-boy -fastapi==0.135.3 +fastapi==0.136.1 # via pact-python -fastavro==1.12.1 +fastavro==1.12.2 # via # -r requirements/edx/base.txt # openedx-events -filelock==3.25.2 +filelock==3.29.0 # via # -r requirements/edx/base.txt # python-discovery # snowflake-connector-python # tox # virtualenv -firebase-admin==7.3.0 +firebase-admin==7.4.0 # via # -r requirements/edx/base.txt # edx-ace @@ -738,14 +744,14 @@ geoip2==5.2.0 # via -r requirements/edx/base.txt glob2==0.7 # via -r requirements/edx/base.txt -google-api-core[grpc]==2.30.2 +google-api-core[grpc]==2.30.3 # via # -r requirements/edx/base.txt # firebase-admin # google-cloud-core # google-cloud-firestore # google-cloud-storage -google-auth==2.49.1 +google-auth==2.50.0 # via # -r requirements/edx/base.txt # google-api-core @@ -757,7 +763,7 @@ google-cloud-core==2.5.1 # -r requirements/edx/base.txt # google-cloud-firestore # google-cloud-storage -google-cloud-firestore==2.26.0 +google-cloud-firestore==2.27.0 # via # -r requirements/edx/base.txt # firebase-admin @@ -828,9 +834,9 @@ hyperframe==6.1.0 # via # -r requirements/edx/base.txt # h2 -icalendar==7.0.3 +icalendar==7.1.0 # via -r requirements/edx/base.txt -idna==3.11 +idna==3.13 # via # -r requirements/edx/base.txt # anyio @@ -920,8 +926,10 @@ lazy==1.6 # lti-consumer-xblock # ora2 # xblock -lti-consumer-xblock==10.0.1 - # via -r requirements/edx/base.txt +lti-consumer-xblock==9.14.5 + # via + # -c requirements/constraints.txt + # -r requirements/edx/base.txt lxml[html-clean]==5.3.2 # via # -c requirements/constraints.txt @@ -945,7 +953,7 @@ lxml-html-clean==0.4.4 # lxml mailsnake==1.6.4 # via -r requirements/edx/base.txt -mako==1.3.10 +mako==1.3.12 # via # -r requirements/edx/base.txt # acid-xblock @@ -978,7 +986,7 @@ mccabe==0.7.0 # via pylint mdurl==0.1.2 # via markdown-it-py -meilisearch==0.40.0 +meilisearch==0.41.0 # via # -r requirements/edx/base.txt # edx-search @@ -1011,7 +1019,7 @@ mysqlclient==2.2.8 # via # -r requirements/edx/base.txt # openedx-forum -nh3==0.3.4 +nh3==0.3.5 # via # -r requirements/edx/base.txt # xblocks-contrib @@ -1079,11 +1087,11 @@ openedx-learning==0.27.1 # via # -c requirements/constraints.txt # -r requirements/edx/base.txt -optimizely-sdk==5.4.0 +optimizely-sdk==5.5.0 # via -r requirements/edx/base.txt ora2==7.0.0 # via -r requirements/edx/base.txt -packaging==26.0 +packaging==26.2 # via # -r requirements/edx/base.txt # drf-yasg @@ -1201,12 +1209,12 @@ pycryptodomex==3.23.0 # -r requirements/edx/base.txt # edx-proctoring # lti-consumer-xblock -pydantic==2.12.5 +pydantic==2.13.3 # via # -r requirements/edx/base.txt # camel-converter # fastapi -pydantic-core==2.41.5 +pydantic-core==2.46.3 # via # -r requirements/edx/base.txt # pydantic @@ -1313,7 +1321,7 @@ pytest-metadata==3.1.1 # via # -r requirements/edx/testing.in # pytest-json-report -pytest-randomly==4.0.1 +pytest-randomly==4.1.0 # via -r requirements/edx/testing.in pytest-xdist[psutil]==3.8.0 # via -r requirements/edx/testing.in @@ -1353,7 +1361,7 @@ python3-openid==3.2.0 ; python_version >= "3" # social-auth-core python3-saml==1.16.0 # via -r requirements/edx/base.txt -pytz==2026.1.post1 +pytz==2026.2 # via # -r requirements/edx/base.txt # drf-yasg @@ -1433,7 +1441,7 @@ requests-oauthlib==2.0.0 # via # -r requirements/edx/base.txt # social-auth-core -rich==14.3.3 +rich==15.0.0 # via import-linter rpds-py==0.30.0 # via @@ -1446,7 +1454,7 @@ rules==3.5 # edx-enterprise # edx-proctoring # openedx-learning -s3transfer==0.16.0 +s3transfer==0.17.0 # via # -r requirements/edx/base.txt # boto3 @@ -1466,7 +1474,7 @@ shapely==2.1.2 # via # -r requirements/edx/base.txt # xblocks-contrib -simplejson==3.20.2 +simplejson==4.1.1 # via # -r requirements/edx/base.txt # sailthru-client @@ -1512,7 +1520,7 @@ social-auth-app-django==5.4.1 # -r requirements/edx/base.txt # edx-auth-backends # edx-enterprise -social-auth-core==4.8.5 +social-auth-core==4.8.7 # via # -r requirements/edx/base.txt # edx-auth-backends @@ -1575,10 +1583,11 @@ tomli-w==1.2.0 tomlkit==0.14.0 # via # -r requirements/edx/base.txt + # edx-lint # openedx-learning # pylint # snowflake-connector-python -tox==4.52.0 +tox==4.53.1 # via -r requirements/edx/testing.in tqdm==4.67.3 # via @@ -1617,7 +1626,7 @@ typing-inspection==0.4.2 # -r requirements/edx/base.txt # fastapi # pydantic -tzdata==2026.1 +tzdata==2026.2 # via # -r requirements/edx/base.txt # icalendar @@ -1647,7 +1656,7 @@ urllib3==2.6.3 # elasticsearch # pact-python # requests -uvicorn==0.44.0 +uvicorn==0.46.0 # via pact-python vine==5.1.0 # via @@ -1655,7 +1664,7 @@ vine==5.1.0 # amqp # celery # kombu -virtualenv==21.2.0 +virtualenv==21.3.0 # via tox voluptuous==0.16.0 # via @@ -1665,7 +1674,7 @@ walrus==0.9.8 # via # -r requirements/edx/base.txt # edx-event-bus-redis -wcwidth==0.6.0 +wcwidth==0.7.0 # via # -r requirements/edx/base.txt # prompt-toolkit @@ -1689,7 +1698,7 @@ webob==1.8.9 # -r requirements/edx/base.txt # xblock # xblocks-contrib -wheel==0.46.3 +wheel==0.47.0 # via # -r requirements/edx/base.txt # django-pipeline @@ -1697,7 +1706,7 @@ wrapt==2.1.2 # via # -r requirements/edx/base.txt # xblocks-contrib -xblock[django]==6.0.0 +xblock[django]==6.1.0 # via # -r requirements/edx/base.txt # acid-xblock @@ -1737,7 +1746,7 @@ yarl==1.23.0 # via # -r requirements/edx/base.txt # aiohttp -zipp==3.23.0 +zipp==3.23.1 # via # -r requirements/edx/base.txt # importlib-metadata diff --git a/requirements/pip-tools.txt b/requirements/pip-tools.txt index 533332376c9f..eb6eb5325a63 100644 --- a/requirements/pip-tools.txt +++ b/requirements/pip-tools.txt @@ -4,11 +4,11 @@ # # make upgrade # -build==1.4.2 +build==1.5.0 # via pip-tools -click==8.3.2 +click==8.3.3 # via pip-tools -packaging==26.0 +packaging==26.2 # via # build # wheel @@ -18,7 +18,7 @@ pyproject-hooks==1.2.0 # via # build # pip-tools -wheel==0.46.3 +wheel==0.47.0 # via pip-tools # The following packages are considered to be unsafe in a requirements file: diff --git a/requirements/pip.txt b/requirements/pip.txt index 341a251b5cad..c2c34ef9b258 100644 --- a/requirements/pip.txt +++ b/requirements/pip.txt @@ -4,13 +4,13 @@ # # make upgrade # -packaging==26.0 +packaging==26.2 # via wheel -wheel==0.46.3 +wheel==0.47.0 # via -r requirements/pip.in # The following packages are considered to be unsafe in a requirements file: -pip==26.0.1 +pip==26.1 # via -r requirements/pip.in -setuptools==82.0.1 +setuptools==80.9.0 # via -r requirements/pip.in diff --git a/scripts/structures_pruning/requirements/base.txt b/scripts/structures_pruning/requirements/base.txt index aa4a8c157660..00770d76e663 100644 --- a/scripts/structures_pruning/requirements/base.txt +++ b/scripts/structures_pruning/requirements/base.txt @@ -4,7 +4,7 @@ # # make upgrade # -click==8.3.0 +click==8.3.3 # via # -r scripts/structures_pruning/requirements/base.in # click-log @@ -12,14 +12,14 @@ click-log==0.4.0 # via -r scripts/structures_pruning/requirements/base.in dnspython==2.8.0 # via pymongo -edx-opaque-keys==3.0.0 +edx-opaque-keys==4.0.0 # via -r scripts/structures_pruning/requirements/base.in pymongo==4.4.0 # via # -c requirements/constraints.txt # -r scripts/structures_pruning/requirements/base.in # edx-opaque-keys -stevedore==5.5.0 +stevedore==5.7.0 # via edx-opaque-keys typing-extensions==4.15.0 # via edx-opaque-keys diff --git a/scripts/structures_pruning/requirements/testing.txt b/scripts/structures_pruning/requirements/testing.txt index 1b387d33c4d9..6b7e9f14e40a 100644 --- a/scripts/structures_pruning/requirements/testing.txt +++ b/scripts/structures_pruning/requirements/testing.txt @@ -4,7 +4,7 @@ # # make upgrade # -click==8.3.0 +click==8.3.3 # via # -r scripts/structures_pruning/requirements/base.txt # click-log @@ -16,23 +16,23 @@ dnspython==2.8.0 # via # -r scripts/structures_pruning/requirements/base.txt # pymongo -edx-opaque-keys==3.0.0 +edx-opaque-keys==4.0.0 # via -r scripts/structures_pruning/requirements/base.txt -iniconfig==2.1.0 +iniconfig==2.3.0 # via pytest -packaging==25.0 +packaging==26.2 # via pytest pluggy==1.6.0 # via pytest -pygments==2.19.2 +pygments==2.20.0 # via pytest pymongo==4.4.0 # via # -r scripts/structures_pruning/requirements/base.txt # edx-opaque-keys -pytest==8.4.2 +pytest==9.0.3 # via -r scripts/structures_pruning/requirements/testing.in -stevedore==5.5.0 +stevedore==5.7.0 # via # -r scripts/structures_pruning/requirements/base.txt # edx-opaque-keys diff --git a/scripts/user_retirement/requirements/base.txt b/scripts/user_retirement/requirements/base.txt index fc887f27d165..7a00eeffd239 100644 --- a/scripts/user_retirement/requirements/base.txt +++ b/scripts/user_retirement/requirements/base.txt @@ -4,37 +4,36 @@ # # make upgrade # -asgiref==3.10.0 +asgiref==3.11.1 # via django -attrs==25.4.0 +attrs==26.1.0 # via zeep backoff==2.2.1 # via -r scripts/user_retirement/requirements/base.in -boto3==1.40.46 +boto3==1.43.2 # via -r scripts/user_retirement/requirements/base.in -botocore==1.40.46 +botocore==1.43.2 # via # boto3 # s3transfer -cachetools==6.2.0 - # via google-auth -certifi==2025.10.5 +certifi==2026.4.22 # via requests cffi==2.0.0 # via # cryptography # pynacl -charset-normalizer==3.4.3 +charset-normalizer==3.4.7 # via requests -click==8.3.0 +click==8.3.3 # via # -r scripts/user_retirement/requirements/base.in # edx-django-utils cryptography==45.0.7 # via # -c requirements/constraints.txt + # google-auth # pyjwt -django==4.2.28 +django==4.2.30 # via # -c requirements/common_constraints.txt # -c requirements/constraints.txt @@ -47,32 +46,32 @@ django-waffle==5.0.0 # via edx-django-utils edx-django-utils==8.0.1 # via edx-rest-api-client -edx-rest-api-client==6.2.0 +edx-rest-api-client==7.0.0 # via -r scripts/user_retirement/requirements/base.in -google-api-core==2.25.2 +google-api-core==2.30.3 # via google-api-python-client -google-api-python-client==2.184.0 +google-api-python-client==2.195.0 # via -r scripts/user_retirement/requirements/base.in -google-auth==2.41.1 +google-auth==2.50.0 # via # google-api-core # google-api-python-client # google-auth-httplib2 -google-auth-httplib2==0.2.0 +google-auth-httplib2==0.3.1 # via google-api-python-client -googleapis-common-protos==1.70.0 +googleapis-common-protos==1.74.0 # via google-api-core -httplib2==0.31.0 +httplib2==0.31.2 # via # google-api-python-client # google-auth-httplib2 -idna==3.10 +idna==3.13 # via requests isodate==0.7.2 # via zeep -jenkinsapi==0.3.16 +jenkinsapi==0.3.23 # via -r scripts/user_retirement/requirements/base.in -jmespath==1.0.1 +jmespath==1.1.0 # via # boto3 # botocore @@ -80,44 +79,42 @@ lxml==5.3.2 # via # -c requirements/constraints.txt # zeep -more-itertools==10.8.0 +more-itertools==11.0.2 # via simple-salesforce -platformdirs==4.4.0 +platformdirs==4.9.6 # via zeep -proto-plus==1.26.1 +proto-plus==1.27.2 # via google-api-core -protobuf==6.32.1 +protobuf==7.34.1 # via # google-api-core # googleapis-common-protos # proto-plus -psutil==7.1.0 +psutil==7.2.2 # via edx-django-utils -pyasn1==0.6.1 - # via - # pyasn1-modules - # rsa +pyasn1==0.6.3 + # via pyasn1-modules pyasn1-modules==0.4.2 # via google-auth -pycparser==2.23 +pycparser==3.0 # via cffi -pyjwt[crypto]==2.10.1 +pyjwt[crypto]==2.12.1 # via # edx-rest-api-client # simple-salesforce -pynacl==1.6.0 +pynacl==1.6.2 # via edx-django-utils -pyparsing==3.2.5 +pyparsing==3.3.2 # via httplib2 python-dateutil==2.9.0.post0 # via botocore -pytz==2025.2 +pytz==2026.2 # via # jenkinsapi # zeep pyyaml==6.0.3 # via -r scripts/user_retirement/requirements/base.in -requests==2.32.5 +requests==2.33.1 # via # -r scripts/user_retirement/requirements/base.in # edx-rest-api-client @@ -127,23 +124,21 @@ requests==2.32.5 # requests-toolbelt # simple-salesforce # zeep -requests-file==2.1.0 +requests-file==3.0.1 # via zeep requests-toolbelt==1.0.0 # via zeep -rsa==4.9.1 - # via google-auth -s3transfer==0.14.0 +s3transfer==0.17.0 # via boto3 simple-salesforce==1.12.9 # via -r scripts/user_retirement/requirements/base.in -simplejson==3.20.2 +simplejson==4.1.1 # via -r scripts/user_retirement/requirements/base.in six==1.17.0 # via python-dateutil -sqlparse==0.5.3 +sqlparse==0.5.5 # via django -stevedore==5.5.0 +stevedore==5.7.0 # via edx-django-utils typing-extensions==4.15.0 # via simple-salesforce @@ -151,7 +146,7 @@ unicodecsv==0.14.1 # via -r scripts/user_retirement/requirements/base.in uritemplate==4.2.0 # via google-api-python-client -urllib3==2.5.0 +urllib3==2.6.3 # via # botocore # requests diff --git a/scripts/user_retirement/requirements/testing.txt b/scripts/user_retirement/requirements/testing.txt index 1c37620093ed..67c5a0a603eb 100644 --- a/scripts/user_retirement/requirements/testing.txt +++ b/scripts/user_retirement/requirements/testing.txt @@ -4,31 +4,27 @@ # # make upgrade # -asgiref==3.10.0 +asgiref==3.11.1 # via # -r scripts/user_retirement/requirements/base.txt # django -attrs==25.4.0 +attrs==26.1.0 # via # -r scripts/user_retirement/requirements/base.txt # zeep backoff==2.2.1 # via -r scripts/user_retirement/requirements/base.txt -boto3==1.40.46 +boto3==1.43.2 # via # -r scripts/user_retirement/requirements/base.txt # moto -botocore==1.40.46 +botocore==1.43.2 # via # -r scripts/user_retirement/requirements/base.txt # boto3 # moto # s3transfer -cachetools==6.2.0 - # via - # -r scripts/user_retirement/requirements/base.txt - # google-auth -certifi==2025.10.5 +certifi==2026.4.22 # via # -r scripts/user_retirement/requirements/base.txt # requests @@ -37,22 +33,23 @@ cffi==2.0.0 # -r scripts/user_retirement/requirements/base.txt # cryptography # pynacl -charset-normalizer==3.4.3 +charset-normalizer==3.4.7 # via # -r scripts/user_retirement/requirements/base.txt # requests -click==8.3.0 +click==8.3.3 # via # -r scripts/user_retirement/requirements/base.txt # edx-django-utils cryptography==45.0.7 # via # -r scripts/user_retirement/requirements/base.txt + # google-auth # moto # pyjwt ddt==1.7.2 # via -r scripts/user_retirement/requirements/testing.in -django==4.2.28 +django==4.2.30 # via # -r scripts/user_retirement/requirements/base.txt # django-crum @@ -70,48 +67,46 @@ edx-django-utils==8.0.1 # via # -r scripts/user_retirement/requirements/base.txt # edx-rest-api-client -edx-rest-api-client==6.2.0 +edx-rest-api-client==7.0.0 # via -r scripts/user_retirement/requirements/base.txt -google-api-core==2.25.2 +google-api-core==2.30.3 # via # -r scripts/user_retirement/requirements/base.txt # google-api-python-client -google-api-python-client==2.184.0 +google-api-python-client==2.195.0 # via -r scripts/user_retirement/requirements/base.txt -google-auth==2.41.1 +google-auth==2.50.0 # via # -r scripts/user_retirement/requirements/base.txt # google-api-core # google-api-python-client # google-auth-httplib2 -google-auth-httplib2==0.2.0 +google-auth-httplib2==0.3.1 # via # -r scripts/user_retirement/requirements/base.txt # google-api-python-client -googleapis-common-protos==1.70.0 +googleapis-common-protos==1.74.0 # via # -r scripts/user_retirement/requirements/base.txt # google-api-core -httplib2==0.31.0 +httplib2==0.31.2 # via # -r scripts/user_retirement/requirements/base.txt # google-api-python-client # google-auth-httplib2 -idna==3.10 +idna==3.13 # via # -r scripts/user_retirement/requirements/base.txt # requests -iniconfig==2.1.0 +iniconfig==2.3.0 # via pytest isodate==0.7.2 # via # -r scripts/user_retirement/requirements/base.txt # zeep -jenkinsapi==0.3.16 +jenkinsapi==0.3.23 # via -r scripts/user_retirement/requirements/base.txt -jinja2==3.1.6 - # via moto -jmespath==1.0.1 +jmespath==1.1.0 # via # -r scripts/user_retirement/requirements/base.txt # boto3 @@ -121,75 +116,71 @@ lxml==5.3.2 # -r scripts/user_retirement/requirements/base.txt # zeep markupsafe==3.0.3 - # via - # jinja2 - # werkzeug + # via werkzeug mock==5.2.0 # via -r scripts/user_retirement/requirements/testing.in -more-itertools==10.8.0 +more-itertools==11.0.2 # via # -r scripts/user_retirement/requirements/base.txt # simple-salesforce -moto==5.1.14 +moto==5.2.0 # via -r scripts/user_retirement/requirements/testing.in -packaging==25.0 +packaging==26.2 # via pytest -platformdirs==4.4.0 +platformdirs==4.9.6 # via # -r scripts/user_retirement/requirements/base.txt # zeep pluggy==1.6.0 # via pytest -proto-plus==1.26.1 +proto-plus==1.27.2 # via # -r scripts/user_retirement/requirements/base.txt # google-api-core -protobuf==6.32.1 +protobuf==7.34.1 # via # -r scripts/user_retirement/requirements/base.txt # google-api-core # googleapis-common-protos # proto-plus -psutil==7.1.0 +psutil==7.2.2 # via # -r scripts/user_retirement/requirements/base.txt # edx-django-utils -pyasn1==0.6.1 +pyasn1==0.6.3 # via # -r scripts/user_retirement/requirements/base.txt # pyasn1-modules - # rsa pyasn1-modules==0.4.2 # via # -r scripts/user_retirement/requirements/base.txt # google-auth -pycparser==2.23 +pycparser==3.0 # via # -r scripts/user_retirement/requirements/base.txt # cffi -pygments==2.19.2 +pygments==2.20.0 # via pytest -pyjwt[crypto]==2.10.1 +pyjwt[crypto]==2.12.1 # via # -r scripts/user_retirement/requirements/base.txt # edx-rest-api-client # simple-salesforce -pynacl==1.6.0 +pynacl==1.6.2 # via # -r scripts/user_retirement/requirements/base.txt # edx-django-utils -pyparsing==3.2.5 +pyparsing==3.3.2 # via # -r scripts/user_retirement/requirements/base.txt # httplib2 -pytest==8.4.2 +pytest==9.0.3 # via -r scripts/user_retirement/requirements/testing.in python-dateutil==2.9.0.post0 # via # -r scripts/user_retirement/requirements/base.txt # botocore - # moto -pytz==2025.2 +pytz==2026.2 # via # -r scripts/user_retirement/requirements/base.txt # jenkinsapi @@ -198,7 +189,7 @@ pyyaml==6.0.3 # via # -r scripts/user_retirement/requirements/base.txt # responses -requests==2.32.5 +requests==2.33.1 # via # -r scripts/user_retirement/requirements/base.txt # edx-rest-api-client @@ -211,7 +202,7 @@ requests==2.32.5 # responses # simple-salesforce # zeep -requests-file==2.1.0 +requests-file==3.0.1 # via # -r scripts/user_retirement/requirements/base.txt # zeep @@ -221,31 +212,27 @@ requests-toolbelt==1.0.0 # via # -r scripts/user_retirement/requirements/base.txt # zeep -responses==0.25.8 +responses==0.26.0 # via # -r scripts/user_retirement/requirements/testing.in # moto -rsa==4.9.1 - # via - # -r scripts/user_retirement/requirements/base.txt - # google-auth -s3transfer==0.14.0 +s3transfer==0.17.0 # via # -r scripts/user_retirement/requirements/base.txt # boto3 simple-salesforce==1.12.9 # via -r scripts/user_retirement/requirements/base.txt -simplejson==3.20.2 +simplejson==4.1.1 # via -r scripts/user_retirement/requirements/base.txt six==1.17.0 # via # -r scripts/user_retirement/requirements/base.txt # python-dateutil -sqlparse==0.5.3 +sqlparse==0.5.5 # via # -r scripts/user_retirement/requirements/base.txt # django -stevedore==5.5.0 +stevedore==5.7.0 # via # -r scripts/user_retirement/requirements/base.txt # edx-django-utils @@ -259,16 +246,16 @@ uritemplate==4.2.0 # via # -r scripts/user_retirement/requirements/base.txt # google-api-python-client -urllib3==2.5.0 +urllib3==2.6.3 # via # -r scripts/user_retirement/requirements/base.txt # -r scripts/user_retirement/requirements/testing.in # botocore # requests # responses -werkzeug==3.1.3 +werkzeug==3.1.8 # via moto -xmltodict==1.0.2 +xmltodict==1.0.4 # via moto zeep==4.3.2 # via diff --git a/scripts/xblock/requirements.txt b/scripts/xblock/requirements.txt index 23d2ac5b8eed..6ff0e4372ee8 100644 --- a/scripts/xblock/requirements.txt +++ b/scripts/xblock/requirements.txt @@ -4,13 +4,13 @@ # # make upgrade # -certifi==2025.10.5 +certifi==2026.4.22 # via requests -charset-normalizer==3.4.3 +charset-normalizer==3.4.7 # via requests -idna==3.10 +idna==3.13 # via requests -requests==2.32.5 +requests==2.33.1 # via -r scripts/xblock/requirements.in -urllib3==2.5.0 +urllib3==2.6.3 # via requests From 8ef0c30ca54f4a3f4abfe9abe4ea3b4e7e6901bc Mon Sep 17 00:00:00 2001 From: Kira Miller <31229189+kiram15@users.noreply.github.com> Date: Mon, 4 May 2026 20:58:28 +0000 Subject: [PATCH 4/4] fix: more test failures --- .../split_modulestore_django/tests/test_models.py | 6 +++++- common/djangoapps/third_party_auth/saml.py | 12 +++++++----- .../djangoapps/third_party_auth/tests/test_saml.py | 2 +- lms/envs/common.py | 2 +- mypy.ini | 2 ++ .../djangoapps/user_api/accounts/tests/test_api.py | 1 + xmodule/capa/tests/test_xqueue_submission.py | 8 ++++++-- xmodule/capa/xqueue_submission.py | 6 ++++-- 8 files changed, 27 insertions(+), 12 deletions(-) diff --git a/common/djangoapps/split_modulestore_django/tests/test_models.py b/common/djangoapps/split_modulestore_django/tests/test_models.py index cc32222f3fd7..c5a2eec58122 100644 --- a/common/djangoapps/split_modulestore_django/tests/test_models.py +++ b/common/djangoapps/split_modulestore_django/tests/test_models.py @@ -2,7 +2,8 @@ from datetime import datetime from bson.objectid import ObjectId -from django.test import TestCase +from django.db import connection +from django.test import TestCase, skipUnlessDBFeature from opaque_keys.edx.keys import CourseKey from common.djangoapps.split_modulestore_django.models import SplitModulestoreCourseIndex @@ -12,6 +13,7 @@ class SplitModulestoreCourseIndexTest(TestCase): """ Unit tests for SplitModulestoreCourseIndex """ + @skipUnlessDBFeature('supports_collation_on_charfield') def test_course_id_case_sensitive(self): """ Make sure the course_id column is case sensitive. @@ -23,6 +25,8 @@ def test_course_id_case_sensitive(self): sensitive too. The system still tries to prevent creation of courses that differ only by course (that hasn't changed), but now the MySQL version won't break if that has somehow happened. """ + if connection.vendor != 'mysql': + self.skipTest("Requires MySQL utf8_bin case-sensitive collation") course_index_common = { "course": "TL101", "run": "2015", diff --git a/common/djangoapps/third_party_auth/saml.py b/common/djangoapps/third_party_auth/saml.py index 3f1cdf30a9e1..03c7e0ac8ef4 100644 --- a/common/djangoapps/third_party_auth/saml.py +++ b/common/djangoapps/third_party_auth/saml.py @@ -287,21 +287,23 @@ def get_user_details(self, attributes): }) return details - def get_attr(self, attributes, conf_key, default_attribute): + def get_attr(self, attributes, conf_key, default_attributes, *, validate_defaults=False): """ Internal helper method. - Get the attribute 'default_attribute' out of the attributes, + Get the attribute 'default_attributes' out of the attributes, unless self.conf[conf_key] overrides the default by specifying another attribute to use. """ - key = self.conf.get(conf_key, default_attribute) - if key in attributes: + key = self.conf.get(conf_key) + if key is None: + key = next((attr for attr in default_attributes if attr in attributes), None) + if key is not None and key in attributes: try: return attributes[key][0] except IndexError: log.warning('[THIRD_PARTY_AUTH] SAML attribute value not found. ' 'SamlAttribute: {attribute}'.format(attribute=key)) - return self.conf['attr_defaults'].get(conf_key) or None + return self.conf.get('attr_defaults', {}).get(conf_key) or None @property def saml_sp_configuration(self): diff --git a/common/djangoapps/third_party_auth/tests/test_saml.py b/common/djangoapps/third_party_auth/tests/test_saml.py index 3a34a4dabd26..c4c044534a0e 100644 --- a/common/djangoapps/third_party_auth/tests/test_saml.py +++ b/common/djangoapps/third_party_auth/tests/test_saml.py @@ -35,7 +35,7 @@ def test_get_saml_idp_class_with_fake_identifier(self, log_mock): def test_get_user_details(self): """ test get_attr and get_user_details of EdXSAMLIdentityProvider""" - edx_saml_identity_provider = EdXSAMLIdentityProvider('demo', **mock_conf) + edx_saml_identity_provider = EdXSAMLIdentityProvider(mock.Mock(), 'demo', **mock_conf) assert edx_saml_identity_provider.get_user_details(mock_attributes) == expected_user_details diff --git a/lms/envs/common.py b/lms/envs/common.py index c6e2f6e76058..1ebb7306e287 100644 --- a/lms/envs/common.py +++ b/lms/envs/common.py @@ -3706,7 +3706,7 @@ def _should_send_certificate_events(settings): RECAPTCHA_PROJECT_ID = None # .. setting_name: OPEN_EDX_FILTERS_CONFIG -# .. setting_default: {} +# .. setting_default: {"org.openedx.learning.account.settings.read_only_fields.requested.v1": {"fail_silently": true, "pipeline": ["enterprise.filters.accounts.AccountSettingsReadOnlyFieldsStep"]}} # .. setting_description: Configuration dict for openedx-filters pipeline steps. # Keys are filter type strings; values are dicts with 'fail_silently' (bool) and # 'pipeline' (list of dotted-path strings to PipelineStep subclasses). diff --git a/mypy.ini b/mypy.ini index 982e500b3a93..77c3f5319b71 100644 --- a/mypy.ini +++ b/mypy.ini @@ -70,3 +70,5 @@ ignore_missing_imports = True ignore_missing_imports = True [mypy-xblock.*] ignore_missing_imports = True +[mypy-requests.*] +ignore_missing_imports = True diff --git a/openedx/core/djangoapps/user_api/accounts/tests/test_api.py b/openedx/core/djangoapps/user_api/accounts/tests/test_api.py index 1c797de95ffa..90338e07f37b 100644 --- a/openedx/core/djangoapps/user_api/accounts/tests/test_api.py +++ b/openedx/core/djangoapps/user_api/accounts/tests/test_api.py @@ -17,6 +17,7 @@ from django.test.client import RequestFactory from django.urls import reverse from pytz import UTC +from social_django.models import UserSocialAuth from common.djangoapps.student.models import ( AccountRecovery, diff --git a/xmodule/capa/tests/test_xqueue_submission.py b/xmodule/capa/tests/test_xqueue_submission.py index 704c6249d447..72f037677103 100644 --- a/xmodule/capa/tests/test_xqueue_submission.py +++ b/xmodule/capa/tests/test_xqueue_submission.py @@ -30,7 +30,8 @@ def test_get_submission_params(xqueue_service): """ header = json.dumps({ 'lms_callback_url': 'http://example.com/callback', - 'queue_name': 'default' + 'queue_name': 'default', + 'lms_key': 'test_queue_key' }) payload = json.dumps({ 'student_info': json.dumps({'anonymous_student_id': 'student_id'}), @@ -38,7 +39,7 @@ def test_get_submission_params(xqueue_service): 'grader_payload': json.dumps({'grader': 'test.py'}) }) - student_item, student_answer, queue_name, grader_file_name, points_possible = ( + student_item, student_answer, queue_name, queue_key, grader_file_name, points_possible = ( xqueue_service.get_submission_params(header, payload) ) @@ -50,6 +51,7 @@ def test_get_submission_params(xqueue_service): } assert student_answer == 'student_answer' assert queue_name == 'default' + assert queue_key == 'test_queue_key' assert grader_file_name == 'test.py' assert points_possible == 10 @@ -65,6 +67,7 @@ def test_send_to_submission(mock_create_external_grader_detail, xqueue_service): 'http://example.com/courses/course-v1:test_org+test_course+test_run/xqueue/5/' 'block-v1:test_org+test_course+test_run+type@problem+block@ExampleProblem/' ), + 'lms_key': 'test_queue_key' }) body = json.dumps({ 'student_info': json.dumps({'anonymous_student_id': 'student_id'}), @@ -87,6 +90,7 @@ def test_send_to_submission(mock_create_external_grader_detail, xqueue_service): }, 'student_answer', queue_name='default', + queue_key='test_queue_key', grader_file_name='test.py', points_possible=10, files=None diff --git a/xmodule/capa/xqueue_submission.py b/xmodule/capa/xqueue_submission.py index 3d7f061ffc5d..45648da3a4fd 100644 --- a/xmodule/capa/xqueue_submission.py +++ b/xmodule/capa/xqueue_submission.py @@ -50,6 +50,7 @@ def get_submission_params(self, header, payload): payload = self._parse_json(payload, "payload") queue_name = header.get('queue_name', 'default') + queue_key = header.get('lms_key', '') if not self.block: raise GetSubmissionParamsError() @@ -83,7 +84,7 @@ def get_submission_params(self, header, payload): 'student_id': student_id } - return student_dict, student_answer, queue_name, grader_file_name, points_possible + return student_dict, student_answer, queue_name, queue_key, grader_file_name, points_possible def send_to_submission(self, header, body, files_to_upload=None): """ @@ -91,13 +92,14 @@ def send_to_submission(self, header, body, files_to_upload=None): """ try: from submissions.api import create_external_grader_detail - student_item, answer, queue_name, grader_file_name, points_possible = ( + student_item, answer, queue_name, queue_key, grader_file_name, points_possible = ( self.get_submission_params(header, body) ) return create_external_grader_detail( student_item, answer, queue_name=queue_name, + queue_key=queue_key, grader_file_name=grader_file_name, points_possible=points_possible, files=files_to_upload