-
Notifications
You must be signed in to change notification settings - Fork 0
/
pyproject.toml
110 lines (97 loc) · 2.9 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
[tool.black]
# I use ruff over it
line-length = 120
target-version = ["py312"]
[tool.isort]
# I use ruff over it
profile = "black"
combine_as_imports = true
combine_star = true
line_length = 120
[tool.pyright]
pythonVersion = "3.12"
typeCheckingMode = "strict" # let's enable the default max setting and go down from here.
exclude = ["**/__pycache__"]
# https://github.com/microsoft/pyright/blob/main/docs/configuration.md
deprecateTypingAliases = true
reportMissingTypeStubs = "none" # a lot of libs don't have stubs
reportPrivateUsage = "none" # it's my choice, reeee
reportImplicitOverride = "warning" # I love it
# Unnecessary
reportUnnecessaryIsInstance = "none" # I like "else" raising the error if type is somehow not it
reportUnnecessaryTypeIgnoreComment = "warning" # why it's "none" by default, even for strict ?!
# Unused stuff - yes, I write a lot of unused stuff **GIGACHAD music**
reportUnusedImport = "warning"
reportUnusedVariable = "none"
reportUnusedClass = "none"
reportUnusedFunction = "none"
# Unknown stuff - a lot of libs don't **properly** declare types
reportUnknownMemberType = "none"
reportUnknownVariableType = "none"
reportUnknownArgumentType = "none"
# there is a lot of **Incompatible** overriding in discord.py Bot development
# like `convert(ctx: AluContext, argument: str)` in converters.
# it's easier to none this out than "# type: ignore" hundreds of times x_x
reportIncompatibleVariableOverride = "none"
reportIncompatibleMethodOverride = "none"
[tool.ruff]
line-length = 120
# https://docs.astral.sh/ruff/rules/
lint.select = [
"C4",
"F",
"G",
"I",
"PTH",
"RUF",
"SIM",
"TCH",
"UP",
"W",
"PERF",
"ANN",
# my experimental additions
"N",
"EM",
"ICN",
"DTZ",
"ISC",
"D", # for doc-string madness
]
lint.ignore = [
"F401",
"F402",
"F403",
"F405",
"PERF203",
"RUF001",
"RUF009",
"SIM105",
"UP034",
"UP038",
"ANN101",
"ANN102",
"ANN401",
"D401", # the imperative doc-string rule is kinda bullshit.
"D100", # docstring in a public module
"D104", # Missing docstring in publick package. Otherwise spams __init__.py and such.
"D105", # Missing docstring in magic method.
"D107", # Missing docstring in `__init__`.
"D417", # Missing argument description. Otherwise, it keeps asking to document interaction/context args.
"UP032", # I use it for triple emotes stuff, please ruff, stfu
# Warning incompatibilities
"D203", # one-blank-line-before-class
"D213", # multi-line-summary-second-line
]
[tool.ruff.lint.per-file-ignores]
"ext/beta.py" = ["ANN201"]
[tool.ruff.lint.isort]
split-on-trailing-comma = true
combine-as-imports = true
[project]
name = "AluBot"
version = "2024.0.0"
requires-python = ">=3.12"
authors = [{ name = "Aluerie" }]
maintainers = [{ name = "Aluerie" }]
description = "Personal Discord Bot"