godot/pyproject.toml

[tool.mypy]
disallow_any_generics = true
explicit_package_bases = true
ignore_missing_imports = true
namespace_packages = true
no_implicit_optional = true
pretty = true
show_column_numbers = true
warn_redundant_casts = true
warn_return_any = true
warn_unreachable = true
exclude = ["thirdparty/"]
python_version = "3.8"

[tool.ruff]
extend-exclude = ["thirdparty"]
extend-include = ["SConstruct", "SCsub"]
line-length = 120
target-version = "py38"

[tool.ruff.lint]
extend-select = [
	"I", # isort
]

[tool.ruff.lint.per-file-ignores]
"{SConstruct,SCsub}" = [
	"E402", # Module level import not at top of file
	"F403", # Undefined local with import star
	"F405", # Undefined local with import star usage
]

[tool.ruff.lint.isort]
sections = { metadata = ["misc.utility.scons_hints"] }
section-order = [
	"future",
	"metadata",
	"standard-library",
	"third-party",
	"first-party",
	"local-folder",
]

[tool.codespell]
enable-colors = true
write-changes = true
check-hidden = true
quiet-level = 3
builtin = ["clear", "rare", "en-GB_to_en-US"]
skip = [
	".mailmap",
	"*.desktop",
	"*.gitignore",
	"*.po",
	"*.pot",
	"*.rc",
	"AUTHORS.md",
	"COPYRIGHT.txt",
	"core/input/gamecontrollerdb.txt",
	"core/string/locales.h",
	"DONORS.md",
	"editor/project_converter_3_to_4.cpp",
	"platform/android/java/lib/src/com/*",
	"platform/web/package-lock.json",
]
ignore-words-list = [
	"breaked",
	"cancelled",
	"checkin",
	"colour",
	"curvelinear",
	"doubleclick",
	"expct",
	"findn",
	"gird",
	"hel",
	"inout",
	"labelin",
	"lod",
	"mis",
	"nd",
	"numer",
	"ot",
	"outin",
	"parm",
	"requestor",
	"te",
	"textin",
	"thirdparty",
	"vai",
]