Skip to content
pyproject.toml 4.26 KiB
Newer Older
Josh Asplund's avatar
Josh Asplund committed
[build-system]

# Works around a setuptools 50 issue
# AK, 2020-12-11
# taken from https://github.com/AnalogJ/lexicon/pull/629/files
requires = [
    "setuptools!=50",
    "poetry>=0.12",
]
Josh Asplund's avatar
Josh Asplund committed
build-backend = "poetry.masonry.api"

[tool.poetry]
name = "relate-courseware"
Andreas Klöckner's avatar
Andreas Klöckner committed
version = "2022.1"
Josh Asplund's avatar
Josh Asplund committed
description = "RELATE courseware"
readme = "README.rst"
repository = "https://github.com/inducer/relate"
documentation = "https://documen.tician.de/relate/"
authors = ["Andreas Kloeckner <inform@tiker.net>"]
license = "MIT"
packages = [
    { include = "course" },
    { include = "accounts" },
    { include = "relate" },
    # { include = "bin" },
[tool.poetry.scripts]
relate = "relate.bin.relate:main"

Josh Asplund's avatar
Josh Asplund committed
[tool.poetry.dependencies]
Andreas Klöckner's avatar
Andreas Klöckner committed
python = "^3.8"
django = "^4.0.7,<4.1"
Josh Asplund's avatar
Josh Asplund committed
# Automatically renders Django forms in a pretty, Bootstrap-compatible way.
Andreas Klöckner's avatar
Andreas Klöckner committed
django-crispy-forms = ">=1.13.0"

# 0.6 has broken checkbox rendering
# https://github.com/django-crispy-forms/crispy-bootstrap5/commit/8bccd516aa9ce336a1069b6c9346e0c4c9e8270f
crispy-bootstrap5 = { git = "https://github.com/django-crispy-forms/crispy-bootstrap5.git", rev = "2b1a014d1630dc958c7b9ea72605580e14684693" }
Andreas Klöckner's avatar
Andreas Klöckner committed

Josh Asplund's avatar
Josh Asplund committed
# Page data, answer data, ... all represented in JSON. This makes that editable in the Django admin.
jsonfield = ">=1.4.0"
# /!\ Upstream is dead, using branch for Django 3.0 support
django-yamlfield = {git = "https://github.com/bakatrouble/django-yamlfield.git", rev = "c92d0373d12a02d1e52fb09b44010f156111d7ea"}
# For easy content formatting:
markdown = "^2.6.3"
Josh Asplund's avatar
Josh Asplund committed
# For rendering macros in content:
# <3.1 for https://github.com/jupyter/nbconvert/issues/1736
# Relate itself seems to be OK with 3.1?
jinja2 = "^3.0.3,<3.1"

Josh Asplund's avatar
Josh Asplund committed
# For math/symbolic questions
pymbolic = "*"
sympy = "*"
Andreas Klöckner's avatar
Andreas Klöckner committed

pytz_deprecation_shim = "^0.1.0"

Josh Asplund's avatar
Josh Asplund committed
# Course content is stored in YAML.
pyyaml = "*"
# Dulwich git integration
Josh Asplund's avatar
Josh Asplund committed
ecdsa = "^0.15"
# https://github.com/poezio/slixmpp/commit/53dc9847e2a4110be85ad16af9b427f9a280aaee#commitcomment-69121492
slixmpp = "^1.8.1"
Josh Asplund's avatar
Josh Asplund committed
# To manage web dependencies
django-npm = "^1.0.0"
# For comfortable code entry
django-codemirror-widget = ">=0.5"
# For code isolation in code questions
docker-py = "^1.10.6"
# For code highlighting, required via the CodeHilite extension to Python-Markdown
pygments = "^2.6.1"
# For grade export
unicodecsv = "^0.14.1"
# To support network matching for facility recognition
ipaddress = "^1.0.23"
Josh Asplund's avatar
Josh Asplund committed
# {{{ For interoperation with SAML2/Shibboleth
pysaml2 = "^6.5.1"
djangosaml2 = "^v1.0.4"
Josh Asplund's avatar
Josh Asplund committed
future = "^0.18.2"
# Try to avoid https://github.com/Julian/jsonschema/issues/449
attrs = ">=19"
python-memcached = "^1.59"
Josh Asplund's avatar
Josh Asplund committed
# A task queue, used to execute long-running tasks
celery = "^5.2.2"
kombu = "*"
# Avoid 2.3.0 because of https://github.com/celery/django-celery-results/issues/293
django-celery-results = "^2.4.0"
Josh Asplund's avatar
Josh Asplund committed
# For searchable select widgets
# To sanitize HTML generated by user code
# bleach is based on html5lib, but they vendor it. I don't think we should fish the
# vendored bits out of bleach, so we'll introduce our own dependency for data-URI
# sanitization.
html5lib = "^1.1"

Josh Asplund's avatar
Josh Asplund committed
# For query lexing
pytools = "^2022.1.8"

Josh Asplund's avatar
Josh Asplund committed
# For rendering ipython notebook
Josh Asplund's avatar
Josh Asplund committed
# For relate script
colorama = "*"

# https://github.com/jupyter/nbconvert/issues/1725
ipython_genutils = "^0.2.0"

# not a direct dependency
# version constraint is here because of CVE-2020-25659
cryptography = "^3.2.1"

Andreas Klöckner's avatar
Andreas Klöckner committed
social-auth-app-django = "^5.0.0"
psycopg2 = { version = "^2.9.3", optional = true }

pylibmc = { version = "^1.6.0", optional = true }

Josh Asplund's avatar
Josh Asplund committed
[tool.poetry.dev-dependencies]
factory_boy = "^2.12.0"
flake8-quotes = "^3.2.0"
flake8-bugbear = "^22.1.11"
Josh Asplund's avatar
Josh Asplund committed
flake8 = "^3.8.3"
pep8-naming = "^0.10.0"
mypy = "^0.981"
pytest = "^6.2.5"
pytest-django = "^4.4.0"
pytest-factoryboy = "^2.1.0"
pytest-cov = "^3.0.0"
safety = "^1.9.0"
sphinx = "^4.0.2"
furo = "^2020.11.27b19"
sphinx-copybutton = "^0.3.1"
types-pytz = "^0.1.0"
types-bleach = "^0.1.2"
types-Jinja2 = "^0.1.3"
types-paramiko = "^0.1.3"
types-Markdown = "^0.1.2"
types-PyYAML = "^0.1.5"

# tests for code questions use question code that has numpy
numpy = "^1.19"

# enable with "-E postgres"
[tool.poetry.extras]
postgres = ["psycopg2"]
memcache = ["pylibmc"]