Sith/pyproject.toml

115 lines
2.9 KiB
TOML

[tool.poetry]
name = "Sith"
version = "3"
description = "Le web Sith de l'AE"
authors = [
"Skia <skia@hya.sk>",
"klmp200 <antoine@bartuccio.fr>",
"Krophil <pierre.brunet@krophil.fr>",
"Maréchal <thgirod@hotmail.com>",
"Och <francescowitz68@gmail.com>",
"tleb <tleb@openmailbox.org>",
"Soldat <ryan-68@live.fr>",
"Nabos <gnikwo@hotmail.com>",
"Terre <jbaptiste.lenglet+git@gmail.com>",
"Lo-J <renaudg779@gmail.com>",
"Vial <robin.trioux@utbm.fr>"
]
documentation = "https://sith-ae.readthedocs.io/"
homepage = "https://ae.utbm.fr/"
license = "GPL-3.0-only"
[tool.poetry.dependencies]
python = "^3.10"
Django = "^4.2.14"
Pillow = "^10.4.0"
mistune = "^3.0.2"
django-jinja = "^2.11"
cryptography = "^42.0.8"
djangorestframework = "^3.13"
django-phonenumber-field = "^6.3"
phonenumbers = "^8.12"
django-ajax-selects = "^2.1.0"
reportlab = "^4.2"
django-haystack = "^3.2.1"
xapian-haystack = "^3.0.1"
libsass = "^0.22"
django-ordered-model = "^3.7"
django-simple-captcha = "^0.5.17"
python-dateutil = "^2.8.2"
sentry-sdk = "^1.21.0"
pygraphviz = "^1.1"
Jinja2 = "^3.1"
django-countries = "^7.5.1"
dict2xml = "^1.7.3"
Sphinx = "^5" # Needed for building xapian
tomli = "^2.0.1"
django-honeypot = "^1.2.0"
# deps used in prod, but unnecessary for development
[tool.poetry.group.prod.dependencies]
psycopg2-binary = "^2.9"
[tool.poetry.group.prod]
optional = true
# deps used for development purposes, but unneeded in prod
[tool.poetry.group.dev.dependencies]
django-debug-toolbar = "^4.0.0"
ipython = "^8.26.0"
pre-commit = "^3.7.1"
ruff = "^0.5.1" # Version used in pipeline is controlled by pre-commit hooks in .pre-commit.config.yaml
# deps used for testing purposes
[tool.poetry.group.tests.dependencies]
freezegun = "^1.2.2" # used to test time-dependent code
pytest = "^8.2.2"
pytest-cov = "^5.0.0"
pytest-django = "^4.8.0"
# deps used to work on the documentation
[tool.poetry.group.docs.dependencies]
mkdocs = "^1.6.0"
mkdocs-material = "^9.5.28"
mkdocstrings = "^0.25.1"
mkdocstrings-python = "^1.10.5"
mkdocs-include-markdown-plugin = "^6.2.1"
[tool.poetry.group.docs]
optional = true
[tool.xapian]
version = "1.4.25"
[tool.ruff]
output-format = "concise" # makes ruff error logs easier to read
[tool.ruff.lint]
select = [
"A", # shadowing of Python builtins
"B",
"C4", # use comprehensions when possible
"I", # isort
"DJ", # django-specific rules,
"F401", # unused import
"FBT", # boolean trap
"UP008", # Use super() instead of super(__class__, self)
"UP009", # utf-8 encoding declaration is unnecessary
]
ignore = [
"DJ001", # null=True in CharField/TextField. this one would require a migration
]
[tool.ruff.lint.pydocstyle]
convention = "google"
[tool.pytest.ini_options]
DJANGO_SETTINGS_MODULE = "sith.settings"
python_files = ["tests.py", "test_*.py", "*_tests.py"]
markers = ["slow"]
[build-system]
requires = ["poetry-core>=1.0.0"]
build-backend = "poetry.core.masonry.api"