[tool.ruff]
exclude = ["main_window.py", "home_ui.py", "resources.py", "resources_rc.py"]
line-length = 100

[tool.ruff.lint.per-file-ignores]
"tagstudio/tests/**" = ["D", "E402"]
"tagstudio/src/qt/helpers/vendored/**" = ["B", "E", "N", "UP", "SIM115"]

[tool.ruff.lint.pydocstyle]
convention = "google"

[tool.ruff.lint]
select = [
	"B",
	"D",
	"E",
	"F",
	"FBT003",
	"I",
	"N",
	"SIM",
	"T20",
	"UP",
]
ignore = [
	"D100",
	"D101",
	"D102",
	"D103",
	"D104",
	"D105",
	"D106",
	"D107",
]

[tool.mypy]
strict_optional = false
disable_error_code = ["func-returns-value", "import-untyped"]
explicit_package_bases = true
warn_unused_ignores = true
check_untyped_defs = true
mypy_path = ["tagstudio"]

[[tool.mypy.overrides]]
module = "tests.*"
ignore_errors = true

[[tool.mypy.overrides]]
module = "src.qt.main_window"
ignore_errors = true

[[tool.mypy.overrides]]
module = "src.qt.ui.home_ui"
ignore_errors = true

[[tool.mypy.overrides]]
module = "src.core.ts_core"
ignore_errors = true

[tool.pytest.ini_options]
#addopts = "-m 'not qt'"
qt_api = "pyside6"
