2021-12-19 21:41:20 +01:00
|
|
|
[tool.pytest.ini_options]
|
|
|
|
addopts = "--color=yes"
|
|
|
|
minversion = "6.0"
|
|
|
|
DJANGO_SETTINGS_MODULE = "blog.settings"
|
|
|
|
testpaths = [
|
|
|
|
"src",
|
|
|
|
]
|
|
|
|
env = [
|
|
|
|
"GOATCOUNTER_DOMAIN=gc.gabnotes.org"
|
|
|
|
]
|
|
|
|
|
2021-12-28 22:31:53 +01:00
|
|
|
[tool.mypy]
|
2022-09-23 22:45:29 +02:00
|
|
|
mypy_path = "$MYPY_CONFIG_FILE_DIR/stubs"
|
2021-12-31 12:08:03 +01:00
|
|
|
disallow_untyped_defs = true
|
|
|
|
warn_redundant_casts = true
|
|
|
|
strict_equality = true
|
|
|
|
disallow_untyped_calls = true
|
|
|
|
warn_unreachable = true
|
2021-12-31 12:29:13 +01:00
|
|
|
enable_error_code = ["redundant-expr"]
|
2021-12-28 22:31:53 +01:00
|
|
|
|
|
|
|
[[tool.mypy.overrides]]
|
|
|
|
module = [
|
2021-12-29 16:12:55 +01:00
|
|
|
"django.*",
|
2021-12-28 22:31:53 +01:00
|
|
|
"environ",
|
2021-12-29 10:42:08 +01:00
|
|
|
"django_otp.plugins.otp_static.models",
|
|
|
|
"two_factor.models",
|
|
|
|
"django_otp.plugins.otp_totp.models",
|
2021-12-31 12:08:03 +01:00
|
|
|
"model_bakery",
|
|
|
|
"invoke",
|
2021-12-28 22:31:53 +01:00
|
|
|
]
|
|
|
|
ignore_missing_imports = true
|
|
|
|
|
2023-01-30 20:58:18 +01:00
|
|
|
###############################################################################
|
|
|
|
# ruff
|
|
|
|
###############################################################################
|
|
|
|
[tool.ruff]
|
|
|
|
src = ["src"]
|
|
|
|
target-version = "py311"
|
2023-03-02 13:10:25 +01:00
|
|
|
select = ["ALL"]
|
2023-01-30 20:58:18 +01:00
|
|
|
unfixable = ["T20", "RUF001", "RUF002", "RUF003"]
|
2021-12-29 14:54:21 +01:00
|
|
|
|
2023-01-30 20:58:18 +01:00
|
|
|
ignore = [
|
|
|
|
"ANN", # flake8-annotations
|
|
|
|
"BLE", # flake8-blind-except
|
|
|
|
"TCH", # flake8-type-checking / TODO: revisit later ?
|
2021-12-29 14:54:21 +01:00
|
|
|
|
2023-01-30 20:58:18 +01:00
|
|
|
"E501", # long lines
|
|
|
|
"D1", # missing docstring
|
|
|
|
"TRY003", # Avoid specifying long messages outside the exception class
|
|
|
|
]
|
|
|
|
[tool.ruff.per-file-ignores]
|
|
|
|
"**/tests/*" = [
|
|
|
|
"S101", # Use of assert detected.
|
|
|
|
"S106", # Possible hardcoded password.
|
|
|
|
"B011", # Do not call assert False since python -O removes these calls.
|
|
|
|
"ARG001", # Unused function argument (mostly fixtures)
|
|
|
|
"PLR2004", # Magic value used in comparison, consider replacing {value} with a constant variable
|
|
|
|
]
|
|
|
|
# File {name} is part of an implicit namespace package. Add an `__init__.py`.
|
|
|
|
"tasks.py" = ["INP001"]
|
|
|
|
"src/conftest.py" = ["INP001"]
|
|
|
|
"src/manage.py" = ["INP001"]
|
|
|
|
|
|
|
|
"**/migrations/*" = [
|
|
|
|
"ARG001", # Unused function argument
|
|
|
|
"N806", # Variable in function should be lowercase
|
|
|
|
]
|
|
|
|
|
|
|
|
"**/*.pyi" = ["ALL"]
|
|
|
|
|
|
|
|
[tool.ruff.pydocstyle]
|
|
|
|
convention = "pep257"
|
2021-12-28 22:31:53 +01:00
|
|
|
|
2023-01-30 20:58:18 +01:00
|
|
|
[tool.ruff.mccabe]
|
|
|
|
max-complexity = 10
|