Descontinuações

Remoção pendente no Python 3.14

Remoção pendente no Python 3.15

  • O sistema de importação:

    • A definição de __cached__ em um módulo enquanto falha na definição de __spec__.loader está descontinuado. No Python 3.15, __cached__ deixará de ser definido ou levado em consideração pelo sistema de importação ou pela biblioteca padrão. (gh-97879)

    • A definição de __package__ em um módulo enquanto falha na definição de __spec__.parent está descontinuado. No Python 3.15, __package__ deixará de ser definido ou levado em consideração pelo sistema de importação ou pela biblioteca padrão. (gh-97879)

  • ctypes:

    • A função não documentada ctypes.SetPointerType() foi descontinuada desde o Python 3.13.

  • http.server:

    • A classe obsoleta e raramente usada CGIHTTPRequestHandler foi descontinuada desde o Python 3.13. Não existe substituição direta. Qualquer coisa é melhor que CGI para fazer a interface de um servidor web com um manipulador de requisição.

    • O sinalizador --cgi para a interface de linha de comando python -m http.server foi descontinuado desde o Python 3.13.

  • locale:

  • pathlib:

  • platform:

    • java_ver() foi descontinuada desde o Python 3.13. Esta função é útil apenas para suporte Jython, tem uma API confusa e é amplamente não testada.

  • threading:

    • RLock() não aceitará argumentos no Python 3.15. A passagem quaisquer argumentos foi descontinuada desde o Python 3.14, pois a versão Python não permite nenhum argumento, mas a versão C permite qualquer número de argumentos posicionais ou nomeados, ignorando todos os argumentos.

  • types:

  • typing:

    • A sintaxe de argumento nomeado não documentada para criar classes NamedTuple (por exemplo, Point = NamedTuple("Point", x=int, y=int)) foi descontinuada desde o Python 3.13. Use a sintaxe baseada em classe ou a sintaxe funcional em vez disso.

    • A função decoradora typing.no_type_check_decorator() foi descontinuada desde o Python 3.13. Após oito anos no módulo typing, ela ainda não foi suportada por nenhum verificador de tipo importante.

  • wave:

Remoção pendente no Python 3.16

  • O sistema de importação:

    • A definição de __loader__ em um módulo enquanto falha na definição de __spec__.loader está descontinuado. No Python 3.16, __loader__ deixará de ser definido ou levado em consideração pelo sistema de importação ou pela biblioteca padrão.

  • array:

    • O código de formato 'u' (wchar_t) foi descontinuado na documentação desde o Python 3.3 e em tempo de execução desde o Python 3.13. Use o código de formato 'w' (Py_UCS4) para caracteres Unicode.

  • asyncio:

  • builtins:

    • A inversão bit a bit em tipos booleanos, ~True ou ~False foi descontinuada desde o Python 3.12, pois produz resultados surpreendentes e não intuitivos (-2 e -1). Use not x em vez disso para a negação lógica de um Booleano. No caso raro de você precisar da inversão bit a bit do inteiro subjacente, converta para int explicitamente (~int(x)).

  • shutil:

    • A exceção ExecError foi descontinuada desde o Python 3.14. Ela não foi usada por nenhuma função em shutil desde o Python 3.4, e agora é um alias de RuntimeError.

  • symtable:

  • sys:

  • tarfile:

    • O atributo não documentado e não utilizado TarFile.tarfile foi descontinuado desde o Python 3.13.

Remoção pendente em versões futuras

