-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathpyproject.toml
130 lines (121 loc) · 3.95 KB
/
pyproject.toml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
[project]
name = "Sith"
version = "3"
description = "Le web Sith de l'AE"
readme = "README.md"
authors = [
{name = "Skia", email = "[email protected]"},
{name = "klmp200", email = "[email protected]"},
{name = "Krophil", email = "[email protected]"},
{name = "Maréchal", email = "[email protected]"},
{name = "Och", email = "[email protected]"},
{name = "tleb", email = "[email protected]"},
{name = "Soldat", email = "[email protected]"},
{name = "Nabos", email = "[email protected]"},
{name = "Terre", email = "[email protected]"},
{name = "Lo-J", email = "[email protected]"},
{name = "Vial", email = "[email protected]"},
]
license = {text = "GPL-3.0-only"}
requires-python = "<4.0,>=3.12"
dependencies = [
"Django<5.0.0,>=4.2.17",
"django-ninja<2.0.0,>=1.3.0",
"django-ninja-extra<1.0.0,>=0.21.8",
"Pillow<12.0.0,>=11.0.0",
"mistune<4.0.0,>=3.0.2",
"django-jinja<3.0.0,>=2.11.0",
"cryptography<45.0.0,>=44.0.0",
"django-phonenumber-field<9.0.0,>=8.0.0",
"phonenumbers<9.0.0,>=8.13.52",
"reportlab<5.0.0,>=4.2.5",
"django-haystack<4.0.0,>=3.3.0",
"xapian-haystack<4.0.0,>=3.1.0",
"libsass<1.0.0,>=0.23.0",
"django-ordered-model<4.0.0,>=3.7.4",
"django-simple-captcha<1.0.0,>=0.6.0",
"python-dateutil<3.0.0.0,>=2.9.0.post0",
"sentry-sdk<3.0.0,>=2.19.2",
"Jinja2<4.0.0,>=3.1.4",
"django-countries<8.0.0,>=7.6.1",
"dict2xml<2.0.0,>=1.7.6",
"Sphinx<6,>=5",
"tomli<3.0.0,>=2.2.1",
"django-honeypot<2.0.0,>=1.2.1",
"pydantic-extra-types<3.0.0,>=2.10.1",
"ical<9.0.0,>=8.3.0",
"redis[hiredis]<6.0.0,>=5.2.0",
"environs[django]<15.0.0,>=14.1.0",
"requests>=2.32.3",
]
[project.urls]
homepage = "https://ae.utbm.fr/"
documentation = "https://sith-ae.readthedocs.io/"
[dependency-groups]
prod = [
"psycopg[c]<4.0.0,>=3.2.3",
]
dev = [
"django-debug-toolbar<5.0.0,>=4.4.6",
"ipython<9.0.0,>=8.30.0",
"pre-commit<5.0.0,>=4.0.1",
"ruff<1.0.0,>=0.8.3",
"djhtml<4.0.0,>=3.0.7",
"faker<34.0.0,>=33.1.0",
"rjsmin<2.0.0,>=1.2.3",
]
tests = [
"freezegun<2.0.0,>=1.5.1",
"pytest<9.0.0,>=8.3.4",
"pytest-cov<7.0.0,>=6.0.0",
"pytest-django<5.0.0,>=4.9.0",
"model-bakery<2.0.0,>=1.20.0",
]
docs = [
"mkdocs<2.0.0,>=1.6.1",
"mkdocs-material<10.0.0,>=9.5.47",
"mkdocstrings<1.0.0,>=0.27.0",
"mkdocstrings-python<2.0.0,>=1.12.2",
"mkdocs-include-markdown-plugin<8.0.0,>=7.1.2",
]
[tool.uv]
default-groups = ["dev", "tests", "docs"]
[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"]