Remoção pendente no Python 3.17¶
-
collections.abc.ByteString
está agendado para remoção no Python 3.17.Use
isinstance(obj, collections.abc.Buffer)
para testar seobj
implementa o protocolo de buffer em tempo de execução. Para uso em anotações de tipo, useBuffer
ou uma união que especifique explicitamente os tipos suportados pelo seu código (por exemplo,bytes | bytearray | memoryview
).ByteString
foi originalmente concebido para ser uma classe abstrata que serviria como um supertipo debytes
ebytearray
. No entanto, como o ABC nunca teve métodos, saber que um objeto era uma instância deByteString
nunca 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áticos).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 compatibilidade com versões anteriores, 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
, obsoleto desde o Python 3.9, está programado para ser removido no Python 3.17.Use
isinstance(obj, collections.abc.Buffer)
para testar seobj
implementa o protocolo de buffer em tempo de execução. Para uso em anotações de tipo, useBuffer
ou uma união que especifique explicitamente os tipos suportados pelo seu código (por exemplo,bytes | bytearray | memoryview
).ByteString
foi originalmente concebido para ser uma classe abstrata que serviria como um supertipo debytes
ebytearray
. No entanto, como o ABC nunca teve métodos, saber que um objeto era uma instância deByteString
nunca 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áticos).Veja PEP 688 para mais detalhes. (Contribuição de Shantanu Jain em gh-91896.)