mirror of
https://github.com/ae-utbm/sith.git
synced 2024-12-22 07:41:14 +00:00
137 lines
3.9 KiB
TOML
137 lines
3.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.12"
|
|
Django = "^4.2.17"
|
|
django-ninja = "^1.3.0"
|
|
django-ninja-extra = "^0.21.8"
|
|
Pillow = "^11.0.0"
|
|
mistune = "^3.0.2"
|
|
django-jinja = "^2.11.0"
|
|
cryptography = "^44.0.0"
|
|
django-phonenumber-field = "^8.0.0"
|
|
phonenumbers = "^8.13.52"
|
|
reportlab = "^4.2.5"
|
|
django-haystack = "^3.3.0"
|
|
xapian-haystack = "^3.1.0"
|
|
libsass = "^0.23.0"
|
|
django-ordered-model = "^3.7.4"
|
|
django-simple-captcha = "^0.6.0"
|
|
python-dateutil = "^2.9.0.post0"
|
|
sentry-sdk = "^2.19.2"
|
|
Jinja2 = "^3.1.4"
|
|
django-countries = "^7.6.1"
|
|
dict2xml = "^1.7.6"
|
|
Sphinx = "^5" # Needed for building xapian
|
|
tomli = "^2.2.1"
|
|
django-honeypot = "^1.2.1"
|
|
pydantic-extra-types = "^2.10.1"
|
|
|
|
[tool.poetry.group.prod.dependencies]
|
|
# deps used in prod, but unnecessary for development
|
|
|
|
# The C extra triggers compilation against system libs during install.
|
|
# Removing it would switch psycopg to a slower full-python implementation
|
|
psycopg = {extras = ["c"], version = "^3.2.3"}
|
|
redis = {extras = ["hiredis"], version = "^5.2.0"}
|
|
|
|
[tool.poetry.group.prod]
|
|
optional = true
|
|
|
|
[tool.poetry.group.dev.dependencies]
|
|
# deps used for development purposes, but unneeded in prod
|
|
django-debug-toolbar = "^4.4.6"
|
|
ipython = "^8.30.0"
|
|
pre-commit = "^4.0.1"
|
|
ruff = "^0.8.3" # Version used in pipeline is controlled by pre-commit hooks in .pre-commit.config.yaml
|
|
djhtml = "^3.0.7"
|
|
faker = "^33.1.0"
|
|
rjsmin = "^1.2.3"
|
|
|
|
[tool.poetry.group.tests.dependencies]
|
|
# deps used for testing purposes
|
|
freezegun = "^1.5.1" # used to test time-dependent code
|
|
pytest = "^8.3.4"
|
|
pytest-cov = "^6.0.0"
|
|
pytest-django = "^4.9.0"
|
|
model-bakery = "^1.20.0"
|
|
|
|
[tool.poetry.group.docs.dependencies]
|
|
# deps used to work on the documentation
|
|
mkdocs = "^1.6.1"
|
|
mkdocs-material = "^9.5.47"
|
|
mkdocstrings = "^0.27.0"
|
|
mkdocstrings-python = "^1.12.2"
|
|
mkdocs-include-markdown-plugin = "^7.1.2"
|
|
|
|
[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
|
|
"DJ", # django-specific rules,
|
|
"E", # pycodestyle (https://docs.astral.sh/ruff/rules/#pycodestyle-e-w)
|
|
"ERA", # commented code
|
|
"F", # pyflakes (https://docs.astral.sh/ruff/rules/#pyflakes-f)
|
|
"FBT", # boolean trap
|
|
"FLY", # f-string instead of str.join
|
|
"FURB", # https://docs.astral.sh/ruff/rules/#refurb-furb
|
|
"I", # isort
|
|
"INT", # gettext
|
|
"PERF", # performance
|
|
"PLW", # pylint warnings (https://docs.astral.sh/ruff/rules/#pylint-pl)
|
|
"RUF", # Ruff specific rules
|
|
"SIM", # simplify (https://docs.astral.sh/ruff/rules/#flake8-simplify-sim)
|
|
"T100", # breakpoint()
|
|
"T2", # print statements
|
|
"TCH", # type-checking block
|
|
"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
|
|
"E501", # line too long. The rule is too harsh, and the formatter deals with it in most cases
|
|
"RUF012" # mutable class attributes. This rule doesn't integrate well with django
|
|
]
|
|
|
|
[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"
|