Skip to content

unused-private-protocol (PYI046)

Derived from the flake8-pyi linter.

What it does

Checks for the presence of unused private typing.Protocol definitions.

Why is this bad?

A private typing.Protocol that is defined but not used is likely a mistake. It should either be used, made public, or removed to avoid confusion.

Example

import typing

class _PrivateProtocol(typing.Protocol):
    foo: int

Use instead:

import typing

class _PrivateProtocol(typing.Protocol):
    foo: int

def func(arg: _PrivateProtocol) -> None: ...