Merge pull request #35203 from openedx/jolivier/SONIC-561/coordinator-retirement
feat: Commerce Coordinator step in retirement pipeline
This commit is contained in:
@@ -26,9 +26,11 @@ jobs:
|
||||
|
||||
- name: Install dependencies
|
||||
run: |
|
||||
sudo apt-get update && sudo apt-get install libxmlsec1-dev
|
||||
python -m pip install --upgrade pip
|
||||
pip install -r scripts/user_retirement/requirements/testing.txt
|
||||
|
||||
- name: Run pytest
|
||||
run: |
|
||||
export DJANGO_SETTINGS_MODULE=lms.envs.test
|
||||
pytest scripts/user_retirement
|
||||
|
||||
@@ -5003,6 +5003,8 @@ RETIREMENT_STATES = [
|
||||
'COMPLETE',
|
||||
]
|
||||
|
||||
EXTRA_SERVICES_TO_RETIRE_FROM = []
|
||||
|
||||
USERNAME_REPLACEMENT_WORKER = "REPLACE WITH VALID USERNAME"
|
||||
|
||||
############## Settings for Microfrontends #########################
|
||||
|
||||
@@ -662,6 +662,14 @@ SUBSCRIPTIONS_TRIAL_LENGTH = 7
|
||||
CSRF_TRUSTED_ORIGINS = ['.example.com']
|
||||
CSRF_TRUSTED_ORIGINS_WITH_SCHEME = ['https://*.example.com']
|
||||
|
||||
EXTRA_SERVICES_TO_RETIRE_FROM = [
|
||||
{
|
||||
'name': 'MOCK_SERVICE',
|
||||
'service_base_url': 'http://fake_service_base_url',
|
||||
'retirement_url_path': 'fake_retirement_url_path'
|
||||
}
|
||||
]
|
||||
|
||||
# values are already updated above with default CSRF_TRUSTED_ORIGINS values but in
|
||||
# case of new django version these values will override.
|
||||
if django.VERSION[0] >= 4: # for greater than django 3.2 use with schemes.
|
||||
|
||||
@@ -11,8 +11,8 @@ these services. As a consequence, to remove a user's PII, you must be able
|
||||
to request each service containing PII to remove, delete, or unlink the
|
||||
data for that user in that service.
|
||||
|
||||
In the user retirement feature, a centralized process (the *driver* scripts)
|
||||
orchestrates all of these requests. For information about how to configure the
|
||||
In the user retirement feature, a centralized process (the *driver* scripts)
|
||||
orchestrates all of these requests. For information about how to configure the
|
||||
driver scripts, see :ref:`driver-setup`.
|
||||
|
||||
****************************
|
||||
@@ -46,6 +46,27 @@ table of the states themselves (the ``RetirementState`` model), rather than
|
||||
hard-coding the states. This was done because we cannot predict all the
|
||||
possible states required by all members of the Open edX community.
|
||||
|
||||
The workflow also allows the inclusion of additional services that may need to be
|
||||
retired alongside the core services. These extra services can now be configured within
|
||||
the Django settings under the ``EXTRA_SERVICES_TO_RETIRE_FROM`` setting. This setting allows
|
||||
the platform to handle the retirement of PII in custom or internal services that are not
|
||||
part of the standard Open edX installation but are crucial for specific deployments.
|
||||
|
||||
Here is an example of how the ``EXTRA_SERVICES_TO_RETIRE_FROM`` setting can be configured:
|
||||
|
||||
.. code-block:: python
|
||||
|
||||
EXTRA_SERVICES_TO_RETIRE_FROM = [
|
||||
{
|
||||
'name': 'MOCK_SERVICE',
|
||||
'service_base_url': 'http://fake_service_base_url',
|
||||
'retirement_url_path': 'fake_retirement_url_path'
|
||||
}
|
||||
]
|
||||
|
||||
This setting defines a list of services, each with a ``name``, ``service_base_url``, and ``retirement_url_path``,
|
||||
allowing the user retirement process to include these additional services.
|
||||
|
||||
This example state diagram outlines the pathways users follow throughout the
|
||||
workflow:
|
||||
|
||||
|
||||
@@ -36,13 +36,13 @@ defining *derived* settings specific to Open edX. Read more about it in
|
||||
- ``'retired.invalid'``
|
||||
- The domain part of hashed emails. Used in ``RETIRED_EMAIL_FMT``.
|
||||
* - RETIRED_USERNAME_FMT
|
||||
- ``lambda settings:
|
||||
- ``lambda settings:
|
||||
settings.RETIRED_USERNAME_PREFIX + '{}'``
|
||||
- The username field for a retired user gets transformed into this format,
|
||||
where ``{}`` is replaced with the hash of their username.
|
||||
* - RETIRED_EMAIL_FMT
|
||||
- ``lambda settings:
|
||||
settings.RETIRED_EMAIL_PREFIX + '{}@' +
|
||||
- ``lambda settings:
|
||||
settings.RETIRED_EMAIL_PREFIX + '{}@' +
|
||||
settings.RETIRED_EMAIL_DOMAIN``
|
||||
- The email field for a retired user gets transformed into this format, where
|
||||
``{}`` is replaced with the hash of their email.
|
||||
@@ -60,6 +60,27 @@ defining *derived* settings specific to Open edX. Read more about it in
|
||||
* - FEATURES['ENABLE_ACCOUNT_DELETION']
|
||||
- True
|
||||
- Whether to display the "Delete My Account" section the account settings page.
|
||||
* - EXTRA_SERVICES_TO_RETIRE_FROM
|
||||
- None
|
||||
- A list of additional services from which user data should be retired. Each entry in the list should be a dictionary with the following keys:
|
||||
|
||||
- ``name``: The name of the service.
|
||||
- ``service_base_url``: The base URL of the service's API.
|
||||
- ``retirement_url_path``: The API path for the user retirement endpoint.
|
||||
|
||||
This setting allows the retirement process to interact with external services not covered by default. For example:
|
||||
|
||||
.. code-block:: python
|
||||
|
||||
EXTRA_SERVICES_TO_RETIRE_FROM = [
|
||||
{
|
||||
'name': 'MOCK_SERVICE',
|
||||
'service_base_url': 'http://fake_service_base_url',
|
||||
'retirement_url_path': 'fake_retirement_url_path'
|
||||
}
|
||||
]
|
||||
|
||||
By default, this setting is empty, meaning no additional services are included. This can be overridden in `common.py <https://github.com/openedx/edx-platform/blob/master/lms/envs/common.py>`_.
|
||||
|
||||
|
||||
=================
|
||||
@@ -79,10 +100,10 @@ state at the beginning, and ``COMPLETED``, ``ERRORED``, and ``ABORTED`` states
|
||||
at the end of the list. Also, for every ``RETIRING_foo`` state, there must be
|
||||
a corresponding ``foo_COMPLETE`` state.
|
||||
|
||||
Override these states if you need to add any states. Typically, these
|
||||
Override these states if you need to add any states. Typically, these
|
||||
settings are set in ``lms.yml``.
|
||||
|
||||
After you have defined any custom states, populate the states table with the
|
||||
After you have defined any custom states, populate the states table with the
|
||||
following management command:
|
||||
|
||||
.. code-block:: bash
|
||||
@@ -120,7 +141,7 @@ Retirement Service User
|
||||
|
||||
The user retirement driver scripts authenticate with the LMS and IDAs as the
|
||||
retirement service user with oauth client credentials. Therefore, to use the
|
||||
driver scripts, you must create a retirement service user, and generate a DOT
|
||||
driver scripts, you must create a retirement service user, and generate a DOT
|
||||
application and client credentials, as in the following command.
|
||||
|
||||
.. code-block:: bash
|
||||
@@ -162,7 +183,7 @@ that relate to user retirement.
|
||||
- ``/admin/user_api/retirementstate/``
|
||||
- Represents the table of states defined in ``RETIREMENT_STATES`` and
|
||||
populated with ``populate_retirement_states``.
|
||||
* - User Retirement Requests
|
||||
* - User Retirement Requests
|
||||
- ``/admin/user_api/userretirementrequest/``
|
||||
- Represents the table that tracks the user IDs of every learner who
|
||||
has ever requested account deletion. This table is primarily used for
|
||||
@@ -173,7 +194,7 @@ that relate to user retirement.
|
||||
|
||||
In special cases where you may need to manually intervene with the pipeline,
|
||||
you can use the User Retirement Statuses management page to change the
|
||||
state for an individual user. For more information about how to handle these
|
||||
state for an individual user. For more information about how to handle these
|
||||
cases, see :ref:`handling-special-cases`.
|
||||
|
||||
.. include:: ../../../../links/links.rst
|
||||
|
||||
@@ -0,0 +1,3 @@
|
||||
[pytest]
|
||||
|
||||
DJANGO_SETTINGS_MODULE = lms.envs.test
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
-c ../../../requirements/constraints.txt
|
||||
-r ../../../requirements/edx/base.txt
|
||||
|
||||
boto3
|
||||
click
|
||||
|
||||
@@ -4,168 +4,1545 @@
|
||||
#
|
||||
# make upgrade
|
||||
#
|
||||
-e git+https://github.com/anupdhabarde/edx-proctoring-proctortrack.git@31c6c9923a51c903ae83760ecbbac191363aa2a2#egg=edx_proctoring_proctortrack
|
||||
# via -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
acid-xblock==0.3.1
|
||||
# via -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
aiohappyeyeballs==2.3.4
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
# aiohttp
|
||||
aiohttp==3.10.1
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
# geoip2
|
||||
# openai
|
||||
aiosignal==1.3.1
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
# aiohttp
|
||||
algoliasearch==3.0.0
|
||||
# via -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
amqp==5.2.0
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
# kombu
|
||||
analytics-python==1.4.post1
|
||||
# via -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
aniso8601==9.0.1
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
# edx-tincan-py35
|
||||
annotated-types==0.7.0
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
# pydantic
|
||||
appdirs==1.4.4
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
# fs
|
||||
asgiref==3.8.1
|
||||
# via django
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
# django
|
||||
# django-cors-headers
|
||||
# django-countries
|
||||
asn1crypto==1.5.1
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
# snowflake-connector-python
|
||||
attrs==24.2.0
|
||||
# via zeep
|
||||
backoff==2.2.1
|
||||
# via -r scripts/user_retirement/requirements/base.in
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
# aiohttp
|
||||
# edx-ace
|
||||
# jsonschema
|
||||
# lti-consumer-xblock
|
||||
# openedx-events
|
||||
# openedx-learning
|
||||
# referencing
|
||||
# zeep
|
||||
babel==2.15.0
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
# enmerkar
|
||||
# enmerkar-underscore
|
||||
backoff==1.10.0
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
# -r scripts/user_retirement/requirements/base.in
|
||||
# analytics-python
|
||||
bcrypt==4.2.0
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
# paramiko
|
||||
beautifulsoup4==4.12.3
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
# pynliner
|
||||
billiard==4.2.0
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
# celery
|
||||
bleach[css]==6.1.0
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
# edx-enterprise
|
||||
# lti-consumer-xblock
|
||||
# openedx-django-wiki
|
||||
# ora2
|
||||
# xblock-drag-and-drop-v2
|
||||
# xblock-poll
|
||||
boto==2.49.0
|
||||
# via -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
boto3==1.34.154
|
||||
# via -r scripts/user_retirement/requirements/base.in
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
# -r scripts/user_retirement/requirements/base.in
|
||||
# django-ses
|
||||
# fs-s3fs
|
||||
# ora2
|
||||
botocore==1.34.154
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
# boto3
|
||||
# s3transfer
|
||||
bridgekeeper==0.9
|
||||
# via -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
cachecontrol==0.14.0
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
# firebase-admin
|
||||
cachetools==5.4.0
|
||||
# via google-auth
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
# google-auth
|
||||
camel-converter[pydantic]==3.1.2
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
# meilisearch
|
||||
celery==5.4.0
|
||||
# via
|
||||
# -c scripts/user_retirement/requirements/../../../requirements/constraints.txt
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
# django-celery-results
|
||||
# django-user-tasks
|
||||
# edx-celeryutils
|
||||
# edx-enterprise
|
||||
# event-tracking
|
||||
# openedx-learning
|
||||
certifi==2024.7.4
|
||||
# via requests
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
# elasticsearch
|
||||
# py2neo
|
||||
# requests
|
||||
# snowflake-connector-python
|
||||
cffi==1.17.0
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
# cryptography
|
||||
# pynacl
|
||||
# snowflake-connector-python
|
||||
chardet==5.2.0
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
# pysrt
|
||||
charset-normalizer==2.0.12
|
||||
# via
|
||||
# -c scripts/user_retirement/requirements/../../../requirements/constraints.txt
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
# requests
|
||||
# snowflake-connector-python
|
||||
chem==1.3.0
|
||||
# via -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
click==8.1.6
|
||||
# via
|
||||
# -c scripts/user_retirement/requirements/../../../requirements/constraints.txt
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
# -r scripts/user_retirement/requirements/base.in
|
||||
# celery
|
||||
# click-didyoumean
|
||||
# click-plugins
|
||||
# click-repl
|
||||
# code-annotations
|
||||
# edx-django-utils
|
||||
cryptography==43.0.0
|
||||
# via pyjwt
|
||||
# nltk
|
||||
# user-util
|
||||
click-didyoumean==0.3.1
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
# celery
|
||||
click-plugins==1.1.1
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
# celery
|
||||
click-repl==0.3.0
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
# celery
|
||||
code-annotations==1.8.0
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
# edx-enterprise
|
||||
# edx-toggles
|
||||
codejail-includes==1.0.0
|
||||
# via -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
crowdsourcehinter-xblock==0.7
|
||||
# via -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
cryptography==42.0.8
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
# django-fernet-fields-v2
|
||||
# edx-enterprise
|
||||
# jwcrypto
|
||||
# optimizely-sdk
|
||||
# paramiko
|
||||
# pgpy
|
||||
# pyjwt
|
||||
# pyopenssl
|
||||
# snowflake-connector-python
|
||||
# social-auth-core
|
||||
cssutils==2.11.1
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
# pynliner
|
||||
defusedxml==0.7.1
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
# djangorestframework-xml
|
||||
# ora2
|
||||
# python3-openid
|
||||
# social-auth-core
|
||||
django==4.2.15
|
||||
# via
|
||||
# -c scripts/user_retirement/requirements/../../../requirements/common_constraints.txt
|
||||
# -c scripts/user_retirement/requirements/../../../requirements/constraints.txt
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
# django-appconf
|
||||
# django-celery-results
|
||||
# django-classy-tags
|
||||
# django-config-models
|
||||
# django-cors-headers
|
||||
# django-crum
|
||||
# django-fernet-fields-v2
|
||||
# django-filter
|
||||
# django-js-asset
|
||||
# django-method-override
|
||||
# django-model-utils
|
||||
# django-multi-email-field
|
||||
# django-mysql
|
||||
# django-oauth-toolkit
|
||||
# django-push-notifications
|
||||
# django-sekizai
|
||||
# django-ses
|
||||
# django-statici18n
|
||||
# django-storages
|
||||
# django-user-tasks
|
||||
# django-waffle
|
||||
# djangorestframework
|
||||
# done-xblock
|
||||
# drf-jwt
|
||||
# drf-spectacular
|
||||
# drf-yasg
|
||||
# edx-ace
|
||||
# edx-api-doc-tools
|
||||
# edx-auth-backends
|
||||
# edx-bulk-grades
|
||||
# edx-celeryutils
|
||||
# edx-completion
|
||||
# edx-django-release-util
|
||||
# edx-django-sites-extensions
|
||||
# edx-django-utils
|
||||
# edx-drf-extensions
|
||||
# edx-enterprise
|
||||
# edx-event-bus-kafka
|
||||
# edx-event-bus-redis
|
||||
# edx-i18n-tools
|
||||
# edx-milestones
|
||||
# edx-name-affirmation
|
||||
# edx-organizations
|
||||
# edx-proctoring
|
||||
# edx-rbac
|
||||
# edx-search
|
||||
# edx-submissions
|
||||
# edx-toggles
|
||||
# edx-token-utils
|
||||
# edx-when
|
||||
# edxval
|
||||
# enmerkar
|
||||
# enmerkar-underscore
|
||||
# event-tracking
|
||||
# help-tokens
|
||||
# jsonfield
|
||||
# lti-consumer-xblock
|
||||
# openedx-django-pyfs
|
||||
# openedx-django-wiki
|
||||
# openedx-events
|
||||
# openedx-filters
|
||||
# openedx-learning
|
||||
# ora2
|
||||
# social-auth-app-django
|
||||
# super-csv
|
||||
# xblock-google-drive
|
||||
# xss-utils
|
||||
django-appconf==1.0.6
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
# django-statici18n
|
||||
django-cache-memoize==0.2.0
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
# edx-enterprise
|
||||
django-celery-results==2.5.1
|
||||
# via -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
django-classy-tags==4.1.0
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
# django-sekizai
|
||||
django-config-models==2.7.0
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
# edx-enterprise
|
||||
# edx-name-affirmation
|
||||
# lti-consumer-xblock
|
||||
django-cors-headers==4.4.0
|
||||
# via -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
django-countries==7.6.1
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
# edx-enterprise
|
||||
django-crum==0.7.9
|
||||
# via edx-django-utils
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
# edx-django-utils
|
||||
# edx-enterprise
|
||||
# edx-proctoring
|
||||
# edx-rbac
|
||||
# edx-toggles
|
||||
# super-csv
|
||||
django-fernet-fields-v2==0.9
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
# edx-enterprise
|
||||
django-filter==24.3
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
# edx-enterprise
|
||||
# lti-consumer-xblock
|
||||
django-ipware==7.0.1
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
# edx-enterprise
|
||||
# edx-proctoring
|
||||
django-js-asset==2.2.0
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
# django-mptt
|
||||
django-method-override==1.0.4
|
||||
# via -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
django-model-utils==4.5.1
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
# django-user-tasks
|
||||
# edx-bulk-grades
|
||||
# edx-celeryutils
|
||||
# edx-completion
|
||||
# edx-enterprise
|
||||
# edx-milestones
|
||||
# edx-name-affirmation
|
||||
# edx-organizations
|
||||
# edx-proctoring
|
||||
# edx-rbac
|
||||
# edx-submissions
|
||||
# edx-when
|
||||
# edxval
|
||||
# ora2
|
||||
# super-csv
|
||||
django-mptt==0.16.0
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
# openedx-django-wiki
|
||||
django-multi-email-field==0.7.0
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
# edx-enterprise
|
||||
django-mysql==4.14.0
|
||||
# via -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
django-oauth-toolkit==1.7.1
|
||||
# via
|
||||
# -c scripts/user_retirement/requirements/../../../requirements/constraints.txt
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
# edx-enterprise
|
||||
django-object-actions==4.2.0
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
# edx-enterprise
|
||||
django-pipeline==3.1.0
|
||||
# via -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
django-push-notifications==3.1.0
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
# edx-ace
|
||||
django-ratelimit==4.1.0
|
||||
# via -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
django-sekizai==4.1.0
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
# openedx-django-wiki
|
||||
django-ses==4.1.0
|
||||
# via -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
django-simple-history==3.4.0
|
||||
# via
|
||||
# -c scripts/user_retirement/requirements/../../../requirements/constraints.txt
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
# edx-enterprise
|
||||
# edx-name-affirmation
|
||||
# edx-organizations
|
||||
# edx-proctoring
|
||||
# ora2
|
||||
django-statici18n==2.5.0
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
# lti-consumer-xblock
|
||||
# xblock-drag-and-drop-v2
|
||||
# xblock-poll
|
||||
django-storages==1.14.3
|
||||
# via
|
||||
# -c scripts/user_retirement/requirements/../../../requirements/constraints.txt
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
# edxval
|
||||
django-user-tasks==3.2.0
|
||||
# via -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
django-waffle==4.1.0
|
||||
# via edx-django-utils
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
# edx-django-utils
|
||||
# edx-drf-extensions
|
||||
# edx-enterprise
|
||||
# edx-proctoring
|
||||
# edx-toggles
|
||||
django-webpack-loader==0.7.0
|
||||
# via
|
||||
# -c scripts/user_retirement/requirements/../../../requirements/constraints.txt
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
# edx-proctoring
|
||||
djangorestframework==3.14.0
|
||||
# via
|
||||
# -c scripts/user_retirement/requirements/../../../requirements/constraints.txt
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
# django-config-models
|
||||
# django-user-tasks
|
||||
# drf-jwt
|
||||
# drf-spectacular
|
||||
# drf-yasg
|
||||
# edx-api-doc-tools
|
||||
# edx-completion
|
||||
# edx-drf-extensions
|
||||
# edx-enterprise
|
||||
# edx-name-affirmation
|
||||
# edx-organizations
|
||||
# edx-proctoring
|
||||
# edx-submissions
|
||||
# openedx-learning
|
||||
# ora2
|
||||
# super-csv
|
||||
djangorestframework-xml==2.0.0
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
# edx-enterprise
|
||||
dnspython==2.6.1
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
# pymongo
|
||||
done-xblock==2.3.0
|
||||
# via -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
drf-jwt==1.19.2
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
# edx-drf-extensions
|
||||
drf-spectacular==0.27.2
|
||||
# via -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
drf-yasg==1.21.7
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
# django-user-tasks
|
||||
# edx-api-doc-tools
|
||||
edx-ace==1.11.1
|
||||
# via -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
edx-api-doc-tools==1.8.0
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
# edx-name-affirmation
|
||||
edx-auth-backends==4.3.0
|
||||
# via -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
edx-braze-client==0.2.5
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
# edx-enterprise
|
||||
edx-bulk-grades==1.1.0
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
# staff-graded-xblock
|
||||
edx-ccx-keys==1.3.0
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
# lti-consumer-xblock
|
||||
# openedx-events
|
||||
edx-celeryutils==1.3.0
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
# edx-name-affirmation
|
||||
# super-csv
|
||||
edx-codejail==3.4.1
|
||||
# via -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
edx-completion==4.6.7
|
||||
# via -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
edx-django-release-util==1.4.0
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
# edx-submissions
|
||||
# edxval
|
||||
edx-django-sites-extensions==4.2.0
|
||||
# via -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
edx-django-utils==5.15.0
|
||||
# via edx-rest-api-client
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
# django-config-models
|
||||
# edx-ace
|
||||
# edx-drf-extensions
|
||||
# edx-enterprise
|
||||
# edx-event-bus-kafka
|
||||
# edx-event-bus-redis
|
||||
# edx-name-affirmation
|
||||
# edx-rest-api-client
|
||||
# edx-toggles
|
||||
# edx-when
|
||||
# event-tracking
|
||||
# openedx-events
|
||||
# ora2
|
||||
# super-csv
|
||||
edx-drf-extensions==10.3.0
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
# edx-completion
|
||||
# edx-enterprise
|
||||
# edx-name-affirmation
|
||||
# edx-organizations
|
||||
# edx-proctoring
|
||||
# edx-rbac
|
||||
# edx-when
|
||||
# edxval
|
||||
# openedx-learning
|
||||
edx-enterprise==4.23.8
|
||||
# via
|
||||
# -c scripts/user_retirement/requirements/../../../requirements/constraints.txt
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
edx-event-bus-kafka==5.8.1
|
||||
# via -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
edx-event-bus-redis==0.5.0
|
||||
# via -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
edx-i18n-tools==1.5.0
|
||||
# via
|
||||
# -c scripts/user_retirement/requirements/../../../requirements/constraints.txt
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
# ora2
|
||||
edx-milestones==0.6.0
|
||||
# via -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
edx-name-affirmation==2.3.7
|
||||
# via -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
edx-opaque-keys[django]==2.10.0
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
# edx-bulk-grades
|
||||
# edx-ccx-keys
|
||||
# edx-completion
|
||||
# edx-drf-extensions
|
||||
# edx-enterprise
|
||||
# edx-milestones
|
||||
# edx-organizations
|
||||
# edx-proctoring
|
||||
# edx-when
|
||||
# lti-consumer-xblock
|
||||
# openedx-events
|
||||
# ora2
|
||||
edx-organizations==6.13.0
|
||||
# via -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
edx-proctoring==4.18.1
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
# edx-proctoring-proctortrack
|
||||
edx-rbac==1.9.0
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
# edx-enterprise
|
||||
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
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
# -r scripts/user_retirement/requirements/base.in
|
||||
# edx-enterprise
|
||||
# edx-proctoring
|
||||
edx-search==4.0.0
|
||||
# via -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
edx-sga==0.25.0
|
||||
# via -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
edx-submissions==3.7.6
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
# ora2
|
||||
edx-tincan-py35==1.0.0
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
# edx-enterprise
|
||||
edx-toggles==5.2.0
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
# edx-completion
|
||||
# edx-enterprise
|
||||
# edx-event-bus-kafka
|
||||
# edx-event-bus-redis
|
||||
# edx-name-affirmation
|
||||
# edx-search
|
||||
# edxval
|
||||
# event-tracking
|
||||
# ora2
|
||||
edx-token-utils==0.2.1
|
||||
# via -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
edx-when==2.5.0
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
# edx-proctoring
|
||||
edxval==2.5.0
|
||||
# via -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
elasticsearch==7.13.4
|
||||
# via
|
||||
# -c scripts/user_retirement/requirements/../../../requirements/common_constraints.txt
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
# edx-search
|
||||
enmerkar==0.7.1
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
# enmerkar-underscore
|
||||
enmerkar-underscore==2.3.0
|
||||
# via -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
event-tracking==3.0.0
|
||||
# via
|
||||
# -c scripts/user_retirement/requirements/../../../requirements/constraints.txt
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
# edx-completion
|
||||
# edx-proctoring
|
||||
# edx-search
|
||||
fastavro==1.9.5
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
# openedx-events
|
||||
filelock==3.15.4
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
# snowflake-connector-python
|
||||
firebase-admin==6.5.0
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
# edx-ace
|
||||
frozenlist==1.4.1
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
# aiohttp
|
||||
# aiosignal
|
||||
fs==2.0.27
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
# fs-s3fs
|
||||
# openedx-django-pyfs
|
||||
# xblock
|
||||
fs-s3fs==0.1.8
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
# openedx-django-pyfs
|
||||
future==1.0.0
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
# pyjwkest
|
||||
geoip2==4.8.0
|
||||
# via -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
glob2==0.7
|
||||
# via -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
google-api-core[grpc]==2.19.1
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/../../../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 scripts/user_retirement/requirements/base.in
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
# -r scripts/user_retirement/requirements/base.in
|
||||
# firebase-admin
|
||||
google-auth==2.32.0
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/../../../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 google-api-python-client
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
# google-api-python-client
|
||||
google-cloud-core==2.4.1
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
# google-cloud-firestore
|
||||
# google-cloud-storage
|
||||
google-cloud-firestore==2.17.0
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
# firebase-admin
|
||||
google-cloud-storage==2.18.0
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
# firebase-admin
|
||||
google-crc32c==1.5.0
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
# google-cloud-storage
|
||||
# google-resumable-media
|
||||
google-resumable-media==2.7.1
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
# google-cloud-storage
|
||||
googleapis-common-protos==1.63.2
|
||||
# via google-api-core
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
# google-api-core
|
||||
# grpcio-status
|
||||
grpcio==1.65.4
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
# google-api-core
|
||||
# grpcio-status
|
||||
grpcio-status==1.62.3
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
# google-api-core
|
||||
gunicorn==22.0.0
|
||||
# via -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
help-tokens==2.4.0
|
||||
# via -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
html5lib==1.1
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
# ora2
|
||||
httplib2==0.22.0
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
# google-api-python-client
|
||||
# google-auth-httplib2
|
||||
icalendar==5.0.13
|
||||
# via -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
idna==3.7
|
||||
# via requests
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
# optimizely-sdk
|
||||
# requests
|
||||
# snowflake-connector-python
|
||||
# yarl
|
||||
importlib-metadata==6.11.0
|
||||
# via -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
inflection==0.5.1
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
# drf-spectacular
|
||||
# drf-yasg
|
||||
interchange==2021.0.4
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
# py2neo
|
||||
ipaddress==1.0.23
|
||||
# via -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
isodate==0.6.1
|
||||
# via zeep
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
# python3-saml
|
||||
# zeep
|
||||
jenkinsapi==0.3.13
|
||||
# via -r scripts/user_retirement/requirements/base.in
|
||||
jinja2==3.1.4
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
# code-annotations
|
||||
jmespath==1.0.1
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
# boto3
|
||||
# botocore
|
||||
joblib==1.4.2
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
# nltk
|
||||
jsondiff==2.2.0
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
# edx-enterprise
|
||||
jsonfield==3.1.0
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
# edx-celeryutils
|
||||
# edx-enterprise
|
||||
# edx-proctoring
|
||||
# edx-submissions
|
||||
# lti-consumer-xblock
|
||||
# ora2
|
||||
jsonschema==4.23.0
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
# drf-spectacular
|
||||
# optimizely-sdk
|
||||
jsonschema-specifications==2023.12.1
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
# jsonschema
|
||||
jwcrypto==1.5.6
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
# django-oauth-toolkit
|
||||
# pylti1p3
|
||||
kombu==5.4.0
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
# celery
|
||||
laboratory==1.0.2
|
||||
# via -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
lazy==1.6
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
# acid-xblock
|
||||
# lti-consumer-xblock
|
||||
# ora2
|
||||
# xblock
|
||||
libsass==0.10.0
|
||||
# via
|
||||
# -c scripts/user_retirement/requirements/../../../requirements/constraints.txt
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
loremipsum==1.0.5
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
# ora2
|
||||
lti-consumer-xblock==9.11.3
|
||||
# via -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
lxml==4.9.4
|
||||
# via
|
||||
# -c scripts/user_retirement/requirements/../../../requirements/constraints.txt
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
# edx-i18n-tools
|
||||
# edxval
|
||||
# lti-consumer-xblock
|
||||
# olxcleaner
|
||||
# openedx-calc
|
||||
# ora2
|
||||
# python3-saml
|
||||
# xblock
|
||||
# xmlsec
|
||||
# zeep
|
||||
more-itertools==10.3.0
|
||||
# via simple-salesforce
|
||||
newrelic==9.12.0
|
||||
# via edx-django-utils
|
||||
pbr==6.0.0
|
||||
# via stevedore
|
||||
platformdirs==4.2.2
|
||||
# via zeep
|
||||
proto-plus==1.24.0
|
||||
# via google-api-core
|
||||
protobuf==5.27.3
|
||||
mailsnake==1.6.4
|
||||
# via -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
mako==1.3.5
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
# acid-xblock
|
||||
# lti-consumer-xblock
|
||||
# xblock
|
||||
# xblock-utils
|
||||
markdown==3.3.7
|
||||
# via
|
||||
# -c scripts/user_retirement/requirements/../../../requirements/constraints.txt
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
# openedx-django-wiki
|
||||
# staff-graded-xblock
|
||||
# xblock-poll
|
||||
markupsafe==2.1.5
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
# chem
|
||||
# jinja2
|
||||
# mako
|
||||
# openedx-calc
|
||||
# xblock
|
||||
maxminddb==2.6.2
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
# geoip2
|
||||
meilisearch==0.31.4
|
||||
# via -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
mock==5.1.0
|
||||
# via -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
mongoengine==0.28.2
|
||||
# via -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
monotonic==1.6
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
# analytics-python
|
||||
# py2neo
|
||||
more-itertools==10.3.0
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
# cssutils
|
||||
# simple-salesforce
|
||||
mpmath==1.3.0
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
# sympy
|
||||
msgpack==1.0.8
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
# cachecontrol
|
||||
multidict==6.0.5
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
# aiohttp
|
||||
# yarl
|
||||
mysqlclient==2.2.4
|
||||
# via -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
newrelic==9.12.0
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
# edx-django-utils
|
||||
nh3==0.2.18
|
||||
# via -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
nltk==3.8.1
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
# chem
|
||||
nodeenv==1.9.1
|
||||
# via -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
numpy==1.26.4
|
||||
# via
|
||||
# -c scripts/user_retirement/requirements/../../../requirements/constraints.txt
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
# chem
|
||||
# openedx-calc
|
||||
# scipy
|
||||
# shapely
|
||||
oauthlib==3.2.2
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
# django-oauth-toolkit
|
||||
# lti-consumer-xblock
|
||||
# requests-oauthlib
|
||||
# social-auth-core
|
||||
olxcleaner==0.3.0
|
||||
# via -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
openai==0.28.1
|
||||
# via
|
||||
# -c scripts/user_retirement/requirements/../../../requirements/constraints.txt
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
# edx-enterprise
|
||||
openedx-atlas==0.6.1
|
||||
# via -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
openedx-calc==3.1.0
|
||||
# via -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
openedx-django-pyfs==3.6.0
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
# lti-consumer-xblock
|
||||
# xblock
|
||||
openedx-django-require==2.1.0
|
||||
# via -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
openedx-django-wiki==2.1.0
|
||||
# via -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
openedx-events==9.11.0
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
# edx-event-bus-kafka
|
||||
# edx-event-bus-redis
|
||||
# event-tracking
|
||||
# ora2
|
||||
openedx-filters==1.9.0
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
# lti-consumer-xblock
|
||||
# ora2
|
||||
openedx-learning==0.10.1
|
||||
# via
|
||||
# -c scripts/user_retirement/requirements/../../../requirements/constraints.txt
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
openedx-mongodbproxy==0.2.1
|
||||
# via -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
optimizely-sdk==4.1.1
|
||||
# via
|
||||
# -c scripts/user_retirement/requirements/../../../requirements/constraints.txt
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
ora2==6.11.2
|
||||
# via -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
packaging==24.1
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
# drf-yasg
|
||||
# gunicorn
|
||||
# py2neo
|
||||
# snowflake-connector-python
|
||||
pansi==2020.7.3
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
# py2neo
|
||||
paramiko==3.4.0
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
# edx-enterprise
|
||||
path==16.11.0
|
||||
# via
|
||||
# -c scripts/user_retirement/requirements/../../../requirements/constraints.txt
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
# edx-i18n-tools
|
||||
# path-py
|
||||
path-py==12.5.0
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
# edx-enterprise
|
||||
# ora2
|
||||
# staff-graded-xblock
|
||||
paver==1.3.4
|
||||
# via -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
pbr==6.0.0
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
# stevedore
|
||||
pgpy==0.6.0
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
# edx-enterprise
|
||||
piexif==1.1.3
|
||||
# via -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
pillow==10.4.0
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
# edx-enterprise
|
||||
# edx-organizations
|
||||
# edxval
|
||||
platformdirs==4.2.2
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
# snowflake-connector-python
|
||||
# zeep
|
||||
polib==1.2.0
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
# edx-i18n-tools
|
||||
prompt-toolkit==3.0.47
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
# click-repl
|
||||
proto-plus==1.24.0
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
# google-api-core
|
||||
# google-cloud-firestore
|
||||
protobuf==4.25.4
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
# google-api-core
|
||||
# google-cloud-firestore
|
||||
# googleapis-common-protos
|
||||
# grpcio-status
|
||||
# proto-plus
|
||||
psutil==6.0.0
|
||||
# via edx-django-utils
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
# edx-django-utils
|
||||
py2neo @ https://github.com/overhangio/py2neo/releases/download/2021.2.3/py2neo-2021.2.3.tar.gz
|
||||
# via
|
||||
# -c scripts/user_retirement/requirements/../../../requirements/constraints.txt
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
pyasn1==0.6.0
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
# pgpy
|
||||
# pyasn1-modules
|
||||
# rsa
|
||||
pyasn1-modules==0.4.0
|
||||
# via google-auth
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
# google-auth
|
||||
pycountry==24.6.1
|
||||
# via -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
pycparser==2.22
|
||||
# via cffi
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
# cffi
|
||||
pycryptodomex==3.20.0
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
# edx-proctoring
|
||||
# lti-consumer-xblock
|
||||
# pyjwkest
|
||||
pydantic==2.8.2
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
# camel-converter
|
||||
pydantic-core==2.20.1
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
# pydantic
|
||||
pygments==2.18.0
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
# py2neo
|
||||
pyjwkest==1.4.2
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
# edx-token-utils
|
||||
# lti-consumer-xblock
|
||||
pyjwt[crypto]==2.9.0
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
# drf-jwt
|
||||
# edx-auth-backends
|
||||
# edx-drf-extensions
|
||||
# edx-proctoring
|
||||
# edx-rest-api-client
|
||||
# firebase-admin
|
||||
# pylti1p3
|
||||
# simple-salesforce
|
||||
# snowflake-connector-python
|
||||
# social-auth-core
|
||||
pylatexenc==2.10
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
# olxcleaner
|
||||
pylti1p3==2.0.0
|
||||
# via -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
pymemcache==4.0.0
|
||||
# via -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
pymongo==4.4.0
|
||||
# via
|
||||
# -c scripts/user_retirement/requirements/../../../requirements/constraints.txt
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
# edx-opaque-keys
|
||||
# event-tracking
|
||||
# mongoengine
|
||||
# openedx-mongodbproxy
|
||||
pynacl==1.5.0
|
||||
# via edx-django-utils
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
# edx-django-utils
|
||||
# paramiko
|
||||
pynliner==0.8.0
|
||||
# via -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
pyopenssl==24.2.1
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
# optimizely-sdk
|
||||
# snowflake-connector-python
|
||||
pyparsing==3.1.2
|
||||
# via httplib2
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
# chem
|
||||
# httplib2
|
||||
# openedx-calc
|
||||
pyrsistent==0.20.0
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
# optimizely-sdk
|
||||
pysrt==1.1.2
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
# edxval
|
||||
python-dateutil==2.9.0.post0
|
||||
# via botocore
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
# analytics-python
|
||||
# botocore
|
||||
# celery
|
||||
# edx-ace
|
||||
# edx-enterprise
|
||||
# edx-proctoring
|
||||
# icalendar
|
||||
# olxcleaner
|
||||
# ora2
|
||||
# xblock
|
||||
python-ipware==3.0.0
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
# django-ipware
|
||||
python-memcached==1.62
|
||||
# via -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
python-slugify==8.0.4
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
# code-annotations
|
||||
python-swiftclient==4.6.0
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
# ora2
|
||||
python3-openid==3.2.0 ; python_version >= "3"
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
# social-auth-core
|
||||
python3-saml==1.16.0
|
||||
# via -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
pytz==2024.1
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
# django-ses
|
||||
# djangorestframework
|
||||
# drf-yasg
|
||||
# edx-completion
|
||||
# edx-enterprise
|
||||
# edx-proctoring
|
||||
# edx-submissions
|
||||
# edx-tincan-py35
|
||||
# event-tracking
|
||||
# fs
|
||||
# icalendar
|
||||
# interchange
|
||||
# jenkinsapi
|
||||
# olxcleaner
|
||||
# ora2
|
||||
# snowflake-connector-python
|
||||
# xblock
|
||||
# zeep
|
||||
pyuca==1.2
|
||||
# via -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
pyyaml==6.0.1
|
||||
# via -r scripts/user_retirement/requirements/base.in
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
# -r scripts/user_retirement/requirements/base.in
|
||||
# code-annotations
|
||||
# drf-spectacular
|
||||
# drf-yasg
|
||||
# edx-django-release-util
|
||||
# edx-i18n-tools
|
||||
# jsondiff
|
||||
# xblock
|
||||
random2==1.0.2
|
||||
# via -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
recommender-xblock==2.2.0
|
||||
# via -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
redis==5.0.8
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
# walrus
|
||||
referencing==0.35.1
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
# jsonschema
|
||||
# jsonschema-specifications
|
||||
regex==2024.7.24
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
# nltk
|
||||
requests==2.32.3
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
# -r scripts/user_retirement/requirements/base.in
|
||||
# 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
|
||||
# jenkinsapi
|
||||
# mailsnake
|
||||
# meilisearch
|
||||
# openai
|
||||
# optimizely-sdk
|
||||
# pyjwkest
|
||||
# pylti1p3
|
||||
# python-swiftclient
|
||||
# requests-file
|
||||
# requests-oauthlib
|
||||
# requests-toolbelt
|
||||
# sailthru-client
|
||||
# simple-salesforce
|
||||
# slumber
|
||||
# snowflake-connector-python
|
||||
# social-auth-core
|
||||
# xblock-google-drive
|
||||
# zeep
|
||||
requests-file==2.1.0
|
||||
# via zeep
|
||||
requests-oauthlib==2.0.0
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
# social-auth-core
|
||||
requests-toolbelt==1.0.0
|
||||
# via zeep
|
||||
rpds-py==0.20.0
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
# jsonschema
|
||||
# referencing
|
||||
rsa==4.9
|
||||
# via google-auth
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
# google-auth
|
||||
rules==3.4
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
# edx-enterprise
|
||||
# edx-proctoring
|
||||
# openedx-learning
|
||||
s3transfer==0.10.2
|
||||
# via boto3
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
# boto3
|
||||
sailthru-client==2.2.3
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
# edx-ace
|
||||
scipy==1.14.0
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
# chem
|
||||
# openedx-calc
|
||||
semantic-version==2.10.0
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
# edx-drf-extensions
|
||||
shapely==2.0.5
|
||||
# via -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
simple-salesforce==1.12.6
|
||||
# via -r scripts/user_retirement/requirements/base.in
|
||||
simplejson==3.19.2
|
||||
# via -r scripts/user_retirement/requirements/base.in
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
# -r scripts/user_retirement/requirements/base.in
|
||||
# sailthru-client
|
||||
# super-csv
|
||||
# xblock
|
||||
# xblock-utils
|
||||
six==1.16.0
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
# analytics-python
|
||||
# bleach
|
||||
# codejail-includes
|
||||
# crowdsourcehinter-xblock
|
||||
# edx-ace
|
||||
# edx-auth-backends
|
||||
# edx-ccx-keys
|
||||
# edx-codejail
|
||||
# edx-django-release-util
|
||||
# edx-milestones
|
||||
# edx-rbac
|
||||
# event-tracking
|
||||
# fs
|
||||
# fs-s3fs
|
||||
# html5lib
|
||||
# interchange
|
||||
# isodate
|
||||
# jenkinsapi
|
||||
# libsass
|
||||
# optimizely-sdk
|
||||
# pansi
|
||||
# paver
|
||||
# py2neo
|
||||
# pyjwkest
|
||||
# python-dateutil
|
||||
slumber==0.7.1
|
||||
# via edx-rest-api-client
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
# edx-bulk-grades
|
||||
# edx-enterprise
|
||||
# edx-rest-api-client
|
||||
snowflake-connector-python==3.12.0
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
# edx-enterprise
|
||||
social-auth-app-django==5.4.1
|
||||
# via
|
||||
# -c scripts/user_retirement/requirements/../../../requirements/constraints.txt
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
# edx-auth-backends
|
||||
social-auth-core==4.5.4
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
# edx-auth-backends
|
||||
# social-auth-app-django
|
||||
sorl-thumbnail==12.10.0
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
# openedx-django-wiki
|
||||
sortedcontainers==2.4.0
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
# snowflake-connector-python
|
||||
soupsieve==2.5
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
# beautifulsoup4
|
||||
sqlparse==0.5.1
|
||||
# via django
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
# django
|
||||
staff-graded-xblock==2.3.0
|
||||
# via -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
stevedore==5.2.0
|
||||
# via edx-django-utils
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
# code-annotations
|
||||
# edx-ace
|
||||
# edx-django-utils
|
||||
# edx-enterprise
|
||||
# edx-opaque-keys
|
||||
super-csv==3.2.0
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
# edx-bulk-grades
|
||||
sympy==1.13.1
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
# openedx-calc
|
||||
testfixtures==8.3.0
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
# edx-enterprise
|
||||
text-unidecode==1.3
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
# python-slugify
|
||||
tinycss2==1.2.1
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
# bleach
|
||||
tomlkit==0.13.0
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
# snowflake-connector-python
|
||||
tqdm==4.66.5
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
# nltk
|
||||
# openai
|
||||
typing-extensions==4.12.2
|
||||
# via simple-salesforce
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
# django-countries
|
||||
# edx-opaque-keys
|
||||
# jwcrypto
|
||||
# pydantic
|
||||
# pydantic-core
|
||||
# pylti1p3
|
||||
# simple-salesforce
|
||||
# snowflake-connector-python
|
||||
tzdata==2024.1
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
# celery
|
||||
unicodecsv==0.14.1
|
||||
# via -r scripts/user_retirement/requirements/base.in
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
# -r scripts/user_retirement/requirements/base.in
|
||||
# edx-enterprise
|
||||
uritemplate==4.1.1
|
||||
# via google-api-python-client
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
# drf-spectacular
|
||||
# drf-yasg
|
||||
# google-api-python-client
|
||||
urllib3==1.26.19
|
||||
# via
|
||||
# -c scripts/user_retirement/requirements/../../../requirements/constraints.txt
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
# botocore
|
||||
# elasticsearch
|
||||
# py2neo
|
||||
# requests
|
||||
user-util==1.1.0
|
||||
# via -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
vine==5.1.0
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
# amqp
|
||||
# celery
|
||||
# kombu
|
||||
voluptuous==0.15.2
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
# ora2
|
||||
walrus==0.9.4
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
# edx-event-bus-redis
|
||||
watchdog==4.0.1
|
||||
# via -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
wcwidth==0.2.13
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
# prompt-toolkit
|
||||
web-fragments==2.2.0
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
# crowdsourcehinter-xblock
|
||||
# edx-sga
|
||||
# staff-graded-xblock
|
||||
# xblock
|
||||
# xblock-utils
|
||||
webencodings==0.5.1
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
# bleach
|
||||
# html5lib
|
||||
# tinycss2
|
||||
webob==1.8.7
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
# xblock
|
||||
wrapt==1.16.0
|
||||
# via -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
xblock[django]==4.0.1
|
||||
# via
|
||||
# -c scripts/user_retirement/requirements/../../../requirements/constraints.txt
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
# acid-xblock
|
||||
# crowdsourcehinter-xblock
|
||||
# done-xblock
|
||||
# edx-completion
|
||||
# edx-sga
|
||||
# edx-when
|
||||
# lti-consumer-xblock
|
||||
# ora2
|
||||
# staff-graded-xblock
|
||||
# xblock-drag-and-drop-v2
|
||||
# xblock-google-drive
|
||||
# xblock-utils
|
||||
xblock-drag-and-drop-v2==4.0.3
|
||||
# via -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
xblock-google-drive==0.7.0
|
||||
# via -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
xblock-poll==1.14.0
|
||||
# via -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
xblock-utils==4.0.0
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
# edx-sga
|
||||
# xblock-poll
|
||||
xmlsec==1.3.13
|
||||
# via
|
||||
# -c scripts/user_retirement/requirements/../../../requirements/constraints.txt
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
# python3-saml
|
||||
xss-utils==0.6.0
|
||||
# via -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
yarl==1.9.4
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
# aiohttp
|
||||
zeep==4.2.1
|
||||
# via simple-salesforce
|
||||
zipp==3.19.2
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/../../../requirements/edx/base.txt
|
||||
# importlib-metadata
|
||||
|
||||
# The following packages are considered to be unsafe in a requirements file:
|
||||
# setuptools
|
||||
|
||||
@@ -4,219 +4,1256 @@
|
||||
#
|
||||
# make upgrade
|
||||
#
|
||||
-e git+https://github.com/anupdhabarde/edx-proctoring-proctortrack.git@31c6c9923a51c903ae83760ecbbac191363aa2a2#egg=edx_proctoring_proctortrack
|
||||
# via -r scripts/user_retirement/requirements/base.txt
|
||||
acid-xblock==0.3.1
|
||||
# via -r scripts/user_retirement/requirements/base.txt
|
||||
aiohappyeyeballs==2.3.4
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/base.txt
|
||||
# aiohttp
|
||||
aiohttp==3.10.1
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/base.txt
|
||||
# geoip2
|
||||
# openai
|
||||
aiosignal==1.3.1
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/base.txt
|
||||
# aiohttp
|
||||
algoliasearch==3.0.0
|
||||
# via -r scripts/user_retirement/requirements/base.txt
|
||||
amqp==5.2.0
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/base.txt
|
||||
# kombu
|
||||
analytics-python==1.4.post1
|
||||
# via -r scripts/user_retirement/requirements/base.txt
|
||||
aniso8601==9.0.1
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/base.txt
|
||||
# edx-tincan-py35
|
||||
annotated-types==0.7.0
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/base.txt
|
||||
# pydantic
|
||||
appdirs==1.4.4
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/base.txt
|
||||
# fs
|
||||
asgiref==3.8.1
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/base.txt
|
||||
# django
|
||||
# django-cors-headers
|
||||
# django-countries
|
||||
asn1crypto==1.5.1
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/base.txt
|
||||
# snowflake-connector-python
|
||||
attrs==24.2.0
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/base.txt
|
||||
# aiohttp
|
||||
# edx-ace
|
||||
# jsonschema
|
||||
# lti-consumer-xblock
|
||||
# openedx-events
|
||||
# openedx-learning
|
||||
# referencing
|
||||
# zeep
|
||||
backoff==2.2.1
|
||||
babel==2.15.0
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/base.txt
|
||||
# enmerkar
|
||||
# enmerkar-underscore
|
||||
backoff==1.10.0
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/base.txt
|
||||
# analytics-python
|
||||
bcrypt==4.2.0
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/base.txt
|
||||
# paramiko
|
||||
beautifulsoup4==4.12.3
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/base.txt
|
||||
# pynliner
|
||||
billiard==4.2.0
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/base.txt
|
||||
# celery
|
||||
bleach[css]==6.1.0
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/base.txt
|
||||
# edx-enterprise
|
||||
# lti-consumer-xblock
|
||||
# openedx-django-wiki
|
||||
# ora2
|
||||
# xblock-drag-and-drop-v2
|
||||
# xblock-poll
|
||||
boto==2.49.0
|
||||
# via -r scripts/user_retirement/requirements/base.txt
|
||||
boto3==1.34.154
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/base.txt
|
||||
# django-ses
|
||||
# fs-s3fs
|
||||
# moto
|
||||
# ora2
|
||||
botocore==1.34.154
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/base.txt
|
||||
# boto3
|
||||
# moto
|
||||
# s3transfer
|
||||
bridgekeeper==0.9
|
||||
# via -r scripts/user_retirement/requirements/base.txt
|
||||
cachecontrol==0.14.0
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/base.txt
|
||||
# firebase-admin
|
||||
cachetools==5.4.0
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/base.txt
|
||||
# google-auth
|
||||
camel-converter[pydantic]==3.1.2
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/base.txt
|
||||
# meilisearch
|
||||
celery==5.4.0
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/base.txt
|
||||
# django-celery-results
|
||||
# django-user-tasks
|
||||
# edx-celeryutils
|
||||
# edx-enterprise
|
||||
# event-tracking
|
||||
# openedx-learning
|
||||
certifi==2024.7.4
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/base.txt
|
||||
# elasticsearch
|
||||
# py2neo
|
||||
# requests
|
||||
# snowflake-connector-python
|
||||
cffi==1.17.0
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/base.txt
|
||||
# cryptography
|
||||
# pynacl
|
||||
# snowflake-connector-python
|
||||
chardet==5.2.0
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/base.txt
|
||||
# pysrt
|
||||
charset-normalizer==2.0.12
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/base.txt
|
||||
# requests
|
||||
# snowflake-connector-python
|
||||
chem==1.3.0
|
||||
# via -r scripts/user_retirement/requirements/base.txt
|
||||
click==8.1.6
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/base.txt
|
||||
# celery
|
||||
# click-didyoumean
|
||||
# click-plugins
|
||||
# click-repl
|
||||
# code-annotations
|
||||
# edx-django-utils
|
||||
cryptography==43.0.0
|
||||
# nltk
|
||||
# user-util
|
||||
click-didyoumean==0.3.1
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/base.txt
|
||||
# celery
|
||||
click-plugins==1.1.1
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/base.txt
|
||||
# celery
|
||||
click-repl==0.3.0
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/base.txt
|
||||
# celery
|
||||
code-annotations==1.8.0
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/base.txt
|
||||
# edx-enterprise
|
||||
# edx-toggles
|
||||
codejail-includes==1.0.0
|
||||
# via -r scripts/user_retirement/requirements/base.txt
|
||||
crowdsourcehinter-xblock==0.7
|
||||
# via -r scripts/user_retirement/requirements/base.txt
|
||||
cryptography==42.0.8
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/base.txt
|
||||
# django-fernet-fields-v2
|
||||
# edx-enterprise
|
||||
# jwcrypto
|
||||
# moto
|
||||
# optimizely-sdk
|
||||
# paramiko
|
||||
# pgpy
|
||||
# pyjwt
|
||||
# pyopenssl
|
||||
# snowflake-connector-python
|
||||
# social-auth-core
|
||||
cssutils==2.11.1
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/base.txt
|
||||
# pynliner
|
||||
ddt==1.7.2
|
||||
# via -r scripts/user_retirement/requirements/testing.in
|
||||
defusedxml==0.7.1
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/base.txt
|
||||
# djangorestframework-xml
|
||||
# ora2
|
||||
# python3-openid
|
||||
# social-auth-core
|
||||
django==4.2.15
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/base.txt
|
||||
# django-appconf
|
||||
# django-celery-results
|
||||
# django-classy-tags
|
||||
# django-config-models
|
||||
# django-cors-headers
|
||||
# django-crum
|
||||
# django-fernet-fields-v2
|
||||
# django-filter
|
||||
# django-js-asset
|
||||
# django-method-override
|
||||
# django-model-utils
|
||||
# django-multi-email-field
|
||||
# django-mysql
|
||||
# django-oauth-toolkit
|
||||
# django-push-notifications
|
||||
# django-sekizai
|
||||
# django-ses
|
||||
# django-statici18n
|
||||
# django-storages
|
||||
# django-user-tasks
|
||||
# django-waffle
|
||||
# djangorestframework
|
||||
# done-xblock
|
||||
# drf-jwt
|
||||
# drf-spectacular
|
||||
# drf-yasg
|
||||
# edx-ace
|
||||
# edx-api-doc-tools
|
||||
# edx-auth-backends
|
||||
# edx-bulk-grades
|
||||
# edx-celeryutils
|
||||
# edx-completion
|
||||
# edx-django-release-util
|
||||
# edx-django-sites-extensions
|
||||
# edx-django-utils
|
||||
# edx-drf-extensions
|
||||
# edx-enterprise
|
||||
# edx-event-bus-kafka
|
||||
# edx-event-bus-redis
|
||||
# edx-i18n-tools
|
||||
# edx-milestones
|
||||
# edx-name-affirmation
|
||||
# edx-organizations
|
||||
# edx-proctoring
|
||||
# edx-rbac
|
||||
# edx-search
|
||||
# edx-submissions
|
||||
# edx-toggles
|
||||
# edx-token-utils
|
||||
# edx-when
|
||||
# edxval
|
||||
# enmerkar
|
||||
# enmerkar-underscore
|
||||
# event-tracking
|
||||
# help-tokens
|
||||
# jsonfield
|
||||
# lti-consumer-xblock
|
||||
# openedx-django-pyfs
|
||||
# openedx-django-wiki
|
||||
# openedx-events
|
||||
# openedx-filters
|
||||
# openedx-learning
|
||||
# ora2
|
||||
# social-auth-app-django
|
||||
# super-csv
|
||||
# xblock-google-drive
|
||||
# xss-utils
|
||||
django-appconf==1.0.6
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/base.txt
|
||||
# django-statici18n
|
||||
django-cache-memoize==0.2.0
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/base.txt
|
||||
# edx-enterprise
|
||||
django-celery-results==2.5.1
|
||||
# via -r scripts/user_retirement/requirements/base.txt
|
||||
django-classy-tags==4.1.0
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/base.txt
|
||||
# django-sekizai
|
||||
django-config-models==2.7.0
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/base.txt
|
||||
# edx-enterprise
|
||||
# edx-name-affirmation
|
||||
# lti-consumer-xblock
|
||||
django-cors-headers==4.4.0
|
||||
# via -r scripts/user_retirement/requirements/base.txt
|
||||
django-countries==7.6.1
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/base.txt
|
||||
# edx-enterprise
|
||||
django-crum==0.7.9
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/base.txt
|
||||
# edx-django-utils
|
||||
# edx-enterprise
|
||||
# edx-proctoring
|
||||
# edx-rbac
|
||||
# edx-toggles
|
||||
# super-csv
|
||||
django-fernet-fields-v2==0.9
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/base.txt
|
||||
# edx-enterprise
|
||||
django-filter==24.3
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/base.txt
|
||||
# edx-enterprise
|
||||
# lti-consumer-xblock
|
||||
django-ipware==7.0.1
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/base.txt
|
||||
# edx-enterprise
|
||||
# edx-proctoring
|
||||
django-js-asset==2.2.0
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/base.txt
|
||||
# django-mptt
|
||||
django-method-override==1.0.4
|
||||
# via -r scripts/user_retirement/requirements/base.txt
|
||||
django-model-utils==4.5.1
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/base.txt
|
||||
# django-user-tasks
|
||||
# edx-bulk-grades
|
||||
# edx-celeryutils
|
||||
# edx-completion
|
||||
# edx-enterprise
|
||||
# edx-milestones
|
||||
# edx-name-affirmation
|
||||
# edx-organizations
|
||||
# edx-proctoring
|
||||
# edx-rbac
|
||||
# edx-submissions
|
||||
# edx-when
|
||||
# edxval
|
||||
# ora2
|
||||
# super-csv
|
||||
django-mptt==0.16.0
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/base.txt
|
||||
# openedx-django-wiki
|
||||
django-multi-email-field==0.7.0
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/base.txt
|
||||
# edx-enterprise
|
||||
django-mysql==4.14.0
|
||||
# via -r scripts/user_retirement/requirements/base.txt
|
||||
django-oauth-toolkit==1.7.1
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/base.txt
|
||||
# edx-enterprise
|
||||
django-object-actions==4.2.0
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/base.txt
|
||||
# edx-enterprise
|
||||
django-pipeline==3.1.0
|
||||
# via -r scripts/user_retirement/requirements/base.txt
|
||||
django-push-notifications==3.1.0
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/base.txt
|
||||
# edx-ace
|
||||
django-ratelimit==4.1.0
|
||||
# via -r scripts/user_retirement/requirements/base.txt
|
||||
django-sekizai==4.1.0
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/base.txt
|
||||
# openedx-django-wiki
|
||||
django-ses==4.1.0
|
||||
# via -r scripts/user_retirement/requirements/base.txt
|
||||
django-simple-history==3.4.0
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/base.txt
|
||||
# edx-enterprise
|
||||
# edx-name-affirmation
|
||||
# edx-organizations
|
||||
# edx-proctoring
|
||||
# ora2
|
||||
django-statici18n==2.5.0
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/base.txt
|
||||
# lti-consumer-xblock
|
||||
# xblock-drag-and-drop-v2
|
||||
# xblock-poll
|
||||
django-storages==1.14.3
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/base.txt
|
||||
# edxval
|
||||
django-user-tasks==3.2.0
|
||||
# via -r scripts/user_retirement/requirements/base.txt
|
||||
django-waffle==4.1.0
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/base.txt
|
||||
# edx-django-utils
|
||||
# edx-drf-extensions
|
||||
# edx-enterprise
|
||||
# edx-proctoring
|
||||
# edx-toggles
|
||||
django-webpack-loader==0.7.0
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/base.txt
|
||||
# edx-proctoring
|
||||
djangorestframework==3.14.0
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/base.txt
|
||||
# django-config-models
|
||||
# django-user-tasks
|
||||
# drf-jwt
|
||||
# drf-spectacular
|
||||
# drf-yasg
|
||||
# edx-api-doc-tools
|
||||
# edx-completion
|
||||
# edx-drf-extensions
|
||||
# edx-enterprise
|
||||
# edx-name-affirmation
|
||||
# edx-organizations
|
||||
# edx-proctoring
|
||||
# edx-submissions
|
||||
# openedx-learning
|
||||
# ora2
|
||||
# super-csv
|
||||
djangorestframework-xml==2.0.0
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/base.txt
|
||||
# edx-enterprise
|
||||
dnspython==2.6.1
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/base.txt
|
||||
# pymongo
|
||||
done-xblock==2.3.0
|
||||
# via -r scripts/user_retirement/requirements/base.txt
|
||||
drf-jwt==1.19.2
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/base.txt
|
||||
# edx-drf-extensions
|
||||
drf-spectacular==0.27.2
|
||||
# via -r scripts/user_retirement/requirements/base.txt
|
||||
drf-yasg==1.21.7
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/base.txt
|
||||
# django-user-tasks
|
||||
# edx-api-doc-tools
|
||||
edx-ace==1.11.1
|
||||
# via -r scripts/user_retirement/requirements/base.txt
|
||||
edx-api-doc-tools==1.8.0
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/base.txt
|
||||
# edx-name-affirmation
|
||||
edx-auth-backends==4.3.0
|
||||
# via -r scripts/user_retirement/requirements/base.txt
|
||||
edx-braze-client==0.2.5
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/base.txt
|
||||
# edx-enterprise
|
||||
edx-bulk-grades==1.1.0
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/base.txt
|
||||
# staff-graded-xblock
|
||||
edx-ccx-keys==1.3.0
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/base.txt
|
||||
# lti-consumer-xblock
|
||||
# openedx-events
|
||||
edx-celeryutils==1.3.0
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/base.txt
|
||||
# edx-name-affirmation
|
||||
# super-csv
|
||||
edx-codejail==3.4.1
|
||||
# via -r scripts/user_retirement/requirements/base.txt
|
||||
edx-completion==4.6.7
|
||||
# via -r scripts/user_retirement/requirements/base.txt
|
||||
edx-django-release-util==1.4.0
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/base.txt
|
||||
# edx-submissions
|
||||
# edxval
|
||||
edx-django-sites-extensions==4.2.0
|
||||
# via -r scripts/user_retirement/requirements/base.txt
|
||||
edx-django-utils==5.15.0
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/base.txt
|
||||
# django-config-models
|
||||
# edx-ace
|
||||
# edx-drf-extensions
|
||||
# edx-enterprise
|
||||
# edx-event-bus-kafka
|
||||
# edx-event-bus-redis
|
||||
# edx-name-affirmation
|
||||
# edx-rest-api-client
|
||||
edx-rest-api-client==5.7.1
|
||||
# via -r scripts/user_retirement/requirements/base.txt
|
||||
google-api-core==2.19.1
|
||||
# edx-toggles
|
||||
# edx-when
|
||||
# event-tracking
|
||||
# openedx-events
|
||||
# ora2
|
||||
# super-csv
|
||||
edx-drf-extensions==10.3.0
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/base.txt
|
||||
# google-api-python-client
|
||||
google-api-python-client==2.139.0
|
||||
# edx-completion
|
||||
# edx-enterprise
|
||||
# edx-name-affirmation
|
||||
# edx-organizations
|
||||
# edx-proctoring
|
||||
# edx-rbac
|
||||
# edx-when
|
||||
# edxval
|
||||
# openedx-learning
|
||||
edx-enterprise==4.23.8
|
||||
# via -r scripts/user_retirement/requirements/base.txt
|
||||
edx-event-bus-kafka==5.8.1
|
||||
# via -r scripts/user_retirement/requirements/base.txt
|
||||
edx-event-bus-redis==0.5.0
|
||||
# via -r scripts/user_retirement/requirements/base.txt
|
||||
edx-i18n-tools==1.5.0
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/base.txt
|
||||
# ora2
|
||||
edx-milestones==0.6.0
|
||||
# via -r scripts/user_retirement/requirements/base.txt
|
||||
edx-name-affirmation==2.3.7
|
||||
# via -r scripts/user_retirement/requirements/base.txt
|
||||
edx-opaque-keys[django]==2.10.0
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/base.txt
|
||||
# edx-bulk-grades
|
||||
# edx-ccx-keys
|
||||
# edx-completion
|
||||
# edx-drf-extensions
|
||||
# edx-enterprise
|
||||
# edx-milestones
|
||||
# edx-organizations
|
||||
# edx-proctoring
|
||||
# edx-when
|
||||
# lti-consumer-xblock
|
||||
# openedx-events
|
||||
# ora2
|
||||
edx-organizations==6.13.0
|
||||
# via -r scripts/user_retirement/requirements/base.txt
|
||||
edx-proctoring==4.18.1
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/base.txt
|
||||
# edx-proctoring-proctortrack
|
||||
edx-rbac==1.9.0
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/base.txt
|
||||
# edx-enterprise
|
||||
edx-rest-api-client==5.7.1
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/base.txt
|
||||
# edx-enterprise
|
||||
# edx-proctoring
|
||||
edx-search==4.0.0
|
||||
# via -r scripts/user_retirement/requirements/base.txt
|
||||
edx-sga==0.25.0
|
||||
# via -r scripts/user_retirement/requirements/base.txt
|
||||
edx-submissions==3.7.6
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/base.txt
|
||||
# ora2
|
||||
edx-tincan-py35==1.0.0
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/base.txt
|
||||
# edx-enterprise
|
||||
edx-toggles==5.2.0
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/base.txt
|
||||
# edx-completion
|
||||
# edx-enterprise
|
||||
# edx-event-bus-kafka
|
||||
# edx-event-bus-redis
|
||||
# edx-name-affirmation
|
||||
# edx-search
|
||||
# edxval
|
||||
# event-tracking
|
||||
# ora2
|
||||
edx-token-utils==0.2.1
|
||||
# via -r scripts/user_retirement/requirements/base.txt
|
||||
edx-when==2.5.0
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/base.txt
|
||||
# edx-proctoring
|
||||
edxval==2.5.0
|
||||
# via -r scripts/user_retirement/requirements/base.txt
|
||||
elasticsearch==7.13.4
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/base.txt
|
||||
# edx-search
|
||||
enmerkar==0.7.1
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/base.txt
|
||||
# enmerkar-underscore
|
||||
enmerkar-underscore==2.3.0
|
||||
# via -r scripts/user_retirement/requirements/base.txt
|
||||
event-tracking==3.0.0
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/base.txt
|
||||
# edx-completion
|
||||
# edx-proctoring
|
||||
# edx-search
|
||||
fastavro==1.9.5
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/base.txt
|
||||
# openedx-events
|
||||
filelock==3.15.4
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/base.txt
|
||||
# snowflake-connector-python
|
||||
firebase-admin==6.5.0
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/base.txt
|
||||
# edx-ace
|
||||
frozenlist==1.4.1
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/base.txt
|
||||
# aiohttp
|
||||
# aiosignal
|
||||
fs==2.0.27
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/base.txt
|
||||
# fs-s3fs
|
||||
# openedx-django-pyfs
|
||||
# xblock
|
||||
fs-s3fs==0.1.8
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/base.txt
|
||||
# openedx-django-pyfs
|
||||
future==1.0.0
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/base.txt
|
||||
# pyjwkest
|
||||
geoip2==4.8.0
|
||||
# via -r scripts/user_retirement/requirements/base.txt
|
||||
glob2==0.7
|
||||
# via -r scripts/user_retirement/requirements/base.txt
|
||||
google-api-core[grpc]==2.19.1
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/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 scripts/user_retirement/requirements/base.txt
|
||||
# firebase-admin
|
||||
google-auth==2.32.0
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/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 scripts/user_retirement/requirements/base.txt
|
||||
# google-api-python-client
|
||||
google-cloud-core==2.4.1
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/base.txt
|
||||
# google-cloud-firestore
|
||||
# google-cloud-storage
|
||||
google-cloud-firestore==2.17.0
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/base.txt
|
||||
# firebase-admin
|
||||
google-cloud-storage==2.18.0
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/base.txt
|
||||
# firebase-admin
|
||||
google-crc32c==1.5.0
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/base.txt
|
||||
# google-cloud-storage
|
||||
# google-resumable-media
|
||||
google-resumable-media==2.7.1
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/base.txt
|
||||
# google-cloud-storage
|
||||
googleapis-common-protos==1.63.2
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/base.txt
|
||||
# google-api-core
|
||||
# grpcio-status
|
||||
grpcio==1.65.4
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/base.txt
|
||||
# google-api-core
|
||||
# grpcio-status
|
||||
grpcio-status==1.62.3
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/base.txt
|
||||
# google-api-core
|
||||
gunicorn==22.0.0
|
||||
# via -r scripts/user_retirement/requirements/base.txt
|
||||
help-tokens==2.4.0
|
||||
# via -r scripts/user_retirement/requirements/base.txt
|
||||
html5lib==1.1
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/base.txt
|
||||
# ora2
|
||||
httplib2==0.22.0
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/base.txt
|
||||
# google-api-python-client
|
||||
# google-auth-httplib2
|
||||
icalendar==5.0.13
|
||||
# via -r scripts/user_retirement/requirements/base.txt
|
||||
idna==3.7
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/base.txt
|
||||
# optimizely-sdk
|
||||
# requests
|
||||
# snowflake-connector-python
|
||||
# yarl
|
||||
importlib-metadata==6.11.0
|
||||
# via -r scripts/user_retirement/requirements/base.txt
|
||||
inflection==0.5.1
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/base.txt
|
||||
# drf-spectacular
|
||||
# drf-yasg
|
||||
iniconfig==2.0.0
|
||||
# via pytest
|
||||
interchange==2021.0.4
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/base.txt
|
||||
# py2neo
|
||||
ipaddress==1.0.23
|
||||
# via -r scripts/user_retirement/requirements/base.txt
|
||||
isodate==0.6.1
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/base.txt
|
||||
# python3-saml
|
||||
# zeep
|
||||
jenkinsapi==0.3.13
|
||||
# via -r scripts/user_retirement/requirements/base.txt
|
||||
jinja2==3.1.4
|
||||
# via moto
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/base.txt
|
||||
# code-annotations
|
||||
# moto
|
||||
jmespath==1.0.1
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/base.txt
|
||||
# boto3
|
||||
# botocore
|
||||
joblib==1.4.2
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/base.txt
|
||||
# nltk
|
||||
jsondiff==2.2.0
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/base.txt
|
||||
# edx-enterprise
|
||||
jsonfield==3.1.0
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/base.txt
|
||||
# edx-celeryutils
|
||||
# edx-enterprise
|
||||
# edx-proctoring
|
||||
# edx-submissions
|
||||
# lti-consumer-xblock
|
||||
# ora2
|
||||
jsonschema==4.23.0
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/base.txt
|
||||
# drf-spectacular
|
||||
# optimizely-sdk
|
||||
jsonschema-specifications==2023.12.1
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/base.txt
|
||||
# jsonschema
|
||||
jwcrypto==1.5.6
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/base.txt
|
||||
# django-oauth-toolkit
|
||||
# pylti1p3
|
||||
kombu==5.4.0
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/base.txt
|
||||
# celery
|
||||
laboratory==1.0.2
|
||||
# via -r scripts/user_retirement/requirements/base.txt
|
||||
lazy==1.6
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/base.txt
|
||||
# acid-xblock
|
||||
# lti-consumer-xblock
|
||||
# ora2
|
||||
# xblock
|
||||
libsass==0.10.0
|
||||
# via -r scripts/user_retirement/requirements/base.txt
|
||||
loremipsum==1.0.5
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/base.txt
|
||||
# ora2
|
||||
lti-consumer-xblock==9.11.3
|
||||
# via -r scripts/user_retirement/requirements/base.txt
|
||||
lxml==4.9.4
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/base.txt
|
||||
# edx-i18n-tools
|
||||
# edxval
|
||||
# lti-consumer-xblock
|
||||
# olxcleaner
|
||||
# openedx-calc
|
||||
# ora2
|
||||
# python3-saml
|
||||
# xblock
|
||||
# xmlsec
|
||||
# zeep
|
||||
mailsnake==1.6.4
|
||||
# via -r scripts/user_retirement/requirements/base.txt
|
||||
mako==1.3.5
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/base.txt
|
||||
# acid-xblock
|
||||
# lti-consumer-xblock
|
||||
# xblock
|
||||
# xblock-utils
|
||||
markdown==3.3.7
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/base.txt
|
||||
# openedx-django-wiki
|
||||
# staff-graded-xblock
|
||||
# xblock-poll
|
||||
markupsafe==2.1.5
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/base.txt
|
||||
# chem
|
||||
# jinja2
|
||||
# mako
|
||||
# openedx-calc
|
||||
# werkzeug
|
||||
# xblock
|
||||
maxminddb==2.6.2
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/base.txt
|
||||
# geoip2
|
||||
meilisearch==0.31.4
|
||||
# via -r scripts/user_retirement/requirements/base.txt
|
||||
mock==5.1.0
|
||||
# via -r scripts/user_retirement/requirements/testing.in
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/base.txt
|
||||
# -r scripts/user_retirement/requirements/testing.in
|
||||
mongoengine==0.28.2
|
||||
# via -r scripts/user_retirement/requirements/base.txt
|
||||
monotonic==1.6
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/base.txt
|
||||
# analytics-python
|
||||
# py2neo
|
||||
more-itertools==10.3.0
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/base.txt
|
||||
# cssutils
|
||||
# simple-salesforce
|
||||
moto==4.2.14
|
||||
# via -r scripts/user_retirement/requirements/testing.in
|
||||
mpmath==1.3.0
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/base.txt
|
||||
# sympy
|
||||
msgpack==1.0.8
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/base.txt
|
||||
# cachecontrol
|
||||
multidict==6.0.5
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/base.txt
|
||||
# aiohttp
|
||||
# yarl
|
||||
mysqlclient==2.2.4
|
||||
# via -r scripts/user_retirement/requirements/base.txt
|
||||
newrelic==9.12.0
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/base.txt
|
||||
# edx-django-utils
|
||||
nh3==0.2.18
|
||||
# via -r scripts/user_retirement/requirements/base.txt
|
||||
nltk==3.8.1
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/base.txt
|
||||
# chem
|
||||
nodeenv==1.9.1
|
||||
# via -r scripts/user_retirement/requirements/base.txt
|
||||
numpy==1.26.4
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/base.txt
|
||||
# chem
|
||||
# openedx-calc
|
||||
# scipy
|
||||
# shapely
|
||||
oauthlib==3.2.2
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/base.txt
|
||||
# django-oauth-toolkit
|
||||
# lti-consumer-xblock
|
||||
# requests-oauthlib
|
||||
# social-auth-core
|
||||
olxcleaner==0.3.0
|
||||
# via -r scripts/user_retirement/requirements/base.txt
|
||||
openai==0.28.1
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/base.txt
|
||||
# edx-enterprise
|
||||
openedx-atlas==0.6.1
|
||||
# via -r scripts/user_retirement/requirements/base.txt
|
||||
openedx-calc==3.1.0
|
||||
# via -r scripts/user_retirement/requirements/base.txt
|
||||
openedx-django-pyfs==3.6.0
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/base.txt
|
||||
# lti-consumer-xblock
|
||||
# xblock
|
||||
openedx-django-require==2.1.0
|
||||
# via -r scripts/user_retirement/requirements/base.txt
|
||||
openedx-django-wiki==2.1.0
|
||||
# via -r scripts/user_retirement/requirements/base.txt
|
||||
openedx-events==9.11.0
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/base.txt
|
||||
# edx-event-bus-kafka
|
||||
# edx-event-bus-redis
|
||||
# event-tracking
|
||||
# ora2
|
||||
openedx-filters==1.9.0
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/base.txt
|
||||
# lti-consumer-xblock
|
||||
# ora2
|
||||
openedx-learning==0.10.1
|
||||
# via -r scripts/user_retirement/requirements/base.txt
|
||||
openedx-mongodbproxy==0.2.1
|
||||
# via -r scripts/user_retirement/requirements/base.txt
|
||||
optimizely-sdk==4.1.1
|
||||
# via -r scripts/user_retirement/requirements/base.txt
|
||||
ora2==6.11.2
|
||||
# via -r scripts/user_retirement/requirements/base.txt
|
||||
packaging==24.1
|
||||
# via pytest
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/base.txt
|
||||
# drf-yasg
|
||||
# gunicorn
|
||||
# py2neo
|
||||
# pytest
|
||||
# snowflake-connector-python
|
||||
pansi==2020.7.3
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/base.txt
|
||||
# py2neo
|
||||
paramiko==3.4.0
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/base.txt
|
||||
# edx-enterprise
|
||||
path==16.11.0
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/base.txt
|
||||
# edx-i18n-tools
|
||||
# path-py
|
||||
path-py==12.5.0
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/base.txt
|
||||
# edx-enterprise
|
||||
# ora2
|
||||
# staff-graded-xblock
|
||||
paver==1.3.4
|
||||
# via -r scripts/user_retirement/requirements/base.txt
|
||||
pbr==6.0.0
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/base.txt
|
||||
# stevedore
|
||||
pgpy==0.6.0
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/base.txt
|
||||
# edx-enterprise
|
||||
piexif==1.1.3
|
||||
# via -r scripts/user_retirement/requirements/base.txt
|
||||
pillow==10.4.0
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/base.txt
|
||||
# edx-enterprise
|
||||
# edx-organizations
|
||||
# edxval
|
||||
platformdirs==4.2.2
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/base.txt
|
||||
# snowflake-connector-python
|
||||
# zeep
|
||||
pluggy==1.5.0
|
||||
# via pytest
|
||||
polib==1.2.0
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/base.txt
|
||||
# edx-i18n-tools
|
||||
prompt-toolkit==3.0.47
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/base.txt
|
||||
# click-repl
|
||||
proto-plus==1.24.0
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/base.txt
|
||||
# google-api-core
|
||||
protobuf==5.27.3
|
||||
# google-cloud-firestore
|
||||
protobuf==4.25.4
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/base.txt
|
||||
# google-api-core
|
||||
# google-cloud-firestore
|
||||
# googleapis-common-protos
|
||||
# grpcio-status
|
||||
# proto-plus
|
||||
psutil==6.0.0
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/base.txt
|
||||
# edx-django-utils
|
||||
py2neo @ https://github.com/overhangio/py2neo/releases/download/2021.2.3/py2neo-2021.2.3.tar.gz
|
||||
# via -r scripts/user_retirement/requirements/base.txt
|
||||
pyasn1==0.6.0
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/base.txt
|
||||
# pgpy
|
||||
# pyasn1-modules
|
||||
# rsa
|
||||
pyasn1-modules==0.4.0
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/base.txt
|
||||
# google-auth
|
||||
pycountry==24.6.1
|
||||
# via -r scripts/user_retirement/requirements/base.txt
|
||||
pycparser==2.22
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/base.txt
|
||||
# cffi
|
||||
pycryptodomex==3.20.0
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/base.txt
|
||||
# edx-proctoring
|
||||
# lti-consumer-xblock
|
||||
# pyjwkest
|
||||
pydantic==2.8.2
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/base.txt
|
||||
# camel-converter
|
||||
pydantic-core==2.20.1
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/base.txt
|
||||
# pydantic
|
||||
pygments==2.18.0
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/base.txt
|
||||
# py2neo
|
||||
pyjwkest==1.4.2
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/base.txt
|
||||
# edx-token-utils
|
||||
# lti-consumer-xblock
|
||||
pyjwt[crypto]==2.9.0
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/base.txt
|
||||
# drf-jwt
|
||||
# edx-auth-backends
|
||||
# edx-drf-extensions
|
||||
# edx-proctoring
|
||||
# edx-rest-api-client
|
||||
# firebase-admin
|
||||
# pylti1p3
|
||||
# simple-salesforce
|
||||
# snowflake-connector-python
|
||||
# social-auth-core
|
||||
pylatexenc==2.10
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/base.txt
|
||||
# olxcleaner
|
||||
pylti1p3==2.0.0
|
||||
# via -r scripts/user_retirement/requirements/base.txt
|
||||
pymemcache==4.0.0
|
||||
# via -r scripts/user_retirement/requirements/base.txt
|
||||
pymongo==4.4.0
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/base.txt
|
||||
# edx-opaque-keys
|
||||
# event-tracking
|
||||
# mongoengine
|
||||
# openedx-mongodbproxy
|
||||
pynacl==1.5.0
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/base.txt
|
||||
# edx-django-utils
|
||||
# paramiko
|
||||
pynliner==0.8.0
|
||||
# via -r scripts/user_retirement/requirements/base.txt
|
||||
pyopenssl==24.2.1
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/base.txt
|
||||
# optimizely-sdk
|
||||
# snowflake-connector-python
|
||||
pyparsing==3.1.2
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/base.txt
|
||||
# chem
|
||||
# httplib2
|
||||
# openedx-calc
|
||||
pyrsistent==0.20.0
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/base.txt
|
||||
# optimizely-sdk
|
||||
pysrt==1.1.2
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/base.txt
|
||||
# edxval
|
||||
pytest==8.3.2
|
||||
# via -r scripts/user_retirement/requirements/testing.in
|
||||
python-dateutil==2.9.0.post0
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/base.txt
|
||||
# analytics-python
|
||||
# botocore
|
||||
# celery
|
||||
# edx-ace
|
||||
# edx-enterprise
|
||||
# edx-proctoring
|
||||
# icalendar
|
||||
# moto
|
||||
# olxcleaner
|
||||
# ora2
|
||||
# xblock
|
||||
python-ipware==3.0.0
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/base.txt
|
||||
# django-ipware
|
||||
python-memcached==1.62
|
||||
# via -r scripts/user_retirement/requirements/base.txt
|
||||
python-slugify==8.0.4
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/base.txt
|
||||
# code-annotations
|
||||
python-swiftclient==4.6.0
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/base.txt
|
||||
# ora2
|
||||
python3-openid==3.2.0 ; python_version >= "3"
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/base.txt
|
||||
# social-auth-core
|
||||
python3-saml==1.16.0
|
||||
# via -r scripts/user_retirement/requirements/base.txt
|
||||
pytz==2024.1
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/base.txt
|
||||
# django-ses
|
||||
# djangorestframework
|
||||
# drf-yasg
|
||||
# edx-completion
|
||||
# edx-enterprise
|
||||
# edx-proctoring
|
||||
# edx-submissions
|
||||
# edx-tincan-py35
|
||||
# event-tracking
|
||||
# fs
|
||||
# icalendar
|
||||
# interchange
|
||||
# jenkinsapi
|
||||
# olxcleaner
|
||||
# ora2
|
||||
# snowflake-connector-python
|
||||
# xblock
|
||||
# zeep
|
||||
pyuca==1.2
|
||||
# via -r scripts/user_retirement/requirements/base.txt
|
||||
pyyaml==6.0.1
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/base.txt
|
||||
# code-annotations
|
||||
# drf-spectacular
|
||||
# drf-yasg
|
||||
# edx-django-release-util
|
||||
# edx-i18n-tools
|
||||
# jsondiff
|
||||
# responses
|
||||
# xblock
|
||||
random2==1.0.2
|
||||
# via -r scripts/user_retirement/requirements/base.txt
|
||||
recommender-xblock==2.2.0
|
||||
# via -r scripts/user_retirement/requirements/base.txt
|
||||
redis==5.0.8
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/base.txt
|
||||
# walrus
|
||||
referencing==0.35.1
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/base.txt
|
||||
# jsonschema
|
||||
# jsonschema-specifications
|
||||
regex==2024.7.24
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/base.txt
|
||||
# nltk
|
||||
requests==2.32.3
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/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
|
||||
# jenkinsapi
|
||||
# mailsnake
|
||||
# meilisearch
|
||||
# moto
|
||||
# openai
|
||||
# optimizely-sdk
|
||||
# pyjwkest
|
||||
# pylti1p3
|
||||
# python-swiftclient
|
||||
# requests-file
|
||||
# requests-mock
|
||||
# requests-oauthlib
|
||||
# requests-toolbelt
|
||||
# responses
|
||||
# sailthru-client
|
||||
# simple-salesforce
|
||||
# slumber
|
||||
# snowflake-connector-python
|
||||
# social-auth-core
|
||||
# xblock-google-drive
|
||||
# zeep
|
||||
requests-file==2.1.0
|
||||
# via
|
||||
@@ -224,6 +1261,10 @@ requests-file==2.1.0
|
||||
# zeep
|
||||
requests-mock==1.12.1
|
||||
# via -r scripts/user_retirement/requirements/testing.in
|
||||
requests-oauthlib==2.0.0
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/base.txt
|
||||
# social-auth-core
|
||||
requests-toolbelt==1.0.0
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/base.txt
|
||||
@@ -232,57 +1273,274 @@ responses==0.25.3
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/testing.in
|
||||
# moto
|
||||
rpds-py==0.20.0
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/base.txt
|
||||
# jsonschema
|
||||
# referencing
|
||||
rsa==4.9
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/base.txt
|
||||
# google-auth
|
||||
rules==3.4
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/base.txt
|
||||
# edx-enterprise
|
||||
# edx-proctoring
|
||||
# openedx-learning
|
||||
s3transfer==0.10.2
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/base.txt
|
||||
# boto3
|
||||
sailthru-client==2.2.3
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/base.txt
|
||||
# edx-ace
|
||||
scipy==1.14.0
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/base.txt
|
||||
# chem
|
||||
# openedx-calc
|
||||
semantic-version==2.10.0
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/base.txt
|
||||
# edx-drf-extensions
|
||||
shapely==2.0.5
|
||||
# via -r scripts/user_retirement/requirements/base.txt
|
||||
simple-salesforce==1.12.6
|
||||
# via -r scripts/user_retirement/requirements/base.txt
|
||||
simplejson==3.19.2
|
||||
# via -r scripts/user_retirement/requirements/base.txt
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/base.txt
|
||||
# sailthru-client
|
||||
# super-csv
|
||||
# xblock
|
||||
# xblock-utils
|
||||
six==1.16.0
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/base.txt
|
||||
# analytics-python
|
||||
# bleach
|
||||
# codejail-includes
|
||||
# crowdsourcehinter-xblock
|
||||
# edx-ace
|
||||
# edx-auth-backends
|
||||
# edx-ccx-keys
|
||||
# edx-codejail
|
||||
# edx-django-release-util
|
||||
# edx-milestones
|
||||
# edx-rbac
|
||||
# event-tracking
|
||||
# fs
|
||||
# fs-s3fs
|
||||
# html5lib
|
||||
# interchange
|
||||
# isodate
|
||||
# jenkinsapi
|
||||
# libsass
|
||||
# optimizely-sdk
|
||||
# pansi
|
||||
# paver
|
||||
# py2neo
|
||||
# pyjwkest
|
||||
# python-dateutil
|
||||
slumber==0.7.1
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/base.txt
|
||||
# edx-bulk-grades
|
||||
# edx-enterprise
|
||||
# edx-rest-api-client
|
||||
snowflake-connector-python==3.12.0
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/base.txt
|
||||
# edx-enterprise
|
||||
social-auth-app-django==5.4.1
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/base.txt
|
||||
# edx-auth-backends
|
||||
social-auth-core==4.5.4
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/base.txt
|
||||
# edx-auth-backends
|
||||
# social-auth-app-django
|
||||
sorl-thumbnail==12.10.0
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/base.txt
|
||||
# openedx-django-wiki
|
||||
sortedcontainers==2.4.0
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/base.txt
|
||||
# snowflake-connector-python
|
||||
soupsieve==2.5
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/base.txt
|
||||
# beautifulsoup4
|
||||
sqlparse==0.5.1
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/base.txt
|
||||
# django
|
||||
staff-graded-xblock==2.3.0
|
||||
# via -r scripts/user_retirement/requirements/base.txt
|
||||
stevedore==5.2.0
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/base.txt
|
||||
# code-annotations
|
||||
# edx-ace
|
||||
# edx-django-utils
|
||||
# edx-enterprise
|
||||
# edx-opaque-keys
|
||||
super-csv==3.2.0
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/base.txt
|
||||
# edx-bulk-grades
|
||||
sympy==1.13.1
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/base.txt
|
||||
# openedx-calc
|
||||
testfixtures==8.3.0
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/base.txt
|
||||
# edx-enterprise
|
||||
text-unidecode==1.3
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/base.txt
|
||||
# python-slugify
|
||||
tinycss2==1.2.1
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/base.txt
|
||||
# bleach
|
||||
tomlkit==0.13.0
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/base.txt
|
||||
# snowflake-connector-python
|
||||
tqdm==4.66.5
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/base.txt
|
||||
# nltk
|
||||
# openai
|
||||
typing-extensions==4.12.2
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/base.txt
|
||||
# django-countries
|
||||
# edx-opaque-keys
|
||||
# jwcrypto
|
||||
# pydantic
|
||||
# pydantic-core
|
||||
# pylti1p3
|
||||
# simple-salesforce
|
||||
# snowflake-connector-python
|
||||
tzdata==2024.1
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/base.txt
|
||||
# celery
|
||||
unicodecsv==0.14.1
|
||||
# via -r scripts/user_retirement/requirements/base.txt
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/base.txt
|
||||
# edx-enterprise
|
||||
uritemplate==4.1.1
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/base.txt
|
||||
# drf-spectacular
|
||||
# drf-yasg
|
||||
# google-api-python-client
|
||||
urllib3==1.26.19
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/base.txt
|
||||
# botocore
|
||||
# elasticsearch
|
||||
# py2neo
|
||||
# requests
|
||||
# responses
|
||||
user-util==1.1.0
|
||||
# via -r scripts/user_retirement/requirements/base.txt
|
||||
vine==5.1.0
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/base.txt
|
||||
# amqp
|
||||
# celery
|
||||
# kombu
|
||||
voluptuous==0.15.2
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/base.txt
|
||||
# ora2
|
||||
walrus==0.9.4
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/base.txt
|
||||
# edx-event-bus-redis
|
||||
watchdog==4.0.1
|
||||
# via -r scripts/user_retirement/requirements/base.txt
|
||||
wcwidth==0.2.13
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/base.txt
|
||||
# prompt-toolkit
|
||||
web-fragments==2.2.0
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/base.txt
|
||||
# crowdsourcehinter-xblock
|
||||
# edx-sga
|
||||
# staff-graded-xblock
|
||||
# xblock
|
||||
# xblock-utils
|
||||
webencodings==0.5.1
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/base.txt
|
||||
# bleach
|
||||
# html5lib
|
||||
# tinycss2
|
||||
webob==1.8.7
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/base.txt
|
||||
# xblock
|
||||
werkzeug==3.0.3
|
||||
# via moto
|
||||
wrapt==1.16.0
|
||||
# via -r scripts/user_retirement/requirements/base.txt
|
||||
xblock[django]==4.0.1
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/base.txt
|
||||
# acid-xblock
|
||||
# crowdsourcehinter-xblock
|
||||
# done-xblock
|
||||
# edx-completion
|
||||
# edx-sga
|
||||
# edx-when
|
||||
# lti-consumer-xblock
|
||||
# ora2
|
||||
# staff-graded-xblock
|
||||
# xblock-drag-and-drop-v2
|
||||
# xblock-google-drive
|
||||
# xblock-utils
|
||||
xblock-drag-and-drop-v2==4.0.3
|
||||
# via -r scripts/user_retirement/requirements/base.txt
|
||||
xblock-google-drive==0.7.0
|
||||
# via -r scripts/user_retirement/requirements/base.txt
|
||||
xblock-poll==1.14.0
|
||||
# via -r scripts/user_retirement/requirements/base.txt
|
||||
xblock-utils==4.0.0
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/base.txt
|
||||
# edx-sga
|
||||
# xblock-poll
|
||||
xmlsec==1.3.13
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/base.txt
|
||||
# python3-saml
|
||||
xmltodict==0.13.0
|
||||
# via moto
|
||||
xss-utils==0.6.0
|
||||
# via -r scripts/user_retirement/requirements/base.txt
|
||||
yarl==1.9.4
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/base.txt
|
||||
# aiohttp
|
||||
zeep==4.2.1
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/base.txt
|
||||
# simple-salesforce
|
||||
zipp==3.19.2
|
||||
# via
|
||||
# -r scripts/user_retirement/requirements/base.txt
|
||||
# importlib-metadata
|
||||
|
||||
# The following packages are considered to be unsafe in a requirements file:
|
||||
# setuptools
|
||||
|
||||
@@ -4,6 +4,8 @@ Test the retire_one_learner.py script
|
||||
from unittest.mock import DEFAULT, patch
|
||||
|
||||
from click.testing import CliRunner
|
||||
from django.conf import settings
|
||||
from django.test.utils import override_settings
|
||||
|
||||
from scripts.user_retirement.retire_one_learner import (
|
||||
END_STATES,
|
||||
@@ -61,8 +63,8 @@ def test_successful_retirement(*args, **kwargs):
|
||||
|
||||
result = _call_script(username, fetch_ecom_segment_id=True)
|
||||
|
||||
# Called once per API we instantiate (LMS, ECommerce, Credentials)
|
||||
assert mock_get_access_token.call_count == 3
|
||||
# Called once per API we instantiate (LMS, ECommerce, Credentials, Additional Services)
|
||||
assert mock_get_access_token.call_count == 3 + len(settings.EXTRA_SERVICES_TO_RETIRE_FROM)
|
||||
mock_get_retirement_state.assert_called_once_with(username)
|
||||
assert mock_update_learner_state.call_count == 9
|
||||
|
||||
@@ -97,7 +99,7 @@ def test_user_does_not_exist(*args, **kwargs):
|
||||
|
||||
result = _call_script(username)
|
||||
|
||||
assert mock_get_access_token.call_count == 3
|
||||
assert mock_get_access_token.call_count == 3 + len(settings.EXTRA_SERVICES_TO_RETIRE_FROM)
|
||||
mock_get_retirement_state.assert_called_once_with(username)
|
||||
mock_update_learner_state.assert_not_called()
|
||||
|
||||
@@ -132,7 +134,7 @@ def test_bad_learner(*args, **kwargs):
|
||||
mock_get_retirement_state.side_effect = HttpDoesNotExistException
|
||||
result = _call_script(username)
|
||||
|
||||
assert mock_get_access_token.call_count == 3
|
||||
assert mock_get_access_token.call_count == 3 + len(settings.EXTRA_SERVICES_TO_RETIRE_FROM)
|
||||
mock_get_retirement_state.assert_called_once_with(username)
|
||||
mock_update_learner_state.assert_not_called()
|
||||
|
||||
@@ -160,7 +162,7 @@ def test_user_in_working_state(*args, **kwargs):
|
||||
|
||||
result = _call_script(username)
|
||||
|
||||
assert mock_get_access_token.call_count == 3
|
||||
assert mock_get_access_token.call_count == 3 + len(settings.EXTRA_SERVICES_TO_RETIRE_FROM)
|
||||
mock_get_retirement_state.assert_called_once_with(username)
|
||||
mock_update_learner_state.assert_not_called()
|
||||
|
||||
@@ -188,7 +190,7 @@ def test_user_in_bad_state(*args, **kwargs):
|
||||
)
|
||||
result = _call_script(username)
|
||||
|
||||
assert mock_get_access_token.call_count == 3
|
||||
assert mock_get_access_token.call_count == 3 + len(settings.EXTRA_SERVICES_TO_RETIRE_FROM)
|
||||
mock_get_retirement_state.assert_called_once_with(username)
|
||||
mock_update_learner_state.assert_not_called()
|
||||
|
||||
@@ -223,7 +225,7 @@ def test_user_in_end_state(*args, **kwargs):
|
||||
|
||||
result = _call_script(username)
|
||||
|
||||
assert mock_get_access_token.call_count == 3
|
||||
assert mock_get_access_token.call_count == 3 + len(settings.EXTRA_SERVICES_TO_RETIRE_FROM)
|
||||
mock_get_retirement_state.assert_called_once_with(username)
|
||||
mock_update_learner_state.assert_not_called()
|
||||
|
||||
@@ -265,7 +267,7 @@ def test_skipping_states(*args, **kwargs):
|
||||
result = _call_script(username)
|
||||
|
||||
# Called once per API we instantiate (LMS, ECommerce, Credentials)
|
||||
assert mock_get_access_token.call_count == 3
|
||||
assert mock_get_access_token.call_count == 3 + len(settings.EXTRA_SERVICES_TO_RETIRE_FROM)
|
||||
mock_get_retirement_state.assert_called_once_with(username)
|
||||
assert mock_update_learner_state.call_count == 5
|
||||
|
||||
|
||||
@@ -542,3 +542,44 @@ class TestLicenseManagerApi(OAuth2Mixin, unittest.TestCase):
|
||||
original_username=FAKE_ORIGINAL_USERNAME
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
class TestGenericApi(OAuth2Mixin, unittest.TestCase):
|
||||
"""
|
||||
Test the Generic API client.
|
||||
"""
|
||||
|
||||
@responses.activate(registry=OrderedRegistry)
|
||||
def setUp(self):
|
||||
super().setUp()
|
||||
self.mock_access_token_response()
|
||||
self.lms_base_url = 'http://localhost:18000/'
|
||||
self.service_api_base_url = 'http://mock_service_url/'
|
||||
self.retirement_url = 'mock/retirement_url'
|
||||
self.generic_api = edx_api.GenericRetirementApi(
|
||||
self.lms_base_url,
|
||||
self.service_api_base_url,
|
||||
'the_client_id',
|
||||
'the_client_secret',
|
||||
self.retirement_url
|
||||
)
|
||||
|
||||
@patch.object(edx_api.GenericRetirementApi, '_request')
|
||||
def test_retire_learner(self, mock_request):
|
||||
learner_data = get_fake_user_retirement()
|
||||
json_data = {
|
||||
'edx_lms_user_id': learner_data['user']['id']
|
||||
}
|
||||
responses.add(
|
||||
POST,
|
||||
urljoin(self.service_api_base_url, 'mock/retirement_url'),
|
||||
match=[matchers.json_params_matcher(json_data)]
|
||||
)
|
||||
|
||||
self.generic_api.retire_learner(learner=learner_data)
|
||||
|
||||
mock_request.assert_called_once_with(
|
||||
'POST',
|
||||
urljoin(self.service_api_base_url, 'mock/retirement_url/'),
|
||||
json=json_data
|
||||
)
|
||||
|
||||
@@ -490,3 +490,21 @@ class LicenseManagerApi(BaseApiClient):
|
||||
except HttpDoesNotExistException:
|
||||
LOG.info("No license manager data found for user")
|
||||
return True
|
||||
|
||||
|
||||
class GenericRetirementApi(BaseApiClient):
|
||||
"""
|
||||
Generic API client.
|
||||
"""
|
||||
def __init__(self, lms_base_url, api_base_url, client_id, client_secret, retirement_url_path):
|
||||
super().__init__(lms_base_url, api_base_url, client_id, client_secret)
|
||||
self.retirement_url_path = retirement_url_path
|
||||
|
||||
@_retry_lms_api()
|
||||
def retire_learner(self, learner):
|
||||
"""
|
||||
Performs the learner retirement step for additonal services.
|
||||
"""
|
||||
data = {'edx_lms_user_id': learner['user']['id']}
|
||||
api_url = self.get_api_url(self.retirement_url_path)
|
||||
return self._request('POST', api_url, json=data)
|
||||
|
||||
@@ -16,9 +16,11 @@ import unicodedata
|
||||
|
||||
import yaml
|
||||
from six import text_type
|
||||
from django.conf import settings
|
||||
|
||||
from scripts.user_retirement.utils.edx_api import LmsApi # pylint: disable=wrong-import-position
|
||||
from scripts.user_retirement.utils.edx_api import CredentialsApi, EcommerceApi, LicenseManagerApi
|
||||
from scripts.user_retirement.utils.edx_api import CredentialsApi, EcommerceApi, GenericRetirementApi, \
|
||||
LicenseManagerApi
|
||||
from scripts.user_retirement.utils.thirdparty_apis.amplitude_api import \
|
||||
AmplitudeApi # pylint: disable=wrong-import-position
|
||||
from scripts.user_retirement.utils.thirdparty_apis.braze_api import BrazeApi # pylint: disable=wrong-import-position
|
||||
@@ -172,15 +174,19 @@ def _setup_all_apis_or_exit(fail_func, fail_code, config):
|
||||
hubspot_from_address = config.get('hubspot_from_address', None)
|
||||
hubspot_alert_email = config.get('hubspot_alert_email', None)
|
||||
|
||||
required_services = [
|
||||
('BRAZE', braze_api_key),
|
||||
('AMPLITUDE', amplitude_api_key),
|
||||
('ECOMMERCE', ecommerce_base_url),
|
||||
('CREDENTIALS', credentials_base_url),
|
||||
('SEGMENT', segment_base_url),
|
||||
('HUBSPOT', hubspot_api_key),
|
||||
]
|
||||
extra_services = [(service['name'], service['service_base_url']) for service in settings.EXTRA_SERVICES_TO_RETIRE_FROM]
|
||||
all_services = required_services + extra_services
|
||||
|
||||
for state in config['retirement_pipeline']:
|
||||
for service, service_url in (
|
||||
('BRAZE', braze_api_key),
|
||||
('AMPLITUDE', amplitude_api_key),
|
||||
('ECOMMERCE', ecommerce_base_url),
|
||||
('CREDENTIALS', credentials_base_url),
|
||||
('SEGMENT', segment_base_url),
|
||||
('HUBSPOT', hubspot_api_key),
|
||||
):
|
||||
for service, service_url in (all_services):
|
||||
if state[2] == service and service_url is None:
|
||||
fail_func(fail_code, 'Service URL is not configured, but required for state {}'.format(state))
|
||||
|
||||
@@ -235,5 +241,15 @@ def _setup_all_apis_or_exit(fail_func, fail_code, config):
|
||||
segment_auth_token,
|
||||
segment_workspace_slug
|
||||
)
|
||||
|
||||
for service_config in settings.EXTRA_SERVICES_TO_RETIRE_FROM:
|
||||
service_name = service_config['name']
|
||||
config[service_name] = GenericRetirementApi(
|
||||
lms_base_url,
|
||||
service_config['service_base_url'],
|
||||
client_id,
|
||||
client_secret,
|
||||
service_config['retirement_url_path']
|
||||
)
|
||||
except Exception as exc: # pylint: disable=broad-except
|
||||
fail_func(fail_code, 'Unexpected error occurred!', exc)
|
||||
|
||||
Reference in New Issue
Block a user