[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", ] build-backend = "poetry.masonry.api" [tool.poetry] name = "relate-courseware" version = "2022.1" description = "RELATE courseware" readme = "README.rst" repository = "https://github.com/inducer/relate" documentation = "https://documen.tician.de/relate/" authors = ["Andreas Kloeckner "] license = "MIT" packages = [ { include = "course" }, { include = "accounts" }, { include = "relate" }, # { include = "bin" }, ] [tool.poetry.scripts] relate = "relate.bin.relate:main" [tool.poetry.dependencies] python = "^3.8.1" # 4.1.3 is needed for Py3.11 compatibility django = "^4.1.6" # Automatically renders Django forms in a pretty, Bootstrap-compatible way. django-crispy-forms = ">=1.13.0" # 0.6 has broken checkbox rendering # https://github.com/django-crispy-forms/crispy-bootstrap5/commit/8bccd516aa9ce336a1069b6c9346e0c4c9e8270f crispy-bootstrap5 = "^0.7" # 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" # 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" # For math/symbolic questions pymbolic = "*" sympy = "*" pytz_deprecation_shim = "^0.1.0" # Course content is stored in YAML. pyyaml = "*" # Dulwich git integration dulwich = "^0.20.3" ecdsa = "^0.15" paramiko = "*" # https://github.com/poezio/slixmpp/commit/53dc9847e2a4110be85ad16af9b427f9a280aaee#commitcomment-69121492 slixmpp = "^1.8.3" # 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" # {{{ For interoperation with SAML2/Shibboleth pysaml2 = "^6.5.1" djangosaml2 = "^v1.0.4" # }}} # Try to avoid https://github.com/Julian/jsonschema/issues/449 attrs = ">=19" python-memcached = "^1.59" # {{{ celery and related # 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" # }}} # For searchable select widgets django_select2 = "^7.4.2" # To sanitize HTML generated by user code bleach = "^4.1" # 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" # For query lexing pytools = "^2022.1.8" # For rendering ipython notebook nbconvert = "^5.2.1" # 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" social-auth-app-django = "^5.0.0" psycopg2 = { version = "^2.9.3", optional = true } pylibmc = { version = "^1.6.0", optional = true } [tool.poetry.dev-dependencies] factory_boy = "^2.12.0" flake8-quotes = "^3.2.0" flake8-bugbear = "^22.1.11" flake8-comprehensions = "^3.10.1" flake8 = "^6.0" 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 = "^2.2.0" sphinx = "^4.0.2" furo = "^2020.11.27b19" sphinx-copybutton = "^0.3.1" django-upgrade = "^1.12.0" isort = "^5.11.4" flake8-isort = "^6.0" 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"] [tool.isort] profile = "django" line_length = 85 lines_after_imports = 2 src_paths = ["relate", "course", "accounts", "test"] # vim: foldmethod=marker