抽象クラスの無効な定義と使用箇所を報告します。

例:


from abc import abstractmethod, ABC


class Figure(ABC):

    @abstractmethod
    def do_figure(self):
        pass


class Triangle(Figure):  # 'Triangle' クラスですべての抽象メソッドが定義されていません
    def do_triangle(self):
        pass


Triangle()  # 抽象クラス 'Triangle' をインスタンス化できません

クイックフィックスが適用されると、IDE は Triangle クラスの抽象メソッドを実装します。


from abc import abstractmethod, ABC


class Figure(ABC):

    @abstractmethod
    def do_figure(self):
        pass


class Triangle(Figure):
    def do_figure(self):
        pass

    def do_triangle(self):
        pass


Triangle()
また、abc.abstractmethod がメタクラスとして abc.ABCMeta を使用していないクラスで使用されている場合に警告します:
from abc import abstractmethod


class MyClass:
    @abstractmethod  # 'MyClass' は抽象クラスではありません
    def foo(self):
        ...