diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 665cf17e..f54c9413 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -16,7 +16,7 @@ jobs: fail-fast: false matrix: os: [ubuntu-20.04] - python-version: ['3.8'] + python-version: ['3.11'] toxenv: [django42, quality, pii_check] steps: @@ -38,7 +38,7 @@ jobs: run: tox - name: Run coverage - if: matrix.python-version == '3.8' && matrix.toxenv == 'django42' + if: matrix.python-version == '3.11' && matrix.toxenv == 'django42' uses: py-cov-action/python-coverage-comment-action@v3 with: GITHUB_TOKEN: ${{ github.token }} diff --git a/edx_exams/apps/core/management/commands/bulk_add_course_staff.py b/edx_exams/apps/core/management/commands/bulk_add_course_staff.py index 8edc1778..f6960832 100644 --- a/edx_exams/apps/core/management/commands/bulk_add_course_staff.py +++ b/edx_exams/apps/core/management/commands/bulk_add_course_staff.py @@ -4,7 +4,7 @@ import time from django.core.management.base import BaseCommand -from django.db import transaction +from django.db import IntegrityError, transaction from edx_exams.apps.core.models import CourseStaffRole, User @@ -63,34 +63,31 @@ def add_course_staff_from_csv(self, csv_file, batch_size, batch_delay): Add the given set of course staff provided in csv """ reader = list(csv.DictReader(csv_file)) + users = {} - # bulk create users for i in range(0, len(reader), batch_size): - User.objects.bulk_create( - (User( - username=row.get('username'), - email=row.get('email'), - ) for row in reader[i:i + batch_size]), - ignore_conflicts=True, - ) - CourseStaffRole.objects.bulk_create( - (CourseStaffRole( - user=User.objects.get(username=row.get('username')), - course_id=row.get('course_id'), - role=row.get('role'), - ) for row in reader[i:i + batch_size]), - ignore_conflicts=True, - ) + users_list = [] + for row in reader[i:i + batch_size]: + username = row.get('username') + email = row.get('email') + try: + users_list.append(User.objects.get_or_create(username=row.get('username'), email=row.get('email'))) + except IntegrityError: + logger.warning( + f'User with username={username} and email={email} was not created due to an existing duplicate ' + f'user with username.' + ) + continue + users_dict = {(u.username, u) for (u, c) in users_list} + users.update(users_dict) time.sleep(batch_delay) - # bulk create course staff - # for i in range(0, len(reader), batch_size): - # CourseStaffRole.objects.bulk_create( - # (CourseStaffRole( - # user=User.objects.get(username=row.get('username')), - # course_id=row.get('course_id'), - # role=row.get('role'), - # ) for row in reader[i:i + batch_size]), - # ignore_conflicts=True, - # ) - # time.sleep(batch_delay) + CourseStaffRole.objects.bulk_create( + (CourseStaffRole( + user=users.get(row.get('username')), + course_id=row.get('course_id'), + role=row.get('role'), + ) for row in reader), + ignore_conflicts=True, + batch_size=batch_size, + ) diff --git a/edx_exams/apps/core/management/commands/test/test_bulk_add_course_staff.py b/edx_exams/apps/core/management/commands/test/test_bulk_add_course_staff.py index 023974df..edf3b8b5 100644 --- a/edx_exams/apps/core/management/commands/test/test_bulk_add_course_staff.py +++ b/edx_exams/apps/core/management/commands/test/test_bulk_add_course_staff.py @@ -90,7 +90,7 @@ def test_add_course_staff_with_not_default_batch_size(self): 'sam,sam@pond.com,staff,course-v1:edx+test+f20\n'] with NamedTemporaryFile() as csv: csv = self._write_test_csv(csv, lines) - with self.assertNumQueries(8): + with self.assertNumQueries(12): call_command(self.command, f'--csv_path={csv.name}', '--batch_size=1') def test_add_course_staff_with_batch_size_larger_than_list(self): @@ -99,7 +99,7 @@ def test_add_course_staff_with_batch_size_larger_than_list(self): 'sam,sam@pond.com,staff,course-v1:edx+test+f20\n'] with NamedTemporaryFile() as csv: csv = self._write_test_csv(csv, lines) - with self.assertNumQueries(6): + with self.assertNumQueries(11): call_command(self.command, f'--csv_path={csv.name}', '--batch_size=3') def test_add_course_staff_with_batch_size_smaller_than_list(self): @@ -109,7 +109,7 @@ def test_add_course_staff_with_batch_size_smaller_than_list(self): 'tam,tam@pond.com,staff,course-v1:edx+test+f20\n'] with NamedTemporaryFile() as csv: csv = self._write_test_csv(csv, lines) - with self.assertNumQueries(9): + with self.assertNumQueries(16): call_command(self.command, f'--csv_path={csv.name}', '--batch_size=2') def test_add_course_staff_with_not_default_batch_delay(self): @@ -125,16 +125,16 @@ def test_add_course_staff_with_not_default_batch_delay(self): def test_num_queries_correct(self): """ - Assert the number of queries to be 4 + 1 * number of lines: + Assert the number of queries to be 2 + 1 * number of lines: 2 for savepoint/release savepoint - 1 to bulk create users, 1 to bulk create course role - 1 for each user (to get user) + 1 to bulk create course role + 4 for each user (to get user, and savepoints) """ num_lines = 20 lines = [f'pam{i},pam{i}@pond.com,staff,course-v1:edx+test+f20\n' for i in range(num_lines)] with NamedTemporaryFile() as csv: csv = self._write_test_csv(csv, lines) - with self.assertNumQueries(4 + num_lines): + with self.assertNumQueries(3 + 4 * num_lines): call_command(self.command, f'--csv_path={csv.name}') def test_dupe_user_csv(self): diff --git a/edx_exams/apps/core/migrations/0028_admin_optional_fields.py b/edx_exams/apps/core/migrations/0028_admin_optional_fields.py new file mode 100644 index 00000000..d3995b8c --- /dev/null +++ b/edx_exams/apps/core/migrations/0028_admin_optional_fields.py @@ -0,0 +1,63 @@ +# Generated by Django 4.2.13 on 2024-08-21 13:32 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('core', '0027_coursestaffrole_unique_course_staff_role'), + ] + + operations = [ + migrations.AlterField( + model_name='exam', + name='due_date', + field=models.DateTimeField(blank=True, null=True), + ), + migrations.AlterField( + model_name='examattempt', + name='end_time', + field=models.DateTimeField(blank=True, null=True), + ), + migrations.AlterField( + model_name='examattempt', + name='start_time', + field=models.DateTimeField(blank=True, null=True), + ), + migrations.AlterField( + model_name='historicalexam', + name='due_date', + field=models.DateTimeField(blank=True, null=True), + ), + migrations.AlterField( + model_name='historicalexamattempt', + name='end_time', + field=models.DateTimeField(blank=True, null=True), + ), + migrations.AlterField( + model_name='historicalexamattempt', + name='start_time', + field=models.DateTimeField(blank=True, null=True), + ), + migrations.AlterField( + model_name='proctoringprovider', + name='org_key', + field=models.CharField(blank=True, max_length=255, null=True), + ), + migrations.AlterField( + model_name='proctoringprovider', + name='tech_support_email', + field=models.CharField(blank=True, max_length=255, null=True), + ), + migrations.AlterField( + model_name='proctoringprovider', + name='tech_support_phone', + field=models.CharField(blank=True, max_length=255, null=True), + ), + migrations.AlterField( + model_name='proctoringprovider', + name='tech_support_url', + field=models.URLField(blank=True, max_length=255, null=True), + ), + ] diff --git a/edx_exams/apps/core/models.py b/edx_exams/apps/core/models.py index 0477d376..6c25079d 100644 --- a/edx_exams/apps/core/models.py +++ b/edx_exams/apps/core/models.py @@ -92,13 +92,13 @@ class ProctoringProvider(TimeStampedModel): lti_configuration_id = models.CharField(max_length=255, db_index=True) - org_key = models.CharField(max_length=255, null=True) + org_key = models.CharField(max_length=255, null=True, blank=True) - tech_support_phone = models.CharField(max_length=255, null=True) + tech_support_phone = models.CharField(max_length=255, null=True, blank=True) - tech_support_email = models.CharField(max_length=255, null=True) + tech_support_email = models.CharField(max_length=255, null=True, blank=True) - tech_support_url = models.URLField(max_length=255, null=True) + tech_support_url = models.URLField(max_length=255, null=True, blank=True) class Meta: """ Meta class for this Django model """ @@ -140,7 +140,7 @@ class Exam(TimeStampedModel): time_limit_mins = models.PositiveIntegerField() # Due date is a deadline to finish the exam - due_date = models.DateTimeField(null=True) + due_date = models.DateTimeField(null=True, blank=True) # Whether to hide this exam after the due date hide_after_due = models.BooleanField(default=False) @@ -208,9 +208,9 @@ class ExamAttempt(TimeStampedModel): status = models.CharField(max_length=64, choices=[(status, status) for status in STATUS_CHOICES]) - start_time = models.DateTimeField(null=True) + start_time = models.DateTimeField(null=True, blank=True) - end_time = models.DateTimeField(null=True) + end_time = models.DateTimeField(null=True, blank=True) allowed_time_limit_mins = models.IntegerField(null=True) diff --git a/requirements/base.txt b/requirements/base.txt index 8c6f1b3d..0701bca8 100644 --- a/requirements/base.txt +++ b/requirements/base.txt @@ -1,5 +1,5 @@ # -# This file is autogenerated by pip-compile with Python 3.8 +# This file is autogenerated by pip-compile with Python 3.9 # by the following command: # # make upgrade @@ -12,26 +12,22 @@ asgiref==3.8.1 # django-cors-headers async-timeout==4.0.3 # via redis -attrs==23.2.0 +attrs==24.2.0 # via # -r requirements/base.in # lti-consumer-xblock # openedx-events -backports-zoneinfo==0.2.1 - # via - # django - # djangorestframework bleach==6.1.0 # via lti-consumer-xblock -boto3==1.34.150 +boto3==1.35.9 # via fs-s3fs -botocore==1.34.150 +botocore==1.35.9 # via # boto3 # s3transfer -certifi==2024.7.4 +certifi==2024.8.30 # via requests -cffi==1.16.0 +cffi==1.17.0 # via # cryptography # pynacl @@ -57,7 +53,7 @@ defusedxml==0.8.0rc2 # via # python3-openid # social-auth-core -django==4.2.14 +django==4.2.15 # via # -c requirements/common_constraints.txt # -r requirements/base.in @@ -101,7 +97,7 @@ django-crum==0.7.9 # edx-toggles django-extensions==3.2.3 # via -r requirements/base.in -django-filter==24.2 +django-filter==24.3 # via lti-consumer-xblock django-model-utils==4.5.1 # via -r requirements/base.in @@ -142,7 +138,7 @@ edx-ccx-keys==1.3.0 # openedx-events edx-django-release-util==1.4.0 # via -r requirements/base.in -edx-django-utils==5.14.2 +edx-django-utils==5.15.0 # via # -r requirements/base.in # django-config-models @@ -154,7 +150,7 @@ edx-django-utils==5.14.2 # openedx-events edx-drf-extensions==10.3.0 # via -r requirements/base.in -edx-event-bus-kafka==5.7.0 +edx-event-bus-kafka==5.8.1 # via -r requirements/base.in edx-event-bus-redis==0.5.0 # via -r requirements/base.in @@ -184,7 +180,7 @@ fs-s3fs==1.1.1 # via openedx-django-pyfs future==1.0.0 # via pyjwkest -idna==3.7 +idna==3.8 # via requests inflection==0.5.1 # via drf-yasg @@ -204,7 +200,7 @@ lazy==1.6 # via lti-consumer-xblock lti-consumer-xblock==9.11.3 # via -r requirements/base.in -lxml==5.2.2 +lxml==5.3.0 # via # lti-consumer-xblock # xblock @@ -219,7 +215,7 @@ markupsafe==2.1.5 # xblock mysqlclient==2.2.4 # via -r requirements/base.in -newrelic==9.12.0 +newrelic==9.13.0 # via edx-django-utils oauthlib==3.2.2 # via @@ -228,9 +224,9 @@ oauthlib==3.2.2 # social-auth-core openapi-codec==1.3.2 # via django-rest-swagger -openedx-django-pyfs==3.6.0 +openedx-django-pyfs==3.7.0 # via lti-consumer-xblock -openedx-events==9.11.0 +openedx-events==9.12.0 # via # -r requirements/base.in # edx-event-bus-kafka @@ -239,7 +235,7 @@ openedx-filters==1.9.0 # via lti-consumer-xblock packaging==24.1 # via drf-yasg -pbr==6.0.0 +pbr==6.1.0 # via stevedore psutil==6.0.0 # via edx-django-utils @@ -253,7 +249,7 @@ pyjwkest==1.4.2 # via # edx-token-utils # lti-consumer-xblock -pyjwt[crypto]==2.8.0 +pyjwt[crypto]==2.9.0 # via # drf-jwt # edx-auth-backends @@ -279,7 +275,7 @@ pytz==2024.1 # -r requirements/base.in # drf-yasg # xblock -pyyaml==6.0.1 +pyyaml==6.0.2 # via # code-annotations # drf-yasg @@ -302,7 +298,7 @@ s3transfer==0.10.2 # via boto3 semantic-version==2.10.0 # via edx-drf-extensions -simplejson==3.19.2 +simplejson==3.19.3 # via # django-rest-swagger # xblock @@ -326,7 +322,7 @@ social-auth-core==4.5.4 # social-auth-app-django sqlparse==0.5.1 # via django -stevedore==5.2.0 +stevedore==5.3.0 # via # code-annotations # edx-django-utils @@ -341,7 +337,7 @@ uritemplate==4.1.1 # via # coreapi # drf-yasg -urllib3==1.26.19 +urllib3==1.26.20 # via # botocore # requests @@ -351,9 +347,9 @@ web-fragments==2.2.0 # via xblock webencodings==0.5.1 # via bleach -webob==1.8.7 +webob==1.8.8 # via xblock -xblock==5.0.0 +xblock==5.1.0 # via lti-consumer-xblock # The following packages are considered to be unsafe in a requirements file: diff --git a/requirements/ci.txt b/requirements/ci.txt index 4757e860..f6ce7251 100644 --- a/requirements/ci.txt +++ b/requirements/ci.txt @@ -1,16 +1,16 @@ # -# This file is autogenerated by pip-compile with Python 3.8 +# This file is autogenerated by pip-compile with Python 3.9 # by the following command: # # make upgrade # -cachetools==5.4.0 +cachetools==5.5.0 # via tox chardet==5.2.0 # via tox colorama==0.4.6 # via tox -coverage==7.6.0 +coverage==7.6.1 # via -r requirements/ci.in distlib==0.3.8 # via virtualenv @@ -34,7 +34,7 @@ tomli==2.0.1 # via # pyproject-api # tox -tox==4.16.0 +tox==4.18.0 # via -r requirements/ci.in virtualenv==20.26.3 # via tox diff --git a/requirements/common_constraints.txt b/requirements/common_constraints.txt index 16b6bd8a..fc95227a 100644 --- a/requirements/common_constraints.txt +++ b/requirements/common_constraints.txt @@ -24,15 +24,6 @@ elasticsearch<7.14.0 # django-simple-history>3.0.0 adds indexing and causes a lot of migrations to be affected -# opentelemetry requires version 6.x at the moment: -# https://github.com/open-telemetry/opentelemetry-python/issues/3570 -# Normally this could be added as a constraint in edx-django-utils, where we're -# adding the opentelemetry dependency. However, when we compile pip-tools.txt, -# that uses version 7.x, and then there's no undoing that when compiling base.txt. -# So we need to pin it globally, for now. -# Ticket for unpinning: https://github.com/openedx/edx-lint/issues/407 -importlib-metadata<7 - # Cause: https://github.com/openedx/event-tracking/pull/290 # event-tracking 2.4.1 upgrades to pymongo 4.4.0 which is not supported on edx-platform. # We will pin event-tracking to do not break existing installations diff --git a/requirements/dev.txt b/requirements/dev.txt index 316d3c74..93a2b56f 100644 --- a/requirements/dev.txt +++ b/requirements/dev.txt @@ -1,5 +1,5 @@ # -# This file is autogenerated by pip-compile with Python 3.8 +# This file is autogenerated by pip-compile with Python 3.9 # by the following command: # # make upgrade @@ -22,7 +22,7 @@ async-timeout==4.0.3 # via # -r requirements/validation.txt # redis -attrs==23.2.0 +attrs==24.2.0 # via # -r requirements/validation.txt # lti-consumer-xblock @@ -31,20 +31,15 @@ backports-tarfile==1.2.0 # via # -r requirements/validation.txt # jaraco-context -backports-zoneinfo==0.2.1 - # via - # -r requirements/validation.txt - # django - # djangorestframework bleach==6.1.0 # via # -r requirements/validation.txt # lti-consumer-xblock -boto3==1.34.150 +boto3==1.35.9 # via # -r requirements/validation.txt # fs-s3fs -botocore==1.34.150 +botocore==1.35.9 # via # -r requirements/validation.txt # boto3 @@ -53,15 +48,15 @@ build==1.2.1 # via # -r requirements/pip-tools.txt # pip-tools -cachetools==5.4.0 +cachetools==5.5.0 # via # -r requirements/validation.txt # tox -certifi==2024.7.4 +certifi==2024.8.30 # via # -r requirements/validation.txt # requests -cffi==1.16.0 +cffi==1.17.0 # via # -r requirements/validation.txt # cryptography @@ -106,7 +101,7 @@ coreschema==0.0.4 # via # -r requirements/validation.txt # coreapi -coverage[toml]==7.6.0 +coverage[toml]==7.6.1 # via # -r requirements/validation.txt # pytest-cov @@ -114,7 +109,6 @@ cryptography==43.0.0 # via # -r requirements/validation.txt # pyjwt - # secretstorage # social-auth-core ddt==1.7.2 # via -r requirements/validation.txt @@ -133,7 +127,7 @@ distlib==0.3.8 # via # -r requirements/validation.txt # virtualenv -django==4.2.14 +django==4.2.15 # via # -r requirements/validation.txt # django-appconf @@ -187,7 +181,7 @@ django-dynamic-fixture==4.0.1 # via -r requirements/validation.txt django-extensions==3.2.3 # via -r requirements/validation.txt -django-filter==24.2 +django-filter==24.3 # via # -r requirements/validation.txt # lti-consumer-xblock @@ -220,7 +214,7 @@ dnspython==2.6.1 # via # -r requirements/validation.txt # pymongo -docutils==0.20.1 +docutils==0.21.2 # via # -r requirements/validation.txt # readme-renderer @@ -243,7 +237,7 @@ edx-ccx-keys==1.3.0 # openedx-events edx-django-release-util==1.4.0 # via -r requirements/validation.txt -edx-django-utils==5.14.2 +edx-django-utils==5.15.0 # via # -r requirements/validation.txt # django-config-models @@ -255,13 +249,13 @@ edx-django-utils==5.14.2 # openedx-events edx-drf-extensions==10.3.0 # via -r requirements/validation.txt -edx-event-bus-kafka==5.7.0 +edx-event-bus-kafka==5.8.1 # via -r requirements/validation.txt edx-event-bus-redis==0.5.0 # via -r requirements/validation.txt -edx-i18n-tools==1.6.1 +edx-i18n-tools==1.6.2 # via -r requirements/dev.in -edx-lint==5.3.7 +edx-lint==5.4.0 # via -r requirements/validation.txt edx-opaque-keys[django]==2.10.0 # via @@ -283,9 +277,9 @@ exceptiongroup==1.2.2 # via # -r requirements/validation.txt # pytest -factory-boy==3.3.0 +factory-boy==3.3.1 # via -r requirements/validation.txt -faker==26.0.0 +faker==28.0.0 # via # -r requirements/validation.txt # factory-boy @@ -314,21 +308,17 @@ future==1.0.0 # via # -r requirements/validation.txt # pyjwkest -idna==3.7 +idna==3.8 # via # -r requirements/validation.txt # requests -importlib-metadata==6.11.0 +importlib-metadata==8.4.0 # via # -r requirements/pip-tools.txt # -r requirements/validation.txt # build # keyring # twine -importlib-resources==6.4.0 - # via - # -r requirements/validation.txt - # keyring inflection==0.5.1 # via # -r requirements/validation.txt @@ -349,19 +339,14 @@ jaraco-classes==3.4.0 # via # -r requirements/validation.txt # keyring -jaraco-context==5.3.0 +jaraco-context==6.0.1 # via # -r requirements/validation.txt # keyring -jaraco-functools==4.0.1 +jaraco-functools==4.0.2 # via # -r requirements/validation.txt # keyring -jeepney==0.8.0 - # via - # -r requirements/validation.txt - # keyring - # secretstorage jinja2==3.1.4 # via # -r requirements/validation.txt @@ -377,7 +362,7 @@ jsonfield==3.1.0 # via # -r requirements/validation.txt # lti-consumer-xblock -keyring==25.2.1 +keyring==25.3.0 # via # -r requirements/validation.txt # twine @@ -387,15 +372,12 @@ lazy==1.6 # lti-consumer-xblock lti-consumer-xblock==9.11.3 # via -r requirements/validation.txt -lxml[html-clean]==5.2.2 +lxml==5.3.0 # via # -r requirements/validation.txt # edx-i18n-tools # lti-consumer-xblock - # lxml-html-clean # xblock -lxml-html-clean==0.2.0 - # via lxml mako==1.3.5 # via # -r requirements/validation.txt @@ -421,14 +403,14 @@ mdurl==0.1.2 # markdown-it-py mock==5.1.0 # via -r requirements/validation.txt -more-itertools==10.3.0 +more-itertools==10.4.0 # via # -r requirements/validation.txt # jaraco-classes # jaraco-functools mysqlclient==2.2.4 # via -r requirements/validation.txt -newrelic==9.12.0 +newrelic==9.13.0 # via # -r requirements/validation.txt # edx-django-utils @@ -446,11 +428,11 @@ openapi-codec==1.3.2 # via # -r requirements/validation.txt # django-rest-swagger -openedx-django-pyfs==3.6.0 +openedx-django-pyfs==3.7.0 # via # -r requirements/validation.txt # lti-consumer-xblock -openedx-events==9.11.0 +openedx-events==9.12.0 # via # -r requirements/validation.txt # edx-event-bus-kafka @@ -468,9 +450,9 @@ packaging==24.1 # pyproject-api # pytest # tox -path==17.0.0 +path==16.16.0 # via edx-i18n-tools -pbr==6.0.0 +pbr==6.1.0 # via # -r requirements/validation.txt # stevedore @@ -498,7 +480,7 @@ psutil==6.0.0 # via # -r requirements/validation.txt # edx-django-utils -pycodestyle==2.12.0 +pycodestyle==2.12.1 # via -r requirements/validation.txt pycparser==2.22 # via @@ -522,7 +504,7 @@ pyjwkest==1.4.2 # -r requirements/validation.txt # edx-token-utils # lti-consumer-xblock -pyjwt[crypto]==2.8.0 +pyjwt[crypto]==2.9.0 # via # -r requirements/validation.txt # drf-jwt @@ -598,7 +580,7 @@ pytz==2024.1 # -r requirements/validation.txt # drf-yasg # xblock -pyyaml==6.0.1 +pyyaml==6.0.2 # via # -r requirements/validation.txt # code-annotations @@ -607,7 +589,7 @@ pyyaml==6.0.1 # edx-i18n-tools # responses # xblock -readme-renderer==43.0 +readme-renderer==44.0 # via # -r requirements/validation.txt # twine @@ -642,7 +624,7 @@ rfc3986==2.0.0 # via # -r requirements/validation.txt # twine -rich==13.7.1 +rich==13.8.0 # via # -r requirements/validation.txt # twine @@ -650,15 +632,11 @@ s3transfer==0.10.2 # via # -r requirements/validation.txt # boto3 -secretstorage==3.3.3 - # via - # -r requirements/validation.txt - # keyring semantic-version==2.10.0 # via # -r requirements/validation.txt # edx-drf-extensions -simplejson==3.19.2 +simplejson==3.19.3 # via # -r requirements/validation.txt # django-rest-swagger @@ -697,7 +675,7 @@ sqlparse==0.5.1 # -r requirements/validation.txt # django # django-debug-toolbar -stevedore==5.2.0 +stevedore==5.3.0 # via # -r requirements/validation.txt # code-annotations @@ -718,11 +696,11 @@ tomli==2.0.1 # pyproject-api # pytest # tox -tomlkit==0.13.0 +tomlkit==0.13.2 # via # -r requirements/validation.txt # pylint -tox==4.16.0 +tox==4.18.0 # via -r requirements/validation.txt twine==5.1.1 # via -r requirements/validation.txt @@ -733,13 +711,12 @@ typing-extensions==4.12.2 # astroid # edx-opaque-keys # pylint - # rich uritemplate==4.1.1 # via # -r requirements/validation.txt # coreapi # drf-yasg -urllib3==1.26.19 +urllib3==1.26.20 # via # -r requirements/validation.txt # botocore @@ -762,24 +739,23 @@ webencodings==0.5.1 # via # -r requirements/validation.txt # bleach -webob==1.8.7 +webob==1.8.8 # via # -r requirements/validation.txt # xblock -wheel==0.43.0 +wheel==0.44.0 # via # -r requirements/pip-tools.txt # pip-tools -xblock==5.0.0 +xblock==5.1.0 # via # -r requirements/validation.txt # lti-consumer-xblock -zipp==3.19.2 +zipp==3.20.1 # via # -r requirements/pip-tools.txt # -r requirements/validation.txt # importlib-metadata - # importlib-resources # The following packages are considered to be unsafe in a requirements file: # pip diff --git a/requirements/django.txt b/requirements/django.txt index 549c1f8b..16bc98be 100644 --- a/requirements/django.txt +++ b/requirements/django.txt @@ -1 +1 @@ -django==4.2.14 +django==4.2.15 diff --git a/requirements/doc.txt b/requirements/doc.txt index e77709a4..92eb463b 100644 --- a/requirements/doc.txt +++ b/requirements/doc.txt @@ -1,12 +1,12 @@ # -# This file is autogenerated by pip-compile with Python 3.8 +# This file is autogenerated by pip-compile with Python 3.9 # by the following command: # # make upgrade # accessible-pygments==0.0.5 # via pydata-sphinx-theme -alabaster==0.7.13 +alabaster==0.7.16 # via sphinx appdirs==1.4.4 # via @@ -26,45 +26,44 @@ async-timeout==4.0.3 # via # -r requirements/test.txt # redis -attrs==23.2.0 +attrs==24.2.0 # via # -r requirements/test.txt # lti-consumer-xblock # openedx-events -babel==2.15.0 - # via - # pydata-sphinx-theme - # sphinx +babel==2.16.0 + # via sphinx backports-tarfile==1.2.0 # via jaraco-context -backports-zoneinfo==0.2.1 - # via -r requirements/test.txt beautifulsoup4==4.12.3 # via pydata-sphinx-theme + +backports-tarfile==1.2.0 + # via jaraco-context bleach==6.1.0 # via # -r requirements/test.txt # lti-consumer-xblock -boto3==1.34.150 +boto3==1.35.9 # via # -r requirements/test.txt # fs-s3fs -botocore==1.34.150 +botocore==1.35.9 # via # -r requirements/test.txt # boto3 # s3transfer build==1.2.1 # via -r requirements/doc.in -cachetools==5.4.0 +cachetools==5.5.0 # via # -r requirements/test.txt # tox -certifi==2024.7.4 +certifi==2024.8.30 # via # -r requirements/test.txt # requests -cffi==1.16.0 +cffi==1.17.0 # via # -r requirements/test.txt # cryptography @@ -106,7 +105,7 @@ coreschema==0.0.4 # via # -r requirements/test.txt # coreapi -coverage[toml]==7.6.0 +coverage[toml]==7.6.1 # via # -r requirements/test.txt # pytest-cov @@ -114,7 +113,6 @@ cryptography==43.0.0 # via # -r requirements/test.txt # pyjwt - # secretstorage # social-auth-core ddt==1.7.2 # via -r requirements/test.txt @@ -131,7 +129,7 @@ distlib==0.3.8 # via # -r requirements/test.txt # virtualenv -django==4.2.14 +django==4.2.15 # via # -c requirements/common_constraints.txt # django-appconf @@ -181,7 +179,7 @@ django-dynamic-fixture==4.0.1 # via -r requirements/test.txt django-extensions==3.2.3 # via -r requirements/test.txt -django-filter==24.2 +django-filter==24.3 # via # -r requirements/test.txt # lti-consumer-xblock @@ -242,7 +240,7 @@ edx-ccx-keys==1.3.0 # openedx-events edx-django-release-util==1.4.0 # via -r requirements/test.txt -edx-django-utils==5.14.2 +edx-django-utils==5.15.0 # via # -r requirements/test.txt # django-config-models @@ -254,11 +252,11 @@ edx-django-utils==5.14.2 # openedx-events edx-drf-extensions==10.3.0 # via -r requirements/test.txt -edx-event-bus-kafka==5.7.0 +edx-event-bus-kafka==5.8.1 # via -r requirements/test.txt edx-event-bus-redis==0.5.0 # via -r requirements/test.txt -edx-lint==5.3.7 +edx-lint==5.4.0 # via -r requirements/test.txt edx-opaque-keys[django]==2.10.0 # via @@ -280,9 +278,9 @@ exceptiongroup==1.2.2 # via # -r requirements/test.txt # pytest -factory-boy==3.3.0 +factory-boy==3.3.1 # via -r requirements/test.txt -faker==26.0.0 +faker==28.0.0 # via # -r requirements/test.txt # factory-boy @@ -311,15 +309,14 @@ future==1.0.0 # via # -r requirements/test.txt # pyjwkest -idna==3.7 +idna==3.8 # via # -r requirements/test.txt # requests imagesize==1.4.1 # via sphinx -importlib-metadata==6.11.0 +importlib-metadata==8.4.0 # via - # -c requirements/common_constraints.txt # build # keyring # sphinx @@ -342,14 +339,10 @@ itypes==1.2.0 # coreapi jaraco-classes==3.4.0 # via keyring -jaraco-context==5.3.0 +jaraco-context==6.0.1 # via keyring -jaraco-functools==4.0.1 +jaraco-functools==4.0.2 # via keyring -jeepney==0.8.0 - # via - # keyring - # secretstorage jinja2==3.1.4 # via # -r requirements/test.txt @@ -365,7 +358,7 @@ jsonfield==3.1.0 # via # -r requirements/test.txt # lti-consumer-xblock -keyring==25.2.1 +keyring==25.3.0 # via twine lazy==1.6 # via @@ -373,7 +366,7 @@ lazy==1.6 # lti-consumer-xblock lti-consumer-xblock==9.11.3 # via -r requirements/test.txt -lxml==5.2.2 +lxml==5.3.0 # via # -r requirements/test.txt # lti-consumer-xblock @@ -399,13 +392,13 @@ mdurl==0.1.2 # via markdown-it-py mock==5.1.0 # via -r requirements/test.txt -more-itertools==10.3.0 +more-itertools==10.4.0 # via # jaraco-classes # jaraco-functools mysqlclient==2.2.4 # via -r requirements/test.txt -newrelic==9.12.0 +newrelic==9.13.0 # via # -r requirements/test.txt # edx-django-utils @@ -421,11 +414,11 @@ openapi-codec==1.3.2 # via # -r requirements/test.txt # django-rest-swagger -openedx-django-pyfs==3.6.0 +openedx-django-pyfs==3.7.0 # via # -r requirements/test.txt # lti-consumer-xblock -openedx-events==9.11.0 +openedx-events==9.12.0 # via # -r requirements/test.txt # edx-event-bus-kafka @@ -444,7 +437,7 @@ packaging==24.1 # pytest # sphinx # tox -pbr==6.0.0 +pbr==6.1.0 # via # -r requirements/test.txt # stevedore @@ -489,7 +482,7 @@ pyjwkest==1.4.2 # -r requirements/test.txt # edx-token-utils # lti-consumer-xblock -pyjwt[crypto]==2.8.0 +pyjwt[crypto]==2.9.0 # via # -r requirements/test.txt # drf-jwt @@ -562,7 +555,7 @@ pytz==2024.1 # -r requirements/test.txt # drf-yasg # xblock -pyyaml==6.0.1 +pyyaml==6.0.2 # via # -r requirements/test.txt # code-annotations @@ -602,19 +595,17 @@ restructuredtext-lint==1.4.0 # via doc8 rfc3986==2.0.0 # via twine -rich==13.7.1 +rich==13.8.0 # via twine s3transfer==0.10.2 # via # -r requirements/test.txt # boto3 -secretstorage==3.3.3 - # via keyring semantic-version==2.10.0 # via # -r requirements/test.txt # edx-drf-extensions -simplejson==3.19.2 +simplejson==3.19.3 # via # -r requirements/test.txt # django-rest-swagger @@ -655,23 +646,23 @@ sphinx==5.3.0 # sphinx-book-theme sphinx-book-theme==1.1.3 # via -r requirements/doc.in -sphinxcontrib-applehelp==1.0.4 +sphinxcontrib-applehelp==2.0.0 # via sphinx -sphinxcontrib-devhelp==1.0.2 +sphinxcontrib-devhelp==2.0.0 # via sphinx -sphinxcontrib-htmlhelp==2.0.1 +sphinxcontrib-htmlhelp==2.1.0 # via sphinx sphinxcontrib-jsmath==1.0.1 # via sphinx -sphinxcontrib-qthelp==1.0.3 +sphinxcontrib-qthelp==2.0.0 # via sphinx -sphinxcontrib-serializinghtml==1.1.5 +sphinxcontrib-serializinghtml==2.0.0 # via sphinx sqlparse==0.5.1 # via # -r requirements/test.txt # django -stevedore==5.2.0 +stevedore==5.3.0 # via # -r requirements/test.txt # code-annotations @@ -692,11 +683,11 @@ tomli==2.0.1 # pyproject-api # pytest # tox -tomlkit==0.13.0 +tomlkit==0.13.2 # via # -r requirements/test.txt # pylint -tox==4.16.0 +tox==4.18.0 # via -r requirements/test.txt twine==5.1.1 # via -r requirements/doc.in @@ -713,7 +704,7 @@ uritemplate==4.1.1 # -r requirements/test.txt # coreapi # drf-yasg -urllib3==1.26.19 +urllib3==1.26.20 # via # -r requirements/test.txt # botocore @@ -736,15 +727,15 @@ webencodings==0.5.1 # via # -r requirements/test.txt # bleach -webob==1.8.7 +webob==1.8.8 # via # -r requirements/test.txt # xblock -xblock==5.0.0 +xblock==5.1.0 # via # -r requirements/test.txt # lti-consumer-xblock -zipp==3.19.2 +zipp==3.20.1 # via importlib-metadata # The following packages are considered to be unsafe in a requirements file: diff --git a/requirements/pip-tools.txt b/requirements/pip-tools.txt index f577da4d..b2f2a43c 100644 --- a/requirements/pip-tools.txt +++ b/requirements/pip-tools.txt @@ -1,5 +1,5 @@ # -# This file is autogenerated by pip-compile with Python 3.8 +# This file is autogenerated by pip-compile with Python 3.9 # by the following command: # # make upgrade @@ -8,10 +8,8 @@ build==1.2.1 # via pip-tools click==8.1.7 # via pip-tools -importlib-metadata==6.11.0 - # via - # -c requirements/common_constraints.txt - # build +importlib-metadata==8.4.0 + # via build packaging==24.1 # via build pip-tools==7.4.1 @@ -24,9 +22,9 @@ tomli==2.0.1 # via # build # pip-tools -wheel==0.43.0 +wheel==0.44.0 # via pip-tools -zipp==3.19.2 +zipp==3.20.1 # via importlib-metadata # The following packages are considered to be unsafe in a requirements file: diff --git a/requirements/pip.txt b/requirements/pip.txt index 7b187b8d..a10b0987 100644 --- a/requirements/pip.txt +++ b/requirements/pip.txt @@ -1,14 +1,14 @@ # -# This file is autogenerated by pip-compile with Python 3.8 +# This file is autogenerated by pip-compile with Python 3.9 # by the following command: # # 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.2 # via -r requirements/pip.in -setuptools==72.1.0 +setuptools==74.0.0 # via -r requirements/pip.in diff --git a/requirements/production.txt b/requirements/production.txt index 7ade83ee..a5fb5ce2 100644 --- a/requirements/production.txt +++ b/requirements/production.txt @@ -1,5 +1,5 @@ # -# This file is autogenerated by pip-compile with Python 3.8 +# This file is autogenerated by pip-compile with Python 3.9 # by the following command: # # make upgrade @@ -17,35 +17,30 @@ async-timeout==4.0.3 # via # -r requirements/base.txt # redis -attrs==23.2.0 +attrs==24.2.0 # via # -r requirements/base.txt # lti-consumer-xblock # openedx-events -backports-zoneinfo==0.2.1 - # via - # -r requirements/base.txt - # django - # djangorestframework bleach==6.1.0 # via # -r requirements/base.txt # lti-consumer-xblock -boto3==1.34.150 +boto3==1.35.9 # via # -r requirements/base.txt # django-ses # fs-s3fs -botocore==1.34.150 +botocore==1.35.9 # via # -r requirements/base.txt # boto3 # s3transfer -certifi==2024.7.4 +certifi==2024.8.30 # via # -r requirements/base.txt # requests -cffi==1.16.0 +cffi==1.17.0 # via # -r requirements/base.txt # cryptography @@ -82,7 +77,7 @@ defusedxml==0.8.0rc2 # -r requirements/base.txt # python3-openid # social-auth-core -django==4.2.14 +django==4.2.15 # via # -r requirements/base.txt # django-appconf @@ -131,7 +126,7 @@ django-crum==0.7.9 # edx-toggles django-extensions==3.2.3 # via -r requirements/base.txt -django-filter==24.2 +django-filter==24.3 # via # -r requirements/base.txt # lti-consumer-xblock @@ -139,7 +134,7 @@ django-model-utils==4.5.1 # via -r requirements/base.txt django-rest-swagger==2.2.0 # via -r requirements/base.txt -django-ses==4.1.0 +django-ses==4.1.1 # via -r requirements/production.in django-simple-history==3.7.0 # via -r requirements/base.txt @@ -185,7 +180,7 @@ edx-ccx-keys==1.3.0 # openedx-events edx-django-release-util==1.4.0 # via -r requirements/base.txt -edx-django-utils==5.14.2 +edx-django-utils==5.15.0 # via # -r requirements/base.txt # django-config-models @@ -197,7 +192,7 @@ edx-django-utils==5.14.2 # openedx-events edx-drf-extensions==10.3.0 # via -r requirements/base.txt -edx-event-bus-kafka==5.7.0 +edx-event-bus-kafka==5.8.1 # via -r requirements/base.txt edx-event-bus-redis==0.5.0 # via -r requirements/base.txt @@ -239,9 +234,9 @@ gevent==24.2.1 # via -r requirements/production.in greenlet==3.0.3 # via gevent -gunicorn==22.0.0 +gunicorn==23.0.0 # via -r requirements/production.in -idna==3.7 +idna==3.8 # via # -r requirements/base.txt # requests @@ -273,7 +268,7 @@ lazy==1.6 # lti-consumer-xblock lti-consumer-xblock==9.11.3 # via -r requirements/base.txt -lxml==5.2.2 +lxml==5.3.0 # via # -r requirements/base.txt # lti-consumer-xblock @@ -293,7 +288,7 @@ mysqlclient==2.2.4 # via # -r requirements/base.txt # -r requirements/production.in -newrelic==9.12.0 +newrelic==9.13.0 # via # -r requirements/base.txt # edx-django-utils @@ -307,11 +302,11 @@ openapi-codec==1.3.2 # via # -r requirements/base.txt # django-rest-swagger -openedx-django-pyfs==3.6.0 +openedx-django-pyfs==3.7.0 # via # -r requirements/base.txt # lti-consumer-xblock -openedx-events==9.11.0 +openedx-events==9.12.0 # via # -r requirements/base.txt # edx-event-bus-kafka @@ -325,7 +320,7 @@ packaging==24.1 # -r requirements/base.txt # drf-yasg # gunicorn -pbr==6.0.0 +pbr==6.1.0 # via # -r requirements/base.txt # stevedore @@ -347,7 +342,7 @@ pyjwkest==1.4.2 # -r requirements/base.txt # edx-token-utils # lti-consumer-xblock -pyjwt[crypto]==2.8.0 +pyjwt[crypto]==2.9.0 # via # -r requirements/base.txt # drf-jwt @@ -383,10 +378,9 @@ python3-openid==3.2.0 pytz==2024.1 # via # -r requirements/base.txt - # django-ses # drf-yasg # xblock -pyyaml==6.0.1 +pyyaml==6.0.2 # via # -r requirements/base.txt # -r requirements/production.in @@ -420,7 +414,7 @@ semantic-version==2.10.0 # via # -r requirements/base.txt # edx-drf-extensions -simplejson==3.19.2 +simplejson==3.19.3 # via # -r requirements/base.txt # django-rest-swagger @@ -453,7 +447,7 @@ sqlparse==0.5.1 # via # -r requirements/base.txt # django -stevedore==5.2.0 +stevedore==5.3.0 # via # -r requirements/base.txt # code-annotations @@ -473,7 +467,7 @@ uritemplate==4.1.1 # -r requirements/base.txt # coreapi # drf-yasg -urllib3==1.26.19 +urllib3==1.26.20 # via # -r requirements/base.txt # botocore @@ -490,17 +484,17 @@ webencodings==0.5.1 # via # -r requirements/base.txt # bleach -webob==1.8.7 +webob==1.8.8 # via # -r requirements/base.txt # xblock -xblock==5.0.0 +xblock==5.1.0 # via # -r requirements/base.txt # lti-consumer-xblock zope-event==5.0 # via gevent -zope-interface==6.4.post2 +zope-interface==7.0.3 # via gevent # The following packages are considered to be unsafe in a requirements file: diff --git a/requirements/quality.txt b/requirements/quality.txt index 90b80ae0..44bc5de8 100644 --- a/requirements/quality.txt +++ b/requirements/quality.txt @@ -1,5 +1,5 @@ # -# This file is autogenerated by pip-compile with Python 3.8 +# This file is autogenerated by pip-compile with Python 3.9 # by the following command: # # make upgrade @@ -22,40 +22,35 @@ async-timeout==4.0.3 # via # -r requirements/test.txt # redis -attrs==23.2.0 +attrs==24.2.0 # via # -r requirements/test.txt # lti-consumer-xblock # openedx-events backports-tarfile==1.2.0 # via jaraco-context -backports-zoneinfo==0.2.1 - # via - # -r requirements/test.txt - # django - # djangorestframework bleach==6.1.0 # via # -r requirements/test.txt # lti-consumer-xblock -boto3==1.34.150 +boto3==1.35.9 # via # -r requirements/test.txt # fs-s3fs -botocore==1.34.150 +botocore==1.35.9 # via # -r requirements/test.txt # boto3 # s3transfer -cachetools==5.4.0 +cachetools==5.5.0 # via # -r requirements/test.txt # tox -certifi==2024.7.4 +certifi==2024.8.30 # via # -r requirements/test.txt # requests -cffi==1.16.0 +cffi==1.17.0 # via # -r requirements/test.txt # cryptography @@ -97,7 +92,7 @@ coreschema==0.0.4 # via # -r requirements/test.txt # coreapi -coverage[toml]==7.6.0 +coverage[toml]==7.6.1 # via # -r requirements/test.txt # pytest-cov @@ -105,7 +100,6 @@ cryptography==43.0.0 # via # -r requirements/test.txt # pyjwt - # secretstorage # social-auth-core ddt==1.7.2 # via -r requirements/test.txt @@ -122,7 +116,7 @@ distlib==0.3.8 # via # -r requirements/test.txt # virtualenv -django==4.2.14 +django==4.2.15 # via # -c requirements/common_constraints.txt # -r requirements/test.txt @@ -173,7 +167,7 @@ django-dynamic-fixture==4.0.1 # via -r requirements/test.txt django-extensions==3.2.3 # via -r requirements/test.txt -django-filter==24.2 +django-filter==24.3 # via # -r requirements/test.txt # lti-consumer-xblock @@ -206,7 +200,7 @@ dnspython==2.6.1 # via # -r requirements/test.txt # pymongo -docutils==0.20.1 +docutils==0.21.2 # via readme-renderer drf-jwt==1.19.2 # via @@ -227,7 +221,7 @@ edx-ccx-keys==1.3.0 # openedx-events edx-django-release-util==1.4.0 # via -r requirements/test.txt -edx-django-utils==5.14.2 +edx-django-utils==5.15.0 # via # -r requirements/test.txt # django-config-models @@ -239,11 +233,11 @@ edx-django-utils==5.14.2 # openedx-events edx-drf-extensions==10.3.0 # via -r requirements/test.txt -edx-event-bus-kafka==5.7.0 +edx-event-bus-kafka==5.8.1 # via -r requirements/test.txt edx-event-bus-redis==0.5.0 # via -r requirements/test.txt -edx-lint==5.3.7 +edx-lint==5.4.0 # via # -r requirements/quality.in # -r requirements/test.txt @@ -267,9 +261,9 @@ exceptiongroup==1.2.2 # via # -r requirements/test.txt # pytest -factory-boy==3.3.0 +factory-boy==3.3.1 # via -r requirements/test.txt -faker==26.0.0 +faker==28.0.0 # via # -r requirements/test.txt # factory-boy @@ -298,17 +292,14 @@ future==1.0.0 # via # -r requirements/test.txt # pyjwkest -idna==3.7 +idna==3.8 # via # -r requirements/test.txt # requests -importlib-metadata==6.11.0 +importlib-metadata==8.4.0 # via - # -c requirements/common_constraints.txt # keyring # twine -importlib-resources==6.4.0 - # via keyring inflection==0.5.1 # via # -r requirements/test.txt @@ -328,14 +319,10 @@ itypes==1.2.0 # coreapi jaraco-classes==3.4.0 # via keyring -jaraco-context==5.3.0 +jaraco-context==6.0.1 # via keyring -jaraco-functools==4.0.1 +jaraco-functools==4.0.2 # via keyring -jeepney==0.8.0 - # via - # keyring - # secretstorage jinja2==3.1.4 # via # -r requirements/test.txt @@ -350,7 +337,7 @@ jsonfield==3.1.0 # via # -r requirements/test.txt # lti-consumer-xblock -keyring==25.2.1 +keyring==25.3.0 # via twine lazy==1.6 # via @@ -358,7 +345,7 @@ lazy==1.6 # lti-consumer-xblock lti-consumer-xblock==9.11.3 # via -r requirements/test.txt -lxml==5.2.2 +lxml==5.3.0 # via # -r requirements/test.txt # lti-consumer-xblock @@ -384,13 +371,13 @@ mdurl==0.1.2 # via markdown-it-py mock==5.1.0 # via -r requirements/test.txt -more-itertools==10.3.0 +more-itertools==10.4.0 # via # jaraco-classes # jaraco-functools mysqlclient==2.2.4 # via -r requirements/test.txt -newrelic==9.12.0 +newrelic==9.13.0 # via # -r requirements/test.txt # edx-django-utils @@ -406,11 +393,11 @@ openapi-codec==1.3.2 # via # -r requirements/test.txt # django-rest-swagger -openedx-django-pyfs==3.6.0 +openedx-django-pyfs==3.7.0 # via # -r requirements/test.txt # lti-consumer-xblock -openedx-events==9.11.0 +openedx-events==9.12.0 # via # -r requirements/test.txt # edx-event-bus-kafka @@ -426,7 +413,7 @@ packaging==24.1 # pyproject-api # pytest # tox -pbr==6.0.0 +pbr==6.1.0 # via # -r requirements/test.txt # stevedore @@ -447,7 +434,7 @@ psutil==6.0.0 # via # -r requirements/test.txt # edx-django-utils -pycodestyle==2.12.0 +pycodestyle==2.12.1 # via -r requirements/quality.in pycparser==2.22 # via @@ -469,7 +456,7 @@ pyjwkest==1.4.2 # -r requirements/test.txt # edx-token-utils # lti-consumer-xblock -pyjwt[crypto]==2.8.0 +pyjwt[crypto]==2.9.0 # via # -r requirements/test.txt # drf-jwt @@ -540,7 +527,7 @@ pytz==2024.1 # -r requirements/test.txt # drf-yasg # xblock -pyyaml==6.0.1 +pyyaml==6.0.2 # via # -r requirements/test.txt # code-annotations @@ -548,7 +535,7 @@ pyyaml==6.0.1 # edx-django-release-util # responses # xblock -readme-renderer==43.0 +readme-renderer==44.0 # via twine redis==5.0.8 # via @@ -577,19 +564,17 @@ responses==0.25.3 # via -r requirements/test.txt rfc3986==2.0.0 # via twine -rich==13.7.1 +rich==13.8.0 # via twine s3transfer==0.10.2 # via # -r requirements/test.txt # boto3 -secretstorage==3.3.3 - # via keyring semantic-version==2.10.0 # via # -r requirements/test.txt # edx-drf-extensions -simplejson==3.19.2 +simplejson==3.19.3 # via # -r requirements/test.txt # django-rest-swagger @@ -625,7 +610,7 @@ sqlparse==0.5.1 # via # -r requirements/test.txt # django -stevedore==5.2.0 +stevedore==5.3.0 # via # -r requirements/test.txt # code-annotations @@ -643,11 +628,11 @@ tomli==2.0.1 # pyproject-api # pytest # tox -tomlkit==0.13.0 +tomlkit==0.13.2 # via # -r requirements/test.txt # pylint -tox==4.16.0 +tox==4.18.0 # via -r requirements/test.txt twine==5.1.1 # via -r requirements/quality.in @@ -658,13 +643,12 @@ typing-extensions==4.12.2 # astroid # edx-opaque-keys # pylint - # rich uritemplate==4.1.1 # via # -r requirements/test.txt # coreapi # drf-yasg -urllib3==1.26.19 +urllib3==1.26.20 # via # -r requirements/test.txt # botocore @@ -687,18 +671,16 @@ webencodings==0.5.1 # via # -r requirements/test.txt # bleach -webob==1.8.7 +webob==1.8.8 # via # -r requirements/test.txt # xblock -xblock==5.0.0 +xblock==5.1.0 # via # -r requirements/test.txt # lti-consumer-xblock -zipp==3.19.2 - # via - # importlib-metadata - # importlib-resources +zipp==3.20.1 + # via importlib-metadata # The following packages are considered to be unsafe in a requirements file: # setuptools diff --git a/requirements/test.txt b/requirements/test.txt index c96e83f9..93660e45 100644 --- a/requirements/test.txt +++ b/requirements/test.txt @@ -1,5 +1,5 @@ # -# This file is autogenerated by pip-compile with Python 3.8 +# This file is autogenerated by pip-compile with Python 3.9 # by the following command: # # make upgrade @@ -21,36 +21,31 @@ async-timeout==4.0.3 # via # -r requirements/base.txt # redis -attrs==23.2.0 +attrs==24.2.0 # via # -r requirements/base.txt # lti-consumer-xblock # openedx-events -backports-zoneinfo==0.2.1 - # via - # -r requirements/base.txt - # django - # djangorestframework bleach==6.1.0 # via # -r requirements/base.txt # lti-consumer-xblock -boto3==1.34.150 +boto3==1.35.9 # via # -r requirements/base.txt # fs-s3fs -botocore==1.34.150 +botocore==1.35.9 # via # -r requirements/base.txt # boto3 # s3transfer -cachetools==5.4.0 +cachetools==5.5.0 # via tox -certifi==2024.7.4 +certifi==2024.8.30 # via # -r requirements/base.txt # requests -cffi==1.16.0 +cffi==1.17.0 # via # -r requirements/base.txt # cryptography @@ -87,7 +82,7 @@ coreschema==0.0.4 # via # -r requirements/base.txt # coreapi -coverage[toml]==7.6.0 +coverage[toml]==7.6.1 # via # -r requirements/test.in # pytest-cov @@ -157,7 +152,7 @@ django-dynamic-fixture==4.0.1 # via -r requirements/test.in django-extensions==3.2.3 # via -r requirements/base.txt -django-filter==24.2 +django-filter==24.3 # via # -r requirements/base.txt # lti-consumer-xblock @@ -209,7 +204,7 @@ edx-ccx-keys==1.3.0 # openedx-events edx-django-release-util==1.4.0 # via -r requirements/base.txt -edx-django-utils==5.14.2 +edx-django-utils==5.15.0 # via # -r requirements/base.txt # django-config-models @@ -221,11 +216,11 @@ edx-django-utils==5.14.2 # openedx-events edx-drf-extensions==10.3.0 # via -r requirements/base.txt -edx-event-bus-kafka==5.7.0 +edx-event-bus-kafka==5.8.1 # via -r requirements/base.txt edx-event-bus-redis==0.5.0 # via -r requirements/base.txt -edx-lint==5.3.7 +edx-lint==5.4.0 # via -r requirements/test.in edx-opaque-keys[django]==2.10.0 # via @@ -245,9 +240,9 @@ edx-token-utils==0.2.1 # via -r requirements/base.txt exceptiongroup==1.2.2 # via pytest -factory-boy==3.3.0 +factory-boy==3.3.1 # via -r requirements/test.in -faker==26.0.0 +faker==28.0.0 # via factory-boy fastavro==1.9.5 # via @@ -273,7 +268,7 @@ future==1.0.0 # via # -r requirements/base.txt # pyjwkest -idna==3.7 +idna==3.8 # via # -r requirements/base.txt # requests @@ -309,7 +304,7 @@ lazy==1.6 # lti-consumer-xblock lti-consumer-xblock==9.11.3 # via -r requirements/base.txt -lxml==5.2.2 +lxml==5.3.0 # via # -r requirements/base.txt # lti-consumer-xblock @@ -331,7 +326,7 @@ mock==5.1.0 # via -r requirements/test.in mysqlclient==2.2.4 # via -r requirements/base.txt -newrelic==9.12.0 +newrelic==9.13.0 # via # -r requirements/base.txt # edx-django-utils @@ -345,11 +340,11 @@ openapi-codec==1.3.2 # via # -r requirements/base.txt # django-rest-swagger -openedx-django-pyfs==3.6.0 +openedx-django-pyfs==3.7.0 # via # -r requirements/base.txt # lti-consumer-xblock -openedx-events==9.11.0 +openedx-events==9.12.0 # via # -r requirements/base.txt # edx-event-bus-kafka @@ -365,7 +360,7 @@ packaging==24.1 # pyproject-api # pytest # tox -pbr==6.0.0 +pbr==6.1.0 # via # -r requirements/base.txt # stevedore @@ -396,7 +391,7 @@ pyjwkest==1.4.2 # -r requirements/base.txt # edx-token-utils # lti-consumer-xblock -pyjwt[crypto]==2.8.0 +pyjwt[crypto]==2.9.0 # via # -r requirements/base.txt # drf-jwt @@ -458,7 +453,7 @@ pytz==2024.1 # -r requirements/base.txt # drf-yasg # xblock -pyyaml==6.0.1 +pyyaml==6.0.2 # via # -r requirements/base.txt # code-annotations @@ -495,7 +490,7 @@ semantic-version==2.10.0 # via # -r requirements/base.txt # edx-drf-extensions -simplejson==3.19.2 +simplejson==3.19.3 # via # -r requirements/base.txt # django-rest-swagger @@ -529,7 +524,7 @@ sqlparse==0.5.1 # via # -r requirements/base.txt # django -stevedore==5.2.0 +stevedore==5.3.0 # via # -r requirements/base.txt # code-annotations @@ -546,9 +541,9 @@ tomli==2.0.1 # pyproject-api # pytest # tox -tomlkit==0.13.0 +tomlkit==0.13.2 # via pylint -tox==4.16.0 +tox==4.18.0 # via -r requirements/test.in typing-extensions==4.12.2 # via @@ -562,7 +557,7 @@ uritemplate==4.1.1 # -r requirements/base.txt # coreapi # drf-yasg -urllib3==1.26.19 +urllib3==1.26.20 # via # -r requirements/base.txt # botocore @@ -582,11 +577,11 @@ webencodings==0.5.1 # via # -r requirements/base.txt # bleach -webob==1.8.7 +webob==1.8.8 # via # -r requirements/base.txt # xblock -xblock==5.0.0 +xblock==5.1.0 # via # -r requirements/base.txt # lti-consumer-xblock diff --git a/requirements/validation.txt b/requirements/validation.txt index f5d37b8a..d6522824 100644 --- a/requirements/validation.txt +++ b/requirements/validation.txt @@ -1,5 +1,5 @@ # -# This file is autogenerated by pip-compile with Python 3.8 +# This file is autogenerated by pip-compile with Python 3.9 # by the following command: # # make upgrade @@ -26,7 +26,7 @@ async-timeout==4.0.3 # -r requirements/quality.txt # -r requirements/test.txt # redis -attrs==23.2.0 +attrs==24.2.0 # via # -r requirements/quality.txt # -r requirements/test.txt @@ -36,39 +36,33 @@ backports-tarfile==1.2.0 # via # -r requirements/quality.txt # jaraco-context -backports-zoneinfo==0.2.1 - # via - # -r requirements/quality.txt - # -r requirements/test.txt - # django - # djangorestframework bleach==6.1.0 # via # -r requirements/quality.txt # -r requirements/test.txt # lti-consumer-xblock -boto3==1.34.150 +boto3==1.35.9 # via # -r requirements/quality.txt # -r requirements/test.txt # fs-s3fs -botocore==1.34.150 +botocore==1.35.9 # via # -r requirements/quality.txt # -r requirements/test.txt # boto3 # s3transfer -cachetools==5.4.0 +cachetools==5.5.0 # via # -r requirements/quality.txt # -r requirements/test.txt # tox -certifi==2024.7.4 +certifi==2024.8.30 # via # -r requirements/quality.txt # -r requirements/test.txt # requests -cffi==1.16.0 +cffi==1.17.0 # via # -r requirements/quality.txt # -r requirements/test.txt @@ -119,7 +113,7 @@ coreschema==0.0.4 # -r requirements/quality.txt # -r requirements/test.txt # coreapi -coverage[toml]==7.6.0 +coverage[toml]==7.6.1 # via # -r requirements/quality.txt # -r requirements/test.txt @@ -129,7 +123,6 @@ cryptography==43.0.0 # -r requirements/quality.txt # -r requirements/test.txt # pyjwt - # secretstorage # social-auth-core ddt==1.7.2 # via @@ -151,7 +144,7 @@ distlib==0.3.8 # -r requirements/quality.txt # -r requirements/test.txt # virtualenv -django==4.2.14 +django==4.2.15 # via # -r requirements/quality.txt # -r requirements/test.txt @@ -211,7 +204,7 @@ django-extensions==3.2.3 # via # -r requirements/quality.txt # -r requirements/test.txt -django-filter==24.2 +django-filter==24.3 # via # -r requirements/quality.txt # -r requirements/test.txt @@ -255,7 +248,7 @@ dnspython==2.6.1 # -r requirements/quality.txt # -r requirements/test.txt # pymongo -docutils==0.20.1 +docutils==0.21.2 # via # -r requirements/quality.txt # readme-renderer @@ -287,7 +280,7 @@ edx-django-release-util==1.4.0 # via # -r requirements/quality.txt # -r requirements/test.txt -edx-django-utils==5.14.2 +edx-django-utils==5.15.0 # via # -r requirements/quality.txt # -r requirements/test.txt @@ -302,7 +295,7 @@ edx-drf-extensions==10.3.0 # via # -r requirements/quality.txt # -r requirements/test.txt -edx-event-bus-kafka==5.7.0 +edx-event-bus-kafka==5.8.1 # via # -r requirements/quality.txt # -r requirements/test.txt @@ -310,7 +303,7 @@ edx-event-bus-redis==0.5.0 # via # -r requirements/quality.txt # -r requirements/test.txt -edx-lint==5.3.7 +edx-lint==5.4.0 # via # -r requirements/quality.txt # -r requirements/test.txt @@ -341,11 +334,11 @@ exceptiongroup==1.2.2 # -r requirements/quality.txt # -r requirements/test.txt # pytest -factory-boy==3.3.0 +factory-boy==3.3.1 # via # -r requirements/quality.txt # -r requirements/test.txt -faker==26.0.0 +faker==28.0.0 # via # -r requirements/quality.txt # -r requirements/test.txt @@ -382,20 +375,16 @@ future==1.0.0 # -r requirements/quality.txt # -r requirements/test.txt # pyjwkest -idna==3.7 +idna==3.8 # via # -r requirements/quality.txt # -r requirements/test.txt # requests -importlib-metadata==6.11.0 +importlib-metadata==8.4.0 # via # -r requirements/quality.txt # keyring # twine -importlib-resources==6.4.0 - # via - # -r requirements/quality.txt - # keyring inflection==0.5.1 # via # -r requirements/quality.txt @@ -420,19 +409,14 @@ jaraco-classes==3.4.0 # via # -r requirements/quality.txt # keyring -jaraco-context==5.3.0 +jaraco-context==6.0.1 # via # -r requirements/quality.txt # keyring -jaraco-functools==4.0.1 +jaraco-functools==4.0.2 # via # -r requirements/quality.txt # keyring -jeepney==0.8.0 - # via - # -r requirements/quality.txt - # keyring - # secretstorage jinja2==3.1.4 # via # -r requirements/quality.txt @@ -450,7 +434,7 @@ jsonfield==3.1.0 # -r requirements/quality.txt # -r requirements/test.txt # lti-consumer-xblock -keyring==25.2.1 +keyring==25.3.0 # via # -r requirements/quality.txt # twine @@ -463,7 +447,7 @@ lti-consumer-xblock==9.11.3 # via # -r requirements/quality.txt # -r requirements/test.txt -lxml==5.2.2 +lxml==5.3.0 # via # -r requirements/quality.txt # -r requirements/test.txt @@ -499,7 +483,7 @@ mock==5.1.0 # via # -r requirements/quality.txt # -r requirements/test.txt -more-itertools==10.3.0 +more-itertools==10.4.0 # via # -r requirements/quality.txt # jaraco-classes @@ -508,7 +492,7 @@ mysqlclient==2.2.4 # via # -r requirements/quality.txt # -r requirements/test.txt -newrelic==9.12.0 +newrelic==9.13.0 # via # -r requirements/quality.txt # -r requirements/test.txt @@ -529,12 +513,12 @@ openapi-codec==1.3.2 # -r requirements/quality.txt # -r requirements/test.txt # django-rest-swagger -openedx-django-pyfs==3.6.0 +openedx-django-pyfs==3.7.0 # via # -r requirements/quality.txt # -r requirements/test.txt # lti-consumer-xblock -openedx-events==9.11.0 +openedx-events==9.12.0 # via # -r requirements/quality.txt # -r requirements/test.txt @@ -553,7 +537,7 @@ packaging==24.1 # pyproject-api # pytest # tox -pbr==6.0.0 +pbr==6.1.0 # via # -r requirements/quality.txt # -r requirements/test.txt @@ -580,7 +564,7 @@ psutil==6.0.0 # -r requirements/quality.txt # -r requirements/test.txt # edx-django-utils -pycodestyle==2.12.0 +pycodestyle==2.12.1 # via -r requirements/quality.txt pycparser==2.22 # via @@ -606,7 +590,7 @@ pyjwkest==1.4.2 # -r requirements/test.txt # edx-token-utils # lti-consumer-xblock -pyjwt[crypto]==2.8.0 +pyjwt[crypto]==2.9.0 # via # -r requirements/quality.txt # -r requirements/test.txt @@ -696,7 +680,7 @@ pytz==2024.1 # -r requirements/test.txt # drf-yasg # xblock -pyyaml==6.0.1 +pyyaml==6.0.2 # via # -r requirements/quality.txt # -r requirements/test.txt @@ -705,7 +689,7 @@ pyyaml==6.0.1 # edx-django-release-util # responses # xblock -readme-renderer==43.0 +readme-renderer==44.0 # via # -r requirements/quality.txt # twine @@ -745,7 +729,7 @@ rfc3986==2.0.0 # via # -r requirements/quality.txt # twine -rich==13.7.1 +rich==13.8.0 # via # -r requirements/quality.txt # twine @@ -754,16 +738,12 @@ s3transfer==0.10.2 # -r requirements/quality.txt # -r requirements/test.txt # boto3 -secretstorage==3.3.3 - # via - # -r requirements/quality.txt - # keyring semantic-version==2.10.0 # via # -r requirements/quality.txt # -r requirements/test.txt # edx-drf-extensions -simplejson==3.19.2 +simplejson==3.19.3 # via # -r requirements/quality.txt # -r requirements/test.txt @@ -807,7 +787,7 @@ sqlparse==0.5.1 # -r requirements/quality.txt # -r requirements/test.txt # django -stevedore==5.2.0 +stevedore==5.3.0 # via # -r requirements/quality.txt # -r requirements/test.txt @@ -828,12 +808,12 @@ tomli==2.0.1 # pyproject-api # pytest # tox -tomlkit==0.13.0 +tomlkit==0.13.2 # via # -r requirements/quality.txt # -r requirements/test.txt # pylint -tox==4.16.0 +tox==4.18.0 # via # -r requirements/quality.txt # -r requirements/test.txt @@ -847,14 +827,13 @@ typing-extensions==4.12.2 # astroid # edx-opaque-keys # pylint - # rich uritemplate==4.1.1 # via # -r requirements/quality.txt # -r requirements/test.txt # coreapi # drf-yasg -urllib3==1.26.19 +urllib3==1.26.20 # via # -r requirements/quality.txt # -r requirements/test.txt @@ -882,21 +861,20 @@ webencodings==0.5.1 # -r requirements/quality.txt # -r requirements/test.txt # bleach -webob==1.8.7 +webob==1.8.8 # via # -r requirements/quality.txt # -r requirements/test.txt # xblock -xblock==5.0.0 +xblock==5.1.0 # via # -r requirements/quality.txt # -r requirements/test.txt # lti-consumer-xblock -zipp==3.19.2 +zipp==3.20.1 # via # -r requirements/quality.txt # importlib-metadata - # importlib-resources # The following packages are considered to be unsafe in a requirements file: # setuptools