diff --git a/.github/workflows/validation.yml b/.github/workflows/validation.yml index 6b06b7f..1621485 100644 --- a/.github/workflows/validation.yml +++ b/.github/workflows/validation.yml @@ -46,4 +46,4 @@ jobs: run: slotscheck -m mcproto - name: Run basedpyright type checker - run: basedpyright --warnings . + run: basedpyright . diff --git a/.pre-commit-config.yml b/.pre-commit-config.yml index cd00636..9b6641b 100644 --- a/.pre-commit-config.yml +++ b/.pre-commit-config.yml @@ -36,9 +36,9 @@ repos: - repo: local hooks: - id: basedpyright - name: Based Pyright - description: Run basedpyright type checker - entry: poetry run basedpyright --warnings + name: BasedPyright + description: Run BasedPyright type checker + entry: poetry run basedpyright language: system types: [python] pass_filenames: false # pyright runs for the entire project, it can't run for single files diff --git a/pyproject.toml b/pyproject.toml index 909e5bd..e574b08 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -69,6 +69,8 @@ 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 @@ -129,36 +131,25 @@ max-statements = 250 [tool.ruff.format] line-ending = "lf" -[tool.basedpyright] -pythonPlatform = "All" +[tool.pyright] pythonVersion = "3.11" -typeCheckingMode = "all" +typeCheckingMode = "standard" -# 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 +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" [tool.pytest.ini_options] minversion = "6.0" @@ -213,7 +204,7 @@ cmd = "pytest -v --failed-first" help = "Run pytest tests" [tool.poe.tasks.pyright] -cmd = "basedpyright --warnings ." +cmd = "basedpyright ." help = "Run BasedPyright type-checker" [tool.poe.tasks.retest]