# Core dependencies for running edx-platform (LMS or Studio) # # DON'T JUST ADD NEW DEPENDENCIES!!! # # If you open a pull request that adds a new dependency, you should: # * verify that the dependency has a license compatible with AGPLv3 # * confirm that it has no system requirements beyond what we already install # * run "make upgrade" to update the detailed requirements files # -c ../constraints.txt -r ../edx-sandbox/shared.txt # Dependencies which are also used by code sandboxes -r github.in # Forks and other dependencies not yet on PyPI -r local.in # Packages in edx-platform which have their own setup.py -r paver.txt # Requirements for running paver commands # Please follow these guidelines whenever you change this file: # # 1. When adding a new dependency, add a comment to the end of the line # explaining why it is needed. # 2. Do not pin exact versions unless absolutely necessary. When upgrading # an already-pinned package to its latest release, remove the version pin. # 3. Do not add indirect dependencies unless a version constraint is needed to # avoid versions which have known problems. # 4. If the package is not needed in production, add it to another file such # as development.in or testing.in instead. analytics-python # Used for Segment analytics attrs # Reduces boilerplate code involving class attributes Babel # Internationalization utilities, used for date formatting in a few places bleach # Allowed-list-based HTML sanitizing library that escapes or strips markup and attributes; used for capa and LTI boto==2.39.0 # Deprecated version of the AWS SDK; we should stop using this boto3==1.4.8 # Amazon Web Services SDK for Python botocore==1.8.17 # via boto3, s3transfer bridgekeeper # Used for determining permissions for courseware. celery # Asynchronous task execution library chem # A helper library for chemistry calculations contextlib2 # We need contextlib2.ExitStack so we can stop using contextlib.nested which doesn't exist in python 3 crowdsourcehinter-xblock defusedxml Django # Web application framework django-appconf django-celery # Only used for the CacheBackend for celery results django-cookies-samesite # Middleware which allows SameSite=None flag for session and csrf cookies in Django<3.0.5 django-config-models>=1.0.0 # Configuration models for Django allowing config management with auditing django-cors-headers # Used to allow to configure CORS headers for cross-domain requests django-countries # Country data for Django forms and model fields django-crum # Middleware that stores the current request and user in thread local storage django-fernet-fields # via edx-enterprise (should be added to its setup.py) django-filter # Allows users to filter Django querysets dynamically django-ipware # Get the client's real IP address django-method-override # Allow use of HTTP methods normally not supported by browsers via the X-HTTP-Method-Override header django-model-utils django-mptt django-mysql django-oauth-toolkit # Provides oAuth2 capabilities for Django django-pipeline django-pyfs django-ratelimit-backend django-require django-sekizai django-ses django-simple-history django-splash django-statici18n django-storages django-user-tasks django-waffle==0.18.0 django-webpack-loader # Used to wire webpack bundles into the django asset pipeline djangorestframework==3.9.4 edx-ace edx-analytics-data-api-client edx-api-doc-tools edx-bulk-grades # LMS REST API for managing bulk grading operations edx-ccx-keys edx-celeryutils edx-completion edx-django-release-util # Release utils for the edx release pipeline edx-django-sites-extensions edx-django-utils edx-drf-extensions edx-enterprise edx-milestones edx-organizations edx-proctoring>=2.0.1 edx-proctoring-proctortrack==1.0.5 # Intentionally and permanently pinned to ensure code changes are reviewed edx-rest-api-client edx-search edx-sga edx-submissions edx-user-state-client edx-when edxval event-tracking fs==2.0.18 fs-s3fs==0.1.8 geoip2 # Python API for the GeoIP web services and databases glob2 # Enhanced glob module, used in openedx.core.lib.rooted_paths gunicorn help-tokens html5lib # HTML parser, used for capa problems icalendar # .ics generator, used by calendar_sync ipaddress # Ip network support for Embargo feature jsonfield2 # Django model field for validated JSON; used in several apps laboratory # Library for testing that code refactors/infrastructure changes produce identical results lti-consumer-xblock mailsnake # Needed for mailchimp (mailing djangoapp) mako # Primary template language used for server-side page rendering Markdown # Convert text markup to HTML; used in capa problems, forums, and course wikis mongoengine==0.10.0 # Object-document mapper for MongoDB, used in the LMS dashboard mysqlclient # Driver for the default production relational database newrelic # New Relic agent for performance monitoring nodeenv # Utility for managing Node.js environments; we use this for deployments and testing oauthlib # OAuth specification support for authenticating via LTI or other Open edX services openedx-calc # Library supporting mathematical calculations for Open edX ora2 pdfminer.six # Used in shoppingcart for extracting/parsing pdf text piexif # Exif image metadata manipulation, used in the profile_images app Pillow # Image manipulation library; used for course assets, profile images, invoice PDFs, etc. py2neo<4.0.0 # Used to communicate with Neo4j, which is used internally for modulestore inspection PyContracts pycountry pycryptodomex pygments # Used to support colors in paver command output pyjwkest # TODO Replace PyJWT usage with pyjwkest PyJWT==1.5.2 pymongo # MongoDB driver pynliner # Inlines CSS styles into HTML for email notifications python-dateutil python-Levenshtein python3-openid ; python_version>='3' python3-saml pyuca # For more accurate sorting of translated country names in django-countries recommender-xblock # https://github.com/edx/RecommenderXBlock rest-condition # DRF's recommendation for supporting complex permissions rfc6266-parser # Used to generate Content-Disposition headers. social-auth-core pysrt # Support for SubRip subtitle files, used in the video XModule pytz # Time zone information database PyYAML # Used to parse XModule resource templates redis==2.10.6 # celery task broker requests-oauthlib # Simplifies use of OAuth via the requests library, used for CCX and LTI random2 rules # Django extension for rules-based authorization checks simplejson sailthru-client==2.2.3 # For Sailthru integration Shapely # Geometry library, used for image click regions in capa six # Utilities for supporting Python 2 & 3 in the same codebase social-auth-app-django sorl-thumbnail sortedcontainers # Provides SortedKeyList, used for lists of XBlock assets sqlparse # Required by Django to run migrations.RunSQL stevedore # Support for runtime plugins, used for XBlocks and edx-platform Django app plugins staff-graded-xblock # An XBlock that allows for off-site bulk scoring of problems super-csv # Generic CSV processor unicodecsv # Easier support for CSV files with unicode text user-util # Functionality for retiring users (GDPR compliance) web-fragments # Provides the ability to render fragments of web pages XBlock # Courseware component architecture xblock-utils # Provides utilities used by the Discussion XBlock xss-utils # https://github.com/edx/edx-platform/pull/20633 Fix XSS via Translations enmerkar-underscore # Implements a underscore extractor for django-babel.