From 72a93347b7f163d4a3c3ecd734dad6c3ab2ec5b0 Mon Sep 17 00:00:00 2001 From: zawan-ila <87228907+zawan-ila@users.noreply.github.com> Date: Fri, 7 Feb 2025 12:33:40 +0500 Subject: [PATCH] fix: use .txt files inside .in files to ensure consistency across environments (#4556) --- .ci/docker-compose-ci.yml | 1 - Makefile | 12 +- requirements/base.in | 2 + requirements/base.txt | 658 ++++++++++++++++++++++ requirements/constraints.txt | 2 - requirements/docs.txt | 2 +- requirements/local.in | 6 +- requirements/local.txt | 729 ++++++++++++++++-------- requirements/production.in | 2 +- requirements/production.txt | 462 ++++++++++----- requirements/test.in | 3 + requirements/test.txt | 1032 ++++++++++++++++++++++++++++++++++ tox.ini | 3 +- 13 files changed, 2526 insertions(+), 388 deletions(-) create mode 100644 requirements/base.txt create mode 100644 requirements/test.txt diff --git a/.ci/docker-compose-ci.yml b/.ci/docker-compose-ci.yml index ccc90a9959..018869868a 100644 --- a/.ci/docker-compose-ci.yml +++ b/.ci/docker-compose-ci.yml @@ -58,7 +58,6 @@ services: DB_PORT: "3306" DB_USER: "root" DJANGO_SETTINGS_MODULE: "course_discovery.settings.test" - ENABLE_DJANGO_TOOLBAR: 1 TEST_ELASTICSEARCH_URL: "http://es:9200" volumes: diff --git a/Makefile b/Makefile index 20592565ec..59d7f3f2e7 100644 --- a/Makefile +++ b/Makefile @@ -56,13 +56,15 @@ upgrade: $(COMMON_CONSTRAINTS_TXT) sed 's/django-simple-history==3.0.0//g' requirements/common_constraints.txt > requirements/common_constraints.tmp mv requirements/common_constraints.tmp requirements/common_constraints.txt pip install -q -r requirements/pip_tools.txt - pip-compile --allow-unsafe --upgrade -o requirements/pip.txt requirements/pip.in - pip-compile --upgrade -o requirements/pip_tools.txt requirements/pip_tools.in + pip-compile --allow-unsafe --rebuild --upgrade -o requirements/pip.txt requirements/pip.in + pip-compile --rebuild --upgrade -o requirements/pip_tools.txt requirements/pip_tools.in pip install -q -r requirements/pip.txt pip install -q -r requirements/pip_tools.txt - pip-compile --upgrade -o requirements/docs.txt requirements/docs.in - pip-compile --upgrade -o requirements/local.txt requirements/local.in - pip-compile --upgrade -o requirements/production.txt requirements/production.in + pip-compile --rebuild --upgrade -o requirements/base.txt requirements/base.in + pip-compile --rebuild --upgrade -o requirements/docs.txt requirements/docs.in + pip-compile --rebuild --upgrade -o requirements/test.txt requirements/test.in + pip-compile --rebuild --upgrade -o requirements/local.txt requirements/local.in + pip-compile --rebuild --upgrade -o requirements/production.txt requirements/production.in # Let tox control the Django version for tests grep -e "^django==" requirements/local.txt > requirements/django.txt sed -i.tmp '/^[dD]jango==/d' requirements/local.txt diff --git a/requirements/base.in b/requirements/base.in index e28c73844f..371653a531 100644 --- a/requirements/base.in +++ b/requirements/base.in @@ -1,3 +1,5 @@ +-c constraints.txt + algoliasearch_django backoff beautifulsoup4 diff --git a/requirements/base.txt b/requirements/base.txt new file mode 100644 index 0000000000..79a5818c63 --- /dev/null +++ b/requirements/base.txt @@ -0,0 +1,658 @@ +# +# This file is autogenerated by pip-compile with Python 3.12 +# by the following command: +# +# pip-compile --output-file=requirements/base.txt requirements/base.in +# +aiohappyeyeballs==2.4.4 + # via aiohttp +aiohttp==3.11.11 + # via openai +aiosignal==1.3.2 + # via aiohttp +algoliasearch==1.20.0 + # via + # -c requirements/constraints.txt + # algoliasearch-django + # taxonomy-connector +algoliasearch-django==1.7.3 + # via + # -c requirements/constraints.txt + # -r requirements/base.in +amqp==5.3.1 + # via kombu +asgiref==3.8.1 + # via + # django + # django-cors-headers + # django-countries +asn1crypto==1.5.1 + # via snowflake-connector-python +attrs==25.1.0 + # via + # aiohttp + # openedx-events + # zeep +backoff==2.2.1 + # via -r requirements/base.in +beautifulsoup4==4.13.2 + # via + # -r requirements/base.in + # taxonomy-connector +billiard==4.2.1 + # via celery +boto3==1.36.12 + # via django-ses +botocore==1.36.12 + # via + # boto3 + # s3transfer +cachetools==5.5.1 + # via google-auth +cairocffi==1.4.0 + # via + # -c requirements/constraints.txt + # cairosvg +cairosvg==2.7.1 + # via -r requirements/base.in +celery==5.4.0 + # via + # -c requirements/constraints.txt + # taxonomy-connector +certifi==2025.1.31 + # via + # elasticsearch + # requests + # snowflake-connector-python +cffi==1.17.1 + # via + # cairocffi + # cryptography + # pynacl + # snowflake-connector-python +charset-normalizer==3.4.1 + # via + # requests + # snowflake-connector-python +click==8.1.8 + # via + # celery + # click-didyoumean + # click-plugins + # click-repl + # code-annotations + # edx-django-utils +click-didyoumean==0.3.1 + # via celery +click-plugins==1.1.1 + # via celery +click-repl==0.3.0 + # via celery +code-annotations==2.2.0 + # via edx-toggles +contentful==2.3.2 + # via -r requirements/base.in +cryptography==44.0.0 + # via + # pyjwt + # pyopenssl + # snowflake-connector-python + # social-auth-core +cssselect2==0.7.0 + # via cairosvg +defusedxml==0.7.1 + # via + # cairosvg + # djangorestframework-xml + # python3-openid + # social-auth-core +django==4.2.18 + # via + # -c requirements/common_constraints.txt + # -c requirements/constraints.txt + # -r requirements/base.in + # algoliasearch-django + # django-admin-sortable2 + # django-appconf + # django-autocomplete-light + # django-choices + # django-compressor + # django-config-models + # django-contrib-comments + # django-cors-headers + # django-crum + # django-dynamic-filenames + # django-extensions + # django-filter + # django-guardian + # django-localflavor + # django-model-utils + # django-multi-email-field + # django-multiselectfield + # django-nine + # django-parler + # django-ses + # django-simple-history + # django-solo + # django-stdimage + # django-storages + # django-taggit + # django-waffle + # djangorestframework + # drf-jwt + # drf-yasg + # edx-api-doc-tools + # edx-auth-backends + # edx-django-release-util + # edx-django-sites-extensions + # edx-django-utils + # edx-drf-extensions + # edx-event-bus-kafka + # edx-event-bus-redis + # edx-toggles + # jsonfield + # openedx-events + # social-auth-app-django + # taxonomy-connector + # xss-utils +django-admin-sortable2==2.2.4 + # via -r requirements/base.in +django-appconf==1.0.6 + # via django-compressor +django-autocomplete-light==3.11.0 + # via -r requirements/base.in +django-choices==2.0.0 + # via + # -r requirements/base.in + # taxonomy-connector +django-compressor==4.5.1 + # via + # -r requirements/base.in + # django-libsass +django-config-models==2.7.0 + # via -r requirements/base.in +django-contrib-comments==2.2.0 + # via -r requirements/base.in +django-cors-headers==4.6.0 + # via -r requirements/base.in +django-countries==7.6.1 + # via -r requirements/base.in +django-crum==0.7.9 + # via + # edx-django-utils + # edx-toggles +django-dry-rest-permissions==1.2.0 + # via -r requirements/base.in +django-dynamic-filenames==1.4.0 + # via -r requirements/base.in +django-elasticsearch-dsl==7.4 + # via + # -r requirements/base.in + # django-elasticsearch-dsl-drf +django-elasticsearch-dsl-drf==0.22.5 + # via -r requirements/base.in +django-extensions==3.2.3 + # via -r requirements/base.in +django-filter==24.3 + # via + # -r requirements/base.in + # taxonomy-connector +django-fsm==3.0.0 + # via -r requirements/base.in +django-guardian==2.4.0 + # via -r requirements/base.in +django-libsass==0.9 + # via -r requirements/base.in +django-localflavor==4.0 + # via -r requirements/base.in +django-model-utils==5.0.0 + # via taxonomy-connector +django-multi-email-field==0.7.0 + # via -r requirements/base.in +django-multiselectfield==0.1.13 + # via -r requirements/base.in +django-nested-admin==4.1.1 + # via -r requirements/base.in +django-nine==0.2.7 + # via django-elasticsearch-dsl-drf +django-object-actions==4.3.0 + # via + # -r requirements/base.in + # taxonomy-connector +django-parler==2.3 + # via -r requirements/base.in +django-ses==4.4.0 + # via taxonomy-connector +django-simple-history==3.8.0 + # via -r requirements/base.in +django-solo==2.4.0 + # via + # -r requirements/base.in + # taxonomy-connector +django-sortedm2m==4.0.0 + # via -r requirements/base.in +django-stdimage==5.3.0 + # via + # -c requirements/constraints.txt + # -r requirements/base.in +django-storages==1.14.4 + # via -r requirements/base.in +django-taggit==6.1.0 + # via + # -r requirements/base.in + # django-taggit-autosuggest +django-taggit-autosuggest==0.4.2 + # via -r requirements/base.in +django-waffle==4.2.0 + # via + # -r requirements/base.in + # edx-django-utils + # edx-drf-extensions + # edx-toggles +django-webpack-loader==3.1.1 + # via -r requirements/base.in +djangorestframework==3.15.2 + # via + # -r requirements/base.in + # django-config-models + # django-elasticsearch-dsl-drf + # djangorestframework-csv + # drf-extensions + # drf-jwt + # drf-yasg + # edx-api-doc-tools + # edx-drf-extensions + # taxonomy-connector +djangorestframework-csv==3.0.2 + # via -r requirements/base.in +djangorestframework-xml==2.0.0 + # via -r requirements/base.in +dnspython==2.7.0 + # via pymongo +drf-extensions==0.7.1 + # via -r requirements/base.in +drf-flex-fields==1.0.2 + # via -r requirements/base.in +drf-jwt==1.19.2 + # via edx-drf-extensions +drf-yasg==1.21.8 + # via + # -r requirements/base.in + # edx-api-doc-tools +edx-analytics-data-api-client==0.18.3 + # via -r requirements/base.in +edx-api-doc-tools==2.0.0 + # via -r requirements/base.in +edx-auth-backends==4.4.0 + # via -r requirements/base.in +edx-ccx-keys==2.0.2 + # via + # -r requirements/base.in + # openedx-events +edx-django-release-util==1.4.0 + # via -r requirements/base.in +edx-django-sites-extensions==4.2.0 + # via -r requirements/base.in +edx-django-utils==7.1.0 + # via + # -r requirements/base.in + # django-config-models + # edx-drf-extensions + # edx-event-bus-kafka + # edx-event-bus-redis + # edx-rest-api-client + # edx-toggles + # getsmarter-api-clients + # openedx-events + # taxonomy-connector +edx-drf-extensions==10.5.0 + # via -r requirements/base.in +edx-event-bus-kafka==6.0.0 + # via -r requirements/base.in +edx-event-bus-redis==0.5.1 + # via -r requirements/base.in +edx-opaque-keys[django]==2.11.0 + # via + # -r requirements/base.in + # edx-ccx-keys + # edx-drf-extensions + # openedx-events + # taxonomy-connector +edx-rest-api-client==6.0.0 + # via + # -r requirements/base.in + # taxonomy-connector +edx-toggles==5.2.0 + # via + # edx-event-bus-kafka + # edx-event-bus-redis +elasticsearch==7.13.4 + # via + # -c requirements/common_constraints.txt + # -c requirements/constraints.txt + # -r requirements/base.in + # django-elasticsearch-dsl-drf + # elasticsearch-dsl +elasticsearch-dsl==7.4.1 + # via + # -c requirements/constraints.txt + # -r requirements/base.in + # django-elasticsearch-dsl + # django-elasticsearch-dsl-drf +fastavro==1.10.0 + # via openedx-events +filelock==3.17.0 + # via snowflake-connector-python +frozenlist==1.5.0 + # via + # aiohttp + # aiosignal +getsmarter-api-clients==0.6.1 + # via -r requirements/base.in +google-api-core==2.24.1 + # via google-api-python-client +google-api-python-client==2.160.0 + # via -r requirements/base.in +google-auth==2.38.0 + # via + # google-api-core + # google-api-python-client + # google-auth-httplib2 + # google-auth-oauthlib + # gspread +google-auth-httplib2==0.2.0 + # via + # -r requirements/base.in + # google-api-python-client +google-auth-oauthlib==1.2.1 + # via gspread +googleapis-common-protos==1.66.0 + # via google-api-core +gspread==6.1.4 + # via -r requirements/base.in +html2text==2024.2.26 + # via -r requirements/base.in +httplib2==0.22.0 + # via + # google-api-python-client + # google-auth-httplib2 +idna==3.10 + # via + # requests + # snowflake-connector-python + # yarl +importlib-metadata==8.6.1 + # via -r requirements/base.in +inflection==0.5.1 + # via drf-yasg +isodate==0.7.2 + # via zeep +jinja2==3.1.5 + # via code-annotations +jmespath==1.0.1 + # via + # boto3 + # botocore +jsonfield==3.1.0 + # via -r requirements/base.in +kombu==5.4.2 + # via celery +libsass==0.23.0 + # via django-libsass +lxml[html-clean,html_clean]==5.3.0 + # via + # -r requirements/base.in + # lxml-html-clean + # zeep +lxml-html-clean==0.4.1 + # via lxml +markdown==3.7 + # via -r requirements/base.in +markupsafe==3.0.2 + # via jinja2 +more-itertools==10.6.0 + # via simple-salesforce +multidict==6.1.0 + # via + # aiohttp + # yarl +newrelic==10.5.0 + # via edx-django-utils +oauthlib==3.2.2 + # via + # getsmarter-api-clients + # requests-oauthlib + # social-auth-core +openai==0.28.1 + # via + # -c requirements/constraints.txt + # taxonomy-connector +openedx-atlas==0.6.2 + # via -r requirements/base.in +openedx-events==9.17.0 + # via + # edx-event-bus-kafka + # edx-event-bus-redis + # taxonomy-connector +packaging==24.2 + # via + # django-nine + # drf-yasg + # snowflake-connector-python +pbr==6.1.1 + # via stevedore +pillow==9.5.0 + # via + # -c requirements/constraints.txt + # -r requirements/base.in + # cairosvg + # django-stdimage +platformdirs==4.3.6 + # via + # snowflake-connector-python + # zeep +prompt-toolkit==3.0.50 + # via click-repl +propcache==0.2.1 + # via + # aiohttp + # yarl +proto-plus==1.26.0 + # via google-api-core +protobuf==5.29.3 + # via + # google-api-core + # googleapis-common-protos + # proto-plus +psutil==6.1.1 + # via edx-django-utils +pyasn1==0.6.1 + # via + # pyasn1-modules + # rsa +pyasn1-modules==0.4.1 + # via google-auth +pycountry==24.6.1 + # via -r requirements/base.in +pycparser==2.22 + # via cffi +pyjwt[crypto]==2.10.1 + # via + # drf-jwt + # edx-auth-backends + # edx-drf-extensions + # edx-rest-api-client + # simple-salesforce + # snowflake-connector-python + # social-auth-core +pymongo==4.11 + # via edx-opaque-keys +pynacl==1.5.0 + # via edx-django-utils +pyopenssl==24.3.0 + # via snowflake-connector-python +pyparsing==3.2.1 + # via httplib2 +python-dateutil==2.9.0.post0 + # via + # -r requirements/base.in + # botocore + # celery + # contentful + # elasticsearch-dsl +python-monkey-business==1.1.0 + # via django-nested-admin +python-slugify==8.0.4 + # via + # -r requirements/base.in + # code-annotations +python-stdnum==1.20 + # via django-localflavor +python3-openid==3.2.0 + # via social-auth-core +pytz==2025.1 + # via + # -r requirements/base.in + # drf-yasg + # getsmarter-api-clients + # snowflake-connector-python + # taxonomy-connector + # zeep +pyyaml==6.0.2 + # via + # code-annotations + # drf-yasg + # edx-django-release-util +rcssmin==1.1.2 + # via django-compressor +redis==5.2.1 + # via + # -r requirements/base.in + # walrus +requests==2.32.3 + # via + # -r requirements/base.in + # algoliasearch + # contentful + # edx-analytics-data-api-client + # edx-drf-extensions + # edx-rest-api-client + # google-api-core + # openai + # requests-file + # requests-oauthlib + # requests-toolbelt + # simple-salesforce + # snowflake-connector-python + # social-auth-core + # zeep +requests-file==2.1.0 + # via zeep +requests-oauthlib==2.0.0 + # via + # getsmarter-api-clients + # google-auth-oauthlib + # social-auth-core +requests-toolbelt==0.10.1 + # via + # -c requirements/constraints.txt + # zeep +rjsmin==1.2.2 + # via django-compressor +rsa==4.9 + # via google-auth +s3transfer==0.11.2 + # via boto3 +semantic-version==2.10.0 + # via edx-drf-extensions +simple-salesforce==1.12.6 + # via -r requirements/base.in +six==1.17.0 + # via + # django-elasticsearch-dsl + # django-elasticsearch-dsl-drf + # edx-auth-backends + # edx-ccx-keys + # edx-django-release-util + # elasticsearch-dsl + # python-dateutil +snowflake-connector-python==3.13.2 + # via -r requirements/base.in +social-auth-app-django==5.4.2 + # via + # -r requirements/base.in + # edx-auth-backends +social-auth-core==4.5.4 + # via + # edx-auth-backends + # social-auth-app-django +sortedcontainers==2.4.0 + # via snowflake-connector-python +soupsieve==2.6 + # via beautifulsoup4 +sqlparse==0.5.3 + # via django +stevedore==5.4.0 + # via + # code-annotations + # edx-django-utils + # edx-opaque-keys +taxonomy-connector==2.0.0 + # via -r requirements/base.in +text-unidecode==1.3 + # via python-slugify +tinycss2==1.4.0 + # via + # cairosvg + # cssselect2 +tomlkit==0.13.2 + # via snowflake-connector-python +tqdm==4.67.1 + # via openai +typing-extensions==4.12.2 + # via + # beautifulsoup4 + # django-countries + # edx-opaque-keys + # simple-salesforce + # snowflake-connector-python +tzdata==2025.1 + # via + # celery + # kombu +unicodecsv==0.14.1 + # via -r requirements/base.in +uritemplate==4.1.1 + # via + # drf-yasg + # google-api-python-client +urllib3==1.26.20 + # via + # -c requirements/common_constraints.txt + # botocore + # elasticsearch + # requests +vine==5.1.0 + # via + # amqp + # celery + # kombu +walrus==0.9.4 + # via edx-event-bus-redis +wcwidth==0.2.13 + # via prompt-toolkit +webencodings==0.5.1 + # via + # cssselect2 + # tinycss2 +xss-utils==0.6.0 + # via -r requirements/base.in +yarl==1.18.3 + # via aiohttp +zeep==4.3.1 + # via simple-salesforce +zipp==3.21.0 + # via importlib-metadata + +# The following packages are considered to be unsafe in a requirements file: +# setuptools diff --git a/requirements/constraints.txt b/requirements/constraints.txt index 11a3de4732..35c5e3bc67 100644 --- a/requirements/constraints.txt +++ b/requirements/constraints.txt @@ -27,8 +27,6 @@ authlib==1.0.0rc1 # Remove this pin after fixing them. django-stdimage<=5.3.0 -semgrep==0.102.0 - # Pinning sphinx as new major release is causing error while installing requirements. sphinx<6.0.0 diff --git a/requirements/docs.txt b/requirements/docs.txt index 105114b20d..0e53437cc8 100644 --- a/requirements/docs.txt +++ b/requirements/docs.txt @@ -12,7 +12,7 @@ babel==2.17.0 # via # pydata-sphinx-theme # sphinx -beautifulsoup4==4.13.0 +beautifulsoup4==4.13.2 # via pydata-sphinx-theme certifi==2025.1.31 # via diff --git a/requirements/local.in b/requirements/local.in index b6568b8c02..5e185f5908 100644 --- a/requirements/local.in +++ b/requirements/local.in @@ -1,13 +1,11 @@ # Packages required for local development -c constraints.txt -r github.in # Forks and other dependencies not yet on PyPI --r base.in --r test.in --r docs.in +-r test.txt +-r docs.txt django-debug-toolbar django-elasticsearch-debug-toolbar edx-i18n-tools -pytest-split pywatchman # For devserver code reloading pymemcache diff --git a/requirements/local.txt b/requirements/local.txt index 7a0a857c25..28085f053d 100644 --- a/requirements/local.txt +++ b/requirements/local.txt @@ -5,108 +5,147 @@ # pip-compile --output-file=requirements/local.txt requirements/local.in # accessible-pygments==0.0.5 - # via pydata-sphinx-theme + # via + # -r requirements/docs.txt + # pydata-sphinx-theme aiohappyeyeballs==2.4.4 - # via aiohttp + # via + # -r requirements/test.txt + # aiohttp aiohttp==3.11.11 - # via openai + # via + # -r requirements/test.txt + # openai aiosignal==1.3.2 - # via aiohttp + # via + # -r requirements/test.txt + # aiohttp alabaster==0.7.16 - # via sphinx + # via + # -r requirements/docs.txt + # sphinx algoliasearch==1.20.0 # via # -c requirements/constraints.txt + # -r requirements/test.txt # algoliasearch-django # taxonomy-connector algoliasearch-django==1.7.3 # via # -c requirements/constraints.txt - # -r requirements/base.in + # -r requirements/test.txt amqp==5.3.1 - # via kombu + # via + # -r requirements/test.txt + # kombu asgiref==3.8.1 # via + # -r requirements/test.txt # django # django-cors-headers # django-countries - # django-htmx asn1crypto==1.5.1 - # via snowflake-connector-python + # via + # -r requirements/test.txt + # snowflake-connector-python astroid==3.3.8 # via + # -r requirements/test.txt # pylint # pylint-celery -attrs==21.4.0 +attrs==25.1.0 # via + # -r requirements/test.txt # aiohttp # glom # jsonschema # openedx-events # outcome + # referencing # semgrep # trio # zeep babel==2.17.0 # via + # -r requirements/docs.txt # pydata-sphinx-theme # sphinx backoff==2.2.1 - # via -r requirements/base.in -beautifulsoup4==4.13.0 + # via -r requirements/test.txt +beautifulsoup4==4.13.2 # via - # -r requirements/base.in + # -r requirements/docs.txt + # -r requirements/test.txt # pydata-sphinx-theme # taxonomy-connector billiard==4.2.1 - # via celery + # via + # -r requirements/test.txt + # celery boltons==21.0.0 # via + # -r requirements/test.txt # face # glom # semgrep -boto3==1.36.11 - # via django-ses -botocore==1.36.11 +boto3==1.36.12 + # via + # -r requirements/test.txt + # django-ses +botocore==1.36.12 # via + # -r requirements/test.txt # boto3 # s3transfer bracex==2.5.post1 - # via wcmatch + # via + # -r requirements/test.txt + # wcmatch cachetools==5.5.1 # via + # -r requirements/test.txt # google-auth # tox cairocffi==1.4.0 # via # -c requirements/constraints.txt + # -r requirements/test.txt # cairosvg cairosvg==2.7.1 - # via -r requirements/base.in + # via -r requirements/test.txt celery==5.4.0 # via # -c requirements/constraints.txt + # -r requirements/test.txt # taxonomy-connector certifi==2025.1.31 # via + # -r requirements/docs.txt + # -r requirements/test.txt # elasticsearch # requests # selenium # snowflake-connector-python cffi==1.17.1 # via + # -r requirements/test.txt # cairocffi # cryptography # pynacl # snowflake-connector-python chardet==5.2.0 - # via tox + # via + # -r requirements/test.txt + # tox charset-normalizer==3.4.1 # via + # -r requirements/docs.txt + # -r requirements/test.txt # requests # snowflake-connector-python click==8.1.8 # via + # -r requirements/test.txt # celery # click-didyoumean # click-log @@ -118,54 +157,74 @@ click==8.1.8 # edx-lint # semgrep click-didyoumean==0.3.1 - # via celery + # via + # -r requirements/test.txt + # celery click-log==0.4.0 - # via edx-lint + # via + # -r requirements/test.txt + # edx-lint click-option-group==0.5.6 - # via semgrep + # via + # -r requirements/test.txt + # semgrep click-plugins==1.1.1 - # via celery + # via + # -r requirements/test.txt + # celery click-repl==0.3.0 - # via celery + # via + # -r requirements/test.txt + # celery code-annotations==2.2.0 # via + # -r requirements/test.txt # edx-lint # edx-toggles colorama==0.4.6 # via + # -r requirements/test.txt # semgrep # tox contentful==2.3.2 - # via -r requirements/base.in + # via -r requirements/test.txt coverage[toml]==7.6.10 # via - # -r requirements/test.in + # -r requirements/test.txt # pytest-cov cryptography==44.0.0 # via + # -r requirements/test.txt # pyjwt # pyopenssl # snowflake-connector-python # social-auth-core cssselect2==0.7.0 - # via cairosvg + # via + # -r requirements/test.txt + # cairosvg ddt==1.7.2 - # via -r requirements/test.in + # via -r requirements/test.txt defusedxml==0.7.1 # via + # -r requirements/test.txt # cairosvg # djangorestframework-xml # python3-openid # semgrep # social-auth-core dill==0.3.9 - # via pylint + # via + # -r requirements/test.txt + # pylint distlib==0.3.9 - # via virtualenv + # via + # -r requirements/test.txt + # virtualenv # via # -c requirements/common_constraints.txt # -c requirements/constraints.txt - # -r requirements/base.in + # -r requirements/test.txt # algoliasearch-django # django-admin-sortable2 # django-appconf @@ -181,7 +240,6 @@ distlib==0.3.9 # django-extensions # django-filter # django-guardian - # django-htmx # django-localflavor # django-model-utils # django-multi-email-field @@ -214,29 +272,32 @@ distlib==0.3.9 # taxonomy-connector # xss-utils django-admin-sortable2==2.2.4 - # via -r requirements/base.in + # via -r requirements/test.txt django-appconf==1.0.6 - # via django-compressor + # via + # -r requirements/test.txt + # django-compressor django-autocomplete-light==3.11.0 - # via -r requirements/base.in + # via -r requirements/test.txt django-choices==2.0.0 # via - # -r requirements/base.in + # -r requirements/test.txt # taxonomy-connector django-compressor==4.5.1 # via - # -r requirements/base.in + # -r requirements/test.txt # django-libsass django-config-models==2.7.0 - # via -r requirements/base.in + # via -r requirements/test.txt django-contrib-comments==2.2.0 - # via -r requirements/base.in + # via -r requirements/test.txt django-cors-headers==4.6.0 - # via -r requirements/base.in + # via -r requirements/test.txt django-countries==7.6.1 - # via -r requirements/base.in + # via -r requirements/test.txt django-crum==0.7.9 # via + # -r requirements/test.txt # edx-django-utils # edx-toggles django-debug-toolbar==4.1.0 @@ -244,81 +305,87 @@ django-debug-toolbar==4.1.0 # -c requirements/constraints.txt # -r requirements/local.in django-dry-rest-permissions==1.2.0 - # via -r requirements/base.in + # via -r requirements/test.txt django-dynamic-filenames==1.4.0 - # via -r requirements/base.in + # via -r requirements/test.txt django-elasticsearch-debug-toolbar==3.0.2 # via -r requirements/local.in django-elasticsearch-dsl==7.4 # via - # -r requirements/base.in - # -r requirements/docs.in + # -r requirements/docs.txt + # -r requirements/test.txt # django-elasticsearch-dsl-drf django-elasticsearch-dsl-drf==0.22.5 - # via -r requirements/base.in + # via -r requirements/test.txt django-extensions==3.2.3 - # via -r requirements/base.in + # via -r requirements/test.txt django-filter==24.3 # via - # -r requirements/base.in + # -r requirements/test.txt # taxonomy-connector django-fsm==3.0.0 - # via -r requirements/base.in + # via -r requirements/test.txt django-guardian==2.4.0 - # via -r requirements/base.in + # via -r requirements/test.txt django-libsass==0.9 - # via -r requirements/base.in + # via -r requirements/test.txt django-localflavor==4.0 - # via -r requirements/base.in + # via -r requirements/test.txt django-model-utils==5.0.0 - # via taxonomy-connector + # via + # -r requirements/test.txt + # taxonomy-connector django-multi-email-field==0.7.0 - # via -r requirements/base.in + # via -r requirements/test.txt django-multiselectfield==0.1.13 - # via -r requirements/base.in + # via -r requirements/test.txt django-nested-admin==4.1.1 - # via -r requirements/base.in + # via -r requirements/test.txt django-nine==0.2.7 - # via django-elasticsearch-dsl-drf + # via + # -r requirements/test.txt + # django-elasticsearch-dsl-drf django-object-actions==4.3.0 # via - # -r requirements/base.in + # -r requirements/test.txt # taxonomy-connector django-parler==2.3 - # via -r requirements/base.in + # via -r requirements/test.txt django-ses==4.4.0 - # via taxonomy-connector + # via + # -r requirements/test.txt + # taxonomy-connector django-simple-history==3.8.0 - # via -r requirements/base.in + # via -r requirements/test.txt django-solo==2.4.0 # via - # -r requirements/base.in + # -r requirements/test.txt # taxonomy-connector django-sortedm2m==4.0.0 - # via -r requirements/base.in + # via -r requirements/test.txt django-stdimage==5.3.0 # via # -c requirements/constraints.txt - # -r requirements/base.in + # -r requirements/test.txt django-storages==1.14.4 - # via -r requirements/base.in + # via -r requirements/test.txt django-taggit==6.1.0 # via - # -r requirements/base.in + # -r requirements/test.txt # django-taggit-autosuggest django-taggit-autosuggest==0.4.2 - # via -r requirements/base.in + # via -r requirements/test.txt django-waffle==4.2.0 # via - # -r requirements/base.in + # -r requirements/test.txt # edx-django-utils # edx-drf-extensions # edx-toggles django-webpack-loader==3.1.1 - # via -r requirements/base.in + # via -r requirements/test.txt djangorestframework==3.15.2 # via - # -r requirements/base.in + # -r requirements/test.txt # django-config-models # django-elasticsearch-dsl-drf # djangorestframework-csv @@ -329,42 +396,47 @@ djangorestframework==3.15.2 # edx-drf-extensions # taxonomy-connector djangorestframework-csv==3.0.2 - # via -r requirements/base.in + # via -r requirements/test.txt djangorestframework-xml==2.0.0 - # via -r requirements/base.in + # via -r requirements/test.txt dnspython==2.7.0 - # via pymongo + # via + # -r requirements/test.txt + # pymongo docutils==0.19 # via + # -r requirements/docs.txt # pydata-sphinx-theme # sphinx drf-extensions==0.7.1 - # via -r requirements/base.in + # via -r requirements/test.txt drf-flex-fields==1.0.2 - # via -r requirements/base.in + # via -r requirements/test.txt drf-jwt==1.19.2 - # via edx-drf-extensions + # via + # -r requirements/test.txt + # edx-drf-extensions drf-yasg==1.21.8 # via - # -r requirements/base.in + # -r requirements/test.txt # edx-api-doc-tools edx-analytics-data-api-client==0.18.3 - # via -r requirements/base.in + # via -r requirements/test.txt edx-api-doc-tools==2.0.0 - # via -r requirements/base.in + # via -r requirements/test.txt edx-auth-backends==4.4.0 - # via -r requirements/base.in + # via -r requirements/test.txt edx-ccx-keys==2.0.2 # via - # -r requirements/base.in + # -r requirements/test.txt # openedx-events edx-django-release-util==1.4.0 - # via -r requirements/base.in + # via -r requirements/test.txt edx-django-sites-extensions==4.2.0 - # via -r requirements/base.in + # via -r requirements/test.txt edx-django-utils==7.1.0 # via - # -r requirements/base.in + # -r requirements/test.txt # django-config-models # edx-drf-extensions # edx-event-bus-kafka @@ -375,76 +447,94 @@ edx-django-utils==7.1.0 # openedx-events # taxonomy-connector edx-drf-extensions==10.5.0 - # via -r requirements/base.in + # via -r requirements/test.txt edx-event-bus-kafka==6.0.0 - # via -r requirements/base.in + # via -r requirements/test.txt edx-event-bus-redis==0.5.1 - # via -r requirements/base.in + # via -r requirements/test.txt edx-i18n-tools==1.6.3 # via -r requirements/local.in edx-lint==5.3.7 # via # -c requirements/constraints.txt - # -r requirements/test.in + # -r requirements/test.txt edx-opaque-keys[django]==2.11.0 # via - # -r requirements/base.in + # -r requirements/test.txt # edx-ccx-keys # edx-drf-extensions # openedx-events # taxonomy-connector edx-rest-api-client==6.0.0 # via - # -r requirements/base.in + # -r requirements/test.txt # taxonomy-connector edx-toggles==5.2.0 # via + # -r requirements/test.txt # edx-event-bus-kafka # edx-event-bus-redis elasticsearch==7.13.4 # via # -c requirements/common_constraints.txt # -c requirements/constraints.txt - # -r requirements/base.in + # -r requirements/docs.txt + # -r requirements/test.txt # django-elasticsearch-dsl-drf # elasticsearch-dsl elasticsearch-dsl==7.4.1 # via # -c requirements/constraints.txt - # -r requirements/base.in + # -r requirements/docs.txt + # -r requirements/test.txt # django-elasticsearch-dsl # django-elasticsearch-dsl-drf execnet==2.1.1 - # via pytest-xdist + # via + # -r requirements/test.txt + # pytest-xdist face==24.0.0 - # via glom -factory-boy==3.3.1 - # via -r requirements/test.in + # via + # -r requirements/test.txt + # glom +factory-boy==3.3.3 + # via -r requirements/test.txt faker==35.2.0 - # via factory-boy + # via + # -r requirements/test.txt + # factory-boy fastavro==1.10.0 - # via openedx-events + # via + # -r requirements/test.txt + # openedx-events filelock==3.17.0 # via + # -r requirements/test.txt # snowflake-connector-python # tox # virtualenv freezegun==1.5.1 - # via -r requirements/test.in + # via -r requirements/test.txt frozenlist==1.5.0 # via + # -r requirements/test.txt # aiohttp # aiosignal getsmarter-api-clients==0.6.1 - # via -r requirements/base.in + # via -r requirements/test.txt glom==22.1.0 - # via semgrep + # via + # -r requirements/test.txt + # semgrep google-api-core==2.24.1 - # via google-api-python-client + # via + # -r requirements/test.txt + # google-api-python-client google-api-python-client==2.160.0 - # via -r requirements/base.in + # via -r requirements/test.txt google-auth==2.38.0 # via + # -r requirements/test.txt # google-api-core # google-api-python-client # google-auth-httplib2 @@ -452,104 +542,161 @@ google-auth==2.38.0 # gspread google-auth-httplib2==0.2.0 # via - # -r requirements/base.in + # -r requirements/test.txt # google-api-python-client google-auth-oauthlib==1.2.1 - # via gspread + # via + # -r requirements/test.txt + # gspread googleapis-common-protos==1.66.0 - # via google-api-core + # via + # -r requirements/test.txt + # google-api-core gspread==6.1.4 - # via -r requirements/base.in + # via -r requirements/test.txt h11==0.14.0 - # via wsproto + # via + # -r requirements/test.txt + # wsproto html2text==2024.2.26 - # via -r requirements/base.in + # via -r requirements/test.txt httplib2==0.22.0 # via + # -r requirements/test.txt # google-api-python-client # google-auth-httplib2 idna==3.10 # via + # -r requirements/docs.txt + # -r requirements/test.txt # requests # snowflake-connector-python # trio # yarl imagesize==1.4.1 - # via sphinx + # via + # -r requirements/docs.txt + # sphinx importlib-metadata==8.6.1 - # via -r requirements/base.in + # via -r requirements/test.txt inflection==0.5.1 - # via drf-yasg + # via + # -r requirements/test.txt + # drf-yasg iniconfig==2.0.0 - # via pytest + # via + # -r requirements/test.txt + # pytest isodate==0.7.2 - # via zeep + # via + # -r requirements/test.txt + # zeep isort==6.0.0 # via - # -r requirements/test.in + # -r requirements/test.txt # pylint jinja2==3.1.5 # via + # -r requirements/docs.txt + # -r requirements/test.txt # code-annotations # sphinx jmespath==1.0.1 # via + # -r requirements/test.txt # boto3 # botocore jsonfield==3.1.0 - # via -r requirements/base.in -jsonschema==3.2.0 - # via semgrep + # via -r requirements/test.txt +jsonschema==4.23.0 + # via + # -r requirements/test.txt + # semgrep +jsonschema-specifications==2024.10.1 + # via + # -r requirements/test.txt + # jsonschema kombu==5.4.2 - # via celery + # via + # -r requirements/test.txt + # celery libsass==0.23.0 - # via django-libsass -lxml[html-clean,html_clean]==5.3.0 # via - # -r requirements/base.in + # -r requirements/test.txt + # django-libsass +lxml[html-clean]==5.3.0 + # via + # -r requirements/test.txt # edx-i18n-tools # lxml-html-clean # zeep lxml-html-clean==0.4.1 - # via lxml + # via + # -r requirements/test.txt + # lxml markdown==3.7 - # via -r requirements/base.in + # via -r requirements/test.txt +markdown-it-py==3.0.0 + # via + # -r requirements/test.txt + # rich markupsafe==3.0.2 - # via jinja2 + # via + # -r requirements/docs.txt + # -r requirements/test.txt + # jinja2 mccabe==0.7.0 - # via pylint + # via + # -r requirements/test.txt + # pylint +mdurl==0.1.2 + # via + # -r requirements/test.txt + # markdown-it-py mock==5.1.0 - # via -r requirements/test.in + # via -r requirements/test.txt more-itertools==10.6.0 - # via simple-salesforce + # via + # -r requirements/test.txt + # simple-salesforce multidict==6.1.0 # via + # -r requirements/test.txt # aiohttp # yarl mysqlclient==2.2.7 - # via -r requirements/test.in + # via -r requirements/test.txt newrelic==10.5.0 - # via edx-django-utils + # via + # -r requirements/test.txt + # edx-django-utils oauthlib==3.2.2 # via + # -r requirements/test.txt # getsmarter-api-clients # requests-oauthlib # social-auth-core openai==0.28.1 # via # -c requirements/constraints.txt + # -r requirements/test.txt # taxonomy-connector openedx-atlas==0.6.2 - # via -r requirements/base.in + # via -r requirements/test.txt openedx-events==9.17.0 # via + # -r requirements/test.txt # edx-event-bus-kafka # edx-event-bus-redis # taxonomy-connector outcome==1.3.0.post0 - # via trio -packaging==21.3 # via + # -r requirements/test.txt + # trio +packaging==24.2 + # via + # -r requirements/docs.txt + # -r requirements/test.txt # django-nine # drf-yasg # pydata-sphinx-theme @@ -561,18 +708,23 @@ packaging==21.3 # tox path==16.16.0 # via edx-i18n-tools -pbr==6.1.0 - # via stevedore +pbr==6.1.1 + # via + # -r requirements/test.txt + # stevedore peewee==3.17.8 - # via semgrep + # via + # -r requirements/test.txt + # semgrep pillow==9.5.0 # via # -c requirements/constraints.txt - # -r requirements/base.in + # -r requirements/test.txt # cairosvg # django-stdimage platformdirs==4.3.6 # via + # -r requirements/test.txt # pylint # snowflake-connector-python # tox @@ -580,46 +732,66 @@ platformdirs==4.3.6 # zeep pluggy==1.5.0 # via + # -r requirements/test.txt # pytest # tox polib==1.2.0 # via edx-i18n-tools prompt-toolkit==3.0.50 - # via click-repl + # via + # -r requirements/test.txt + # click-repl propcache==0.2.1 # via + # -r requirements/test.txt # aiohttp # yarl proto-plus==1.26.0 - # via google-api-core + # via + # -r requirements/test.txt + # google-api-core protobuf==5.29.3 # via + # -r requirements/test.txt # google-api-core # googleapis-common-protos # proto-plus psutil==6.1.1 - # via edx-django-utils + # via + # -r requirements/test.txt + # edx-django-utils pyasn1==0.6.1 # via + # -r requirements/test.txt # pyasn1-modules # rsa pyasn1-modules==0.4.1 - # via google-auth + # via + # -r requirements/test.txt + # google-auth pycodestyle==2.12.1 - # via -r requirements/test.in + # via -r requirements/test.txt pycountry==24.6.1 - # via -r requirements/base.in + # via -r requirements/test.txt pycparser==2.22 - # via cffi + # via + # -r requirements/test.txt + # cffi pydata-sphinx-theme==0.15.4 - # via sphinx-book-theme + # via + # -r requirements/docs.txt + # sphinx-book-theme pygments==2.19.1 # via + # -r requirements/docs.txt + # -r requirements/test.txt # accessible-pygments # pydata-sphinx-theme + # rich # sphinx pyjwt[crypto]==2.10.1 # via + # -r requirements/test.txt # drf-jwt # edx-auth-backends # edx-drf-extensions @@ -629,82 +801,101 @@ pyjwt[crypto]==2.10.1 # social-auth-core pylint==3.3.4 # via + # -r requirements/test.txt # edx-lint # pylint-celery # pylint-django # pylint-plugin-utils pylint-celery==0.3 - # via edx-lint + # via + # -r requirements/test.txt + # edx-lint pylint-django==2.6.1 - # via edx-lint + # via + # -r requirements/test.txt + # edx-lint pylint-plugin-utils==0.8.2 # via + # -r requirements/test.txt # pylint-celery # pylint-django pymemcache==4.0.0 # via # -r requirements/local.in - # -r requirements/test.in + # -r requirements/test.txt pymongo==4.11 - # via edx-opaque-keys + # via + # -r requirements/test.txt + # edx-opaque-keys pynacl==1.5.0 - # via edx-django-utils + # via + # -r requirements/test.txt + # edx-django-utils pyopenssl==24.3.0 - # via snowflake-connector-python + # via + # -r requirements/test.txt + # snowflake-connector-python pyparsing==3.2.1 # via + # -r requirements/test.txt # httplib2 - # packaging -pyproject-api==1.5.0 - # via tox -pyrsistent==0.20.0 - # via jsonschema +pyproject-api==1.9.0 + # via + # -r requirements/test.txt + # tox pysocks==1.7.1 - # via urllib3 + # via + # -r requirements/test.txt + # urllib3 pytest==8.3.4 # via - # -r requirements/test.in + # -r requirements/test.txt # pytest-cov # pytest-django # pytest-responses # pytest-split # pytest-xdist pytest-cov==6.0.0 - # via -r requirements/test.in + # via -r requirements/test.txt pytest-django==4.9.0 - # via -r requirements/test.in + # via -r requirements/test.txt pytest-responses==0.5.1 - # via -r requirements/test.in + # via -r requirements/test.txt pytest-split==0.10.0 - # via -r requirements/local.in + # via -r requirements/test.txt pytest-xdist==3.6.1 - # via -r requirements/test.in + # via -r requirements/test.txt python-dateutil==2.9.0.post0 # via - # -r requirements/base.in + # -r requirements/docs.txt + # -r requirements/test.txt # botocore # celery # contentful # elasticsearch-dsl # faker # freezegun -python-lsp-jsonrpc==1.0.0 - # via semgrep python-memcached==1.62 - # via -r requirements/test.in + # via -r requirements/test.txt python-monkey-business==1.1.0 - # via django-nested-admin + # via + # -r requirements/test.txt + # django-nested-admin python-slugify==8.0.4 # via - # -r requirements/base.in + # -r requirements/test.txt # code-annotations python-stdnum==1.20 - # via django-localflavor + # via + # -r requirements/test.txt + # django-localflavor python3-openid==3.2.0 - # via social-auth-core + # via + # -r requirements/test.txt + # social-auth-core pytz==2025.1 # via - # -r requirements/base.in + # -r requirements/test.txt # drf-yasg # getsmarter-api-clients # snowflake-connector-python @@ -714,20 +905,29 @@ pywatchman==2.0.0 # via -r requirements/local.in pyyaml==6.0.2 # via + # -r requirements/test.txt # code-annotations # drf-yasg # edx-django-release-util # edx-i18n-tools # responses rcssmin==1.1.2 - # via django-compressor + # via + # -r requirements/test.txt + # django-compressor redis==5.2.1 # via - # -r requirements/base.in + # -r requirements/test.txt # walrus +referencing==0.36.2 + # via + # -r requirements/test.txt + # jsonschema + # jsonschema-specifications requests==2.32.3 # via - # -r requirements/base.in + # -r requirements/docs.txt + # -r requirements/test.txt # algoliasearch # contentful # edx-analytics-data-api-client @@ -747,44 +947,69 @@ requests==2.32.3 # sphinx # zeep requests-file==2.1.0 - # via zeep + # via + # -r requirements/test.txt + # zeep requests-oauthlib==2.0.0 # via + # -r requirements/test.txt # getsmarter-api-clients # google-auth-oauthlib # social-auth-core requests-toolbelt==0.10.1 # via # -c requirements/constraints.txt + # -r requirements/test.txt # zeep responses==0.25.6 # via - # -r requirements/test.in + # -r requirements/test.txt # pytest-responses +rich==13.9.4 + # via + # -r requirements/test.txt + # semgrep rjsmin==1.2.2 - # via django-compressor + # via + # -r requirements/test.txt + # django-compressor +rpds-py==0.22.3 + # via + # -r requirements/test.txt + # jsonschema + # referencing rsa==4.9 - # via google-auth + # via + # -r requirements/test.txt + # google-auth ruamel-yaml==0.17.40 - # via semgrep + # via + # -r requirements/test.txt + # semgrep ruamel-yaml-clib==0.2.12 - # via ruamel-yaml + # via + # -r requirements/test.txt + # ruamel-yaml s3transfer==0.11.2 - # via boto3 + # via + # -r requirements/test.txt + # boto3 selenium==4.12.0 # via # -c requirements/constraints.txt - # -r requirements/test.in + # -r requirements/test.txt semantic-version==2.10.0 - # via edx-drf-extensions -semgrep==0.102.0 # via - # -c requirements/constraints.txt - # -r requirements/test.in + # -r requirements/test.txt + # edx-drf-extensions +semgrep==1.52.0 + # via -r requirements/test.txt simple-salesforce==1.12.6 - # via -r requirements/base.in + # via -r requirements/test.txt six==1.17.0 # via + # -r requirements/docs.txt + # -r requirements/test.txt # django-elasticsearch-dsl # django-elasticsearch-dsl-drf # edx-auth-backends @@ -792,110 +1017,148 @@ six==1.17.0 # edx-django-release-util # edx-lint # elasticsearch-dsl - # jsonschema # python-dateutil slumber==0.7.1 - # via -r requirements/test.in + # via -r requirements/test.txt sniffio==1.3.1 - # via trio + # via + # -r requirements/test.txt + # trio snowballstemmer==2.2.0 - # via sphinx + # via + # -r requirements/docs.txt + # sphinx snowflake-connector-python==3.13.2 - # via -r requirements/base.in + # via -r requirements/test.txt social-auth-app-django==5.4.2 # via - # -r requirements/base.in + # -r requirements/test.txt # edx-auth-backends social-auth-core==4.5.4 # via + # -r requirements/test.txt # edx-auth-backends # social-auth-app-django sortedcontainers==2.4.0 # via + # -r requirements/test.txt # snowflake-connector-python # trio soupsieve==2.6 - # via beautifulsoup4 + # via + # -r requirements/docs.txt + # -r requirements/test.txt + # beautifulsoup4 sphinx==5.3.0 # via # -c requirements/constraints.txt - # -r requirements/docs.in + # -r requirements/docs.txt # pydata-sphinx-theme # sphinx-book-theme sphinx-book-theme==1.1.3 - # via -r requirements/docs.in + # via -r requirements/docs.txt sphinxcontrib-applehelp==2.0.0 - # via sphinx + # via + # -r requirements/docs.txt + # sphinx sphinxcontrib-devhelp==2.0.0 - # via sphinx + # via + # -r requirements/docs.txt + # sphinx sphinxcontrib-htmlhelp==2.1.0 - # via sphinx + # via + # -r requirements/docs.txt + # sphinx sphinxcontrib-jsmath==1.0.1 - # via sphinx + # via + # -r requirements/docs.txt + # sphinx sphinxcontrib-qthelp==2.0.0 - # via sphinx + # via + # -r requirements/docs.txt + # sphinx sphinxcontrib-serializinghtml==2.0.0 - # via sphinx + # via + # -r requirements/docs.txt + # sphinx sqlparse==0.5.3 # via + # -r requirements/test.txt # django # django-debug-toolbar stevedore==5.4.0 # via + # -r requirements/test.txt # code-annotations # edx-django-utils # edx-opaque-keys taxonomy-connector==2.0.0 - # via -r requirements/base.in + # via -r requirements/test.txt testfixtures==8.3.0 - # via -r requirements/test.in + # via -r requirements/test.txt text-unidecode==1.3 - # via python-slugify + # via + # -r requirements/test.txt + # python-slugify tinycss2==1.4.0 # via + # -r requirements/test.txt # cairosvg # cssselect2 +tomli==2.0.2 + # via + # -r requirements/test.txt + # semgrep tomlkit==0.13.2 # via + # -r requirements/test.txt # pylint # snowflake-connector-python -tox==4.0.0 - # via -r requirements/test.in +tox==4.24.1 + # via -r requirements/test.txt tqdm==4.67.1 # via + # -r requirements/test.txt # openai - # semgrep -trio==0.24.0 +trio==0.28.0 # via + # -r requirements/test.txt # selenium # trio-websocket trio-websocket==0.11.1 - # via selenium + # via + # -r requirements/test.txt + # selenium typing-extensions==4.12.2 # via + # -r requirements/docs.txt + # -r requirements/test.txt # beautifulsoup4 # django-countries # edx-opaque-keys # faker # pydata-sphinx-theme + # referencing # semgrep # simple-salesforce # snowflake-connector-python tzdata==2025.1 # via + # -r requirements/test.txt # celery # kombu -ujson==5.10.0 - # via python-lsp-jsonrpc unicodecsv==0.14.1 - # via -r requirements/base.in + # via -r requirements/test.txt uritemplate==4.1.1 # via + # -r requirements/test.txt # drf-yasg # google-api-python-client urllib3[socks]==1.26.20 # via # -c requirements/common_constraints.txt + # -r requirements/docs.txt + # -r requirements/test.txt # botocore # elasticsearch # requests @@ -904,31 +1167,49 @@ urllib3[socks]==1.26.20 # semgrep vine==5.1.0 # via + # -r requirements/test.txt # amqp # celery # kombu virtualenv==20.29.1 - # via tox + # via + # -r requirements/test.txt + # tox walrus==0.9.4 - # via edx-event-bus-redis + # via + # -r requirements/test.txt + # edx-event-bus-redis wcmatch==8.5.2 - # via semgrep + # via + # -r requirements/test.txt + # semgrep wcwidth==0.2.13 - # via prompt-toolkit + # via + # -r requirements/test.txt + # prompt-toolkit webencodings==0.5.1 # via + # -r requirements/test.txt # cssselect2 # tinycss2 wsproto==1.2.0 - # via trio-websocket + # via + # -r requirements/test.txt + # trio-websocket xss-utils==0.6.0 - # via -r requirements/base.in + # via -r requirements/test.txt yarl==1.18.3 - # via aiohttp + # via + # -r requirements/test.txt + # aiohttp zeep==4.3.1 - # via simple-salesforce + # via + # -r requirements/test.txt + # simple-salesforce zipp==3.21.0 - # via importlib-metadata + # via + # -r requirements/test.txt + # importlib-metadata # The following packages are considered to be unsafe in a requirements file: # setuptools diff --git a/requirements/production.in b/requirements/production.in index 09ff870897..6f9aab5834 100644 --- a/requirements/production.in +++ b/requirements/production.in @@ -1,7 +1,7 @@ # Packages required in a production environment -c constraints.txt -r github.in # Forks and other dependencies not yet on PyPI --r base.in +-r base.txt certifi django-ses diff --git a/requirements/production.txt b/requirements/production.txt index 2a47e600ce..3b5cae786c 100644 --- a/requirements/production.txt +++ b/requirements/production.txt @@ -5,79 +5,104 @@ # pip-compile --output-file=requirements/production.txt requirements/production.in # aiohappyeyeballs==2.4.4 - # via aiohttp + # via + # -r requirements/base.txt + # aiohttp aiohttp==3.11.11 - # via openai + # via + # -r requirements/base.txt + # openai aiosignal==1.3.2 - # via aiohttp + # via + # -r requirements/base.txt + # aiohttp algoliasearch==1.20.0 # via # -c requirements/constraints.txt + # -r requirements/base.txt # algoliasearch-django # taxonomy-connector algoliasearch-django==1.7.3 # via # -c requirements/constraints.txt - # -r requirements/base.in + # -r requirements/base.txt amqp==5.3.1 - # via kombu + # via + # -r requirements/base.txt + # kombu asgiref==3.8.1 # via + # -r requirements/base.txt # django # django-cors-headers # django-countries - # django-htmx asn1crypto==1.5.1 - # via snowflake-connector-python + # via + # -r requirements/base.txt + # snowflake-connector-python attrs==25.1.0 # via + # -r requirements/base.txt # aiohttp # openedx-events # zeep backoff==2.2.1 - # via -r requirements/base.in -beautifulsoup4==4.13.0 + # via -r requirements/base.txt +beautifulsoup4==4.13.2 # via - # -r requirements/base.in + # -r requirements/base.txt # taxonomy-connector billiard==4.2.1 - # via celery -boto3==1.36.11 - # via django-ses -botocore==1.36.11 # via + # -r requirements/base.txt + # celery +boto3==1.36.12 + # via + # -r requirements/base.txt + # django-ses +botocore==1.36.12 + # via + # -r requirements/base.txt # boto3 # s3transfer cachetools==5.5.1 - # via google-auth + # via + # -r requirements/base.txt + # google-auth cairocffi==1.4.0 # via # -c requirements/constraints.txt + # -r requirements/base.txt # cairosvg cairosvg==2.7.1 - # via -r requirements/base.in + # via -r requirements/base.txt celery==5.4.0 # via # -c requirements/constraints.txt + # -r requirements/base.txt # taxonomy-connector certifi==2025.1.31 # via + # -r requirements/base.txt # -r requirements/production.in # elasticsearch # requests # snowflake-connector-python cffi==1.17.1 # via + # -r requirements/base.txt # cairocffi # cryptography # pynacl # snowflake-connector-python charset-normalizer==3.4.1 # via + # -r requirements/base.txt # requests # snowflake-connector-python click==8.1.8 # via + # -r requirements/base.txt # celery # click-didyoumean # click-plugins @@ -85,25 +110,37 @@ click==8.1.8 # code-annotations # edx-django-utils click-didyoumean==0.3.1 - # via celery + # via + # -r requirements/base.txt + # celery click-plugins==1.1.1 - # via celery + # via + # -r requirements/base.txt + # celery click-repl==0.3.0 - # via celery + # via + # -r requirements/base.txt + # celery code-annotations==2.2.0 - # via edx-toggles + # via + # -r requirements/base.txt + # edx-toggles contentful==2.3.2 - # via -r requirements/base.in + # via -r requirements/base.txt cryptography==44.0.0 # via + # -r requirements/base.txt # pyjwt # pyopenssl # snowflake-connector-python # social-auth-core cssselect2==0.7.0 - # via cairosvg + # via + # -r requirements/base.txt + # cairosvg defusedxml==0.7.1 # via + # -r requirements/base.txt # cairosvg # djangorestframework-xml # python3-openid @@ -112,7 +149,7 @@ django==4.2.18 # via # -c requirements/common_constraints.txt # -c requirements/constraints.txt - # -r requirements/base.in + # -r requirements/base.txt # algoliasearch-django # django-admin-sortable2 # django-appconf @@ -127,7 +164,6 @@ django==4.2.18 # django-extensions # django-filter # django-guardian - # django-htmx # django-localflavor # django-model-utils # django-multi-email-field @@ -159,106 +195,114 @@ django==4.2.18 # taxonomy-connector # xss-utils django-admin-sortable2==2.2.4 - # via -r requirements/base.in + # via -r requirements/base.txt django-appconf==1.0.6 - # via django-compressor + # via + # -r requirements/base.txt + # django-compressor django-autocomplete-light==3.11.0 - # via -r requirements/base.in + # via -r requirements/base.txt django-choices==2.0.0 # via - # -r requirements/base.in + # -r requirements/base.txt # taxonomy-connector django-compressor==4.5.1 # via - # -r requirements/base.in + # -r requirements/base.txt # django-libsass django-config-models==2.7.0 - # via -r requirements/base.in + # via -r requirements/base.txt django-contrib-comments==2.2.0 - # via -r requirements/base.in + # via -r requirements/base.txt django-cors-headers==4.6.0 - # via -r requirements/base.in + # via -r requirements/base.txt django-countries==7.6.1 - # via -r requirements/base.in + # via -r requirements/base.txt django-crum==0.7.9 # via + # -r requirements/base.txt # edx-django-utils # edx-toggles django-dry-rest-permissions==1.2.0 - # via -r requirements/base.in + # via -r requirements/base.txt django-dynamic-filenames==1.4.0 - # via -r requirements/base.in + # via -r requirements/base.txt django-elasticsearch-dsl==7.4 # via - # -r requirements/base.in + # -r requirements/base.txt # django-elasticsearch-dsl-drf django-elasticsearch-dsl-drf==0.22.5 - # via -r requirements/base.in + # via -r requirements/base.txt django-extensions==3.2.3 - # via -r requirements/base.in + # via -r requirements/base.txt django-filter==24.3 # via - # -r requirements/base.in + # -r requirements/base.txt # taxonomy-connector django-fsm==3.0.0 - # via -r requirements/base.in + # via -r requirements/base.txt django-guardian==2.4.0 - # via -r requirements/base.in + # via -r requirements/base.txt django-libsass==0.9 - # via -r requirements/base.in + # via -r requirements/base.txt django-localflavor==4.0 - # via -r requirements/base.in + # via -r requirements/base.txt django-model-utils==5.0.0 - # via taxonomy-connector + # via + # -r requirements/base.txt + # taxonomy-connector django-multi-email-field==0.7.0 - # via -r requirements/base.in + # via -r requirements/base.txt django-multiselectfield==0.1.13 - # via -r requirements/base.in + # via -r requirements/base.txt django-nested-admin==4.1.1 - # via -r requirements/base.in + # via -r requirements/base.txt django-nine==0.2.7 - # via django-elasticsearch-dsl-drf + # via + # -r requirements/base.txt + # django-elasticsearch-dsl-drf django-object-actions==4.3.0 # via - # -r requirements/base.in + # -r requirements/base.txt # taxonomy-connector django-parler==2.3 - # via -r requirements/base.in + # via -r requirements/base.txt django-ses==4.4.0 # via + # -r requirements/base.txt # -r requirements/production.in # taxonomy-connector django-simple-history==3.8.0 - # via -r requirements/base.in + # via -r requirements/base.txt django-solo==2.4.0 # via - # -r requirements/base.in + # -r requirements/base.txt # taxonomy-connector django-sortedm2m==4.0.0 - # via -r requirements/base.in + # via -r requirements/base.txt django-stdimage==5.3.0 # via # -c requirements/constraints.txt - # -r requirements/base.in + # -r requirements/base.txt django-storages==1.14.4 - # via -r requirements/base.in + # via -r requirements/base.txt django-taggit==6.1.0 # via - # -r requirements/base.in + # -r requirements/base.txt # django-taggit-autosuggest django-taggit-autosuggest==0.4.2 - # via -r requirements/base.in + # via -r requirements/base.txt django-waffle==4.2.0 # via - # -r requirements/base.in + # -r requirements/base.txt # edx-django-utils # edx-drf-extensions # edx-toggles django-webpack-loader==3.1.1 - # via -r requirements/base.in + # via -r requirements/base.txt djangorestframework==3.15.2 # via - # -r requirements/base.in + # -r requirements/base.txt # django-config-models # django-elasticsearch-dsl-drf # djangorestframework-csv @@ -269,38 +313,42 @@ djangorestframework==3.15.2 # edx-drf-extensions # taxonomy-connector djangorestframework-csv==3.0.2 - # via -r requirements/base.in + # via -r requirements/base.txt djangorestframework-xml==2.0.0 - # via -r requirements/base.in + # via -r requirements/base.txt dnspython==2.7.0 - # via pymongo + # via + # -r requirements/base.txt + # pymongo drf-extensions==0.7.1 - # via -r requirements/base.in + # via -r requirements/base.txt drf-flex-fields==1.0.2 - # via -r requirements/base.in + # via -r requirements/base.txt drf-jwt==1.19.2 - # via edx-drf-extensions + # via + # -r requirements/base.txt + # edx-drf-extensions drf-yasg==1.21.8 # via - # -r requirements/base.in + # -r requirements/base.txt # edx-api-doc-tools edx-analytics-data-api-client==0.18.3 - # via -r requirements/base.in + # via -r requirements/base.txt edx-api-doc-tools==2.0.0 - # via -r requirements/base.in + # via -r requirements/base.txt edx-auth-backends==4.4.0 - # via -r requirements/base.in + # via -r requirements/base.txt edx-ccx-keys==2.0.2 # via - # -r requirements/base.in + # -r requirements/base.txt # openedx-events edx-django-release-util==1.4.0 - # via -r requirements/base.in + # via -r requirements/base.txt edx-django-sites-extensions==4.2.0 - # via -r requirements/base.in + # via -r requirements/base.txt edx-django-utils==7.1.0 # via - # -r requirements/base.in + # -r requirements/base.txt # django-config-models # edx-drf-extensions # edx-event-bus-kafka @@ -311,57 +359,66 @@ edx-django-utils==7.1.0 # openedx-events # taxonomy-connector edx-drf-extensions==10.5.0 - # via -r requirements/base.in + # via -r requirements/base.txt edx-event-bus-kafka==6.0.0 - # via -r requirements/base.in + # via -r requirements/base.txt edx-event-bus-redis==0.5.1 - # via -r requirements/base.in + # via -r requirements/base.txt edx-opaque-keys[django]==2.11.0 # via - # -r requirements/base.in + # -r requirements/base.txt # edx-ccx-keys # edx-drf-extensions # openedx-events # taxonomy-connector edx-rest-api-client==6.0.0 # via - # -r requirements/base.in + # -r requirements/base.txt # taxonomy-connector edx-toggles==5.2.0 # via + # -r requirements/base.txt # edx-event-bus-kafka # edx-event-bus-redis elasticsearch==7.13.4 # via # -c requirements/common_constraints.txt # -c requirements/constraints.txt - # -r requirements/base.in + # -r requirements/base.txt # django-elasticsearch-dsl-drf # elasticsearch-dsl elasticsearch-dsl==7.4.1 # via # -c requirements/constraints.txt - # -r requirements/base.in + # -r requirements/base.txt # django-elasticsearch-dsl # django-elasticsearch-dsl-drf fastavro==1.10.0 - # via openedx-events + # via + # -r requirements/base.txt + # openedx-events filelock==3.17.0 - # via snowflake-connector-python + # via + # -r requirements/base.txt + # snowflake-connector-python frozenlist==1.5.0 # via + # -r requirements/base.txt # aiohttp # aiosignal getsmarter-api-clients==0.6.1 - # via -r requirements/base.in + # via -r requirements/base.txt gevent==24.11.1 # via -r requirements/production.in google-api-core==2.24.1 - # via google-api-python-client + # via + # -r requirements/base.txt + # google-api-python-client google-api-python-client==2.160.0 - # via -r requirements/base.in + # via -r requirements/base.txt google-auth==2.38.0 # via + # -r requirements/base.txt # google-api-core # google-api-python-client # google-auth-httplib2 @@ -369,131 +426,177 @@ google-auth==2.38.0 # gspread google-auth-httplib2==0.2.0 # via - # -r requirements/base.in + # -r requirements/base.txt # google-api-python-client google-auth-oauthlib==1.2.1 - # via gspread + # via + # -r requirements/base.txt + # gspread googleapis-common-protos==1.66.0 - # via google-api-core + # via + # -r requirements/base.txt + # google-api-core greenlet==3.1.1 # via gevent gspread==6.1.4 - # via -r requirements/base.in + # via -r requirements/base.txt gunicorn==23.0.0 # via -r requirements/production.in html2text==2024.2.26 - # via -r requirements/base.in + # via -r requirements/base.txt httplib2==0.22.0 # via + # -r requirements/base.txt # google-api-python-client # google-auth-httplib2 idna==3.10 # via + # -r requirements/base.txt # requests # snowflake-connector-python # yarl importlib-metadata==8.6.1 - # via -r requirements/base.in + # via -r requirements/base.txt inflection==0.5.1 - # via drf-yasg + # via + # -r requirements/base.txt + # drf-yasg isodate==0.7.2 - # via zeep + # via + # -r requirements/base.txt + # zeep jinja2==3.1.5 - # via code-annotations + # via + # -r requirements/base.txt + # code-annotations jmespath==1.0.1 # via + # -r requirements/base.txt # boto3 # botocore jsonfield==3.1.0 - # via -r requirements/base.in + # via -r requirements/base.txt kombu==5.4.2 - # via celery + # via + # -r requirements/base.txt + # celery libsass==0.23.0 - # via django-libsass -lxml[html-clean,html_clean]==5.3.0 # via - # -r requirements/base.in + # -r requirements/base.txt + # django-libsass +lxml[html-clean]==5.3.0 + # via + # -r requirements/base.txt # lxml-html-clean # zeep lxml-html-clean==0.4.1 - # via lxml + # via + # -r requirements/base.txt + # lxml markdown==3.7 - # via -r requirements/base.in + # via -r requirements/base.txt markupsafe==3.0.2 - # via jinja2 + # via + # -r requirements/base.txt + # jinja2 more-itertools==10.6.0 - # via simple-salesforce + # via + # -r requirements/base.txt + # simple-salesforce multidict==6.1.0 # via + # -r requirements/base.txt # aiohttp # yarl mysqlclient==2.2.7 # via -r requirements/production.in newrelic==10.5.0 # via + # -r requirements/base.txt # -r requirements/production.in # edx-django-utils oauthlib==3.2.2 # via + # -r requirements/base.txt # getsmarter-api-clients # requests-oauthlib # social-auth-core openai==0.28.1 # via # -c requirements/constraints.txt + # -r requirements/base.txt # taxonomy-connector openedx-atlas==0.6.2 - # via -r requirements/base.in + # via -r requirements/base.txt openedx-events==9.17.0 # via + # -r requirements/base.txt # edx-event-bus-kafka # edx-event-bus-redis # taxonomy-connector packaging==24.2 # via + # -r requirements/base.txt # django-nine # drf-yasg # gunicorn # snowflake-connector-python -pbr==6.1.0 - # via stevedore +pbr==6.1.1 + # via + # -r requirements/base.txt + # stevedore pillow==9.5.0 # via # -c requirements/constraints.txt - # -r requirements/base.in + # -r requirements/base.txt # cairosvg # django-stdimage platformdirs==4.3.6 # via + # -r requirements/base.txt # snowflake-connector-python # zeep prompt-toolkit==3.0.50 - # via click-repl + # via + # -r requirements/base.txt + # click-repl propcache==0.2.1 # via + # -r requirements/base.txt # aiohttp # yarl proto-plus==1.26.0 - # via google-api-core + # via + # -r requirements/base.txt + # google-api-core protobuf==5.29.3 # via + # -r requirements/base.txt # google-api-core # googleapis-common-protos # proto-plus psutil==6.1.1 - # via edx-django-utils + # via + # -r requirements/base.txt + # edx-django-utils pyasn1==0.6.1 # via + # -r requirements/base.txt # pyasn1-modules # rsa pyasn1-modules==0.4.1 - # via google-auth + # via + # -r requirements/base.txt + # google-auth pycountry==24.6.1 - # via -r requirements/base.in + # via -r requirements/base.txt pycparser==2.22 - # via cffi + # via + # -r requirements/base.txt + # cffi pyjwt[crypto]==2.10.1 # via + # -r requirements/base.txt # drf-jwt # edx-auth-backends # edx-drf-extensions @@ -504,16 +607,24 @@ pyjwt[crypto]==2.10.1 pymemcache==4.0.0 # via -r requirements/production.in pymongo==4.11 - # via edx-opaque-keys + # via + # -r requirements/base.txt + # edx-opaque-keys pynacl==1.5.0 - # via edx-django-utils + # via + # -r requirements/base.txt + # edx-django-utils pyopenssl==24.3.0 - # via snowflake-connector-python + # via + # -r requirements/base.txt + # snowflake-connector-python pyparsing==3.2.1 - # via httplib2 + # via + # -r requirements/base.txt + # httplib2 python-dateutil==2.9.0.post0 # via - # -r requirements/base.in + # -r requirements/base.txt # botocore # celery # contentful @@ -521,18 +632,24 @@ python-dateutil==2.9.0.post0 python-memcached==1.62 # via -r requirements/production.in python-monkey-business==1.1.0 - # via django-nested-admin + # via + # -r requirements/base.txt + # django-nested-admin python-slugify==8.0.4 # via - # -r requirements/base.in + # -r requirements/base.txt # code-annotations python-stdnum==1.20 - # via django-localflavor + # via + # -r requirements/base.txt + # django-localflavor python3-openid==3.2.0 - # via social-auth-core + # via + # -r requirements/base.txt + # social-auth-core pytz==2025.1 # via - # -r requirements/base.in + # -r requirements/base.txt # drf-yasg # getsmarter-api-clients # snowflake-connector-python @@ -540,19 +657,22 @@ pytz==2025.1 # zeep pyyaml==6.0.2 # via + # -r requirements/base.txt # -r requirements/production.in # code-annotations # drf-yasg # edx-django-release-util rcssmin==1.1.2 - # via django-compressor + # via + # -r requirements/base.txt + # django-compressor redis==5.2.1 # via - # -r requirements/base.in + # -r requirements/base.txt # walrus requests==2.32.3 # via - # -r requirements/base.in + # -r requirements/base.txt # algoliasearch # contentful # edx-analytics-data-api-client @@ -568,28 +688,41 @@ requests==2.32.3 # social-auth-core # zeep requests-file==2.1.0 - # via zeep + # via + # -r requirements/base.txt + # zeep requests-oauthlib==2.0.0 # via + # -r requirements/base.txt # getsmarter-api-clients # google-auth-oauthlib # social-auth-core requests-toolbelt==0.10.1 # via # -c requirements/constraints.txt + # -r requirements/base.txt # zeep rjsmin==1.2.2 - # via django-compressor + # via + # -r requirements/base.txt + # django-compressor rsa==4.9 - # via google-auth + # via + # -r requirements/base.txt + # google-auth s3transfer==0.11.2 - # via boto3 + # via + # -r requirements/base.txt + # boto3 semantic-version==2.10.0 - # via edx-drf-extensions + # via + # -r requirements/base.txt + # edx-drf-extensions simple-salesforce==1.12.6 - # via -r requirements/base.in + # via -r requirements/base.txt six==1.17.0 # via + # -r requirements/base.txt # django-elasticsearch-dsl # django-elasticsearch-dsl-drf # edx-auth-backends @@ -598,40 +731,56 @@ six==1.17.0 # elasticsearch-dsl # python-dateutil snowflake-connector-python==3.13.2 - # via -r requirements/base.in + # via -r requirements/base.txt social-auth-app-django==5.4.2 # via - # -r requirements/base.in + # -r requirements/base.txt # edx-auth-backends social-auth-core==4.5.4 # via + # -r requirements/base.txt # edx-auth-backends # social-auth-app-django sortedcontainers==2.4.0 - # via snowflake-connector-python + # via + # -r requirements/base.txt + # snowflake-connector-python soupsieve==2.6 - # via beautifulsoup4 + # via + # -r requirements/base.txt + # beautifulsoup4 sqlparse==0.5.3 - # via django + # via + # -r requirements/base.txt + # django stevedore==5.4.0 # via + # -r requirements/base.txt # code-annotations # edx-django-utils # edx-opaque-keys taxonomy-connector==2.0.0 - # via -r requirements/base.in + # via -r requirements/base.txt text-unidecode==1.3 - # via python-slugify + # via + # -r requirements/base.txt + # python-slugify tinycss2==1.4.0 # via + # -r requirements/base.txt # cairosvg # cssselect2 tomlkit==0.13.2 - # via snowflake-connector-python + # via + # -r requirements/base.txt + # snowflake-connector-python tqdm==4.67.1 - # via openai + # via + # -r requirements/base.txt + # openai typing-extensions==4.12.2 # via + # -r requirements/base.txt # beautifulsoup4 # django-countries # edx-opaque-keys @@ -639,41 +788,56 @@ typing-extensions==4.12.2 # snowflake-connector-python tzdata==2025.1 # via + # -r requirements/base.txt # celery # kombu unicodecsv==0.14.1 - # via -r requirements/base.in + # via -r requirements/base.txt uritemplate==4.1.1 # via + # -r requirements/base.txt # drf-yasg # google-api-python-client urllib3==1.26.20 # via # -c requirements/common_constraints.txt + # -r requirements/base.txt # botocore # elasticsearch # requests vine==5.1.0 # via + # -r requirements/base.txt # amqp # celery # kombu walrus==0.9.4 - # via edx-event-bus-redis + # via + # -r requirements/base.txt + # edx-event-bus-redis wcwidth==0.2.13 - # via prompt-toolkit + # via + # -r requirements/base.txt + # prompt-toolkit webencodings==0.5.1 # via + # -r requirements/base.txt # cssselect2 # tinycss2 xss-utils==0.6.0 - # via -r requirements/base.in + # via -r requirements/base.txt yarl==1.18.3 - # via aiohttp + # via + # -r requirements/base.txt + # aiohttp zeep==4.3.1 - # via simple-salesforce + # via + # -r requirements/base.txt + # simple-salesforce zipp==3.21.0 - # via importlib-metadata + # via + # -r requirements/base.txt + # importlib-metadata zope-event==5.0 # via gevent zope-interface==7.2 diff --git a/requirements/test.in b/requirements/test.in index 22b0a812dd..405a9859cb 100644 --- a/requirements/test.in +++ b/requirements/test.in @@ -1,4 +1,6 @@ # Packages required for testing +-c constraints.txt +-r base.txt coverage ddt @@ -15,6 +17,7 @@ pytest pytest-cov pytest-django pytest-responses +pytest-split pytest-xdist responses semgrep diff --git a/requirements/test.txt b/requirements/test.txt new file mode 100644 index 0000000000..c79da75e61 --- /dev/null +++ b/requirements/test.txt @@ -0,0 +1,1032 @@ +# +# This file is autogenerated by pip-compile with Python 3.12 +# by the following command: +# +# pip-compile --output-file=requirements/test.txt requirements/test.in +# +aiohappyeyeballs==2.4.4 + # via + # -r requirements/base.txt + # aiohttp +aiohttp==3.11.11 + # via + # -r requirements/base.txt + # openai +aiosignal==1.3.2 + # via + # -r requirements/base.txt + # aiohttp +algoliasearch==1.20.0 + # via + # -c requirements/constraints.txt + # -r requirements/base.txt + # algoliasearch-django + # taxonomy-connector +algoliasearch-django==1.7.3 + # via + # -c requirements/constraints.txt + # -r requirements/base.txt +amqp==5.3.1 + # via + # -r requirements/base.txt + # kombu +asgiref==3.8.1 + # via + # -r requirements/base.txt + # django + # django-cors-headers + # django-countries +asn1crypto==1.5.1 + # via + # -r requirements/base.txt + # snowflake-connector-python +astroid==3.3.8 + # via + # pylint + # pylint-celery +attrs==25.1.0 + # via + # -r requirements/base.txt + # aiohttp + # glom + # jsonschema + # openedx-events + # outcome + # referencing + # semgrep + # trio + # zeep +backoff==2.2.1 + # via -r requirements/base.txt +beautifulsoup4==4.13.2 + # via + # -r requirements/base.txt + # taxonomy-connector +billiard==4.2.1 + # via + # -r requirements/base.txt + # celery +boltons==21.0.0 + # via + # face + # glom + # semgrep +boto3==1.36.12 + # via + # -r requirements/base.txt + # django-ses +botocore==1.36.12 + # via + # -r requirements/base.txt + # boto3 + # s3transfer +bracex==2.5.post1 + # via wcmatch +cachetools==5.5.1 + # via + # -r requirements/base.txt + # google-auth + # tox +cairocffi==1.4.0 + # via + # -c requirements/constraints.txt + # -r requirements/base.txt + # cairosvg +cairosvg==2.7.1 + # via -r requirements/base.txt +celery==5.4.0 + # via + # -c requirements/constraints.txt + # -r requirements/base.txt + # taxonomy-connector +certifi==2025.1.31 + # via + # -r requirements/base.txt + # elasticsearch + # requests + # selenium + # snowflake-connector-python +cffi==1.17.1 + # via + # -r requirements/base.txt + # cairocffi + # cryptography + # pynacl + # snowflake-connector-python +chardet==5.2.0 + # via tox +charset-normalizer==3.4.1 + # via + # -r requirements/base.txt + # requests + # snowflake-connector-python +click==8.1.8 + # via + # -r requirements/base.txt + # celery + # click-didyoumean + # click-log + # click-option-group + # click-plugins + # click-repl + # code-annotations + # edx-django-utils + # edx-lint + # semgrep +click-didyoumean==0.3.1 + # via + # -r requirements/base.txt + # celery +click-log==0.4.0 + # via edx-lint +click-option-group==0.5.6 + # via semgrep +click-plugins==1.1.1 + # via + # -r requirements/base.txt + # celery +click-repl==0.3.0 + # via + # -r requirements/base.txt + # celery +code-annotations==2.2.0 + # via + # -r requirements/base.txt + # edx-lint + # edx-toggles +colorama==0.4.6 + # via + # semgrep + # tox +contentful==2.3.2 + # via -r requirements/base.txt +coverage[toml]==7.6.10 + # via + # -r requirements/test.in + # pytest-cov +cryptography==44.0.0 + # via + # -r requirements/base.txt + # pyjwt + # pyopenssl + # snowflake-connector-python + # social-auth-core +cssselect2==0.7.0 + # via + # -r requirements/base.txt + # cairosvg +ddt==1.7.2 + # via -r requirements/test.in +defusedxml==0.7.1 + # via + # -r requirements/base.txt + # cairosvg + # djangorestframework-xml + # python3-openid + # semgrep + # social-auth-core +dill==0.3.9 + # via pylint +distlib==0.3.9 + # via virtualenv +django==4.2.18 + # via + # -c requirements/common_constraints.txt + # -c requirements/constraints.txt + # -r requirements/base.txt + # algoliasearch-django + # django-admin-sortable2 + # django-appconf + # django-autocomplete-light + # django-choices + # django-compressor + # django-config-models + # django-contrib-comments + # django-cors-headers + # django-crum + # django-dynamic-filenames + # django-extensions + # django-filter + # django-guardian + # django-localflavor + # django-model-utils + # django-multi-email-field + # django-multiselectfield + # django-nine + # django-parler + # django-ses + # django-simple-history + # django-solo + # django-stdimage + # django-storages + # django-taggit + # django-waffle + # djangorestframework + # drf-jwt + # drf-yasg + # edx-api-doc-tools + # edx-auth-backends + # edx-django-release-util + # edx-django-sites-extensions + # edx-django-utils + # edx-drf-extensions + # edx-event-bus-kafka + # edx-event-bus-redis + # edx-toggles + # jsonfield + # openedx-events + # social-auth-app-django + # taxonomy-connector + # xss-utils +django-admin-sortable2==2.2.4 + # via -r requirements/base.txt +django-appconf==1.0.6 + # via + # -r requirements/base.txt + # django-compressor +django-autocomplete-light==3.11.0 + # via -r requirements/base.txt +django-choices==2.0.0 + # via + # -r requirements/base.txt + # taxonomy-connector +django-compressor==4.5.1 + # via + # -r requirements/base.txt + # django-libsass +django-config-models==2.7.0 + # via -r requirements/base.txt +django-contrib-comments==2.2.0 + # via -r requirements/base.txt +django-cors-headers==4.6.0 + # via -r requirements/base.txt +django-countries==7.6.1 + # via -r requirements/base.txt +django-crum==0.7.9 + # via + # -r requirements/base.txt + # edx-django-utils + # edx-toggles +django-dry-rest-permissions==1.2.0 + # via -r requirements/base.txt +django-dynamic-filenames==1.4.0 + # via -r requirements/base.txt +django-elasticsearch-dsl==7.4 + # via + # -r requirements/base.txt + # django-elasticsearch-dsl-drf +django-elasticsearch-dsl-drf==0.22.5 + # via -r requirements/base.txt +django-extensions==3.2.3 + # via -r requirements/base.txt +django-filter==24.3 + # via + # -r requirements/base.txt + # taxonomy-connector +django-fsm==3.0.0 + # via -r requirements/base.txt +django-guardian==2.4.0 + # via -r requirements/base.txt +django-libsass==0.9 + # via -r requirements/base.txt +django-localflavor==4.0 + # via -r requirements/base.txt +django-model-utils==5.0.0 + # via + # -r requirements/base.txt + # taxonomy-connector +django-multi-email-field==0.7.0 + # via -r requirements/base.txt +django-multiselectfield==0.1.13 + # via -r requirements/base.txt +django-nested-admin==4.1.1 + # via -r requirements/base.txt +django-nine==0.2.7 + # via + # -r requirements/base.txt + # django-elasticsearch-dsl-drf +django-object-actions==4.3.0 + # via + # -r requirements/base.txt + # taxonomy-connector +django-parler==2.3 + # via -r requirements/base.txt +django-ses==4.4.0 + # via + # -r requirements/base.txt + # taxonomy-connector +django-simple-history==3.8.0 + # via -r requirements/base.txt +django-solo==2.4.0 + # via + # -r requirements/base.txt + # taxonomy-connector +django-sortedm2m==4.0.0 + # via -r requirements/base.txt +django-stdimage==5.3.0 + # via + # -c requirements/constraints.txt + # -r requirements/base.txt +django-storages==1.14.4 + # via -r requirements/base.txt +django-taggit==6.1.0 + # via + # -r requirements/base.txt + # django-taggit-autosuggest +django-taggit-autosuggest==0.4.2 + # via -r requirements/base.txt +django-waffle==4.2.0 + # via + # -r requirements/base.txt + # edx-django-utils + # edx-drf-extensions + # edx-toggles +django-webpack-loader==3.1.1 + # via -r requirements/base.txt +djangorestframework==3.15.2 + # via + # -r requirements/base.txt + # django-config-models + # django-elasticsearch-dsl-drf + # djangorestframework-csv + # drf-extensions + # drf-jwt + # drf-yasg + # edx-api-doc-tools + # edx-drf-extensions + # taxonomy-connector +djangorestframework-csv==3.0.2 + # via -r requirements/base.txt +djangorestframework-xml==2.0.0 + # via -r requirements/base.txt +dnspython==2.7.0 + # via + # -r requirements/base.txt + # pymongo +drf-extensions==0.7.1 + # via -r requirements/base.txt +drf-flex-fields==1.0.2 + # via -r requirements/base.txt +drf-jwt==1.19.2 + # via + # -r requirements/base.txt + # edx-drf-extensions +drf-yasg==1.21.8 + # via + # -r requirements/base.txt + # edx-api-doc-tools +edx-analytics-data-api-client==0.18.3 + # via -r requirements/base.txt +edx-api-doc-tools==2.0.0 + # via -r requirements/base.txt +edx-auth-backends==4.4.0 + # via -r requirements/base.txt +edx-ccx-keys==2.0.2 + # via + # -r requirements/base.txt + # openedx-events +edx-django-release-util==1.4.0 + # via -r requirements/base.txt +edx-django-sites-extensions==4.2.0 + # via -r requirements/base.txt +edx-django-utils==7.1.0 + # via + # -r requirements/base.txt + # django-config-models + # edx-drf-extensions + # edx-event-bus-kafka + # edx-event-bus-redis + # edx-rest-api-client + # edx-toggles + # getsmarter-api-clients + # openedx-events + # taxonomy-connector +edx-drf-extensions==10.5.0 + # via -r requirements/base.txt +edx-event-bus-kafka==6.0.0 + # via -r requirements/base.txt +edx-event-bus-redis==0.5.1 + # via -r requirements/base.txt +edx-lint==5.3.7 + # via + # -c requirements/constraints.txt + # -r requirements/test.in +edx-opaque-keys[django]==2.11.0 + # via + # -r requirements/base.txt + # edx-ccx-keys + # edx-drf-extensions + # openedx-events + # taxonomy-connector +edx-rest-api-client==6.0.0 + # via + # -r requirements/base.txt + # taxonomy-connector +edx-toggles==5.2.0 + # via + # -r requirements/base.txt + # edx-event-bus-kafka + # edx-event-bus-redis +elasticsearch==7.13.4 + # via + # -c requirements/common_constraints.txt + # -c requirements/constraints.txt + # -r requirements/base.txt + # django-elasticsearch-dsl-drf + # elasticsearch-dsl +elasticsearch-dsl==7.4.1 + # via + # -c requirements/constraints.txt + # -r requirements/base.txt + # django-elasticsearch-dsl + # django-elasticsearch-dsl-drf +execnet==2.1.1 + # via pytest-xdist +face==24.0.0 + # via glom +factory-boy==3.3.3 + # via -r requirements/test.in +faker==35.2.0 + # via factory-boy +fastavro==1.10.0 + # via + # -r requirements/base.txt + # openedx-events +filelock==3.17.0 + # via + # -r requirements/base.txt + # snowflake-connector-python + # tox + # virtualenv +freezegun==1.5.1 + # via -r requirements/test.in +frozenlist==1.5.0 + # via + # -r requirements/base.txt + # aiohttp + # aiosignal +getsmarter-api-clients==0.6.1 + # via -r requirements/base.txt +glom==22.1.0 + # via semgrep +google-api-core==2.24.1 + # via + # -r requirements/base.txt + # google-api-python-client +google-api-python-client==2.160.0 + # via -r requirements/base.txt +google-auth==2.38.0 + # via + # -r requirements/base.txt + # google-api-core + # google-api-python-client + # google-auth-httplib2 + # google-auth-oauthlib + # gspread +google-auth-httplib2==0.2.0 + # via + # -r requirements/base.txt + # google-api-python-client +google-auth-oauthlib==1.2.1 + # via + # -r requirements/base.txt + # gspread +googleapis-common-protos==1.66.0 + # via + # -r requirements/base.txt + # google-api-core +gspread==6.1.4 + # via -r requirements/base.txt +h11==0.14.0 + # via wsproto +html2text==2024.2.26 + # via -r requirements/base.txt +httplib2==0.22.0 + # via + # -r requirements/base.txt + # google-api-python-client + # google-auth-httplib2 +idna==3.10 + # via + # -r requirements/base.txt + # requests + # snowflake-connector-python + # trio + # yarl +importlib-metadata==8.6.1 + # via -r requirements/base.txt +inflection==0.5.1 + # via + # -r requirements/base.txt + # drf-yasg +iniconfig==2.0.0 + # via pytest +isodate==0.7.2 + # via + # -r requirements/base.txt + # zeep +isort==6.0.0 + # via + # -r requirements/test.in + # pylint +jinja2==3.1.5 + # via + # -r requirements/base.txt + # code-annotations +jmespath==1.0.1 + # via + # -r requirements/base.txt + # boto3 + # botocore +jsonfield==3.1.0 + # via -r requirements/base.txt +jsonschema==4.23.0 + # via semgrep +jsonschema-specifications==2024.10.1 + # via jsonschema +kombu==5.4.2 + # via + # -r requirements/base.txt + # celery +libsass==0.23.0 + # via + # -r requirements/base.txt + # django-libsass +lxml[html-clean]==5.3.0 + # via + # -r requirements/base.txt + # lxml-html-clean + # zeep +lxml-html-clean==0.4.1 + # via + # -r requirements/base.txt + # lxml +markdown==3.7 + # via -r requirements/base.txt +markdown-it-py==3.0.0 + # via rich +markupsafe==3.0.2 + # via + # -r requirements/base.txt + # jinja2 +mccabe==0.7.0 + # via pylint +mdurl==0.1.2 + # via markdown-it-py +mock==5.1.0 + # via -r requirements/test.in +more-itertools==10.6.0 + # via + # -r requirements/base.txt + # simple-salesforce +multidict==6.1.0 + # via + # -r requirements/base.txt + # aiohttp + # yarl +mysqlclient==2.2.7 + # via -r requirements/test.in +newrelic==10.5.0 + # via + # -r requirements/base.txt + # edx-django-utils +oauthlib==3.2.2 + # via + # -r requirements/base.txt + # getsmarter-api-clients + # requests-oauthlib + # social-auth-core +openai==0.28.1 + # via + # -c requirements/constraints.txt + # -r requirements/base.txt + # taxonomy-connector +openedx-atlas==0.6.2 + # via -r requirements/base.txt +openedx-events==9.17.0 + # via + # -r requirements/base.txt + # edx-event-bus-kafka + # edx-event-bus-redis + # taxonomy-connector +outcome==1.3.0.post0 + # via trio +packaging==24.2 + # via + # -r requirements/base.txt + # django-nine + # drf-yasg + # pyproject-api + # pytest + # semgrep + # snowflake-connector-python + # tox +pbr==6.1.1 + # via + # -r requirements/base.txt + # stevedore +peewee==3.17.8 + # via semgrep +pillow==9.5.0 + # via + # -c requirements/constraints.txt + # -r requirements/base.txt + # cairosvg + # django-stdimage +platformdirs==4.3.6 + # via + # -r requirements/base.txt + # pylint + # snowflake-connector-python + # tox + # virtualenv + # zeep +pluggy==1.5.0 + # via + # pytest + # tox +prompt-toolkit==3.0.50 + # via + # -r requirements/base.txt + # click-repl +propcache==0.2.1 + # via + # -r requirements/base.txt + # aiohttp + # yarl +proto-plus==1.26.0 + # via + # -r requirements/base.txt + # google-api-core +protobuf==5.29.3 + # via + # -r requirements/base.txt + # google-api-core + # googleapis-common-protos + # proto-plus +psutil==6.1.1 + # via + # -r requirements/base.txt + # edx-django-utils +pyasn1==0.6.1 + # via + # -r requirements/base.txt + # pyasn1-modules + # rsa +pyasn1-modules==0.4.1 + # via + # -r requirements/base.txt + # google-auth +pycodestyle==2.12.1 + # via -r requirements/test.in +pycountry==24.6.1 + # via -r requirements/base.txt +pycparser==2.22 + # via + # -r requirements/base.txt + # cffi +pygments==2.19.1 + # via rich +pyjwt[crypto]==2.10.1 + # via + # -r requirements/base.txt + # drf-jwt + # edx-auth-backends + # edx-drf-extensions + # edx-rest-api-client + # simple-salesforce + # snowflake-connector-python + # social-auth-core +pylint==3.3.4 + # via + # edx-lint + # pylint-celery + # pylint-django + # pylint-plugin-utils +pylint-celery==0.3 + # via edx-lint +pylint-django==2.6.1 + # via edx-lint +pylint-plugin-utils==0.8.2 + # via + # pylint-celery + # pylint-django +pymemcache==4.0.0 + # via -r requirements/test.in +pymongo==4.11 + # via + # -r requirements/base.txt + # edx-opaque-keys +pynacl==1.5.0 + # via + # -r requirements/base.txt + # edx-django-utils +pyopenssl==24.3.0 + # via + # -r requirements/base.txt + # snowflake-connector-python +pyparsing==3.2.1 + # via + # -r requirements/base.txt + # httplib2 +pyproject-api==1.9.0 + # via tox +pysocks==1.7.1 + # via urllib3 +pytest==8.3.4 + # via + # -r requirements/test.in + # pytest-cov + # pytest-django + # pytest-responses + # pytest-split + # pytest-xdist +pytest-cov==6.0.0 + # via -r requirements/test.in +pytest-django==4.9.0 + # via -r requirements/test.in +pytest-responses==0.5.1 + # via -r requirements/test.in +pytest-split==0.10.0 + # via -r requirements/test.in +pytest-xdist==3.6.1 + # via -r requirements/test.in +python-dateutil==2.9.0.post0 + # via + # -r requirements/base.txt + # botocore + # celery + # contentful + # elasticsearch-dsl + # faker + # freezegun +python-memcached==1.62 + # via -r requirements/test.in +python-monkey-business==1.1.0 + # via + # -r requirements/base.txt + # django-nested-admin +python-slugify==8.0.4 + # via + # -r requirements/base.txt + # code-annotations +python-stdnum==1.20 + # via + # -r requirements/base.txt + # django-localflavor +python3-openid==3.2.0 + # via + # -r requirements/base.txt + # social-auth-core +pytz==2025.1 + # via + # -r requirements/base.txt + # drf-yasg + # getsmarter-api-clients + # snowflake-connector-python + # taxonomy-connector + # zeep +pyyaml==6.0.2 + # via + # -r requirements/base.txt + # code-annotations + # drf-yasg + # edx-django-release-util + # responses +rcssmin==1.1.2 + # via + # -r requirements/base.txt + # django-compressor +redis==5.2.1 + # via + # -r requirements/base.txt + # walrus +referencing==0.36.2 + # via + # jsonschema + # jsonschema-specifications +requests==2.32.3 + # via + # -r requirements/base.txt + # algoliasearch + # contentful + # edx-analytics-data-api-client + # edx-drf-extensions + # edx-rest-api-client + # google-api-core + # openai + # requests-file + # requests-oauthlib + # requests-toolbelt + # responses + # semgrep + # simple-salesforce + # slumber + # snowflake-connector-python + # social-auth-core + # zeep +requests-file==2.1.0 + # via + # -r requirements/base.txt + # zeep +requests-oauthlib==2.0.0 + # via + # -r requirements/base.txt + # getsmarter-api-clients + # google-auth-oauthlib + # social-auth-core +requests-toolbelt==0.10.1 + # via + # -c requirements/constraints.txt + # -r requirements/base.txt + # zeep +responses==0.25.6 + # via + # -r requirements/test.in + # pytest-responses +rich==13.9.4 + # via semgrep +rjsmin==1.2.2 + # via + # -r requirements/base.txt + # django-compressor +rpds-py==0.22.3 + # via + # jsonschema + # referencing +rsa==4.9 + # via + # -r requirements/base.txt + # google-auth +ruamel-yaml==0.17.40 + # via semgrep +ruamel-yaml-clib==0.2.12 + # via ruamel-yaml +s3transfer==0.11.2 + # via + # -r requirements/base.txt + # boto3 +selenium==4.12.0 + # via + # -c requirements/constraints.txt + # -r requirements/test.in +semantic-version==2.10.0 + # via + # -r requirements/base.txt + # edx-drf-extensions +semgrep==1.52.0 + # via -r requirements/test.in +simple-salesforce==1.12.6 + # via -r requirements/base.txt +six==1.17.0 + # via + # -r requirements/base.txt + # django-elasticsearch-dsl + # django-elasticsearch-dsl-drf + # edx-auth-backends + # edx-ccx-keys + # edx-django-release-util + # edx-lint + # elasticsearch-dsl + # python-dateutil +slumber==0.7.1 + # via -r requirements/test.in +sniffio==1.3.1 + # via trio +snowflake-connector-python==3.13.2 + # via -r requirements/base.txt +social-auth-app-django==5.4.2 + # via + # -r requirements/base.txt + # edx-auth-backends +social-auth-core==4.5.4 + # via + # -r requirements/base.txt + # edx-auth-backends + # social-auth-app-django +sortedcontainers==2.4.0 + # via + # -r requirements/base.txt + # snowflake-connector-python + # trio +soupsieve==2.6 + # via + # -r requirements/base.txt + # beautifulsoup4 +sqlparse==0.5.3 + # via + # -r requirements/base.txt + # django +stevedore==5.4.0 + # via + # -r requirements/base.txt + # code-annotations + # edx-django-utils + # edx-opaque-keys +taxonomy-connector==2.0.0 + # via -r requirements/base.txt +testfixtures==8.3.0 + # via -r requirements/test.in +text-unidecode==1.3 + # via + # -r requirements/base.txt + # python-slugify +tinycss2==1.4.0 + # via + # -r requirements/base.txt + # cairosvg + # cssselect2 +tomli==2.0.2 + # via semgrep +tomlkit==0.13.2 + # via + # -r requirements/base.txt + # pylint + # snowflake-connector-python +tox==4.24.1 + # via -r requirements/test.in +tqdm==4.67.1 + # via + # -r requirements/base.txt + # openai +trio==0.28.0 + # via + # selenium + # trio-websocket +trio-websocket==0.11.1 + # via selenium +typing-extensions==4.12.2 + # via + # -r requirements/base.txt + # beautifulsoup4 + # django-countries + # edx-opaque-keys + # faker + # referencing + # semgrep + # simple-salesforce + # snowflake-connector-python +tzdata==2025.1 + # via + # -r requirements/base.txt + # celery + # kombu +unicodecsv==0.14.1 + # via -r requirements/base.txt +uritemplate==4.1.1 + # via + # -r requirements/base.txt + # drf-yasg + # google-api-python-client +urllib3[socks]==1.26.20 + # via + # -c requirements/common_constraints.txt + # -r requirements/base.txt + # botocore + # elasticsearch + # requests + # responses + # selenium + # semgrep +vine==5.1.0 + # via + # -r requirements/base.txt + # amqp + # celery + # kombu +virtualenv==20.29.1 + # via tox +walrus==0.9.4 + # via + # -r requirements/base.txt + # edx-event-bus-redis +wcmatch==8.5.2 + # via semgrep +wcwidth==0.2.13 + # via + # -r requirements/base.txt + # prompt-toolkit +webencodings==0.5.1 + # via + # -r requirements/base.txt + # cssselect2 + # tinycss2 +wsproto==1.2.0 + # via trio-websocket +xss-utils==0.6.0 + # via -r requirements/base.txt +yarl==1.18.3 + # via + # -r requirements/base.txt + # aiohttp +zeep==4.3.1 + # via + # -r requirements/base.txt + # simple-salesforce +zipp==3.21.0 + # via + # -r requirements/base.txt + # importlib-metadata + +# The following packages are considered to be unsafe in a requirements file: +# setuptools diff --git a/tox.ini b/tox.ini index f164b27827..343d967414 100644 --- a/tox.ini +++ b/tox.ini @@ -9,7 +9,8 @@ testpaths = course_discovery/apps [testenv] deps = django42: -r requirements/django.txt - -r{toxinidir}/requirements/local.txt + -r{toxinidir}/requirements/test.txt + passenv = CONN_MAX_AGE DB_HOST