[tool.poetry] name = "AlekSIS-Core" version = "4.0.0.dev0" packages = [ { include = "aleksis" } ] readme = "README.rst" include = [ { path = "aleksis/**/*.mo", format = ["sdist", "wheel"] }, { path = "*.rst", format = "sdist" }, { path = "docs/*", format = "sdist" }, { path = "docs/**/*", format = "sdist" }, { path = "conftest.py", format = "sdist" }, { path = "tox.ini", format = "sdist" } ] description = "AlekSIS (School Information System) — Core" authors = [ "Dominik George <dominik.george@teckids.org>", "Julian Leucker <leuckeju@katharineum.de>", "mirabilos <thorsten.glaser@teckids.org>", "Frank Poetzsch-Heffter <p-h@katharineum.de>", "Tom Teichler <tom.teichler@teckids.org>", "Jonathan Weth <dev@jonathanweth.de>", "Hangzhi Yu <yuha@katharineum.de>", "Lloyd Meins <meinsll@katharineum.de>", "magicfelix <felix@felix-zauberer.de>", "Benedict Suska <benedict.suska@teckids.de>", "Lukas Weichelt <lukas.weichelt@teckids.de>" ] maintainers = ["Jonathan Weth <dev@jonathanweth.de>", "Dominik George <dominik.george@teckids.org>"] license = "EUPL-1.2-or-later" homepage = "https://aleksis.org" repository = "https://edugit.org/AlekSIS/official/AlekSIS-Core" documentation = "https://aleksis.org/AlekSIS-Core/docs/html/" keywords = ["SIS", "education", "school", "digitisation", "school apps"] classifiers = [ "Development Status :: 5 - Production/Stable", "Environment :: Web Environment", "Framework :: Django :: 4.1", "Intended Audience :: Developers", "Intended Audience :: Education", "Topic :: Education", "Topic :: Internet :: WWW/HTTP :: WSGI :: Application", "Topic :: Software Development :: Libraries :: Application Frameworks", "Typing :: Typed", ] [[tool.poetry.source]] name = "PyPI" priority = "primary" [[tool.poetry.source]] name = "gitlab" url = "https://edugit.org/api/v4/projects/461/packages/pypi/simple" priority = "supplemental" [tool.poetry.dependencies] python = "^3.9" Django = "^4.1" django-any-js = "^1.1" django-tables2 = "^2.1" django-phonenumber-field = {version = "^6.1", extras = ["phonenumbers"]} django-sass-processor = "1.2.2" libsass = "^0.22.0" colour = "^0.1.5" dynaconf = {version = "^3.1", extras = ["yaml", "toml", "ini"]} django-auth-ldap = { version = "^4.0", optional = true } django-maintenance-mode = "^0.18.0" django-ipware = "^5.0" django-impersonate = "^1.4" psycopg2 = "^2.8" django_select2 = "^8.0" django-two-factor-auth = { version = "^1.15.1", extras = [ "yubikey", "phonenumbers", "call", "sms", "webauthn" ] } django-yarnpkg = "^6.0" django-material = "^1.6.0" django-dynamic-preferences = "^1.11" django_widget_tweaks = "^1.4.5" django-filter = "^2.2.0" django-templated-email = "^3.0.0" html2text = "^2020.0.0" django-ckeditor = "^6.0.0" calendarweek = "^0.5.0" Celery = {version="^5.2", extras=["django", "redis"]} django-celery-results = "^2.5.1" django-celery-beat = "^2.2.0" django-celery-email = "^3.0.0" django-jsonstore = "^0.5.0" django-polymorphic = "^3.0.0" django-colorfield = "^0.9.0" django-bleach = "^3.0.0" django-guardian = "^2.2.0" rules = "^3.0" django-cache-memoize = "^0.1.6" django-haystack = "^3.1" celery-haystack-ng = "^2.0" django-dbbackup = "^4.0.0" license-expression = "^30.0" django-reversion = "^5.0.0" django-favicon-plus-reloaded = "^1.1.5" django-health-check = "^3.12.1" psutil = "^5.7.0" celery-progress = "^0.1.0" django-cachalot = "^2.5.3" django-prometheus = "^2.1.0" django-model-utils = "^4.0.0" bs4 = "^0.0.1" django-invitations = "^2.0.0" django-cleavejs = "^0.1.0" django-allauth = "^0.54.0" django-uwsgi-ng = "^2.0" django-extensions = "^3.1.1" ipython = "^8.0.0" django-oauth-toolkit = "^2.0.0" django-storages = {version = "^1.13.2", optional = true} boto3 = {version = "^1.26.142", optional = true} django-cleanup = "^8.0.0" djangorestframework = "^3.12.4" Whoosh = "^2.7.4" django-titofisto = "^1.0.0" haystack-redis = "^0.0.1" python-gnupg = "^0.5.0" sentry-sdk = {version = "^1.4.3", optional = true} django-cte = "^1.1.5" pycountry = "^22.0.0" django-iconify = "^0.3" customidenticon = "^0.1.5" graphene-django = ">=3.0.0, <=3.1.3" selenium = "^4.4.3" django-vite = "^2.0.2" graphene-django-cud = "^0.11.0" django-ical = "^1.9.2" django-recurrence = "^1.11.1" recurring-ical-events = "^2.0.2" django-timezone-field = "^5.0" uwsgi = "^2.0.21" [tool.poetry.extras] ldap = ["django-auth-ldap"] s3 = ["boto3", "django-storages"] sentry = ["sentry-sdk"] [tool.poetry.scripts] aleksis-admin = 'aleksis.core.__main__:aleksis_cmd' [tool.poetry.group.dev.dependencies] django-stubs = "^4.2" safety = "^2.3.5" flake8 = "^6.0.0" flake8-django = "^1.0.0" flake8-fixme = "^1.1.1" flake8-mypy = "^17.8.0" flake8-bandit = "^4.1.1" flake8-builtins = "^2.0.0" flake8-docstrings = "^1.5.0" flake8-rst-docstrings = "^0.3.0" black = ">=21.0" flake8-black = "^0.3.0" isort = "^5.0.0" flake8-isort = "^6.0.0" curlylint = "^0.13.0" [tool.poetry.group.test.dependencies] pytest = "^7.2" pytest-django = "^4.1" pytest-django-testing-postgresql = "^0.2" pytest-cov = "^4.0.0" pytest-sugar = "^0.9.2" selenium = "<4.10.0" freezegun = "^1.1.0" [tool.poetry.group.docs] optional = true [tool.poetry.group.docs.dependencies] sphinx = "^7.0" sphinxcontrib-django = "^2.3.0" sphinxcontrib-svg2pdfconverter = "^1.1.1" sphinx-autodoc-typehints = "^1.7" sphinx_material = "^0.0.35" [tool.black] line-length = 100 exclude = "/migrations/" [build-system] requires = ["poetry-core>=1.0.0"] build-backend = "poetry.core.masonry.api"