# Remoção pendente no Python 3.15

- `http.server.CGIHTTPRequestHandler` será removido junto com seu sinalizador relacionado `--cgi` para `python -m http.server`. Estava descontinuado e raramente usado. Não existe substituição direta. Qualquer coisa é melhor que CGI para fazer a interface de um servidor web com um manipulador de solicitações.

- `importlib`:

  - Método `load_module()`: use `exec_module()`.

- `locale`: `locale.getdefaultlocale()` foi descontinuada no Python 3.11 e originalmente planejada para remoção no Python 3.13 (gh-90817), mas a remoção foi adiada para o Python 3.15. Use `locale.setlocale()`, `locale.getencoding()` e `locale.getlocale()` em vez disso. (Contribuição de Hugo van Kemenade em gh-111187.)

- `pathlib`: `pathlib.PurePath.is_reserved()` está descontinuado e programado para remoção no Python 3.15. Do Python 3.13 em diante, use `os.path.isreserved` para detectar caminhos reservados no Windows.

- `platform`: `java_ver()` está descontinuada e será removida na versão 3.15. Ela não foi testada em grande parte, tinha uma API confusa e só era útil para suporte a Jython. (Contribuição de Nikita Sobolev em gh-116349.)

- `sysconfig`:

  - O argumento check_home de `sysconfig.is_python_build()` foi descontinuado desde o Python 3.12.

- `threading`: Passar qualquer argumento para `threading.RLock()` agora está descontinuado. A versão C permite qualquer número de args e kwargs, mas eles são simplesmente ignorados. A versão Python não permite nenhum argumento. Todos os argumentos serão removidos de `threading.RLock()` no Python 3.15. (Contribuição de Nikita Sobolev em gh-102029.)

- `typing.NamedTuple`:

  - A sintaxe de argumento nomeado não documentada para criar classes `NamedTuple` (`NT = NamedTuple("NT", x=int)`) está descontinuada e não será permitida em 3.15. Use a sintaxe baseada em classe ou a sintaxe funcional.

- `types`:

  - `types.CodeType`: o acesso a `co_lnotab` foi descontinuado na PEP 626 desde 3.10 e foi planejado para ser removido em 3.12, mas só recebeu uma `DeprecationWarning` adequada em 3.12. Pode ser removido em 3.15. (Contribuição de Nikita Sobolev em gh-101866.)

- `typing`:

  - Ao usar a sintaxe funcional para criar uma classe `NamedTuple`, falhar ao passar um valor para o parâmetro fields (`NT = NamedTuple("NT")`) está descontinuada. Passar `None` para o parâmetro fields (`NT = NamedTuple("NT", None)`) também está descontinuada. Ambos não serão permitidos no Python 3.15. Para criar uma classe `NamedTuple` com 0 campos, use `class NT(NamedTuple): pass` ou `NT = NamedTuple("NT", [])`.

- `typing.TypedDict`: Ao usar a sintaxe funcional para criar uma classe `TypedDict`, falhar ao passar um valor para o parâmetro fields (`TD = TypedDict("TD")`) está descontinuada. Passar `None` para o parâmetro fields (`TD = TypedDict("TD", None)`) também está descontinuada. Ambos não serão permitidos no Python 3.15. Para criar uma classe `TypedDict` com 0 campos, use `class TD(TypedDict): pass` ou `TD = TypedDict("TD", {})`.

- `wave`: Descontinua os métodos `getmark()`, `setmark()` e `getmarkers()` das classes `wave.Wave_read` e `wave.Wave_write`. Eles serão removidos no Python 3.15. (Contribuição de Victor Stinner em gh-105096.)