__instancecheck__ - a substituição não mostra efeito - o que estou fazendo de errado?

Estou tentando fazer com que minha classe apareça como um objeto diferente para burlar a verificação de tipo lento no pacote que estou usando. Mais especificamente, estou tentando fazer meu objeto aparecer como uma instância de outro objeto (tuple no meu caso) quando, na realidade, nem sequer é uma derivação disso.

Para conseguir isso, pretendo substituir o__isinstance__ método que, de acordo com odocs, deve fazer exatamente o que eu desejo. No entanto, parece que eu não entendi exatamente como fazer isso, porque minhas tentativas foram malsucedidas.

Aqui está um SSCCE quedevemos façoisinstance RetornaFalse em todos os casos, mas não.

class FalseInstance(type):
    def __instancecheck__(self, instance):
        return False

class Foo(metaclass=FalseInstance):
    pass

g = Foo()
isinstance(g, Foo)
> True

O que estou fazendo errado?

questionAnswers(2)

yourAnswerToTheQuestion