From c135fddd5555d0b43b5cd5b5f9b48d9a24ecf16f Mon Sep 17 00:00:00 2001 From: Eemaan Amir <57627710+eemaanamir@users.noreply.github.com> Date: Fri, 2 Aug 2024 12:22:34 +0500 Subject: [PATCH 01/13] fix: removed extra space and colon from ORA notification content (#35206) --- openedx/core/djangoapps/notifications/base_notification.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openedx/core/djangoapps/notifications/base_notification.py b/openedx/core/djangoapps/notifications/base_notification.py index 0287d8f73c19..302d77328765 100644 --- a/openedx/core/djangoapps/notifications/base_notification.py +++ b/openedx/core/djangoapps/notifications/base_notification.py @@ -197,7 +197,7 @@ 'push': False, 'email_cadence': EmailCadence.DAILY, 'non_editable': [], - 'content_template': _('<{p}>You have a new open response submission awaiting for review for : ' + 'content_template': _('<{p}>You have a new open response submission awaiting for review for ' '<{strong}>{ora_name}'), 'content_context': { 'ora_name': 'Name of ORA in course', From 5aa69589c4c931ed601f91145c4c704cb6b0618d Mon Sep 17 00:00:00 2001 From: Muhammad Adeel Tajamul <77053848+muhammadadeeltajamul@users.noreply.github.com> Date: Mon, 5 Aug 2024 06:08:19 +0500 Subject: [PATCH 02/13] feat: added truncate and alert in notification (#35214) --- .../templates/notifications/digest_content.html | 2 +- .../email_digest_preference_update.html | 13 +++++++++++++ openedx/core/djangoapps/notifications/views.py | 8 +++++--- 3 files changed, 19 insertions(+), 4 deletions(-) create mode 100644 openedx/core/djangoapps/notifications/templates/notifications/email_digest_preference_update.html diff --git a/openedx/core/djangoapps/notifications/templates/notifications/digest_content.html b/openedx/core/djangoapps/notifications/templates/notifications/digest_content.html index 1da86f48f0b1..13ac89d4ec29 100644 --- a/openedx/core/djangoapps/notifications/templates/notifications/digest_content.html +++ b/openedx/core/djangoapps/notifications/templates/notifications/digest_content.html @@ -33,7 +33,7 @@

- {{ notification.content | safe }} + {{ notification.content | truncatechars_html:600 | safe }}

diff --git a/openedx/core/djangoapps/notifications/templates/notifications/email_digest_preference_update.html b/openedx/core/djangoapps/notifications/templates/notifications/email_digest_preference_update.html new file mode 100644 index 000000000000..79e88012f313 --- /dev/null +++ b/openedx/core/djangoapps/notifications/templates/notifications/email_digest_preference_update.html @@ -0,0 +1,13 @@ + + + + + {{ _("Email Digest Preferences Updated") }} + + + + + diff --git a/openedx/core/djangoapps/notifications/views.py b/openedx/core/djangoapps/notifications/views.py index 858f5da9f5fc..ee5e282d905e 100644 --- a/openedx/core/djangoapps/notifications/views.py +++ b/openedx/core/djangoapps/notifications/views.py @@ -5,8 +5,7 @@ from django.conf import settings from django.db.models import Count -from django.http import HttpResponse -from django.shortcuts import get_object_or_404 +from django.shortcuts import get_object_or_404, render from django.utils.translation import gettext as _ from opaque_keys.edx.keys import CourseKey from pytz import UTC @@ -442,4 +441,7 @@ def preference_update_from_encrypted_username_view(request, username, patch): username and patch must be string """ update_user_preferences_from_patch(username, patch) - return HttpResponse("Success", status=status.HTTP_200_OK) + context = { + "notification_preferences_url": f"{settings.ACCOUNT_MICROFRONTEND_URL}/notifications" + } + return render(request, "notifications/email_digest_preference_update.html", context=context) From 28ce713e9fb4cb40b9981a7590a5b7bb4c1a2314 Mon Sep 17 00:00:00 2001 From: Muhammad Anas <88967643+Anas12091101@users.noreply.github.com> Date: Mon, 5 Aug 2024 16:23:50 +0500 Subject: [PATCH 03/13] feat: added custom setting attribute for gradebook freeze timedelta (#35189) * feat: added custom setting attribute for gradebook freeze timedelta --- lms/djangoapps/grades/grade_utils.py | 3 ++- lms/envs/common.py | 5 +++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/lms/djangoapps/grades/grade_utils.py b/lms/djangoapps/grades/grade_utils.py index 0344cf6c20d1..05d2058f37ba 100644 --- a/lms/djangoapps/grades/grade_utils.py +++ b/lms/djangoapps/grades/grade_utils.py @@ -7,6 +7,7 @@ from datetime import timedelta from django.utils import timezone +from django.conf import settings from openedx.core.djangoapps.content.course_overviews.models import CourseOverview @@ -22,7 +23,7 @@ def are_grades_frozen(course_key): if ENFORCE_FREEZE_GRADE_AFTER_COURSE_END.is_enabled(course_key): course = CourseOverview.get_from_id(course_key) if course.end: - freeze_grade_date = course.end + timedelta(30) + freeze_grade_date = course.end + timedelta(settings.GRADEBOOK_FREEZE_DAYS) now = timezone.now() return now > freeze_grade_date return False diff --git a/lms/envs/common.py b/lms/envs/common.py index 9f9004976e0c..d0d2eeae765c 100644 --- a/lms/envs/common.py +++ b/lms/envs/common.py @@ -1101,6 +1101,11 @@ # If this is true, random scores will be generated for the purpose of debugging the profile graphs GENERATE_PROFILE_SCORES = False +# .. setting_name: GRADEBOOK_FREEZE_DAYS +# .. setting_default: 30 +# .. setting_description: Sets the number of days after which the gradebook will freeze following the course's end. +GRADEBOOK_FREEZE_DAYS = 30 + # Used with XQueue XQUEUE_WAITTIME_BETWEEN_REQUESTS = 5 # seconds XQUEUE_INTERFACE = { From 500516832ba60b6d98ff8cf8b6848e62d80bbc99 Mon Sep 17 00:00:00 2001 From: Eemaan Amir <57627710+eemaanamir@users.noreply.github.com> Date: Mon, 5 Aug 2024 18:35:20 +0500 Subject: [PATCH 04/13] chore: update ora2 version in requirements (#35222) --- requirements/edx/base.txt | 2 +- requirements/edx/development.txt | 2 +- requirements/edx/doc.txt | 2 +- requirements/edx/testing.txt | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/requirements/edx/base.txt b/requirements/edx/base.txt index b08d4ad2f59d..45d33a16ce26 100644 --- a/requirements/edx/base.txt +++ b/requirements/edx/base.txt @@ -773,7 +773,7 @@ optimizely-sdk==4.1.1 # via # -c requirements/edx/../constraints.txt # -r requirements/edx/bundled.in -ora2==6.11.1 +ora2==6.11.2 # via -r requirements/edx/bundled.in packaging==24.1 # via diff --git a/requirements/edx/development.txt b/requirements/edx/development.txt index f3fb5d9b630d..656895c6aba8 100644 --- a/requirements/edx/development.txt +++ b/requirements/edx/development.txt @@ -1317,7 +1317,7 @@ optimizely-sdk==4.1.1 # -c requirements/edx/../constraints.txt # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt -ora2==6.11.1 +ora2==6.11.2 # via # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt diff --git a/requirements/edx/doc.txt b/requirements/edx/doc.txt index 9dc1fbbde2f6..0e6235d3bfc9 100644 --- a/requirements/edx/doc.txt +++ b/requirements/edx/doc.txt @@ -901,7 +901,7 @@ optimizely-sdk==4.1.1 # via # -c requirements/edx/../constraints.txt # -r requirements/edx/base.txt -ora2==6.11.1 +ora2==6.11.2 # via -r requirements/edx/base.txt packaging==24.1 # via diff --git a/requirements/edx/testing.txt b/requirements/edx/testing.txt index 7a83f38f2c13..0c7b2d33b8c0 100644 --- a/requirements/edx/testing.txt +++ b/requirements/edx/testing.txt @@ -980,7 +980,7 @@ optimizely-sdk==4.1.1 # via # -c requirements/edx/../constraints.txt # -r requirements/edx/base.txt -ora2==6.11.1 +ora2==6.11.2 # via -r requirements/edx/base.txt packaging==24.1 # via From 05bf82c6552defcc0904e35a1f1894e9a7597166 Mon Sep 17 00:00:00 2001 From: Prashant Makwana Date: Mon, 5 Aug 2024 16:50:43 +0000 Subject: [PATCH 05/13] chore: bumping enteprise version to 4.22.4 --- requirements/constraints.txt | 2 +- requirements/edx/base.txt | 2 +- requirements/edx/development.txt | 2 +- requirements/edx/doc.txt | 2 +- requirements/edx/testing.txt | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/requirements/constraints.txt b/requirements/constraints.txt index 1e2953c7d760..89f265931dc4 100644 --- a/requirements/constraints.txt +++ b/requirements/constraints.txt @@ -20,7 +20,7 @@ celery>=5.2.2,<6.0.0 # The team that owns this package will manually bump this package rather than having it pulled in automatically. # This is to allow them to better control its deployment and to do it in a process that works better # for them. -edx-enterprise==4.22.2 +edx-enterprise==4.22.4 # Stay on LTS version, remove once this is added to common constraint Django<5.0 diff --git a/requirements/edx/base.txt b/requirements/edx/base.txt index 45d33a16ce26..5ce0de2aaf76 100644 --- a/requirements/edx/base.txt +++ b/requirements/edx/base.txt @@ -456,7 +456,7 @@ edx-drf-extensions==10.3.0 # edx-when # edxval # openedx-learning -edx-enterprise==4.22.2 +edx-enterprise==4.22.4 # via # -c requirements/edx/../constraints.txt # -r requirements/edx/kernel.in diff --git a/requirements/edx/development.txt b/requirements/edx/development.txt index 656895c6aba8..cfadac2df694 100644 --- a/requirements/edx/development.txt +++ b/requirements/edx/development.txt @@ -727,7 +727,7 @@ edx-drf-extensions==10.3.0 # edx-when # edxval # openedx-learning -edx-enterprise==4.22.2 +edx-enterprise==4.22.4 # via # -c requirements/edx/../constraints.txt # -r requirements/edx/doc.txt diff --git a/requirements/edx/doc.txt b/requirements/edx/doc.txt index 0e6235d3bfc9..120986d6f386 100644 --- a/requirements/edx/doc.txt +++ b/requirements/edx/doc.txt @@ -528,7 +528,7 @@ edx-drf-extensions==10.3.0 # edx-when # edxval # openedx-learning -edx-enterprise==4.22.2 +edx-enterprise==4.22.4 # via # -c requirements/edx/../constraints.txt # -r requirements/edx/base.txt diff --git a/requirements/edx/testing.txt b/requirements/edx/testing.txt index 0c7b2d33b8c0..3f948fa7351c 100644 --- a/requirements/edx/testing.txt +++ b/requirements/edx/testing.txt @@ -559,7 +559,7 @@ edx-drf-extensions==10.3.0 # edx-when # edxval # openedx-learning -edx-enterprise==4.22.2 +edx-enterprise==4.22.4 # via # -c requirements/edx/../constraints.txt # -r requirements/edx/base.txt From 8aac664e6758e63122a1537d1d31f2f6fada167b Mon Sep 17 00:00:00 2001 From: Braden MacDonald Date: Mon, 5 Aug 2024 12:00:14 -0700 Subject: [PATCH 06/13] fix: error when saving changes to a v2 library block (#35217) --- openedx/core/djangoapps/xblock/rest_api/views.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openedx/core/djangoapps/xblock/rest_api/views.py b/openedx/core/djangoapps/xblock/rest_api/views.py index 501386efba38..8c2d16839a67 100644 --- a/openedx/core/djangoapps/xblock/rest_api/views.py +++ b/openedx/core/djangoapps/xblock/rest_api/views.py @@ -257,7 +257,7 @@ def post(self, request, usage_key_str): # Signal that we've modified this block context_impl = get_learning_context_impl(usage_key) - context_impl.send_updated_event(usage_key) + context_impl.send_block_updated_event(usage_key) return Response({ "id": str(block.location), From 48c5856a3f3bfbd25265b40761fa887b931bf53d Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 6 Aug 2024 07:39:42 +0000 Subject: [PATCH 07/13] fix(deps): update dependency requirejs to v2.3.7 [security] --- package-lock.json | 9 +++++---- package.json | 2 +- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index 04728ccaab91..02dde6f701bc 100644 --- a/package-lock.json +++ b/package-lock.json @@ -59,7 +59,7 @@ "react-slick": "0.29.0", "redux": "3.7.2", "redux-thunk": "2.2.0", - "requirejs": "2.3.6", + "requirejs": "2.3.7", "rtlcss": "2.6.2", "sass": "^1.54.8", "sass-loader": "^14.1.1", @@ -20862,9 +20862,10 @@ } }, "node_modules/requirejs": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/requirejs/-/requirejs-2.3.6.tgz", - "integrity": "sha512-ipEzlWQe6RK3jkzikgCupiTbTvm4S0/CAU5GlgptkN5SO6F3u0UD0K18wy6ErDqiCyP4J4YYe1HuAShvsxePLg==", + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/requirejs/-/requirejs-2.3.7.tgz", + "integrity": "sha512-DouTG8T1WanGok6Qjg2SXuCMzszOo0eHeH9hDZ5Y4x8Je+9JB38HdTLT4/VA8OaUhBa0JPVHJ0pyBkM1z+pDsw==", + "license": "MIT", "bin": { "r_js": "bin/r.js", "r.js": "bin/r.js" diff --git a/package.json b/package.json index d182d83d3151..49ab2820d11a 100644 --- a/package.json +++ b/package.json @@ -65,7 +65,7 @@ "react-slick": "0.29.0", "redux": "3.7.2", "redux-thunk": "2.2.0", - "requirejs": "2.3.6", + "requirejs": "2.3.7", "rtlcss": "2.6.2", "sass": "^1.54.8", "sass-loader": "^14.1.1", From 0a067ffa829c4fd89a67b59ece907c43ac46e280 Mon Sep 17 00:00:00 2001 From: Awais Qureshi Date: Tue, 6 Aug 2024 15:25:24 +0500 Subject: [PATCH 08/13] feat: upgrading simple api to drf compatible (4th api ) (#35135) * feat: upgrading simple api to drf compatible. --- lms/djangoapps/instructor/views/api.py | 75 +++++++++++---------- lms/djangoapps/instructor/views/api_urls.py | 2 +- 2 files changed, 41 insertions(+), 36 deletions(-) diff --git a/lms/djangoapps/instructor/views/api.py b/lms/djangoapps/instructor/views/api.py index e7a82496456e..a58762d0f3ad 100644 --- a/lms/djangoapps/instructor/views/api.py +++ b/lms/djangoapps/instructor/views/api.py @@ -2366,46 +2366,51 @@ def _list_instructor_tasks(request, course_id): return JsonResponse(response_payload) -@require_POST -@ensure_csrf_cookie -@cache_control(no_cache=True, no_store=True, must_revalidate=True) -@require_course_permission(permissions.SHOW_TASKS) -def list_entrance_exam_instructor_tasks(request, course_id): +@method_decorator(cache_control(no_cache=True, no_store=True, must_revalidate=True), name='dispatch') +class ListEntranceExamInstructorTasks(APIView): """ List entrance exam related instructor tasks. - - Takes either of the following query parameters - - unique_student_identifier is an email or username - - all_students is a boolean """ - course_id = CourseKey.from_string(course_id) - course = get_course_by_id(course_id) - student = request.POST.get('unique_student_identifier', None) - if student is not None: - student = get_student_from_identifier(student) + permission_classes = (IsAuthenticated, permissions.InstructorPermission) + permission_name = permissions.SHOW_TASKS - try: - entrance_exam_key = UsageKey.from_string(course.entrance_exam_id).map_into_course(course_id) - except InvalidKeyError: - return HttpResponseBadRequest(_("Course has no valid entrance exam section.")) - if student: - # Specifying for a single student's entrance exam history - tasks = task_api.get_entrance_exam_instructor_task_history( - course_id, - entrance_exam_key, - student - ) - else: - # Specifying for all student's entrance exam history - tasks = task_api.get_entrance_exam_instructor_task_history( - course_id, - entrance_exam_key - ) + @method_decorator(ensure_csrf_cookie) + def post(self, request, course_id): + """ + List entrance exam related instructor tasks. - response_payload = { - 'tasks': list(map(extract_task_features, tasks)), - } - return JsonResponse(response_payload) + Takes either of the following query parameters + - unique_student_identifier is an email or username + - all_students is a boolean + """ + course_id = CourseKey.from_string(course_id) + course = get_course_by_id(course_id) + student = request.POST.get('unique_student_identifier', None) + if student is not None: + student = get_student_from_identifier(student) + + try: + entrance_exam_key = UsageKey.from_string(course.entrance_exam_id).map_into_course(course_id) + except InvalidKeyError: + return HttpResponseBadRequest(_("Course has no valid entrance exam section.")) + if student: + # Specifying for a single student's entrance exam history + tasks = task_api.get_entrance_exam_instructor_task_history( + course_id, + entrance_exam_key, + student + ) + else: + # Specifying for all student's entrance exam history + tasks = task_api.get_entrance_exam_instructor_task_history( + course_id, + entrance_exam_key + ) + + response_payload = { + 'tasks': list(map(extract_task_features, tasks)), + } + return JsonResponse(response_payload) class ReportDownloadSerializer(serializers.Serializer): # pylint: disable=abstract-method diff --git a/lms/djangoapps/instructor/views/api_urls.py b/lms/djangoapps/instructor/views/api_urls.py index 6b072ef0c12e..7f94a369ff47 100644 --- a/lms/djangoapps/instructor/views/api_urls.py +++ b/lms/djangoapps/instructor/views/api_urls.py @@ -40,7 +40,7 @@ path('reset_student_attempts_for_entrance_exam', api.reset_student_attempts_for_entrance_exam, name='reset_student_attempts_for_entrance_exam'), path('rescore_entrance_exam', api.rescore_entrance_exam, name='rescore_entrance_exam'), - path('list_entrance_exam_instructor_tasks', api.list_entrance_exam_instructor_tasks, + path('list_entrance_exam_instructor_tasks', api.ListEntranceExamInstructorTasks.as_view(), name='list_entrance_exam_instructor_tasks'), path('mark_student_can_skip_entrance_exam', api.mark_student_can_skip_entrance_exam, name='mark_student_can_skip_entrance_exam'), From 3c64b747e5c6f1bc0c12296c825ce5610425a1d9 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Tue, 6 Aug 2024 10:25:00 -0400 Subject: [PATCH 09/13] feat: Upgrade Python dependency edx-django-utils (#35235) Update to latest version with updates to function trace functionality. Commit generated by workflow `openedx/edx-platform/.github/workflows/upgrade-one-python-dependency.yml@refs/heads/master` Co-authored-by: dianakhuang <2952947+dianakhuang@users.noreply.github.com> --- requirements/edx/base.txt | 2 +- requirements/edx/development.txt | 2 +- requirements/edx/doc.txt | 2 +- requirements/edx/testing.txt | 2 +- scripts/user_retirement/requirements/base.txt | 2 +- scripts/user_retirement/requirements/testing.txt | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/requirements/edx/base.txt b/requirements/edx/base.txt index 5ce0de2aaf76..cb8799b700a4 100644 --- a/requirements/edx/base.txt +++ b/requirements/edx/base.txt @@ -427,7 +427,7 @@ edx-django-release-util==1.4.0 # edxval edx-django-sites-extensions==4.2.0 # via -r requirements/edx/kernel.in -edx-django-utils==5.14.2 +edx-django-utils==5.15.0 # via # -r requirements/edx/kernel.in # django-config-models diff --git a/requirements/edx/development.txt b/requirements/edx/development.txt index cfadac2df694..7683bf6dd26c 100644 --- a/requirements/edx/development.txt +++ b/requirements/edx/development.txt @@ -696,7 +696,7 @@ edx-django-sites-extensions==4.2.0 # via # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt -edx-django-utils==5.14.2 +edx-django-utils==5.15.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 120986d6f386..39c1b8d668f9 100644 --- a/requirements/edx/doc.txt +++ b/requirements/edx/doc.txt @@ -499,7 +499,7 @@ edx-django-release-util==1.4.0 # edxval edx-django-sites-extensions==4.2.0 # via -r requirements/edx/base.txt -edx-django-utils==5.14.2 +edx-django-utils==5.15.0 # via # -r requirements/edx/base.txt # django-config-models diff --git a/requirements/edx/testing.txt b/requirements/edx/testing.txt index 3f948fa7351c..278423303c9e 100644 --- a/requirements/edx/testing.txt +++ b/requirements/edx/testing.txt @@ -530,7 +530,7 @@ edx-django-release-util==1.4.0 # edxval edx-django-sites-extensions==4.2.0 # via -r requirements/edx/base.txt -edx-django-utils==5.14.2 +edx-django-utils==5.15.0 # via # -r requirements/edx/base.txt # django-config-models diff --git a/scripts/user_retirement/requirements/base.txt b/scripts/user_retirement/requirements/base.txt index 30d5df674f2e..98972d24c494 100644 --- a/scripts/user_retirement/requirements/base.txt +++ b/scripts/user_retirement/requirements/base.txt @@ -46,7 +46,7 @@ django-crum==0.7.9 # via edx-django-utils django-waffle==4.1.0 # via edx-django-utils -edx-django-utils==5.14.2 +edx-django-utils==5.15.0 # via edx-rest-api-client edx-rest-api-client==5.7.1 # via -r scripts/user_retirement/requirements/base.in diff --git a/scripts/user_retirement/requirements/testing.txt b/scripts/user_retirement/requirements/testing.txt index c10b36f0de60..c0c8d5abba9e 100644 --- a/scripts/user_retirement/requirements/testing.txt +++ b/scripts/user_retirement/requirements/testing.txt @@ -66,7 +66,7 @@ django-waffle==4.1.0 # via # -r scripts/user_retirement/requirements/base.txt # edx-django-utils -edx-django-utils==5.14.2 +edx-django-utils==5.15.0 # via # -r scripts/user_retirement/requirements/base.txt # edx-rest-api-client From 94f4c488a601bb435b2479fde872468b7a2e515d Mon Sep 17 00:00:00 2001 From: Diana Huang Date: Tue, 6 Aug 2024 14:09:25 -0400 Subject: [PATCH 10/13] build: Pin social-auth-app-django as a requirement. (#35237) There are a few migrations going into this library which cause operational headaches for operators. We would like to pin until the migrations settle down and then we can unpin this again. --- requirements/constraints.txt | 6 ++++++ requirements/edx/base.txt | 1 + requirements/edx/development.txt | 1 + requirements/edx/doc.txt | 1 + requirements/edx/testing.txt | 1 + 5 files changed, 10 insertions(+) diff --git a/requirements/constraints.txt b/requirements/constraints.txt index 89f265931dc4..0bdb5ad2285c 100644 --- a/requirements/constraints.txt +++ b/requirements/constraints.txt @@ -130,3 +130,9 @@ numpy<2.0.0 # Two lines were added in 1.14.4 that make file_exists_in_storage function always return False, # as the default value of AWS_S3_FILE_OVERWRITE is True django-storages<1.14.4 + +# social-auth-app-django 5.4.2 introduces a new migration that will not play nicely with large installations. This will touch +# user tables, which are quite large, especially on instances like edx.org. +# We are pinning this until after all the smaller migrations get handled and then we can migrate this all at once. +# Ticket to unpin: https://github.com/edx/edx-arch-experiments/issues/760 +social-auth-app-django<=5.4.1 diff --git a/requirements/edx/base.txt b/requirements/edx/base.txt index cb8799b700a4..fcfe7548a013 100644 --- a/requirements/edx/base.txt +++ b/requirements/edx/base.txt @@ -1065,6 +1065,7 @@ snowflake-connector-python==3.11.0 # via edx-enterprise social-auth-app-django==5.4.1 # via + # -c requirements/edx/../constraints.txt # -r requirements/edx/kernel.in # edx-auth-backends social-auth-core==4.5.4 diff --git a/requirements/edx/development.txt b/requirements/edx/development.txt index 7683bf6dd26c..d6487d2ffa98 100644 --- a/requirements/edx/development.txt +++ b/requirements/edx/development.txt @@ -1884,6 +1884,7 @@ snowflake-connector-python==3.11.0 # edx-enterprise social-auth-app-django==5.4.1 # via + # -c requirements/edx/../constraints.txt # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt # edx-auth-backends diff --git a/requirements/edx/doc.txt b/requirements/edx/doc.txt index 39c1b8d668f9..c90be697606c 100644 --- a/requirements/edx/doc.txt +++ b/requirements/edx/doc.txt @@ -1255,6 +1255,7 @@ snowflake-connector-python==3.11.0 # edx-enterprise social-auth-app-django==5.4.1 # via + # -c requirements/edx/../constraints.txt # -r requirements/edx/base.txt # edx-auth-backends social-auth-core==4.5.4 diff --git a/requirements/edx/testing.txt b/requirements/edx/testing.txt index 278423303c9e..a679ac373e18 100644 --- a/requirements/edx/testing.txt +++ b/requirements/edx/testing.txt @@ -1416,6 +1416,7 @@ snowflake-connector-python==3.11.0 # edx-enterprise social-auth-app-django==5.4.1 # via + # -c requirements/edx/../constraints.txt # -r requirements/edx/base.txt # edx-auth-backends social-auth-core==4.5.4 From 834dc3107388ac08248fe2aac6d3884153187c84 Mon Sep 17 00:00:00 2001 From: edX requirements bot <49161187+edx-requirements-bot@users.noreply.github.com> Date: Tue, 6 Aug 2024 15:18:33 -0400 Subject: [PATCH 11/13] chore: Upgrade Python requirements (#35241) --- requirements/edx-sandbox/base.txt | 12 +- requirements/edx/base.txt | 134 ++++++-- requirements/edx/coverage.txt | 4 +- requirements/edx/development.txt | 310 +++++++++++------- requirements/edx/doc.txt | 186 +++++++++-- requirements/edx/semgrep.txt | 6 +- requirements/edx/testing.txt | 250 ++++++++------ requirements/pip-tools.txt | 2 +- requirements/pip.txt | 6 +- .../requirements/testing.txt | 2 +- scripts/user_retirement/requirements/base.txt | 18 +- .../user_retirement/requirements/testing.txt | 20 +- 12 files changed, 640 insertions(+), 310 deletions(-) diff --git a/requirements/edx-sandbox/base.txt b/requirements/edx-sandbox/base.txt index 241deba480cf..8942bc7dd9cb 100644 --- a/requirements/edx-sandbox/base.txt +++ b/requirements/edx-sandbox/base.txt @@ -4,7 +4,7 @@ # # make upgrade # -cffi==1.16.0 +cffi==1.17.0 # via cryptography chem==1.3.0 # via -r requirements/edx-sandbox/base.in @@ -16,7 +16,7 @@ codejail-includes==1.0.0 # via -r requirements/edx-sandbox/base.in contourpy==1.2.1 # via matplotlib -cryptography==42.0.8 +cryptography==43.0.0 # via -r requirements/edx-sandbox/base.in cycler==0.12.1 # via matplotlib @@ -35,7 +35,7 @@ markupsafe==2.1.5 # via # chem # openedx-calc -matplotlib==3.9.1 +matplotlib==3.9.0 # via -r requirements/edx-sandbox/base.in mpmath==1.3.0 # via sympy @@ -71,7 +71,7 @@ python-dateutil==2.9.0.post0 # via matplotlib random2==1.0.2 # via -r requirements/edx-sandbox/base.in -regex==2024.5.15 +regex==2024.7.24 # via nltk scipy==1.14.0 # via @@ -82,9 +82,9 @@ six==1.16.0 # via # codejail-includes # python-dateutil -sympy==1.13.0 +sympy==1.13.1 # via # -r requirements/edx-sandbox/base.in # openedx-calc -tqdm==4.66.4 +tqdm==4.66.5 # via nltk diff --git a/requirements/edx/base.txt b/requirements/edx/base.txt index fcfe7548a013..c0c4c5b32cc6 100644 --- a/requirements/edx/base.txt +++ b/requirements/edx/base.txt @@ -8,7 +8,9 @@ # via -r requirements/edx/github.in acid-xblock==0.3.1 # via -r requirements/edx/kernel.in -aiohttp==3.9.5 +aiohappyeyeballs==2.3.4 + # via aiohttp +aiohttp==3.10.1 # via # geoip2 # openai @@ -33,7 +35,7 @@ asgiref==3.8.1 # django-countries asn1crypto==1.5.1 # via snowflake-connector-python -attrs==23.2.0 +attrs==24.2.0 # via # -r requirements/edx/kernel.in # aiohttp @@ -50,7 +52,7 @@ babel==2.15.0 # enmerkar-underscore backoff==1.10.0 # via analytics-python -bcrypt==4.1.3 +bcrypt==4.2.0 # via paramiko beautifulsoup4==4.12.3 # via pynliner @@ -66,19 +68,23 @@ bleach[css]==6.1.0 # xblock-poll boto==2.49.0 # via -r requirements/edx/kernel.in -boto3==1.34.144 +boto3==1.34.154 # via # -r requirements/edx/kernel.in # django-ses # fs-s3fs # ora2 -botocore==1.34.144 +botocore==1.34.154 # via # -r requirements/edx/kernel.in # boto3 # s3transfer bridgekeeper==0.9 # via -r requirements/edx/kernel.in +cachecontrol==0.14.0 + # via firebase-admin +cachetools==5.4.0 + # via google-auth camel-converter[pydantic]==3.1.2 # via meilisearch celery==5.4.0 @@ -98,7 +104,7 @@ certifi==2024.7.4 # py2neo # requests # snowflake-connector-python -cffi==1.16.0 +cffi==1.17.0 # via # cryptography # pynacl @@ -160,7 +166,7 @@ defusedxml==0.7.1 # ora2 # python3-openid # social-auth-core -django==4.2.14 +django==4.2.15 # via # -c requirements/edx/../common_constraints.txt # -c requirements/edx/../constraints.txt @@ -179,6 +185,7 @@ django==4.2.14 # django-multi-email-field # django-mysql # django-oauth-toolkit + # django-push-notifications # django-sekizai # django-ses # django-statici18n @@ -262,7 +269,7 @@ django-crum==0.7.9 # super-csv django-fernet-fields-v2==0.9 # via edx-enterprise -django-filter==24.2 +django-filter==24.3 # via # -r requirements/edx/kernel.in # edx-enterprise @@ -311,6 +318,8 @@ django-object-actions==4.2.0 # via edx-enterprise django-pipeline==3.1.0 # via -r requirements/edx/kernel.in +django-push-notifications==3.1.0 + # via edx-ace django-ratelimit==4.1.0 # via -r requirements/edx/kernel.in django-sekizai==4.1.0 @@ -390,7 +399,7 @@ drf-yasg==1.21.7 # via # django-user-tasks # edx-api-doc-tools -edx-ace==1.9.1 +edx-ace==1.11.0 # via -r requirements/edx/kernel.in edx-api-doc-tools==1.8.0 # via @@ -418,7 +427,7 @@ edx-celeryutils==1.3.0 # super-csv edx-codejail==3.4.1 # via -r requirements/edx/kernel.in -edx-completion==4.6.6 +edx-completion==4.6.7 # via -r requirements/edx/kernel.in edx-django-release-util==1.4.0 # via @@ -460,7 +469,7 @@ edx-enterprise==4.22.4 # via # -c requirements/edx/../constraints.txt # -r requirements/edx/kernel.in -edx-event-bus-kafka==5.7.0 +edx-event-bus-kafka==5.8.1 # via -r requirements/edx/kernel.in edx-event-bus-redis==0.5.0 # via -r requirements/edx/kernel.in @@ -502,11 +511,11 @@ edx-rest-api-client==5.7.1 # -r requirements/edx/kernel.in # edx-enterprise # edx-proctoring -edx-search==3.9.1 +edx-search==4.0.0 # via -r requirements/edx/kernel.in edx-sga==0.25.0 # via -r requirements/edx/bundled.in -edx-submissions==3.7.5 +edx-submissions==3.7.6 # via # -r requirements/edx/kernel.in # ora2 @@ -551,6 +560,8 @@ fastavro==1.9.5 # via openedx-events filelock==3.15.4 # via snowflake-connector-python +firebase-admin==6.5.0 + # via edx-ace frozenlist==1.4.1 # via # aiohttp @@ -571,6 +582,49 @@ geoip2==4.8.0 # via -r requirements/edx/kernel.in glob2==0.7 # via -r requirements/edx/kernel.in +google-api-core[grpc]==2.19.1 + # via + # firebase-admin + # google-api-python-client + # google-cloud-core + # google-cloud-firestore + # google-cloud-storage +google-api-python-client==2.139.0 + # via firebase-admin +google-auth==2.32.0 + # via + # google-api-core + # google-api-python-client + # google-auth-httplib2 + # google-cloud-core + # google-cloud-firestore + # google-cloud-storage +google-auth-httplib2==0.2.0 + # via google-api-python-client +google-cloud-core==2.4.1 + # via + # google-cloud-firestore + # google-cloud-storage +google-cloud-firestore==2.17.0 + # via firebase-admin +google-cloud-storage==2.18.0 + # via firebase-admin +google-crc32c==1.5.0 + # via + # google-cloud-storage + # google-resumable-media +google-resumable-media==2.7.1 + # via google-cloud-storage +googleapis-common-protos==1.63.2 + # via + # google-api-core + # grpcio-status +grpcio==1.65.4 + # via + # google-api-core + # grpcio-status +grpcio-status==1.62.3 + # via google-api-core gunicorn==22.0.0 # via -r requirements/edx/kernel.in help-tokens==2.4.0 @@ -579,6 +633,10 @@ html5lib==1.1 # via # -r requirements/edx/kernel.in # ora2 +httplib2==0.22.0 + # via + # google-api-python-client + # google-auth-httplib2 icalendar==5.0.13 # via -r requirements/edx/kernel.in idna==3.7 @@ -610,7 +668,7 @@ jmespath==1.0.1 # botocore joblib==1.4.2 # via nltk -jsondiff==2.1.2 +jsondiff==2.2.0 # via edx-enterprise jsonfield==3.1.0 # via @@ -631,7 +689,7 @@ jwcrypto==1.5.6 # via # django-oauth-toolkit # pylti1p3 -kombu==5.3.7 +kombu==5.4.0 # via celery laboratory==1.0.2 # via -r requirements/edx/kernel.in @@ -703,6 +761,8 @@ more-itertools==10.3.0 # via cssutils mpmath==1.3.0 # via sympy +msgpack==1.0.8 + # via cachecontrol multidict==6.0.5 # via # aiohttp @@ -819,6 +879,17 @@ polib==1.2.0 # via edx-i18n-tools prompt-toolkit==3.0.47 # via click-repl +proto-plus==1.24.0 + # via + # google-api-core + # google-cloud-firestore +protobuf==4.25.4 + # via + # google-api-core + # google-cloud-firestore + # googleapis-common-protos + # grpcio-status + # proto-plus psutil==6.0.0 # via # -r requirements/edx/paver.txt @@ -828,7 +899,12 @@ py2neo @ https://github.com/overhangio/py2neo/releases/download/2021.2.3/py2neo- # -c requirements/edx/../constraints.txt # -r requirements/edx/bundled.in pyasn1==0.6.0 - # via pgpy + # via + # pgpy + # pyasn1-modules + # rsa +pyasn1-modules==0.4.0 + # via google-auth pycountry==24.6.1 # via -r requirements/edx/kernel.in pycparser==2.22 @@ -852,7 +928,7 @@ pyjwkest==1.4.2 # -r requirements/edx/kernel.in # edx-token-utils # lti-consumer-xblock -pyjwt[crypto]==2.8.0 +pyjwt[crypto]==2.9.0 # via # -r requirements/edx/kernel.in # drf-jwt @@ -860,6 +936,7 @@ pyjwt[crypto]==2.8.0 # edx-drf-extensions # edx-proctoring # edx-rest-api-client + # firebase-admin # pylti1p3 # snowflake-connector-python # social-auth-core @@ -884,13 +961,14 @@ pynacl==1.5.0 # paramiko pynliner==0.8.0 # via -r requirements/edx/kernel.in -pyopenssl==24.1.0 +pyopenssl==24.2.1 # via # optimizely-sdk # snowflake-connector-python pyparsing==3.1.2 # via # chem + # httplib2 # openedx-calc pyrsistent==0.20.0 # via optimizely-sdk @@ -960,7 +1038,7 @@ random2==1.0.2 # via -r requirements/edx/kernel.in recommender-xblock==2.2.0 # via -r requirements/edx/bundled.in -redis==5.0.7 +redis==5.0.8 # via # -r requirements/edx/kernel.in # walrus @@ -968,19 +1046,22 @@ referencing==0.35.1 # via # jsonschema # jsonschema-specifications -regex==2024.5.15 +regex==2024.7.24 # via nltk requests==2.32.3 # via # -r requirements/edx/paver.txt # algoliasearch # analytics-python + # cachecontrol # django-oauth-toolkit # edx-bulk-grades # edx-drf-extensions # edx-enterprise # edx-rest-api-client # geoip2 + # google-api-core + # google-cloud-storage # mailsnake # meilisearch # openai @@ -998,10 +1079,12 @@ requests-oauthlib==2.0.0 # via # -r requirements/edx/kernel.in # social-auth-core -rpds-py==0.19.0 +rpds-py==0.20.0 # via # jsonschema # referencing +rsa==4.9 + # via google-auth rules==3.4 # via # -r requirements/edx/kernel.in @@ -1061,7 +1144,7 @@ slumber==0.7.1 # edx-bulk-grades # edx-enterprise # edx-rest-api-client -snowflake-connector-python==3.11.0 +snowflake-connector-python==3.12.0 # via edx-enterprise social-auth-app-django==5.4.1 # via @@ -1098,7 +1181,7 @@ stevedore==5.2.0 # edx-opaque-keys super-csv==3.2.0 # via edx-bulk-grades -sympy==1.13.0 +sympy==1.13.1 # via openedx-calc testfixtures==8.3.0 # via edx-enterprise @@ -1108,7 +1191,7 @@ tinycss2==1.2.1 # via bleach tomlkit==0.13.0 # via snowflake-connector-python -tqdm==4.66.4 +tqdm==4.66.5 # via # nltk # openai @@ -1132,6 +1215,7 @@ uritemplate==4.1.1 # via # drf-spectacular # drf-yasg + # google-api-python-client urllib3==1.26.19 # via # -c requirements/edx/../constraints.txt @@ -1174,7 +1258,7 @@ webob==1.8.7 # xblock wrapt==1.16.0 # via -r requirements/edx/paver.txt -xblock[django]==4.0.1 +xblock[django]==5.0.0 # via # -r requirements/edx/kernel.in # acid-xblock diff --git a/requirements/edx/coverage.txt b/requirements/edx/coverage.txt index 8c3b834163d2..a004eeeb9ffa 100644 --- a/requirements/edx/coverage.txt +++ b/requirements/edx/coverage.txt @@ -6,9 +6,9 @@ # chardet==5.2.0 # via diff-cover -coverage==7.6.0 +coverage==7.6.1 # via -r requirements/edx/coverage.in -diff-cover==9.1.0 +diff-cover==9.1.1 # via -r requirements/edx/coverage.in jinja2==3.1.4 # via diff-cover diff --git a/requirements/edx/development.txt b/requirements/edx/development.txt index d6487d2ffa98..cf8b8da20fda 100644 --- a/requirements/edx/development.txt +++ b/requirements/edx/development.txt @@ -16,7 +16,12 @@ acid-xblock==0.3.1 # via # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt -aiohttp==3.9.5 +aiohappyeyeballs==2.3.4 + # via + # -r requirements/edx/doc.txt + # -r requirements/edx/testing.txt + # aiohttp +aiohttp==3.10.1 # via # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt @@ -27,7 +32,7 @@ aiosignal==1.3.1 # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt # aiohttp -alabaster==0.7.16 +alabaster==1.0.0 # via # -r requirements/edx/doc.txt # sphinx @@ -57,9 +62,7 @@ annotated-types==0.7.0 anyio==4.4.0 # via # -r requirements/edx/testing.txt - # httpcore # starlette - # watchfiles appdirs==1.4.4 # via # -r requirements/edx/doc.txt @@ -82,7 +85,7 @@ astroid==2.13.5 # -r requirements/edx/testing.txt # pylint # pylint-celery -attrs==23.2.0 +attrs==24.2.0 # via # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt @@ -106,7 +109,7 @@ backoff==1.10.0 # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt # analytics-python -bcrypt==4.1.3 +bcrypt==4.2.0 # via # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt @@ -136,14 +139,14 @@ boto==2.49.0 # via # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt -boto3==1.34.144 +boto3==1.34.154 # via # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt # django-ses # fs-s3fs # ora2 -botocore==1.34.144 +botocore==1.34.154 # via # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt @@ -157,9 +160,16 @@ build==1.2.1 # via # -r requirements/edx/../pip-tools.txt # pip-tools +cachecontrol==0.14.0 + # via + # -r requirements/edx/doc.txt + # -r requirements/edx/testing.txt + # firebase-admin cachetools==5.4.0 # via + # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt + # google-auth # tox camel-converter[pydantic]==3.1.2 # via @@ -182,16 +192,15 @@ certifi==2024.7.4 # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt # elasticsearch - # httpcore - # httpx # py2neo # requests # snowflake-connector-python -cffi==1.16.0 +cffi==1.17.0 # via # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt # cryptography + # pact-python # pynacl # snowflake-connector-python chardet==5.2.0 @@ -232,7 +241,6 @@ click==8.1.6 # nltk # pact-python # pip-tools - # typer # user-util # uvicorn click-didyoumean==0.3.1 @@ -269,7 +277,7 @@ colorama==0.4.6 # via # -r requirements/edx/testing.txt # tox -coverage[toml]==7.6.0 +coverage[toml]==7.6.1 # via # -r requirements/edx/testing.txt # pytest-cov @@ -314,7 +322,7 @@ defusedxml==0.7.1 # ora2 # python3-openid # social-auth-core -diff-cover==9.1.0 +diff-cover==9.1.1 # via -r requirements/edx/testing.txt dill==0.3.8 # via @@ -324,7 +332,7 @@ distlib==0.3.8 # via # -r requirements/edx/testing.txt # virtualenv -django==4.2.14 +django==4.2.15 # via # -c requirements/edx/../common_constraints.txt # -c requirements/edx/../constraints.txt @@ -345,6 +353,7 @@ django==4.2.14 # django-multi-email-field # django-mysql # django-oauth-toolkit + # django-push-notifications # django-sekizai # django-ses # django-statici18n @@ -451,7 +460,7 @@ django-fernet-fields-v2==0.9 # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt # edx-enterprise -django-filter==24.2 +django-filter==24.3 # via # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt @@ -520,6 +529,11 @@ django-pipeline==3.1.0 # via # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt +django-push-notifications==3.1.0 + # via + # -r requirements/edx/doc.txt + # -r requirements/edx/testing.txt + # edx-ace django-ratelimit==4.1.0 # via # -r requirements/edx/doc.txt @@ -561,7 +575,7 @@ django-stubs==1.16.0 # -c requirements/edx/../constraints.txt # -r requirements/edx/development.in # djangorestframework-stubs -django-stubs-ext==5.0.2 +django-stubs-ext==5.0.4 # via django-stubs django-user-tasks==3.2.0 # via @@ -616,7 +630,6 @@ dnspython==2.6.1 # via # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt - # email-validator # pymongo docutils==0.21.2 # via @@ -643,7 +656,7 @@ drf-yasg==1.21.7 # -r requirements/edx/testing.txt # django-user-tasks # edx-api-doc-tools -edx-ace==1.9.1 +edx-ace==1.11.0 # via # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt @@ -682,7 +695,7 @@ edx-codejail==3.4.1 # via # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt -edx-completion==4.6.6 +edx-completion==4.6.7 # via # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt @@ -732,7 +745,7 @@ edx-enterprise==4.22.4 # -c requirements/edx/../constraints.txt # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt -edx-event-bus-kafka==5.7.0 +edx-event-bus-kafka==5.8.1 # via # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt @@ -792,7 +805,7 @@ edx-rest-api-client==5.7.1 # -r requirements/edx/testing.txt # edx-enterprise # edx-proctoring -edx-search==3.9.1 +edx-search==4.0.0 # via # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt @@ -800,7 +813,7 @@ edx-sga==0.25.0 # via # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt -edx-submissions==3.7.5 +edx-submissions==3.7.6 # via # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt @@ -842,10 +855,6 @@ elasticsearch==7.13.4 # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt # edx-search -email-validator==2.2.0 - # via - # -r requirements/edx/testing.txt - # fastapi enmerkar==0.7.1 # via # -r requirements/edx/doc.txt @@ -869,18 +878,14 @@ execnet==2.1.1 # pytest-xdist factory-boy==3.3.0 # via -r requirements/edx/testing.txt -faker==26.0.0 +faker==26.2.0 # via # -r requirements/edx/testing.txt # factory-boy -fastapi==0.111.1 +fastapi==0.112.0 # via # -r requirements/edx/testing.txt # pact-python -fastapi-cli==0.0.4 - # via - # -r requirements/edx/testing.txt - # fastapi fastavro==1.9.5 # via # -r requirements/edx/doc.txt @@ -893,6 +898,11 @@ filelock==3.15.4 # snowflake-connector-python # tox # virtualenv +firebase-admin==6.5.0 + # via + # -r requirements/edx/doc.txt + # -r requirements/edx/testing.txt + # edx-ace freezegun==1.5.1 # via -r requirements/edx/testing.txt frozenlist==1.4.1 @@ -932,10 +942,83 @@ glob2==0.7 # via # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt +google-api-core[grpc]==2.19.1 + # via + # -r requirements/edx/doc.txt + # -r requirements/edx/testing.txt + # firebase-admin + # google-api-python-client + # google-cloud-core + # google-cloud-firestore + # google-cloud-storage +google-api-python-client==2.139.0 + # via + # -r requirements/edx/doc.txt + # -r requirements/edx/testing.txt + # firebase-admin +google-auth==2.32.0 + # via + # -r requirements/edx/doc.txt + # -r requirements/edx/testing.txt + # google-api-core + # google-api-python-client + # google-auth-httplib2 + # google-cloud-core + # google-cloud-firestore + # google-cloud-storage +google-auth-httplib2==0.2.0 + # via + # -r requirements/edx/doc.txt + # -r requirements/edx/testing.txt + # google-api-python-client +google-cloud-core==2.4.1 + # via + # -r requirements/edx/doc.txt + # -r requirements/edx/testing.txt + # google-cloud-firestore + # google-cloud-storage +google-cloud-firestore==2.17.0 + # via + # -r requirements/edx/doc.txt + # -r requirements/edx/testing.txt + # firebase-admin +google-cloud-storage==2.18.0 + # via + # -r requirements/edx/doc.txt + # -r requirements/edx/testing.txt + # firebase-admin +google-crc32c==1.5.0 + # via + # -r requirements/edx/doc.txt + # -r requirements/edx/testing.txt + # google-cloud-storage + # google-resumable-media +google-resumable-media==2.7.1 + # via + # -r requirements/edx/doc.txt + # -r requirements/edx/testing.txt + # google-cloud-storage +googleapis-common-protos==1.63.2 + # via + # -r requirements/edx/doc.txt + # -r requirements/edx/testing.txt + # google-api-core + # grpcio-status grimp==3.4.1 # via # -r requirements/edx/testing.txt # import-linter +grpcio==1.65.4 + # via + # -r requirements/edx/doc.txt + # -r requirements/edx/testing.txt + # google-api-core + # grpcio-status +grpcio-status==1.62.3 + # via + # -r requirements/edx/doc.txt + # -r requirements/edx/testing.txt + # google-api-core gunicorn==22.0.0 # via # -r requirements/edx/doc.txt @@ -943,7 +1026,6 @@ gunicorn==22.0.0 h11==0.14.0 # via # -r requirements/edx/testing.txt - # httpcore # uvicorn help-tokens==2.4.0 # via @@ -954,21 +1036,14 @@ html5lib==1.1 # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt # ora2 -httpcore==0.16.3 +httplib2==0.22.0 # via + # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt - # httpx + # google-api-python-client + # google-auth-httplib2 httpretty==1.1.4 # via -r requirements/edx/testing.txt -httptools==0.6.1 - # via - # -r requirements/edx/testing.txt - # uvicorn -httpx==0.23.3 - # via - # -r requirements/edx/testing.txt - # fastapi - # pact-python icalendar==5.0.13 # via # -r requirements/edx/doc.txt @@ -978,10 +1053,8 @@ idna==3.7 # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt # anyio - # email-validator # optimizely-sdk # requests - # rfc3986 # snowflake-connector-python # yarl imagesize==1.4.1 @@ -1029,7 +1102,6 @@ jinja2==3.1.4 # -r requirements/edx/testing.txt # code-annotations # diff-cover - # fastapi # sphinx jmespath==1.0.1 # via @@ -1042,7 +1114,7 @@ joblib==1.4.2 # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt # nltk -jsondiff==2.1.2 +jsondiff==2.2.0 # via # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt @@ -1075,7 +1147,7 @@ jwcrypto==1.5.6 # -r requirements/edx/testing.txt # django-oauth-toolkit # pylti1p3 -kombu==5.3.7 +kombu==5.4.0 # via # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt @@ -1146,10 +1218,6 @@ markdown==3.3.7 # openedx-django-wiki # staff-graded-xblock # xblock-poll -markdown-it-py==3.0.0 - # via - # -r requirements/edx/testing.txt - # rich markupsafe==2.1.5 # via # -r requirements/edx/doc.txt @@ -1168,10 +1236,6 @@ mccabe==0.7.0 # via # -r requirements/edx/testing.txt # pylint -mdurl==0.1.2 - # via - # -r requirements/edx/testing.txt - # markdown-it-py meilisearch==0.31.4 # via # -r requirements/edx/doc.txt @@ -1204,13 +1268,18 @@ mpmath==1.3.0 # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt # sympy +msgpack==1.0.8 + # via + # -r requirements/edx/doc.txt + # -r requirements/edx/testing.txt + # cachecontrol multidict==6.0.5 # via # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt # aiohttp # yarl -mypy==1.10.1 +mypy==1.11.1 # via # -r requirements/edx/development.in # django-stubs @@ -1336,7 +1405,7 @@ packaging==24.1 # snowflake-connector-python # sphinx # tox -pact-python==2.0.1 +pact-python==2.2.1 # via -r requirements/edx/testing.txt pansi==2020.7.3 # via @@ -1417,6 +1486,21 @@ prompt-toolkit==3.0.47 # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt # click-repl +proto-plus==1.24.0 + # via + # -r requirements/edx/doc.txt + # -r requirements/edx/testing.txt + # google-api-core + # google-cloud-firestore +protobuf==4.25.4 + # via + # -r requirements/edx/doc.txt + # -r requirements/edx/testing.txt + # google-api-core + # google-cloud-firestore + # googleapis-common-protos + # grpcio-status + # proto-plus psutil==6.0.0 # via # -r requirements/edx/doc.txt @@ -1436,6 +1520,13 @@ pyasn1==0.6.0 # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt # pgpy + # pyasn1-modules + # rsa +pyasn1-modules==0.4.0 + # via + # -r requirements/edx/doc.txt + # -r requirements/edx/testing.txt + # google-auth pycodestyle==2.8.0 # via # -c requirements/edx/../constraints.txt @@ -1479,7 +1570,6 @@ pygments==2.18.0 # diff-cover # py2neo # pydata-sphinx-theme - # rich # sphinx # sphinx-mdinclude pyjwkest==1.4.2 @@ -1488,7 +1578,7 @@ pyjwkest==1.4.2 # -r requirements/edx/testing.txt # edx-token-utils # lti-consumer-xblock -pyjwt[crypto]==2.8.0 +pyjwt[crypto]==2.9.0 # via # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt @@ -1497,6 +1587,7 @@ pyjwt[crypto]==2.8.0 # edx-drf-extensions # edx-proctoring # edx-rest-api-client + # firebase-admin # pylti1p3 # snowflake-connector-python # social-auth-core @@ -1556,7 +1647,7 @@ pynliner==0.8.0 # via # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt -pyopenssl==24.1.0 +pyopenssl==24.2.1 # via # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt @@ -1567,6 +1658,7 @@ pyparsing==3.1.2 # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt # chem + # httplib2 # openedx-calc pyproject-api==1.7.1 # via @@ -1589,7 +1681,7 @@ pysrt==1.1.2 # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt # edxval -pytest==8.2.2 +pytest==8.3.2 # via # -r requirements/edx/testing.txt # pylint-pytest @@ -1632,10 +1724,6 @@ python-dateutil==2.9.0.post0 # olxcleaner # ora2 # xblock -python-dotenv==1.0.1 - # via - # -r requirements/edx/testing.txt - # uvicorn python-ipware==3.0.0 # via # -r requirements/edx/doc.txt @@ -1645,10 +1733,6 @@ python-memcached==1.62 # via # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt -python-multipart==0.0.9 - # via - # -r requirements/edx/testing.txt - # fastapi python-slugify==8.0.4 # via # -r requirements/edx/doc.txt @@ -1705,7 +1789,6 @@ pyyaml==6.0.1 # edx-i18n-tools # jsondiff # sphinxcontrib-openapi - # uvicorn # xblock random2==1.0.2 # via @@ -1715,7 +1798,7 @@ recommender-xblock==2.2.0 # via # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt -redis==5.0.7 +redis==5.0.8 # via # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt @@ -1726,7 +1809,7 @@ referencing==0.35.1 # -r requirements/edx/testing.txt # jsonschema # jsonschema-specifications -regex==2024.5.15 +regex==2024.7.24 # via # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt @@ -1737,6 +1820,7 @@ requests==2.32.3 # -r requirements/edx/testing.txt # algoliasearch # analytics-python + # cachecontrol # django-oauth-toolkit # djangorestframework-stubs # edx-bulk-grades @@ -1744,6 +1828,8 @@ requests==2.32.3 # edx-enterprise # edx-rest-api-client # geoip2 + # google-api-core + # google-cloud-storage # mailsnake # meilisearch # openai @@ -1764,20 +1850,17 @@ requests-oauthlib==2.0.0 # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt # social-auth-core -rfc3986[idna2008]==1.5.0 - # via - # -r requirements/edx/testing.txt - # httpx -rich==13.7.1 - # via - # -r requirements/edx/testing.txt - # typer -rpds-py==0.19.0 +rpds-py==0.20.0 # via # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt # jsonschema # referencing +rsa==4.9 + # via + # -r requirements/edx/doc.txt + # -r requirements/edx/testing.txt + # google-auth rules==3.4 # via # -r requirements/edx/doc.txt @@ -1810,10 +1893,6 @@ shapely==2.0.5 # via # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt -shellingham==1.5.4 - # via - # -r requirements/edx/testing.txt - # typer simplejson==3.19.2 # via # -r requirements/edx/doc.txt @@ -1871,13 +1950,11 @@ sniffio==1.3.1 # via # -r requirements/edx/testing.txt # anyio - # httpcore - # httpx snowballstemmer==2.2.0 # via # -r requirements/edx/doc.txt # sphinx -snowflake-connector-python==3.11.0 +snowflake-connector-python==3.12.0 # via # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt @@ -1909,7 +1986,7 @@ soupsieve==2.5 # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt # beautifulsoup4 -sphinx==7.4.4 +sphinx==8.0.2 # via # -r requirements/edx/doc.txt # pydata-sphinx-theme @@ -1922,23 +1999,23 @@ sphinx==7.4.4 # sphinxext-rediraffe sphinx-book-theme==1.1.3 # via -r requirements/edx/doc.txt -sphinx-design==0.6.0 +sphinx-design==0.6.1 # via -r requirements/edx/doc.txt -sphinx-mdinclude==0.6.1 +sphinx-mdinclude==0.6.2 # via # -r requirements/edx/doc.txt # sphinxcontrib-openapi sphinx-reredirects==0.1.5 # via -r requirements/edx/doc.txt -sphinxcontrib-applehelp==1.0.8 +sphinxcontrib-applehelp==2.0.0 # via # -r requirements/edx/doc.txt # sphinx -sphinxcontrib-devhelp==1.0.6 +sphinxcontrib-devhelp==2.0.0 # via # -r requirements/edx/doc.txt # sphinx -sphinxcontrib-htmlhelp==2.0.5 +sphinxcontrib-htmlhelp==2.1.0 # via # -r requirements/edx/doc.txt # sphinx @@ -1952,11 +2029,11 @@ sphinxcontrib-jsmath==1.0.1 # sphinx sphinxcontrib-openapi[markdown]==0.8.4 # via -r requirements/edx/doc.txt -sphinxcontrib-qthelp==1.0.7 +sphinxcontrib-qthelp==2.0.0 # via # -r requirements/edx/doc.txt # sphinx -sphinxcontrib-serializinghtml==1.1.10 +sphinxcontrib-serializinghtml==2.0.0 # via # -r requirements/edx/doc.txt # sphinx @@ -1990,7 +2067,7 @@ super-csv==3.2.0 # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt # edx-bulk-grades -sympy==1.13.0 +sympy==1.13.1 # via # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt @@ -2018,21 +2095,17 @@ tomlkit==0.13.0 # -r requirements/edx/testing.txt # pylint # snowflake-connector-python -tox==4.16.0 +tox==4.17.0 # via -r requirements/edx/testing.txt -tqdm==4.66.4 +tqdm==4.66.5 # via # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt # nltk # openai -typer==0.12.3 - # via - # -r requirements/edx/testing.txt - # fastapi-cli types-pytz==2024.1.0.20240417 # via django-stubs -types-pyyaml==6.0.12.20240311 +types-pyyaml==6.0.12.20240724 # via # django-stubs # djangorestframework-stubs @@ -2059,7 +2132,6 @@ typing-extensions==4.12.2 # pydata-sphinx-theme # pylti1p3 # snowflake-connector-python - # typer tzdata==2024.1 # via # -r requirements/edx/doc.txt @@ -2078,6 +2150,7 @@ uritemplate==4.1.1 # -r requirements/edx/testing.txt # drf-spectacular # drf-yasg + # google-api-python-client urllib3==1.26.19 # via # -c requirements/edx/../constraints.txt @@ -2085,22 +2158,16 @@ urllib3==1.26.19 # -r requirements/edx/testing.txt # botocore # elasticsearch - # pact-python # py2neo # requests user-util==1.1.0 # via # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt -uvicorn[standard]==0.30.1 +uvicorn==0.30.5 # via # -r requirements/edx/testing.txt - # fastapi # pact-python -uvloop==0.19.0 - # via - # -r requirements/edx/testing.txt - # uvicorn vine==5.1.0 # via # -r requirements/edx/doc.txt @@ -2129,10 +2196,6 @@ watchdog==4.0.1 # -r requirements/edx/development.in # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt -watchfiles==0.22.0 - # via - # -r requirements/edx/testing.txt - # uvicorn wcwidth==0.2.13 # via # -r requirements/edx/doc.txt @@ -2159,11 +2222,7 @@ webob==1.8.7 # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt # xblock -websockets==12.0 - # via - # -r requirements/edx/testing.txt - # uvicorn -wheel==0.43.0 +wheel==0.44.0 # via # -r requirements/edx/../pip-tools.txt # pip-tools @@ -2172,7 +2231,7 @@ wrapt==1.16.0 # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt # astroid -xblock[django]==4.0.1 +xblock[django]==5.0.0 # via # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt @@ -2221,6 +2280,7 @@ yarl==1.9.4 # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt # aiohttp + # pact-python zipp==3.19.2 # via # -r requirements/edx/doc.txt diff --git a/requirements/edx/doc.txt b/requirements/edx/doc.txt index c90be697606c..33cf7edaecf4 100644 --- a/requirements/edx/doc.txt +++ b/requirements/edx/doc.txt @@ -10,7 +10,11 @@ accessible-pygments==0.0.5 # via pydata-sphinx-theme acid-xblock==0.3.1 # via -r requirements/edx/base.txt -aiohttp==3.9.5 +aiohappyeyeballs==2.3.4 + # via + # -r requirements/edx/base.txt + # aiohttp +aiohttp==3.10.1 # via # -r requirements/edx/base.txt # geoip2 @@ -19,7 +23,7 @@ aiosignal==1.3.1 # via # -r requirements/edx/base.txt # aiohttp -alabaster==0.7.16 +alabaster==1.0.0 # via sphinx algoliasearch==3.0.0 # via -r requirements/edx/base.txt @@ -51,7 +55,7 @@ asn1crypto==1.5.1 # via # -r requirements/edx/base.txt # snowflake-connector-python -attrs==23.2.0 +attrs==24.2.0 # via # -r requirements/edx/base.txt # aiohttp @@ -72,7 +76,7 @@ backoff==1.10.0 # via # -r requirements/edx/base.txt # analytics-python -bcrypt==4.1.3 +bcrypt==4.2.0 # via # -r requirements/edx/base.txt # paramiko @@ -96,19 +100,27 @@ bleach[css]==6.1.0 # xblock-poll boto==2.49.0 # via -r requirements/edx/base.txt -boto3==1.34.144 +boto3==1.34.154 # via # -r requirements/edx/base.txt # django-ses # fs-s3fs # ora2 -botocore==1.34.144 +botocore==1.34.154 # via # -r requirements/edx/base.txt # boto3 # s3transfer bridgekeeper==0.9 # via -r requirements/edx/base.txt +cachecontrol==0.14.0 + # via + # -r requirements/edx/base.txt + # firebase-admin +cachetools==5.4.0 + # via + # -r requirements/edx/base.txt + # google-auth camel-converter[pydantic]==3.1.2 # via # -r requirements/edx/base.txt @@ -130,7 +142,7 @@ certifi==2024.7.4 # py2neo # requests # snowflake-connector-python -cffi==1.16.0 +cffi==1.17.0 # via # -r requirements/edx/base.txt # cryptography @@ -208,7 +220,7 @@ defusedxml==0.7.1 # ora2 # python3-openid # social-auth-core -django==4.2.14 +django==4.2.15 # via # -c requirements/edx/../common_constraints.txt # -c requirements/edx/../constraints.txt @@ -227,6 +239,7 @@ django==4.2.14 # django-multi-email-field # django-mysql # django-oauth-toolkit + # django-push-notifications # django-sekizai # django-ses # django-statici18n @@ -318,7 +331,7 @@ django-fernet-fields-v2==0.9 # via # -r requirements/edx/base.txt # edx-enterprise -django-filter==24.2 +django-filter==24.3 # via # -r requirements/edx/base.txt # edx-enterprise @@ -373,6 +386,10 @@ django-object-actions==4.2.0 # edx-enterprise django-pipeline==3.1.0 # via -r requirements/edx/base.txt +django-push-notifications==3.1.0 + # via + # -r requirements/edx/base.txt + # edx-ace django-ratelimit==4.1.0 # via -r requirements/edx/base.txt django-sekizai==4.1.0 @@ -462,7 +479,7 @@ drf-yasg==1.21.7 # -r requirements/edx/base.txt # django-user-tasks # edx-api-doc-tools -edx-ace==1.9.1 +edx-ace==1.11.0 # via -r requirements/edx/base.txt edx-api-doc-tools==1.8.0 # via @@ -490,7 +507,7 @@ edx-celeryutils==1.3.0 # super-csv edx-codejail==3.4.1 # via -r requirements/edx/base.txt -edx-completion==4.6.6 +edx-completion==4.6.7 # via -r requirements/edx/base.txt edx-django-release-util==1.4.0 # via @@ -532,7 +549,7 @@ edx-enterprise==4.22.4 # via # -c requirements/edx/../constraints.txt # -r requirements/edx/base.txt -edx-event-bus-kafka==5.7.0 +edx-event-bus-kafka==5.8.1 # via -r requirements/edx/base.txt edx-event-bus-redis==0.5.0 # via -r requirements/edx/base.txt @@ -575,11 +592,11 @@ edx-rest-api-client==5.7.1 # -r requirements/edx/base.txt # edx-enterprise # edx-proctoring -edx-search==3.9.1 +edx-search==4.0.0 # via -r requirements/edx/base.txt edx-sga==0.25.0 # via -r requirements/edx/base.txt -edx-submissions==3.7.5 +edx-submissions==3.7.6 # via # -r requirements/edx/base.txt # ora2 @@ -633,6 +650,10 @@ filelock==3.15.4 # via # -r requirements/edx/base.txt # snowflake-connector-python +firebase-admin==6.5.0 + # via + # -r requirements/edx/base.txt + # edx-ace frozenlist==1.4.1 # via # -r requirements/edx/base.txt @@ -660,6 +681,67 @@ gitpython==3.1.43 # via -r requirements/edx/doc.in glob2==0.7 # via -r requirements/edx/base.txt +google-api-core[grpc]==2.19.1 + # via + # -r requirements/edx/base.txt + # firebase-admin + # google-api-python-client + # google-cloud-core + # google-cloud-firestore + # google-cloud-storage +google-api-python-client==2.139.0 + # via + # -r requirements/edx/base.txt + # firebase-admin +google-auth==2.32.0 + # via + # -r requirements/edx/base.txt + # google-api-core + # google-api-python-client + # google-auth-httplib2 + # google-cloud-core + # google-cloud-firestore + # google-cloud-storage +google-auth-httplib2==0.2.0 + # via + # -r requirements/edx/base.txt + # google-api-python-client +google-cloud-core==2.4.1 + # via + # -r requirements/edx/base.txt + # google-cloud-firestore + # google-cloud-storage +google-cloud-firestore==2.17.0 + # via + # -r requirements/edx/base.txt + # firebase-admin +google-cloud-storage==2.18.0 + # via + # -r requirements/edx/base.txt + # firebase-admin +google-crc32c==1.5.0 + # via + # -r requirements/edx/base.txt + # google-cloud-storage + # google-resumable-media +google-resumable-media==2.7.1 + # via + # -r requirements/edx/base.txt + # google-cloud-storage +googleapis-common-protos==1.63.2 + # via + # -r requirements/edx/base.txt + # google-api-core + # grpcio-status +grpcio==1.65.4 + # via + # -r requirements/edx/base.txt + # google-api-core + # grpcio-status +grpcio-status==1.62.3 + # via + # -r requirements/edx/base.txt + # google-api-core gunicorn==22.0.0 # via -r requirements/edx/base.txt help-tokens==2.4.0 @@ -668,6 +750,11 @@ html5lib==1.1 # via # -r requirements/edx/base.txt # ora2 +httplib2==0.22.0 + # via + # -r requirements/edx/base.txt + # google-api-python-client + # google-auth-httplib2 icalendar==5.0.13 # via -r requirements/edx/base.txt idna==3.7 @@ -712,7 +799,7 @@ joblib==1.4.2 # via # -r requirements/edx/base.txt # nltk -jsondiff==2.1.2 +jsondiff==2.2.0 # via # -r requirements/edx/base.txt # edx-enterprise @@ -740,7 +827,7 @@ jwcrypto==1.5.6 # -r requirements/edx/base.txt # django-oauth-toolkit # pylti1p3 -kombu==5.3.7 +kombu==5.4.0 # via # -r requirements/edx/base.txt # celery @@ -825,6 +912,10 @@ mpmath==1.3.0 # via # -r requirements/edx/base.txt # sympy +msgpack==1.0.8 + # via + # -r requirements/edx/base.txt + # cachecontrol multidict==6.0.5 # via # -r requirements/edx/base.txt @@ -964,6 +1055,19 @@ prompt-toolkit==3.0.47 # via # -r requirements/edx/base.txt # click-repl +proto-plus==1.24.0 + # via + # -r requirements/edx/base.txt + # google-api-core + # google-cloud-firestore +protobuf==4.25.4 + # via + # -r requirements/edx/base.txt + # google-api-core + # google-cloud-firestore + # googleapis-common-protos + # grpcio-status + # proto-plus psutil==6.0.0 # via # -r requirements/edx/base.txt @@ -976,6 +1080,12 @@ pyasn1==0.6.0 # via # -r requirements/edx/base.txt # pgpy + # pyasn1-modules + # rsa +pyasn1-modules==0.4.0 + # via + # -r requirements/edx/base.txt + # google-auth pycountry==24.6.1 # via -r requirements/edx/base.txt pycparser==2.22 @@ -1011,7 +1121,7 @@ pyjwkest==1.4.2 # -r requirements/edx/base.txt # edx-token-utils # lti-consumer-xblock -pyjwt[crypto]==2.8.0 +pyjwt[crypto]==2.9.0 # via # -r requirements/edx/base.txt # drf-jwt @@ -1019,6 +1129,7 @@ pyjwt[crypto]==2.8.0 # edx-drf-extensions # edx-proctoring # edx-rest-api-client + # firebase-admin # pylti1p3 # snowflake-connector-python # social-auth-core @@ -1045,7 +1156,7 @@ pynacl==1.5.0 # paramiko pynliner==0.8.0 # via -r requirements/edx/base.txt -pyopenssl==24.1.0 +pyopenssl==24.2.1 # via # -r requirements/edx/base.txt # optimizely-sdk @@ -1054,6 +1165,7 @@ pyparsing==3.1.2 # via # -r requirements/edx/base.txt # chem + # httplib2 # openedx-calc pyrsistent==0.20.0 # via @@ -1132,7 +1244,7 @@ random2==1.0.2 # via -r requirements/edx/base.txt recommender-xblock==2.2.0 # via -r requirements/edx/base.txt -redis==5.0.7 +redis==5.0.8 # via # -r requirements/edx/base.txt # walrus @@ -1141,7 +1253,7 @@ referencing==0.35.1 # -r requirements/edx/base.txt # jsonschema # jsonschema-specifications -regex==2024.5.15 +regex==2024.7.24 # via # -r requirements/edx/base.txt # nltk @@ -1150,12 +1262,15 @@ requests==2.32.3 # -r requirements/edx/base.txt # algoliasearch # analytics-python + # cachecontrol # django-oauth-toolkit # edx-bulk-grades # edx-drf-extensions # edx-enterprise # edx-rest-api-client # geoip2 + # google-api-core + # google-cloud-storage # mailsnake # meilisearch # openai @@ -1174,11 +1289,15 @@ requests-oauthlib==2.0.0 # via # -r requirements/edx/base.txt # social-auth-core -rpds-py==0.19.0 +rpds-py==0.20.0 # via # -r requirements/edx/base.txt # jsonschema # referencing +rsa==4.9 + # via + # -r requirements/edx/base.txt + # google-auth rules==3.4 # via # -r requirements/edx/base.txt @@ -1249,7 +1368,7 @@ smmap==5.0.1 # via gitdb snowballstemmer==2.2.0 # via sphinx -snowflake-connector-python==3.11.0 +snowflake-connector-python==3.12.0 # via # -r requirements/edx/base.txt # edx-enterprise @@ -1275,7 +1394,7 @@ soupsieve==2.5 # via # -r requirements/edx/base.txt # beautifulsoup4 -sphinx==7.4.4 +sphinx==8.0.2 # via # -r requirements/edx/doc.in # pydata-sphinx-theme @@ -1288,17 +1407,17 @@ sphinx==7.4.4 # sphinxext-rediraffe sphinx-book-theme==1.1.3 # via -r requirements/edx/doc.in -sphinx-design==0.6.0 +sphinx-design==0.6.1 # via -r requirements/edx/doc.in -sphinx-mdinclude==0.6.1 +sphinx-mdinclude==0.6.2 # via sphinxcontrib-openapi sphinx-reredirects==0.1.5 # via -r requirements/edx/doc.in -sphinxcontrib-applehelp==1.0.8 +sphinxcontrib-applehelp==2.0.0 # via sphinx -sphinxcontrib-devhelp==1.0.6 +sphinxcontrib-devhelp==2.0.0 # via sphinx -sphinxcontrib-htmlhelp==2.0.5 +sphinxcontrib-htmlhelp==2.1.0 # via sphinx sphinxcontrib-httpdomain==1.8.1 # via sphinxcontrib-openapi @@ -1306,9 +1425,9 @@ sphinxcontrib-jsmath==1.0.1 # via sphinx sphinxcontrib-openapi[markdown]==0.8.4 # via -r requirements/edx/doc.in -sphinxcontrib-qthelp==1.0.7 +sphinxcontrib-qthelp==2.0.0 # via sphinx -sphinxcontrib-serializinghtml==1.1.10 +sphinxcontrib-serializinghtml==2.0.0 # via sphinx sphinxext-rediraffe==0.2.7 # via -r requirements/edx/doc.in @@ -1330,7 +1449,7 @@ super-csv==3.2.0 # via # -r requirements/edx/base.txt # edx-bulk-grades -sympy==1.13.0 +sympy==1.13.1 # via # -r requirements/edx/base.txt # openedx-calc @@ -1350,7 +1469,7 @@ tomlkit==0.13.0 # via # -r requirements/edx/base.txt # snowflake-connector-python -tqdm==4.66.4 +tqdm==4.66.5 # via # -r requirements/edx/base.txt # nltk @@ -1379,6 +1498,7 @@ uritemplate==4.1.1 # -r requirements/edx/base.txt # drf-spectacular # drf-yasg + # google-api-python-client urllib3==1.26.19 # via # -c requirements/edx/../constraints.txt @@ -1429,7 +1549,7 @@ webob==1.8.7 # xblock wrapt==1.16.0 # via -r requirements/edx/base.txt -xblock[django]==4.0.1 +xblock[django]==5.0.0 # via # -r requirements/edx/base.txt # acid-xblock diff --git a/requirements/edx/semgrep.txt b/requirements/edx/semgrep.txt index 5c3ec421aa32..292f1319048d 100644 --- a/requirements/edx/semgrep.txt +++ b/requirements/edx/semgrep.txt @@ -4,7 +4,7 @@ # # make upgrade # -attrs==23.2.0 +attrs==24.2.0 # via # glom # jsonschema @@ -15,7 +15,7 @@ boltons==21.0.0 # face # glom # semgrep -bracex==2.4 +bracex==2.5 # via wcmatch certifi==2024.7.4 # via requests @@ -62,7 +62,7 @@ requests==2.32.3 # via semgrep rich==13.7.1 # via semgrep -rpds-py==0.19.0 +rpds-py==0.20.0 # via # jsonschema # referencing diff --git a/requirements/edx/testing.txt b/requirements/edx/testing.txt index a679ac373e18..5cca40a4eabc 100644 --- a/requirements/edx/testing.txt +++ b/requirements/edx/testing.txt @@ -8,7 +8,11 @@ # via -r requirements/edx/base.txt acid-xblock==0.3.1 # via -r requirements/edx/base.txt -aiohttp==3.9.5 +aiohappyeyeballs==2.3.4 + # via + # -r requirements/edx/base.txt + # aiohttp +aiohttp==3.10.1 # via # -r requirements/edx/base.txt # geoip2 @@ -34,10 +38,7 @@ annotated-types==0.7.0 # -r requirements/edx/base.txt # pydantic anyio==4.4.0 - # via - # httpcore - # starlette - # watchfiles + # via starlette appdirs==1.4.4 # via # -r requirements/edx/base.txt @@ -56,7 +57,7 @@ astroid==2.13.5 # via # pylint # pylint-celery -attrs==23.2.0 +attrs==24.2.0 # via # -r requirements/edx/base.txt # aiohttp @@ -75,7 +76,7 @@ backoff==1.10.0 # via # -r requirements/edx/base.txt # analytics-python -bcrypt==4.1.3 +bcrypt==4.2.0 # via # -r requirements/edx/base.txt # paramiko @@ -99,21 +100,28 @@ bleach[css]==6.1.0 # xblock-poll boto==2.49.0 # via -r requirements/edx/base.txt -boto3==1.34.144 +boto3==1.34.154 # via # -r requirements/edx/base.txt # django-ses # fs-s3fs # ora2 -botocore==1.34.144 +botocore==1.34.154 # via # -r requirements/edx/base.txt # boto3 # s3transfer bridgekeeper==0.9 # via -r requirements/edx/base.txt +cachecontrol==0.14.0 + # via + # -r requirements/edx/base.txt + # firebase-admin cachetools==5.4.0 - # via tox + # via + # -r requirements/edx/base.txt + # google-auth + # tox camel-converter[pydantic]==3.1.2 # via # -r requirements/edx/base.txt @@ -132,15 +140,14 @@ certifi==2024.7.4 # via # -r requirements/edx/base.txt # elasticsearch - # httpcore - # httpx # py2neo # requests # snowflake-connector-python -cffi==1.16.0 +cffi==1.17.0 # via # -r requirements/edx/base.txt # cryptography + # pact-python # pynacl # snowflake-connector-python chardet==5.2.0 @@ -173,7 +180,6 @@ click==8.1.6 # import-linter # nltk # pact-python - # typer # user-util # uvicorn click-didyoumean==0.3.1 @@ -201,7 +207,7 @@ codejail-includes==1.0.0 # via -r requirements/edx/base.txt colorama==0.4.6 # via tox -coverage[toml]==7.6.0 +coverage[toml]==7.6.1 # via # -r requirements/edx/coverage.txt # pytest-cov @@ -237,13 +243,13 @@ defusedxml==0.7.1 # ora2 # python3-openid # social-auth-core -diff-cover==9.1.0 +diff-cover==9.1.1 # via -r requirements/edx/coverage.txt dill==0.3.8 # via pylint distlib==0.3.8 # via virtualenv -django==4.2.14 +django==4.2.15 # via # -c requirements/edx/../common_constraints.txt # -c requirements/edx/../constraints.txt @@ -262,6 +268,7 @@ django==4.2.14 # django-multi-email-field # django-mysql # django-oauth-toolkit + # django-push-notifications # django-sekizai # django-ses # django-statici18n @@ -353,7 +360,7 @@ django-fernet-fields-v2==0.9 # via # -r requirements/edx/base.txt # edx-enterprise -django-filter==24.2 +django-filter==24.3 # via # -r requirements/edx/base.txt # edx-enterprise @@ -408,6 +415,10 @@ django-object-actions==4.2.0 # edx-enterprise django-pipeline==3.1.0 # via -r requirements/edx/base.txt +django-push-notifications==3.1.0 + # via + # -r requirements/edx/base.txt + # edx-ace django-ratelimit==4.1.0 # via -r requirements/edx/base.txt django-sekizai==4.1.0 @@ -478,7 +489,6 @@ djangorestframework-xml==2.0.0 dnspython==2.6.1 # via # -r requirements/edx/base.txt - # email-validator # pymongo done-xblock==2.3.0 # via -r requirements/edx/base.txt @@ -493,7 +503,7 @@ drf-yasg==1.21.7 # -r requirements/edx/base.txt # django-user-tasks # edx-api-doc-tools -edx-ace==1.9.1 +edx-ace==1.11.0 # via -r requirements/edx/base.txt edx-api-doc-tools==1.8.0 # via @@ -521,7 +531,7 @@ edx-celeryutils==1.3.0 # super-csv edx-codejail==3.4.1 # via -r requirements/edx/base.txt -edx-completion==4.6.6 +edx-completion==4.6.7 # via -r requirements/edx/base.txt edx-django-release-util==1.4.0 # via @@ -563,7 +573,7 @@ edx-enterprise==4.22.4 # via # -c requirements/edx/../constraints.txt # -r requirements/edx/base.txt -edx-event-bus-kafka==5.7.0 +edx-event-bus-kafka==5.8.1 # via -r requirements/edx/base.txt edx-event-bus-redis==0.5.0 # via -r requirements/edx/base.txt @@ -608,11 +618,11 @@ edx-rest-api-client==5.7.1 # -r requirements/edx/base.txt # edx-enterprise # edx-proctoring -edx-search==3.9.1 +edx-search==4.0.0 # via -r requirements/edx/base.txt edx-sga==0.25.0 # via -r requirements/edx/base.txt -edx-submissions==3.7.5 +edx-submissions==3.7.6 # via # -r requirements/edx/base.txt # ora2 @@ -645,8 +655,6 @@ elasticsearch==7.13.4 # -c requirements/edx/../common_constraints.txt # -r requirements/edx/base.txt # edx-search -email-validator==2.2.0 - # via fastapi enmerkar==0.7.1 # via # -r requirements/edx/base.txt @@ -664,12 +672,10 @@ execnet==2.1.1 # via pytest-xdist factory-boy==3.3.0 # via -r requirements/edx/testing.in -faker==26.0.0 +faker==26.2.0 # via factory-boy -fastapi==0.111.1 +fastapi==0.112.0 # via pact-python -fastapi-cli==0.0.4 - # via fastapi fastavro==1.9.5 # via # -r requirements/edx/base.txt @@ -680,6 +686,10 @@ filelock==3.15.4 # snowflake-connector-python # tox # virtualenv +firebase-admin==6.5.0 + # via + # -r requirements/edx/base.txt + # edx-ace freezegun==1.5.1 # via -r requirements/edx/testing.in frozenlist==1.4.1 @@ -705,40 +715,94 @@ geoip2==4.8.0 # via -r requirements/edx/base.txt glob2==0.7 # via -r requirements/edx/base.txt +google-api-core[grpc]==2.19.1 + # via + # -r requirements/edx/base.txt + # firebase-admin + # google-api-python-client + # google-cloud-core + # google-cloud-firestore + # google-cloud-storage +google-api-python-client==2.139.0 + # via + # -r requirements/edx/base.txt + # firebase-admin +google-auth==2.32.0 + # via + # -r requirements/edx/base.txt + # google-api-core + # google-api-python-client + # google-auth-httplib2 + # google-cloud-core + # google-cloud-firestore + # google-cloud-storage +google-auth-httplib2==0.2.0 + # via + # -r requirements/edx/base.txt + # google-api-python-client +google-cloud-core==2.4.1 + # via + # -r requirements/edx/base.txt + # google-cloud-firestore + # google-cloud-storage +google-cloud-firestore==2.17.0 + # via + # -r requirements/edx/base.txt + # firebase-admin +google-cloud-storage==2.18.0 + # via + # -r requirements/edx/base.txt + # firebase-admin +google-crc32c==1.5.0 + # via + # -r requirements/edx/base.txt + # google-cloud-storage + # google-resumable-media +google-resumable-media==2.7.1 + # via + # -r requirements/edx/base.txt + # google-cloud-storage +googleapis-common-protos==1.63.2 + # via + # -r requirements/edx/base.txt + # google-api-core + # grpcio-status grimp==3.4.1 # via import-linter +grpcio==1.65.4 + # via + # -r requirements/edx/base.txt + # google-api-core + # grpcio-status +grpcio-status==1.62.3 + # via + # -r requirements/edx/base.txt + # google-api-core gunicorn==22.0.0 # via -r requirements/edx/base.txt h11==0.14.0 - # via - # httpcore - # uvicorn + # via uvicorn help-tokens==2.4.0 # via -r requirements/edx/base.txt html5lib==1.1 # via # -r requirements/edx/base.txt # ora2 -httpcore==0.16.3 - # via httpx +httplib2==0.22.0 + # via + # -r requirements/edx/base.txt + # google-api-python-client + # google-auth-httplib2 httpretty==1.1.4 # via -r requirements/edx/testing.in -httptools==0.6.1 - # via uvicorn -httpx==0.23.3 - # via - # fastapi - # pact-python icalendar==5.0.13 # via -r requirements/edx/base.txt idna==3.7 # via # -r requirements/edx/base.txt # anyio - # email-validator # optimizely-sdk # requests - # rfc3986 # snowflake-connector-python # yarl import-linter==2.0 @@ -774,7 +838,6 @@ jinja2==3.1.4 # -r requirements/edx/coverage.txt # code-annotations # diff-cover - # fastapi jmespath==1.0.1 # via # -r requirements/edx/base.txt @@ -784,7 +847,7 @@ joblib==1.4.2 # via # -r requirements/edx/base.txt # nltk -jsondiff==2.1.2 +jsondiff==2.2.0 # via # -r requirements/edx/base.txt # edx-enterprise @@ -811,7 +874,7 @@ jwcrypto==1.5.6 # -r requirements/edx/base.txt # django-oauth-toolkit # pylti1p3 -kombu==5.3.7 +kombu==5.4.0 # via # -r requirements/edx/base.txt # celery @@ -866,8 +929,6 @@ markdown==3.3.7 # openedx-django-wiki # staff-graded-xblock # xblock-poll -markdown-it-py==3.0.0 - # via rich markupsafe==2.1.5 # via # -r requirements/edx/base.txt @@ -883,8 +944,6 @@ maxminddb==2.6.2 # geoip2 mccabe==0.7.0 # via pylint -mdurl==0.1.2 - # via markdown-it-py meilisearch==0.31.4 # via -r requirements/edx/base.txt mock==5.1.0 @@ -904,6 +963,10 @@ mpmath==1.3.0 # via # -r requirements/edx/base.txt # sympy +msgpack==1.0.8 + # via + # -r requirements/edx/base.txt + # cachecontrol multidict==6.0.5 # via # -r requirements/edx/base.txt @@ -992,7 +1055,7 @@ packaging==24.1 # pytest # snowflake-connector-python # tox -pact-python==2.0.1 +pact-python==2.2.1 # via -r requirements/edx/testing.in pansi==2020.7.3 # via @@ -1054,6 +1117,19 @@ prompt-toolkit==3.0.47 # via # -r requirements/edx/base.txt # click-repl +proto-plus==1.24.0 + # via + # -r requirements/edx/base.txt + # google-api-core + # google-cloud-firestore +protobuf==4.25.4 + # via + # -r requirements/edx/base.txt + # google-api-core + # google-cloud-firestore + # googleapis-common-protos + # grpcio-status + # proto-plus psutil==6.0.0 # via # -r requirements/edx/base.txt @@ -1070,6 +1146,12 @@ pyasn1==0.6.0 # via # -r requirements/edx/base.txt # pgpy + # pyasn1-modules + # rsa +pyasn1-modules==0.4.0 + # via + # -r requirements/edx/base.txt + # google-auth pycodestyle==2.8.0 # via # -c requirements/edx/../constraints.txt @@ -1101,13 +1183,12 @@ pygments==2.18.0 # -r requirements/edx/coverage.txt # diff-cover # py2neo - # rich pyjwkest==1.4.2 # via # -r requirements/edx/base.txt # edx-token-utils # lti-consumer-xblock -pyjwt[crypto]==2.8.0 +pyjwt[crypto]==2.9.0 # via # -r requirements/edx/base.txt # drf-jwt @@ -1115,6 +1196,7 @@ pyjwt[crypto]==2.8.0 # edx-drf-extensions # edx-proctoring # edx-rest-api-client + # firebase-admin # pylti1p3 # snowflake-connector-python # social-auth-core @@ -1159,7 +1241,7 @@ pynacl==1.5.0 # paramiko pynliner==0.8.0 # via -r requirements/edx/base.txt -pyopenssl==24.1.0 +pyopenssl==24.2.1 # via # -r requirements/edx/base.txt # optimizely-sdk @@ -1168,6 +1250,7 @@ pyparsing==3.1.2 # via # -r requirements/edx/base.txt # chem + # httplib2 # openedx-calc pyproject-api==1.7.1 # via tox @@ -1181,7 +1264,7 @@ pysrt==1.1.2 # via # -r requirements/edx/base.txt # edxval -pytest==8.2.2 +pytest==8.3.2 # via # -r requirements/edx/testing.in # pylint-pytest @@ -1223,16 +1306,12 @@ python-dateutil==2.9.0.post0 # olxcleaner # ora2 # xblock -python-dotenv==1.0.1 - # via uvicorn python-ipware==3.0.0 # via # -r requirements/edx/base.txt # django-ipware python-memcached==1.62 # via -r requirements/edx/base.txt -python-multipart==0.0.9 - # via fastapi python-slugify==8.0.4 # via # -r requirements/edx/base.txt @@ -1277,13 +1356,12 @@ pyyaml==6.0.1 # edx-django-release-util # edx-i18n-tools # jsondiff - # uvicorn # xblock random2==1.0.2 # via -r requirements/edx/base.txt recommender-xblock==2.2.0 # via -r requirements/edx/base.txt -redis==5.0.7 +redis==5.0.8 # via # -r requirements/edx/base.txt # walrus @@ -1292,7 +1370,7 @@ referencing==0.35.1 # -r requirements/edx/base.txt # jsonschema # jsonschema-specifications -regex==2024.5.15 +regex==2024.7.24 # via # -r requirements/edx/base.txt # nltk @@ -1301,12 +1379,15 @@ requests==2.32.3 # -r requirements/edx/base.txt # algoliasearch # analytics-python + # cachecontrol # django-oauth-toolkit # edx-bulk-grades # edx-drf-extensions # edx-enterprise # edx-rest-api-client # geoip2 + # google-api-core + # google-cloud-storage # mailsnake # meilisearch # openai @@ -1325,15 +1406,15 @@ requests-oauthlib==2.0.0 # via # -r requirements/edx/base.txt # social-auth-core -rfc3986[idna2008]==1.5.0 - # via httpx -rich==13.7.1 - # via typer -rpds-py==0.19.0 +rpds-py==0.20.0 # via # -r requirements/edx/base.txt # jsonschema # referencing +rsa==4.9 + # via + # -r requirements/edx/base.txt + # google-auth rules==3.4 # via # -r requirements/edx/base.txt @@ -1359,8 +1440,6 @@ semantic-version==2.10.0 # edx-drf-extensions shapely==2.0.5 # via -r requirements/edx/base.txt -shellingham==1.5.4 - # via typer simplejson==3.19.2 # via # -r requirements/edx/base.txt @@ -1406,11 +1485,8 @@ slumber==0.7.1 # edx-enterprise # edx-rest-api-client sniffio==1.3.1 - # via - # anyio - # httpcore - # httpx -snowflake-connector-python==3.11.0 + # via anyio +snowflake-connector-python==3.12.0 # via # -r requirements/edx/base.txt # edx-enterprise @@ -1456,7 +1532,7 @@ super-csv==3.2.0 # via # -r requirements/edx/base.txt # edx-bulk-grades -sympy==1.13.0 +sympy==1.13.1 # via # -r requirements/edx/base.txt # openedx-calc @@ -1478,15 +1554,13 @@ tomlkit==0.13.0 # -r requirements/edx/base.txt # pylint # snowflake-connector-python -tox==4.16.0 +tox==4.17.0 # via -r requirements/edx/testing.in -tqdm==4.66.4 +tqdm==4.66.5 # via # -r requirements/edx/base.txt # nltk # openai -typer==0.12.3 - # via fastapi-cli typing-extensions==4.12.2 # via # -r requirements/edx/base.txt @@ -1500,7 +1574,6 @@ typing-extensions==4.12.2 # pydantic-core # pylti1p3 # snowflake-connector-python - # typer tzdata==2024.1 # via # -r requirements/edx/base.txt @@ -1516,23 +1589,19 @@ uritemplate==4.1.1 # -r requirements/edx/base.txt # drf-spectacular # drf-yasg + # google-api-python-client urllib3==1.26.19 # via # -c requirements/edx/../constraints.txt # -r requirements/edx/base.txt # botocore # elasticsearch - # pact-python # py2neo # requests user-util==1.1.0 # via -r requirements/edx/base.txt -uvicorn[standard]==0.30.1 - # via - # fastapi - # pact-python -uvloop==0.19.0 - # via uvicorn +uvicorn==0.30.5 + # via pact-python vine==5.1.0 # via # -r requirements/edx/base.txt @@ -1551,8 +1620,6 @@ walrus==0.9.4 # edx-event-bus-redis watchdog==4.0.1 # via -r requirements/edx/base.txt -watchfiles==0.22.0 - # via uvicorn wcwidth==0.2.13 # via # -r requirements/edx/base.txt @@ -1575,13 +1642,11 @@ webob==1.8.7 # via # -r requirements/edx/base.txt # xblock -websockets==12.0 - # via uvicorn wrapt==1.16.0 # via # -r requirements/edx/base.txt # astroid -xblock[django]==4.0.1 +xblock[django]==5.0.0 # via # -r requirements/edx/base.txt # acid-xblock @@ -1618,6 +1683,7 @@ yarl==1.9.4 # via # -r requirements/edx/base.txt # aiohttp + # pact-python zipp==3.19.2 # via # -r requirements/edx/base.txt diff --git a/requirements/pip-tools.txt b/requirements/pip-tools.txt index 3630835e943d..f7b35489c353 100644 --- a/requirements/pip-tools.txt +++ b/requirements/pip-tools.txt @@ -18,7 +18,7 @@ pyproject-hooks==1.1.0 # via # build # pip-tools -wheel==0.43.0 +wheel==0.44.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 df29e61c6017..7a6ada8e0a92 100644 --- a/requirements/pip.txt +++ b/requirements/pip.txt @@ -4,11 +4,11 @@ # # make upgrade # -wheel==0.43.0 +wheel==0.44.0 # via -r requirements/pip.in # The following packages are considered to be unsafe in a requirements file: -pip==24.1.2 +pip==24.2 # via -r requirements/pip.in -setuptools==70.3.0 +setuptools==72.1.0 # via -r requirements/pip.in diff --git a/scripts/structures_pruning/requirements/testing.txt b/scripts/structures_pruning/requirements/testing.txt index d74b204fad5c..47648d50fddb 100644 --- a/scripts/structures_pruning/requirements/testing.txt +++ b/scripts/structures_pruning/requirements/testing.txt @@ -32,7 +32,7 @@ pymongo==4.4.0 # via # -r scripts/structures_pruning/requirements/base.txt # edx-opaque-keys -pytest==8.2.2 +pytest==8.3.2 # via -r scripts/structures_pruning/requirements/testing.in stevedore==5.2.0 # via diff --git a/scripts/user_retirement/requirements/base.txt b/scripts/user_retirement/requirements/base.txt index 98972d24c494..47e6e79c2240 100644 --- a/scripts/user_retirement/requirements/base.txt +++ b/scripts/user_retirement/requirements/base.txt @@ -6,13 +6,13 @@ # asgiref==3.8.1 # via django -attrs==23.2.0 +attrs==24.2.0 # via zeep backoff==2.2.1 # via -r scripts/user_retirement/requirements/base.in -boto3==1.34.144 +boto3==1.34.154 # via -r scripts/user_retirement/requirements/base.in -botocore==1.34.144 +botocore==1.34.154 # via # boto3 # s3transfer @@ -20,7 +20,7 @@ cachetools==5.4.0 # via google-auth certifi==2024.7.4 # via requests -cffi==1.16.0 +cffi==1.17.0 # via # cryptography # pynacl @@ -33,9 +33,9 @@ click==8.1.6 # -c scripts/user_retirement/requirements/../../../requirements/constraints.txt # -r scripts/user_retirement/requirements/base.in # edx-django-utils -cryptography==42.0.8 +cryptography==43.0.0 # via pyjwt -django==4.2.14 +django==4.2.15 # via # -c scripts/user_retirement/requirements/../../../requirements/common_constraints.txt # -c scripts/user_retirement/requirements/../../../requirements/constraints.txt @@ -52,7 +52,7 @@ edx-rest-api-client==5.7.1 # via -r scripts/user_retirement/requirements/base.in google-api-core==2.19.1 # via google-api-python-client -google-api-python-client==2.137.0 +google-api-python-client==2.139.0 # via -r scripts/user_retirement/requirements/base.in google-auth==2.32.0 # via @@ -91,7 +91,7 @@ platformdirs==4.2.2 # via zeep proto-plus==1.24.0 # via google-api-core -protobuf==5.27.2 +protobuf==5.27.3 # via # google-api-core # googleapis-common-protos @@ -106,7 +106,7 @@ pyasn1-modules==0.4.0 # via google-auth pycparser==2.22 # via cffi -pyjwt[crypto]==2.8.0 +pyjwt[crypto]==2.9.0 # via # edx-rest-api-client # simple-salesforce diff --git a/scripts/user_retirement/requirements/testing.txt b/scripts/user_retirement/requirements/testing.txt index c0c8d5abba9e..006eabeef436 100644 --- a/scripts/user_retirement/requirements/testing.txt +++ b/scripts/user_retirement/requirements/testing.txt @@ -8,17 +8,17 @@ asgiref==3.8.1 # via # -r scripts/user_retirement/requirements/base.txt # django -attrs==23.2.0 +attrs==24.2.0 # via # -r scripts/user_retirement/requirements/base.txt # zeep backoff==2.2.1 # via -r scripts/user_retirement/requirements/base.txt -boto3==1.34.144 +boto3==1.34.154 # via # -r scripts/user_retirement/requirements/base.txt # moto -botocore==1.34.144 +botocore==1.34.154 # via # -r scripts/user_retirement/requirements/base.txt # boto3 @@ -32,7 +32,7 @@ certifi==2024.7.4 # via # -r scripts/user_retirement/requirements/base.txt # requests -cffi==1.16.0 +cffi==1.17.0 # via # -r scripts/user_retirement/requirements/base.txt # cryptography @@ -45,14 +45,14 @@ click==8.1.6 # via # -r scripts/user_retirement/requirements/base.txt # edx-django-utils -cryptography==42.0.8 +cryptography==43.0.0 # via # -r scripts/user_retirement/requirements/base.txt # moto # pyjwt ddt==1.7.2 # via -r scripts/user_retirement/requirements/testing.in -django==4.2.14 +django==4.2.15 # via # -r scripts/user_retirement/requirements/base.txt # django-crum @@ -76,7 +76,7 @@ google-api-core==2.19.1 # via # -r scripts/user_retirement/requirements/base.txt # google-api-python-client -google-api-python-client==2.137.0 +google-api-python-client==2.139.0 # via -r scripts/user_retirement/requirements/base.txt google-auth==2.32.0 # via @@ -152,7 +152,7 @@ proto-plus==1.24.0 # via # -r scripts/user_retirement/requirements/base.txt # google-api-core -protobuf==5.27.2 +protobuf==5.27.3 # via # -r scripts/user_retirement/requirements/base.txt # google-api-core @@ -175,7 +175,7 @@ pycparser==2.22 # via # -r scripts/user_retirement/requirements/base.txt # cffi -pyjwt[crypto]==2.8.0 +pyjwt[crypto]==2.9.0 # via # -r scripts/user_retirement/requirements/base.txt # edx-rest-api-client @@ -188,7 +188,7 @@ pyparsing==3.1.2 # via # -r scripts/user_retirement/requirements/base.txt # httplib2 -pytest==8.2.2 +pytest==8.3.2 # via -r scripts/user_retirement/requirements/testing.in python-dateutil==2.9.0.post0 # via From 9bd692413ad207877e87fd3a796698a308275f1e Mon Sep 17 00:00:00 2001 From: Ahtisham Shahid Date: Wed, 7 Aug 2024 14:55:02 +0500 Subject: [PATCH 12/13] fix: make course update email pref false (#35224) fix: updated unit tests fix: updated unit tests --- cms/djangoapps/contentstore/utils.py | 2 +- openedx/core/djangoapps/notifications/base_notification.py | 6 +++--- .../core/djangoapps/notifications/email/tests/test_utils.py | 4 ++-- openedx/core/djangoapps/notifications/models.py | 2 +- openedx/core/djangoapps/notifications/tests/test_tasks.py | 2 +- openedx/core/djangoapps/notifications/tests/test_views.py | 4 ++-- 6 files changed, 10 insertions(+), 10 deletions(-) diff --git a/cms/djangoapps/contentstore/utils.py b/cms/djangoapps/contentstore/utils.py index b268bd6fcb5d..631ceeb270b6 100644 --- a/cms/djangoapps/contentstore/utils.py +++ b/cms/djangoapps/contentstore/utils.py @@ -2255,7 +2255,7 @@ def send_course_update_notification(course_key, content, user): "course_update_content": text_content if len(text_content.strip()) < 10 else "Click here to view", **extra_context, }, - notification_type="course_update", + notification_type="course_updates", content_url=f"{settings.LMS_ROOT_URL}/courses/{str(course_key)}/course/updates", app_name="updates", audience_filters={}, diff --git a/openedx/core/djangoapps/notifications/base_notification.py b/openedx/core/djangoapps/notifications/base_notification.py index 302d77328765..2813002fdb77 100644 --- a/openedx/core/djangoapps/notifications/base_notification.py +++ b/openedx/core/djangoapps/notifications/base_notification.py @@ -169,13 +169,13 @@ 'email_template': '', 'filters': [FILTER_AUDIT_EXPIRED_USERS_WITH_NO_ROLE] }, - 'course_update': { + 'course_updates': { 'notification_app': 'updates', - 'name': 'course_update', + 'name': 'course_updates', 'is_core': False, 'info': '', 'web': True, - 'email': True, + 'email': False, 'push': True, 'email_cadence': EmailCadence.DAILY, 'non_editable': [], diff --git a/openedx/core/djangoapps/notifications/email/tests/test_utils.py b/openedx/core/djangoapps/notifications/email/tests/test_utils.py index 8d72ffd748b5..6e79c497a4fe 100644 --- a/openedx/core/djangoapps/notifications/email/tests/test_utils.py +++ b/openedx/core/djangoapps/notifications/email/tests/test_utils.py @@ -70,7 +70,7 @@ def test_create_app_notifications_dict(self): """ Notification.objects.all().delete() create_notification(self.user, self.course.id, app_name='discussion', notification_type='new_comment') - create_notification(self.user, self.course.id, app_name='updates', notification_type='course_update') + create_notification(self.user, self.course.id, app_name='updates', notification_type='course_updates') app_dict = create_app_notifications_dict(Notification.objects.all()) assert len(app_dict.keys()) == 2 for key in ['discussion', 'updates']: @@ -130,7 +130,7 @@ def test_email_digest_context(self, digest_frequency): discussion_notification = create_notification(self.user, self.course.id, app_name='discussion', notification_type='new_comment') update_notification = create_notification(self.user, self.course.id, app_name='updates', - notification_type='course_update') + notification_type='course_updates') app_dict = create_app_notifications_dict(Notification.objects.all()) end_date = datetime.datetime(2024, 3, 24, 12, 0) params = { diff --git a/openedx/core/djangoapps/notifications/models.py b/openedx/core/djangoapps/notifications/models.py index 8bf19edce56e..e1bdf94acc33 100644 --- a/openedx/core/djangoapps/notifications/models.py +++ b/openedx/core/djangoapps/notifications/models.py @@ -23,7 +23,7 @@ ADDITIONAL_NOTIFICATION_CHANNEL_SETTINGS = ['email_cadence'] # Update this version when there is a change to any course specific notification type or app. -COURSE_NOTIFICATION_CONFIG_VERSION = 10 +COURSE_NOTIFICATION_CONFIG_VERSION = 11 def get_course_notification_preference_config(): diff --git a/openedx/core/djangoapps/notifications/tests/test_tasks.py b/openedx/core/djangoapps/notifications/tests/test_tasks.py index 5058c0f492c3..706ae2989842 100644 --- a/openedx/core/djangoapps/notifications/tests/test_tasks.py +++ b/openedx/core/djangoapps/notifications/tests/test_tasks.py @@ -390,7 +390,7 @@ def test_app_name_param(self): """ assert not Notification.objects.all() create_notification(self.user, self.course_1.id, app_name='discussion', notification_type='new_comment') - create_notification(self.user, self.course_1.id, app_name='updates', notification_type='course_update') + create_notification(self.user, self.course_1.id, app_name='updates', notification_type='course_updates') delete_notifications({'app_name': 'discussion'}) assert not Notification.objects.filter(app_name='discussion') assert Notification.objects.filter(app_name='updates') diff --git a/openedx/core/djangoapps/notifications/tests/test_views.py b/openedx/core/djangoapps/notifications/tests/test_views.py index 389c9e7e06c9..d2968749efab 100644 --- a/openedx/core/djangoapps/notifications/tests/test_views.py +++ b/openedx/core/djangoapps/notifications/tests/test_views.py @@ -275,9 +275,9 @@ def _expected_api_response(self, course=None): 'enabled': True, 'core_notification_types': [], 'notification_types': { - 'course_update': { + 'course_updates': { 'web': True, - 'email': True, + 'email': False, 'push': True, 'email_cadence': 'Daily', 'info': '' From 99760f80f0f7d8c16f77fd1741ebb2346d740b4c Mon Sep 17 00:00:00 2001 From: Awais Qureshi Date: Wed, 7 Aug 2024 16:40:27 +0500 Subject: [PATCH 13/13] feat: Upgrading api list_course_role_members ( 2nd api ) (#35105) * feat: upgrading simple api to drf compatible. --- lms/djangoapps/instructor/views/api.py | 63 ++++++++++--------- lms/djangoapps/instructor/views/api_urls.py | 2 +- lms/djangoapps/instructor/views/serializer.py | 30 +++++++++ 3 files changed, 65 insertions(+), 30 deletions(-) create mode 100644 lms/djangoapps/instructor/views/serializer.py diff --git a/lms/djangoapps/instructor/views/api.py b/lms/djangoapps/instructor/views/api.py index a58762d0f3ad..6abfc81e75dd 100644 --- a/lms/djangoapps/instructor/views/api.py +++ b/lms/djangoapps/instructor/views/api.py @@ -105,6 +105,7 @@ from lms.djangoapps.instructor_task.api_helper import AlreadyRunningError, QueueConnectionError from lms.djangoapps.instructor_task.data import InstructorTaskTypes from lms.djangoapps.instructor_task.models import ReportStore +from lms.djangoapps.instructor.views.serializer import RoleNameSerializer, UserSerializer from openedx.core.djangoapps.content.course_overviews.models import CourseOverview from openedx.core.djangoapps.course_groups.cohorts import add_user_to_cohort, is_course_cohorted from openedx.core.djangoapps.course_groups.models import CourseUserGroup @@ -1064,15 +1065,11 @@ def modify_access(request, course_id): return JsonResponse(response_payload) -@require_POST -@ensure_csrf_cookie -@cache_control(no_cache=True, no_store=True, must_revalidate=True) -@require_course_permission(permissions.EDIT_COURSE_ACCESS) -@require_post_params(rolename="'instructor', 'staff', or 'beta'") -def list_course_role_members(request, course_id): +@method_decorator(cache_control(no_cache=True, no_store=True, must_revalidate=True), name='dispatch') +class ListCourseRoleMembersView(APIView): """ - List instructors and staff. - Requires instructor access. + View to list instructors and staff for a specific course. + Requires the user to have instructor access. rolename is one of ['instructor', 'staff', 'beta', 'ccx_coach'] @@ -1088,33 +1085,41 @@ def list_course_role_members(request, course_id): ] } """ - course_id = CourseKey.from_string(course_id) - course = get_course_with_access( - request.user, 'instructor', course_id, depth=None - ) + permission_classes = (IsAuthenticated, permissions.InstructorPermission) + permission_name = permissions.EDIT_COURSE_ACCESS - rolename = request.POST.get('rolename') + @method_decorator(ensure_csrf_cookie) + def post(self, request, course_id): + """ + Handles POST request to list instructors and staff. - if rolename not in ROLES: - return HttpResponseBadRequest() + Args: + request (HttpRequest): The request object containing user data. + course_id (str): The ID of the course to list instructors and staff for. - def extract_user_info(user): - """ convert user into dicts for json view """ + Returns: + Response: A Response object containing the list of instructors and staff or an error message. - return { - 'username': user.username, - 'email': user.email, - 'first_name': user.first_name, - 'last_name': user.last_name, + Raises: + Http404: If the course does not exist. + """ + course_id = CourseKey.from_string(course_id) + course = get_course_with_access( + request.user, 'instructor', course_id, depth=None + ) + role_serializer = RoleNameSerializer(data=request.data) + role_serializer.is_valid(raise_exception=True) + rolename = role_serializer.data['rolename'] + + users = list_with_level(course.id, rolename) + serializer = UserSerializer(users, many=True) + + response_payload = { + 'course_id': str(course_id), + rolename: serializer.data, } - response_payload = { - 'course_id': str(course_id), - rolename: list(map(extract_user_info, list_with_level( - course.id, rolename - ))), - } - return JsonResponse(response_payload) + return Response(response_payload, status=status.HTTP_200_OK) class ProblemResponseReportPostParamsSerializer(serializers.Serializer): # pylint: disable=abstract-method diff --git a/lms/djangoapps/instructor/views/api_urls.py b/lms/djangoapps/instructor/views/api_urls.py index 7f94a369ff47..fc9d5a342773 100644 --- a/lms/djangoapps/instructor/views/api_urls.py +++ b/lms/djangoapps/instructor/views/api_urls.py @@ -23,7 +23,7 @@ urlpatterns = [ path('students_update_enrollment', api.students_update_enrollment, name='students_update_enrollment'), path('register_and_enroll_students', api.register_and_enroll_students, name='register_and_enroll_students'), - path('list_course_role_members', api.list_course_role_members, name='list_course_role_members'), + path('list_course_role_members', api.ListCourseRoleMembersView.as_view(), name='list_course_role_members'), path('modify_access', api.modify_access, name='modify_access'), path('bulk_beta_modify_access', api.bulk_beta_modify_access, name='bulk_beta_modify_access'), path('get_problem_responses', api.get_problem_responses, name='get_problem_responses'), diff --git a/lms/djangoapps/instructor/views/serializer.py b/lms/djangoapps/instructor/views/serializer.py new file mode 100644 index 000000000000..b4f6f7626013 --- /dev/null +++ b/lms/djangoapps/instructor/views/serializer.py @@ -0,0 +1,30 @@ +""" Instructor apis serializers. """ + +from django.contrib.auth.models import User # lint-amnesty, pylint: disable=imported-auth-user +from django.core.exceptions import ValidationError +from django.utils.translation import gettext as _ +from rest_framework import serializers + +from lms.djangoapps.instructor.access import ROLES + + +class RoleNameSerializer(serializers.Serializer): # pylint: disable=abstract-method + """ + Serializer that describes the response of the problem response report generation API. + """ + + rolename = serializers.CharField(help_text=_("Role name")) + + def validate_rolename(self, value): + """ + Check that the rolename is valid. + """ + if value not in ROLES: + raise ValidationError(_("Invalid role name.")) + return value + + +class UserSerializer(serializers.ModelSerializer): + class Meta: + model = User + fields = ['username', 'email', 'first_name', 'last_name']