JelleZijlstra · GitHub

Bug report

Bug description:

I would expect this to raise, but it passes on all versions:

from typing import runtime_checkable, Protocol
@runtime_checkable
class Foo(Protocol):
    x: int
class Bar(Foo, Protocol):
    y: str
isinstance(object(), Bar)

Some previous discussion in #132596 (comment) . We may not want to change this behavior for compatibility reasons, but I think it's a bug so I'm at least opening the issue.

CPython versions tested on:

CPython main branch, 3.13

Operating systems tested on:

macOS

Linked PRs

Read the original on github.com ↗