[flake8]
per-file-ignores=
exclude=
ignore = B
select = WPS204,WPS236, NEW

# --- WPS: Complexity Violations by "wemake-python-styleguide" ---
# see https://wemake-python-styleguide.readthedocs.io/en/latest/pages/usage/violations/complexity.html#complexity

# EXCLUDED WPS201: TooManyImportsViolation, default is 12, make no sense for heavy type-annotation usage, many types need to be imported
# EXCLUDED WPS203: TooManyImportedNamesViolation, excluded because its not super necessary!
# WPS204: OverusedExpressionViolation
# EXCLUDED WPS210: TooManyLocalsViolation, has default of 5 which is too low, it encourages complex lines and is bad for readability!
#max-local-variables=7
# EXCLUDED WPS211: TooManyArgumentsViolation -> this one is already covered by "PLR0913"
# EXCLUDED WPS212: TooManyReturnsViolation -> this one is already covered by "PLR0911"
### WPS213: TooManyExpressionsViolation -> this one is already covered by "PLR0915"
#  EXCLUDED WPS221: LineComplexityViolation, "wemake-default" is 14 -> this is not properly working for annotations!
##max-line-complexity=14
#  EXCLUDED WPS226: OverusedStringViolation -> sure that this isn't already in ruff? -> eigenverantwortung here?
# WPS236: TooLongTupleUnpackViolation: "If you have more than 2 values in a tuple, consider using typing.NamedTuple or a dataclass instead." rather than unpacking third-party returns you should directly "pipe" into a dataclass
max-tuple-unpack-length=4
# NEW https://github.com/mobility-university/flake8-newspaper-style
# TMN002: TODO(tilo): maybe incorporate some of this packages logic into the linter?: essentially prohibiting tuples, see: https://gitlab.cc-asp.fraunhofer.de/iais.nm.audio/sandbox/nmaudio-flake8-too-many
# max-function-return-values=3


# H601: cohesion; see:  https://github.com/sasanjac/flake8-cohesion, default is 50!! seems to have some multiprocessing issues! cannot run in cicd!
## cohesion makes not really sense for small classes, that only have one attribute
# cohesion-below = 60.0
# cohesion-strict = true

