diff --git a/pyproject.toml b/pyproject.toml index ac67753..909e5bd 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -69,8 +69,6 @@ ignore = [ "D416", # Section name should end with a colon "D417", # Missing argument descrition in the docstring - "ANN002", # Missing type annotation for *args - "ANN003", # Missing type annotation for **kwargs "ANN101", # Missing type annotation for self in method "ANN102", # Missing type annotation for cls in classmethod "ANN204", # Missing return type annotation for special method @@ -131,25 +129,36 @@ max-statements = 250 [tool.ruff.format] line-ending = "lf" -[tool.pyright] +[tool.basedpyright] +pythonPlatform = "All" pythonVersion = "3.11" -typeCheckingMode = "standard" +typeCheckingMode = "all" -reportUntypedFunctionDecorator = "error" -reportUntypedClassDecorator = "error" -reportUntypedNamedTuple = "error" -reportTypeCommentUsage = "error" -reportConstantRedefinition = "error" -reportDeprecated = "warning" -reportIncompatibleMethodOverride = "error" -reportOverlappingOverload = "error" -reportUnnecessaryIsInstance = "error" -reportUnnecessaryCast = "error" -reportUnnecessaryComparison = "error" -reportUnnecessaryContains = "error" -reportUnnecessaryTypeIgnoreComment = "error" -reportImplicitOverride = "error" -reportShadowedImports = "error" +# Diagnostic behavior settings +strictListInference = false +strictDictionaryInference = false +strictSetInference = false +analyzeUnannotatedFunctions = true +strictParameterNoneValue = true +enableTypeIgnoreComments = true +deprecateTypingAliases = true +enableExperimentalFeatures = false +disableBytesTypePromotions = true + +# Diagnostic rules +reportAny = false +reportImplicitStringConcatenation = false +reportUnreachable = "information" +reportMissingTypeStubs = "information" +reportUninitializedInstanceVariable = false # until https://github.com/DetachHead/basedpyright/issues/491 +reportMissingParameterType = false # ruff's flake8-annotations (ANN) already covers this + gives us more control + +# Unknown type reporting rules (too strict for most code-bases) +reportUnknownArgumentType = false +reportUnknownVariableType = false +reportUnknownMemberType = false +reportUnknownParameterType = false +reportUnknownLambdaType = false [tool.pytest.ini_options] minversion = "6.0"