1[tool.mypy] 2# Ensure we know what we do 3warn_redundant_casts = true 4warn_unused_ignores = true 5warn_unused_configs = true 6 7# Imports management 8ignore_missing_imports = true 9follow_imports = "skip" 10 11# Ensure full coverage 12disallow_untyped_defs = true 13disallow_incomplete_defs = true 14disallow_untyped_calls = true 15 16# Restrict dynamic typing (a little) 17# e.g. `x: List[Any]` or x: List` 18# disallow_any_generics = true 19 20strict_equality = true 21 22[tool.pytest.ini_options] 23pythonpath = "src" 24addopts = """ 25 --showlocals 26 -vvv 27 --cov=watchdog 28 --cov-report=term-missing:skip-covered 29""" 30 31[tool.ruff] 32line-length = 120 33indent-width = 4 34target-version = "py39" 35 36[tool.ruff.lint] 37extend-select = ["ALL"] 38ignore = [ 39 "ARG", 40 "ANN", # TODO 41 "B023", # TODO 42 "BLE001", 43 "C90", 44 "COM812", 45 "D", 46 "EM101", 47 "EM102", 48 "FIX", 49 "ISC001", 50 "PERF203", 51 "PL", 52 "PTH", # TODO? 53 "S", 54 "TD", 55] 56fixable = ["ALL"] 57 58[tool.ruff.format] 59quote-style = "double" 60indent-style = "space" 61skip-magic-trailing-comma = false 62line-ending = "auto" 63docstring-code-format = true 64