Skip to content

RET501 should exempt overriding class methods #12198

@epenet

Description

@epenet

If a parent class defines a return type hint for a method, then it makes sense to keep the return None explicit.
This is similar to #3704/#3705, but it involves looking also at the parent classes.

class BaseClass:
    def get_value(self) -> str | None:
        return "a value"

class Class(BaseClass):
    def get_value(self) -> None:
        return None
        # RET501 [*] Do not explicitly `return None` in function if it is the only possible return value

Based on home-assistant/core#115031

Metadata

Metadata

Assignees

No one assigned

    Labels

    acceptedReady for implementationruleImplementing or modifying a lint ruletype-inferenceRequires more advanced type inference.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions