diff --git a/src/pydocstyle/checker.py b/src/pydocstyle/checker.py index 0b45644..6cec57a 100644 --- a/src/pydocstyle/checker.py +++ b/src/pydocstyle/checker.py @@ -200,21 +200,21 @@ def check_docstring_missing(self, definition, docstring): """ if not docstring and definition.is_public: + + def method_violations(): + if not definition.is_overload: + if definition.is_magic: + return violations.D105() + if definition.is_init: + return violations.D107() + return violations.D102() + return None + codes = { Module: violations.D100, Class: violations.D101, NestedClass: violations.D106, - Method: lambda: violations.D105() - if definition.is_magic - else ( - violations.D107() - if definition.is_init - else ( - violations.D102() - if not definition.is_overload - else None - ) - ), + Method: method_violations, NestedFunction: violations.D103, Function: ( lambda: violations.D103() diff --git a/src/pydocstyle/parser.py b/src/pydocstyle/parser.py index 7165767..a3e1a2b 100644 --- a/src/pydocstyle/parser.py +++ b/src/pydocstyle/parser.py @@ -214,7 +214,8 @@ def is_public(self): def is_overload(self): """Return True iff the method decorated with overload.""" return any( - decorator.name == "overload" for decorator in self.decorators + decorator.name in ["overload", "typing.overload"] + for decorator in self.decorators ) def is_property(self, property_decorator_names):