protocols_explicit_3 error

super() call on abstract protocol method with no default implementation

When a class explicitly implements a Protocol and one of its methods calls super().method_name(), the parent protocol method must provide a default implementation. If the parent method is abstract (its body is only ... or pass), calling super() on it is an error because there is no concrete implementation to dispatch to.

from typing import Protocol
from abc import abstractmethod

class PColor(Protocol):
    @abstractmethod
    def draw(self) -> str:
        ...

class BadColor(PColor):
    def draw(self) -> str:
        return super().draw()  # E — no default implementation

How to handle it

Every rule is on by default — strict is the default, not a cage. You can dial protocols_explicit_3 down per-file or per-path from your editor or pyproject.toml, or fix the code so it type-checks. See the Type System rules and the complete diagnostic reference.

Canonical URL: https://www.basilisk-python.dev/errors/protocols_explicit_3