Remoção pendente no Python 3.17¶
-
collections.abc.ByteStringestá programado para remoção no Python 3.17.Use
isinstance(obj, collections.abc.Buffer)para testar seobjimplementa o protocolo de buffer em tempo de execução. Para uso em anotações de tipo, useBufferou uma união que especifique explicitamente os tipos suportados pelo seu código (por exemplo,bytes | bytearray | memoryview).ByteStringfoi originalmente concebido para ser uma classe abstrata que serviria como um supertipo debytesebytearray. No entanto, como o ABC nunca teve métodos, saber que um objeto era uma instância deByteStringnunca lhe dizia nada de útil sobre o objeto. Outros tipos comuns de buffer, comomemoryview, também nunca foram entendidos como subtipos deByteString(seja em tempo de execução ou por verificadores de tipo estático).Veja PEP 688 para mais detalhes. (Contribuição de Shantanu Jain em gh-91896.)
-
Antes do Python 3.14, as uniões antigas eram implementadas usando a classe privada
typing._UnionGenericAlias. Essa classe não é mais necessária para a implementação, mas foi mantida para retrocompatibilidade, com remoção prevista para o Python 3.17. Os usuários devem usar auxiliares de introspecção documentados, comotyping.get_origin()etyping.get_args(), em vez de depender de detalhes de implementação privada.typing.ByteString, descontinuada desde o Python 3.9, está programada para ser removida no Python 3.17.Use
isinstance(obj, collections.abc.Buffer)para testar seobjimplementa o protocolo de buffer em tempo de execução. Para uso em anotações de tipo, useBufferou uma união que especifique explicitamente os tipos suportados pelo seu código (por exemplo,bytes | bytearray | memoryview).ByteStringfoi originalmente concebido para ser uma classe abstrata que serviria como um supertipo debytesebytearray. No entanto, como o ABC nunca teve métodos, saber que um objeto era uma instância deByteStringnunca lhe dizia nada de útil sobre o objeto. Outros tipos comuns de buffer, comomemoryview, também nunca foram entendidos como subtipos deByteString(seja em tempo de execução ou por verificadores de tipo estático).Veja PEP 688 para mais detalhes. (Contribuição de Shantanu Jain em gh-91896.)