Desusos

Pending removal in Python 3.15

  • The import system:

    • Setting __cached__ on a module while failing to set __spec__.cached is deprecated. In Python 3.15, __cached__ will cease to be set or take into consideration by the import system or standard library. (gh-97879)

    • Setting __package__ on a module while failing to set __spec__.parent is deprecated. In Python 3.15, __package__ will cease to be set or take into consideration by the import system or standard library. (gh-97879)

  • ctypes:

    • La función ctypes.SetPointerType() no documentada ha quedado obsoleta desde Python 3.13.

  • http.server:

    • El obsoleto y poco utilizado CGIHTTPRequestHandler ha quedado obsoleto desde Python 3.13. No existe un reemplazo directo. Anything es mejor que CGI para interconectar un servidor web con un controlador de solicitudes.

    • La bandera --cgi de la interfaz de línea de comandos python -m http.server ha quedado obsoleta desde Python 3.13.

  • locale:

  • pathlib:

  • platform:

    • java_ver() ha quedado obsoleto desde Python 3.13. Esta función solo es útil para la compatibilidad con Jython, tiene una API confusa y, en gran medida, no se ha probado.

  • sysconfig:

  • threading:

    • RLock() no acepta argumentos en Python 3.15. El paso de cualquier argumento ha quedado obsoleto desde Python 3.14, ya que la versión de Python no permite ningún argumento, pero la versión de C permite cualquier cantidad de argumentos posicionales o de palabras clave, ignorando todos los argumentos.

  • types:

  • typing:

    • The undocumented keyword argument syntax for creating NamedTuple classes (for example, Point = NamedTuple("Point", x=int, y=int)) has been deprecated since Python 3.13. Use the class-based syntax or the functional syntax instead.

    • La función decoradora typing.no_type_check_decorator() ha quedado obsoleta desde Python 3.13. Después de ocho años en el módulo typing, todavía no ha sido compatible con ningún verificador de tipos importante.

  • wave:

Pending removal in Python 3.16

Pending removal in future versions

Las siguientes API se eliminarán en el futuro, aunque actualmente no hay una fecha programada para su eliminación.

  • argparse:

    • Nesting argument groups and nesting mutually exclusive groups are deprecated.

    • Passing the undocumented keyword argument prefix_chars to add_argument_group() is now deprecated.

    • The argparse.FileType type converter is deprecated.

  • Código de formato array de 'u' (gh-57281)

  • builtins:

    • bool(NotImplemented).

    • Generadores: las firmas throw(type, exc, tb) y athrow(type, exc, tb) están obsoletas: utilice throw(exc) y athrow(exc) en su lugar, la firma de argumento único.

    • Actualmente, Python acepta literales numéricos seguidos inmediatamente de palabras clave, por ejemplo, 0in x, 1or x, 0if 1else 2. Permite expresiones confusas y ambiguas como [0x1for x in y] (que se puede interpretar como [0x1 for x in y] o [0x1f or x in y]). Se genera una advertencia de sintaxis si el literal numérico va seguido inmediatamente de una de las palabras clave and, else, for, if, in, is y or. En una versión futura, se cambiará a un error de sintaxis. (gh-87999)

    • Compatibilidad con los métodos __index__() y __int__() que devuelven un tipo que no es int: estos métodos serán necesarios para devolver una instancia de una subclase estricta de int.

    • Compatibilidad con el método __float__() que devuelve una subclase estricta de float: estos métodos serán necesarios para devolver una instancia de float.

    • Compatibilidad con el método __complex__() que devuelve una subclase estricta de complex: estos métodos serán necesarios para devolver una instancia de complex.

    • Delegación del método int() al __trunc__().

    • Ahora está obsoleto el paso de un número complejo como argumento real o imag en el constructor complex(); solo debe pasarse como un único argumento posicional. (Contribuido por Serhiy Storchaka en gh-109218.)

  • calendar: Las constantes calendar.January y calendar.February han quedado obsoletas y han sido reemplazadas por calendar.JANUARY y calendar.FEBRUARY. (Contribuido por Prince Roshan en gh-103636.)

  • codeobject.co_lnotab: utilice el método codeobject.co_lines() en su lugar.

  • datetime:

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

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

  • gettext: El valor plural debe ser un número entero.

  • importlib:

    • Método load_module(): utilice exec_module() en su lugar.

    • cache_from_source() El parámetro debug_override está obsoleto: utilice el parámetro optimization en su lugar.

  • importlib.metadata:

    • Interfaz de tupla EntryPoints.

    • None implícito en los valores de retorno.

  • logging: el método warn() ha quedado obsoleto desde Python 3.3, utilice warning() en su lugar.

  • mailbox: El uso del modo de entrada y texto StringIO está obsoleto; en su lugar, utilice BytesIO y el modo binario.

  • os: Llamada a os.register_at_fork() en un proceso multiproceso.

  • pydoc.ErrorDuringImport: Un valor de tupla para el parámetro exc_info está obsoleto, utilice una instancia de excepción.

  • re: Ahora se aplican reglas más estrictas para las referencias numéricas de grupos y los nombres de grupos en expresiones regulares. Ahora solo se aceptan secuencias de dígitos ASCII como referencia numérica. El nombre de grupo en patrones de bytes y cadenas de reemplazo ahora solo puede contener letras y dígitos ASCII y guiones bajos. (Contribuido por Serhiy Storchaka en gh-91760.)

  • Módulos sre_compile, sre_constants y sre_parse.

  • shutil: El parámetro onerror de rmtree() está obsoleto en Python 3.12; utilice el parámetro onexc en su lugar.

  • Opciones y protocolos ssl:

    • ssl.SSLContext sin argumento de protocolo está obsoleto.

    • ssl.SSLContext: set_npn_protocols() y selected_npn_protocol() están obsoletos: utilice ALPN en su lugar.

    • Opciones de ssl.OP_NO_SSL*

    • Opciones 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

  • sysconfig.is_python_build() El parámetro check_home está obsoleto y se ignora.

  • Métodos threading:

  • typing.Text (gh-92332).

  • unittest.IsolatedAsyncioTestCase: está obsoleto devolver un valor que no sea None de un caso de prueba.

  • Funciones obsoletas de urllib.parse: urlparse() en su lugar

    • splitattr()

    • splithost()

    • splitnport()

    • splitpasswd()

    • splitport()

    • splitquery()

    • splittag()

    • splittype()

    • splituser()

    • splitvalue()

    • to_bytes()

  • wsgiref: SimpleHandler.stdout.write() no debería realizar escrituras parciales.

  • xml.etree.ElementTree: La prueba del valor de verdad de un Element está obsoleta. En una versión futura, siempre devolverá True. En su lugar, es preferible realizar pruebas explícitas len(elem) o elem is not None.

  • zipimport.zipimporter.load_module() está obsoleto: utilice exec_module() en su lugar.

C API deprecations

Pending removal in Python 3.15

Pending removal in future versions

Las siguientes API están obsoletas y se eliminarán, aunque actualmente no hay una fecha programada para su eliminación.