Sith/pyproject.toml

143 lines
4.3 KiB
TOML
Raw Normal View History

[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]
2024-09-01 22:35:00 +00:00
python = "^3.12"
2024-07-16 16:39:54 +00:00
Django = "^4.2.14"
2024-09-01 22:58:52 +00:00
django-ninja = "^1.3.0"
django-ninja-extra = "^0.21.4"
2024-07-05 11:14:58 +00:00
Pillow = "^10.4.0"
2024-07-01 15:33:05 +00:00
mistune = "^3.0.2"
2024-06-26 13:29:05 +00:00
django-jinja = "^2.11"
2024-07-26 17:30:02 +00:00
cryptography = "^43.0.0"
2024-07-26 17:41:11 +00:00
django-phonenumber-field = "^8.0.0"
phonenumbers = "^8.13"
2024-07-29 22:58:37 +00:00
django-ajax-selects = "^2.2.1"
reportlab = "^4.2"
django-haystack = "^3.2.1"
xapian-haystack = "^3.0.1"
2024-07-26 17:30:02 +00:00
libsass = "^0.23"
django-ordered-model = "^3.7"
2024-07-26 17:30:02 +00:00
django-simple-captcha = "^0.6.0"
python-dateutil = "^2.8.2"
2024-10-09 12:26:39 +00:00
sentry-sdk = "^2.16.0"
Jinja2 = "^3.1"
2024-10-09 12:26:39 +00:00
django-countries = "^7.6.1"
dict2xml = "^1.7.3"
Sphinx = "^5" # Needed for building xapian
tomli = "^2.0.1"
django-honeypot = "^1.2.1"
# When I introduced pydantic-extra-types, I needed *right now*
# the PhoneNumberValidator class which was on the master branch but not released yet.
# Once it's released, switch this to a regular version.
pydantic-extra-types = { git = "https://github.com/pydantic/pydantic-extra-types.git", rev = "58db4b0" }
2024-07-16 16:39:54 +00:00
[tool.poetry.group.prod.dependencies]
2024-07-25 16:02:45 +00:00
# deps used in prod, but unnecessary for development
2024-08-04 16:20:24 +00:00
# The C extra triggers compilation against sytem libs during install.
# Removing it would switch psycopg to a slower full-python implementation
psycopg = {extras = ["c"], version = "^3.2.1"}
2024-07-30 22:17:41 +00:00
redis = {extras = ["hiredis"], version = "^5.0.8"}
2024-07-16 16:39:54 +00:00
[tool.poetry.group.prod]
optional = true
2024-06-24 09:24:08 +00:00
[tool.poetry.group.dev.dependencies]
2024-07-25 16:02:45 +00:00
# deps used for development purposes, but unneeded in prod
2024-07-26 17:30:02 +00:00
django-debug-toolbar = "^4.4.6"
ipython = "^8.26.0"
pre-commit = "^4.0.1"
2024-10-09 12:28:13 +00:00
ruff = "^0.6.9" # Version used in pipeline is controlled by pre-commit hooks in .pre-commit.config.yaml
djhtml = "^3.0.6"
2024-10-09 12:26:39 +00:00
faker = "^30.3.0"
rjsmin = "^1.2.2"
2024-07-25 16:02:45 +00:00
2024-06-24 09:24:08 +00:00
[tool.poetry.group.tests.dependencies]
2024-07-25 16:02:45 +00:00
# deps used for testing purposes
2024-07-26 17:30:02 +00:00
freezegun = "^1.5.1" # used to test time-dependent code
pytest = "^8.3.2"
pytest-cov = "^5.0.0"
2024-10-09 12:26:39 +00:00
pytest-django = "^4.9.0"
model-bakery = "^1.20.0"
2024-06-24 09:24:08 +00:00
[tool.poetry.group.docs.dependencies]
2024-07-25 16:02:45 +00:00
# deps used to work on the documentation
2024-10-09 12:26:39 +00:00
mkdocs = "^1.6.1"
mkdocs-material = "^9.5.40"
mkdocstrings = "^0.26.2"
mkdocstrings-python = "^1.12.0"
2024-10-09 12:26:39 +00:00
mkdocs-include-markdown-plugin = "^6.2.2"
2024-06-24 09:24:08 +00:00
[tool.poetry.group.docs]
optional = true
[tool.xapian]
version = "1.4.25"
core-sha1 = "e2b4b4cf6076873ec9402cab7b9a3b71dcf95e20"
bindings-sha1 = "782f568d2ea3ca751c519a2814a35c7dc86df3a4"
2024-06-24 09:24:08 +00:00
[tool.ruff]
output-format = "concise" # makes ruff error logs easier to read
2024-06-24 11:07:36 +00:00
[tool.ruff.lint]
select = [
"A", # shadowing of Python builtins
2024-07-08 10:34:06 +00:00
"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)
2024-07-08 10:34:06 +00:00
"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)
2024-07-08 10:34:06 +00:00
"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
]
2024-06-24 11:07:36 +00:00
2024-07-12 07:34:16 +00:00
[tool.ruff.lint.pydocstyle]
convention = "google"
[tool.pytest.ini_options]
DJANGO_SETTINGS_MODULE = "sith.settings"
python_files = ["tests.py", "test_*.py", "*_tests.py"]
2024-07-04 08:19:24 +00:00
markers = ["slow"]
[build-system]
requires = ["poetry-core>=1.0.0"]
build-backend = "poetry.core.masonry.api"