Add the truthy-iterable error code to the mypy configuration. This detects Iterable parameters that are used in boolean contexts (if not names, etc.) since Iterable values are always truthy. The fix is to change Iterable[str] parameters to Collection[str] when they are tested for emptiness, since Collection guarantees __len__. Assisted-by: unsloth/Qwen3.6-35B-A3B-GGUF:IQ4_NL and pi.dev 0.81.1 Signed-off-by: Jan Lindemann <jan@janware.com>
100 lines
1.7 KiB
TOML
100 lines
1.7 KiB
TOML
[tool.mypy]
|
|
|
|
{mypypath}
|
|
|
|
warn_redundant_casts = true
|
|
|
|
strict_equality = true
|
|
|
|
disallow_any_generics = true
|
|
|
|
warn_unused_ignores = true
|
|
|
|
enable_error_code = [
|
|
"explicit-override",
|
|
"ignore-without-code",
|
|
"possibly-undefined",
|
|
"truthy-bool",
|
|
"truthy-iterable",
|
|
]
|
|
|
|
[tool.isort]
|
|
|
|
lines_between_sections = 1
|
|
lines_between_types = 1
|
|
|
|
# Make sure external deps are classified above
|
|
known_third_party = [
|
|
"yaml",
|
|
]
|
|
|
|
# Define semantic/dependency layers.
|
|
sections = [
|
|
"FUTURE",
|
|
"STDLIB",
|
|
"THIRDPARTY",
|
|
"JW_BASIC",
|
|
"FIRSTPARTY",
|
|
"LOCALFOLDER",
|
|
]
|
|
|
|
known_jw_basic = [
|
|
"jw.pkg",
|
|
]
|
|
|
|
# Catch other jw.* imports not assigned to a finer section.
|
|
known_first_party = [
|
|
"jw",
|
|
]
|
|
|
|
|
|
[tool.ruff]
|
|
line-length = 88
|
|
output-format = "concise"
|
|
|
|
[tool.ruff.format]
|
|
|
|
quote-style = "single"
|
|
|
|
[tool.ruff.lint]
|
|
|
|
future-annotations = true
|
|
|
|
select = [
|
|
"F", # Pyflakes, includes F401
|
|
"E", # pycodestyle errors
|
|
"W", # pycodestyle warnings
|
|
"TC", # type-checking import placement rules
|
|
"FA", # future annotations rules
|
|
]
|
|
|
|
ignore = [
|
|
"E251",
|
|
]
|
|
|
|
unfixable = [
|
|
"E251",
|
|
]
|
|
|
|
[tool.yapf]
|
|
|
|
based_on_style = "pep8"
|
|
column_limit = 88
|
|
indent_width = 4
|
|
continuation_indent_width = 4
|
|
|
|
continuation_align_style = "space"
|
|
|
|
dedent_closing_brackets = true
|
|
coalesce_brackets = false
|
|
|
|
split_all_comma_separated_values = false
|
|
split_all_top_level_comma_separated_values = true
|
|
|
|
split_before_first_argument = true
|
|
split_arguments_when_comma_terminated = true
|
|
split_before_expression_after_opening_paren = true
|
|
|
|
spaces_around_default_or_named_assign = true
|
|
blank_line_before_nested_class_or_def = true
|
|
blank_lines_around_top_level_definition = 1
|