As APIs a seguir serão removidas no futuro, embora atualmente não haja uma data agendada para sua remoção.

  • argparse: o aninhamento de grupos de argumentos e o aninhamento de grupos mutuamente exclusivos estão descontinuados.

  • código de formatação 'u' do array (gh-57281)

  • builtins:

    • bool(NotImplemented).

    • Geradores: a assinatura throw(type, exc, tb) e athrow(type, exc, tb) está descontinuada: use throw(exc) e athrow(exc), a assinatura do argumento único.

    • Atualmente Python aceita literais numéricos imediatamente seguidos por palavras reservadas como, por exemplo, 0in x, 1or x, 0if 1else 2. Ele permite expressões confusas e ambíguas como [0x1for x in y] (que pode ser interpretada como [0x1 for x in y] ou [0x1f or x in y]). Um aviso de sintaxe é levantado se o literal numérico for imediatamente seguido por uma das palavras reservadas and, else, for, if, in , is e or. Em uma versão futura, será alterado para um erro de sintaxe. (gh-87999)

    • Suporte para métodos __index__() e __int__() retornando tipo não-int: esses métodos serão necessários para retornar uma instância de uma subclasse estrita de int.

    • Suporte para o método __float__() retornando uma subclasse estrita de float: esses métodos serão necessários para retornar uma instância de float.

    • Suporte para o método __complex__() retornando uma subclasse estrita de complex: esses métodos serão necessários para retornar uma instância de complex.

    • Delegação do método int() para o __trunc__().

    • Passar um número complexo como argumento real ou imag no construtor complex() agora está descontinuado; deve ser passado apenas como um único argumento posicional. (Contribuição de Serhiy Storchaka em gh-109218.)

  • calendar: as constantes calendar.January e calendar.February foram descontinuadas e substituídas por calendar.JANUARY e calendar.FEBRUARY. (Contribuição de Prince Roshan em gh-103636.)

  • codeobject.co_lnotab: use o método codeobject.co_lines().

  • datetime:

    • utcnow(): use datetime.datetime.now(tz=datetime.UTC).

    • utcfromtimestamp(): use datetime.datetime.fromtimestamp(timestamp, tz=datetime.UTC).

  • gettext: o valor de plural deve ser um número inteiro.

  • importlib:

    • Método load_module(): use exec_module() em vez disso.

    • O parâmetro debug_override de cache_from_source() foi descontinuado: em vez disso, use o parâmetro optimization.

  • importlib.metadata:

    • Interface de tupla EntryPoints.

    • None implícito nos valores de retorno.

  • logging: o método warn() foi descontinuado desde o Python 3.3, use warning().

  • mailbox: o uso da entrada StringIO e do modo de texto foi descontinuado; em vez disso, use BytesIO e o modo binário.

  • os: chame os.register_at_fork() em processo multithread.

  • pydoc.ErrorDuringImport: um valor de tupla para o parâmetro exc_info foi descontinuado, use uma instância de exceção.

  • re: regras mais rigorosas agora são aplicadas para referências numéricas de grupos e nomes de grupos em expressões regulares. Apenas a sequência de dígitos ASCII agora é aceita como referência numérica. O nome do grupo em padrões de bytes e strings de substituição agora pode conter apenas letras e dígitos ASCII e sublinhado. (Contribuição de Serhiy Storchaka em gh-91760.)

  • Módulos sre_compile, sre_constants e sre_parse.

  • shutil: o parâmetro onerror de rmtree() foi descontinuado no Python 3.12; use o parâmetro onexc.

  • Protocolos e opções de ssl

    • ssl.SSLContext sem argumento de protocolo foi descontinuado.

    • ssl.SSLContext: set_npn_protocols() e selected_npn_protocol() foram descontinuados: use ALPN.

    • Opções de ssl.OP_NO_SSL*

    • Opções de ssl.OP_NO_TLS*

    • ssl.PROTOCOL_SSLv3

    • ssl.PROTOCOL_TLS

    • ssl.PROTOCOL_TLSv1

    • ssl.PROTOCOL_TLSv1_1

    • ssl.PROTOCOL_TLSv1_2

    • ssl.TLSVersion.SSLv3

    • ssl.TLSVersion.TLSv1

    • ssl.TLSVersion.TLSv1_1

  • O parâmetro check_home de sysconfig.is_python_build() foi descontinuado e é ignorado.

  • Métodos de threading:

  • typing.Text (gh-92332).

  • unittest.IsolatedAsyncioTestCase: foi descontinuado retornar um valor que não seja None de um caso de teste.

  • Funções descontinuadas de urllib.parse: use urlparse()

    • splitattr()

    • splithost()

    • splitnport()

    • splitpasswd()

    • splitport()

    • splitquery()

    • splittag()

    • splittype()

    • splituser()

    • splitvalue()

    • to_bytes()

  • urllib.request: o estilo de URLopener e FancyURLopener de invocar solicitações foi descontinuado. Use as mais novas funções e métodos urlopen().

  • wsgiref: SimpleHandler.stdout.write() não deve fazer gravações parciais.

  • xml.etree.ElementTree: testar o valor verdade de um Element está descontinuado. Em um lançamento futuro isso sempre retornará True. Em vez disso, prefira os testes explícitos len(elem) ou elem is not None.

  • zipimport.zipimporter.load_module() foi descontinuado: use exec_module().

Descontinuações na API C

Remoção pendente no Python 3.14

Remoção pendente no Python 3.15

Remoção pendente em versões futuras

As APIs a seguir foram descontinuadas e serão removidas, embora atualmente não haja uma data agendada para sua remoção.