From d234a2af7e246d6095fa249e3dd51134143b2fb1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cristi=C3=A1n=20Maureira-Fredes?= Date: Fri, 27 Feb 2026 15:47:32 +0100 Subject: [PATCH] Bump whatsnew/3.9 to 3.14 Close #3448 --- whatsnew/3.9.po | 1673 +++++++++++++++++++++++++---------------------- 1 file changed, 888 insertions(+), 785 deletions(-) diff --git a/whatsnew/3.9.po b/whatsnew/3.9.po index ac719c8a0f..1f84ee1373 100644 --- a/whatsnew/3.9.po +++ b/whatsnew/3.9.po @@ -11,12 +11,12 @@ msgstr "" "POT-Creation-Date: 2026-02-26 18:44-0300\n" "PO-Revision-Date: 2022-10-29 22:32-0300\n" "Last-Translator: \n" -"Language: es\n" "Language-Team: \n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"Language: es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "Generated-By: Babel 2.18.0\n" #: ../Doc/whatsnew/3.9.rst:3 @@ -32,14 +32,14 @@ msgid "Łukasz Langa" msgstr "Łukasz Langa" #: ../Doc/whatsnew/3.9.rst:45 -#, fuzzy msgid "" "This article explains the new features in Python 3.9, compared to 3.8. " -"Python 3.9 was released on October 5, 2020. For full details, see the :ref:" -"`changelog `." +"Python 3.9 was released on October 5, 2020. For full details, see " +"the :ref:`changelog `." msgstr "" -"Este artículo explica las nuevas funciones de Python 3.9, en comparación con " -"3.8. Python 3.9 se lanzó el 5 de octubre de 2020." +"Este artículo explica las nuevas características de Python 3.9, en " +"comparación con 3.8. Python 3.9 se lanzó el 5 de octubre de 2020. Para " +"obtener detalles completos, consulte :ref:`changelog `." #: ../Doc/whatsnew/3.9.rst:51 msgid ":pep:`596` - Python 3.9 Release Schedule" @@ -117,32 +117,30 @@ msgid "garbage collection does not block on resurrected objects;" msgstr "la recolección de basura no bloquea los objetos resucitados;" #: ../Doc/whatsnew/3.9.rst:84 -#, fuzzy msgid "" -"a number of Python modules (:mod:`!_abc`, :mod:`!audioop`, :mod:`!_bz2`, :" -"mod:`!_codecs`, :mod:`!_contextvars`, :mod:`!_crypt`, :mod:`!_functools`, :" -"mod:`!_json`, :mod:`!_locale`, :mod:`math`, :mod:`operator`, :mod:" -"`resource`, :mod:`time`, :mod:`!_weakref`) now use multiphase initialization " -"as defined by PEP 489;" +"a number of Python modules (:mod:`!_abc`, :mod:`!audioop`, :mod:`!" +"_bz2`, :mod:`!_codecs`, :mod:`!_contextvars`, :mod:`!_crypt`, :mod:`!" +"_functools`, :mod:`!_json`, :mod:`!" +"_locale`, :mod:`math`, :mod:`operator`, :mod:`resource`, :mod:`time`, :mod:`!" +"_weakref`) now use multiphase initialization as defined by PEP 489;" msgstr "" -"varios módulos de Python (:mod:`_abc`, :mod:`audioop`, :mod:`_bz2`, :mod:" -"`_codecs`, :mod:`_contextvars`, :mod:`_crypt`, :mod:`_functools`, :mod:" -"`_json`, :mod:`_locale`, :mod:`math`, :mod:`operator`, :mod:`resource`, :mod:" -"`time`, :mod:`_weakref`) ahora utilizan la inicialización multifase según lo " -"definido por PEP 489;" +"varios módulos de Python (:mod:`!_abc`, :mod:`!audioop`, :mod:`!" +"_bz2`, :mod:`!_codecs`, :mod:`!_contextvars`, :mod:`!_crypt`, :mod:`!" +"_functools`, :mod:`!_json`, :mod:`!" +"_locale`, :mod:`math`, :mod:`operator`, :mod:`resource`, :mod:`time`, :mod:`!" +"_weakref`) ahora usan inicialización multifase según lo definido por PEP 489;" #: ../Doc/whatsnew/3.9.rst:89 -#, fuzzy msgid "" -"a number of standard library modules (:mod:`!audioop`, :mod:`ast`, :mod:" -"`grp`, :mod:`!_hashlib`, :mod:`pwd`, :mod:`!_posixsubprocess`, :mod:" -"`random`, :mod:`select`, :mod:`struct`, :mod:`termios`, :mod:`zlib`) are now " -"using the stable ABI defined by PEP 384." +"a number of standard library modules (:mod:`!" +"audioop`, :mod:`ast`, :mod:`grp`, :mod:`!_hashlib`, :mod:`pwd`, :mod:`!" +"_posixsubprocess`, :mod:`random`, :mod:`select`, :mod:`struct`, :mod:`termios`, :mod:`zlib`) " +"are now using the stable ABI defined by PEP 384." msgstr "" -"varios módulos de biblioteca estándar (:mod:`audioop`, :mod:`ast`, :mod:" -"`grp`, :mod:`_hashlib`, :mod:`pwd`, :mod:`_posixsubprocess`, :mod:`random`, :" -"mod:`select`, :mod:`struct`, :mod:`termios`, :mod:`zlib`) ahora utilizan la " -"ABI estable definida por PEP 384." +"Varios módulos de biblioteca estándar (:mod:`!" +"audioop`, :mod:`ast`, :mod:`grp`, :mod:`!_hashlib`, :mod:`pwd`, :mod:`!" +"_posixsubprocess`, :mod:`random`, :mod:`select`, :mod:`struct`, :mod:`termios`, :mod:`zlib`) " +"ahora utilizan la ABI estable definida por PEP 384." #: ../Doc/whatsnew/3.9.rst:94 msgid "New library modules:" @@ -204,10 +202,10 @@ msgid "" "code." msgstr "" "Pruebe su aplicación con la opción de línea de comandos :option:`-W` " -"``default`` para ver :exc:`DeprecationWarning` y :exc:" -"`PendingDeprecationWarning`, o incluso con :option:`-W` ``error`` para " -"tratarlos como errores. :ref:`Warnings Filter ` se puede " -"utilizar para ignorar las advertencias del código de terceros." +"``default`` para ver :exc:`DeprecationWarning` " +"y :exc:`PendingDeprecationWarning`, o incluso con :option:`-W` ``error`` " +"para tratarlos como errores. :ref:`Warnings Filter ` se " +"puede utilizar para ignorar las advertencias del código de terceros." #: ../Doc/whatsnew/3.9.rst:122 msgid "" @@ -223,15 +221,15 @@ msgstr "" #: ../Doc/whatsnew/3.9.rst:126 msgid "" "Aliases to :ref:`Abstract Base Classes ` " -"in the :mod:`collections` module, like ``collections.Mapping`` alias to :" -"class:`collections.abc.Mapping`, are kept for one last release for backward " -"compatibility. They will be removed from Python 3.10." +"in the :mod:`collections` module, like ``collections.Mapping`` alias " +"to :class:`collections.abc.Mapping`, are kept for one last release for " +"backward compatibility. They will be removed from Python 3.10." msgstr "" "Los alias de :ref:`Abstract Base Classes ` en el módulo :mod:`collections`, como el alias de ``collections." -"Mapping`` de :class:`collections.abc.Mapping`, se mantienen para una última " -"versión por compatibilidad con versiones anteriores. Se eliminarán de Python " -"3.10." +"classes>` en el módulo :mod:`collections`, como el alias de " +"``collections.Mapping`` de :class:`collections.abc.Mapping`, se mantienen " +"para una última versión por compatibilidad con versiones anteriores. Se " +"eliminarán de Python 3.10." #: ../Doc/whatsnew/3.9.rst:131 msgid "" @@ -262,13 +260,13 @@ msgstr "Operadores de combinación y actualización de diccionarios" #: ../Doc/whatsnew/3.9.rst:145 #, python-brace-format msgid "" -"Merge (``|``) and update (``|=``) operators have been added to the built-in :" -"class:`dict` class. Those complement the existing ``dict.update`` and " +"Merge (``|``) and update (``|=``) operators have been added to the built-" +"in :class:`dict` class. Those complement the existing ``dict.update`` and " "``{**d1, **d2}`` methods of merging dictionaries." msgstr "" "Los operadores de fusión (``|``) y actualización (``|=``) se han agregado a " -"la clase :class:`dict` incorporada. Estos complementan los métodos ``dict." -"update`` y ``{**d1, **d2}`` existentes para fusionar diccionarios." +"la clase :class:`dict` incorporada. Estos complementan los métodos " +"``dict.update`` y ``{**d1, **d2}`` existentes para fusionar diccionarios." #: ../Doc/whatsnew/3.9.rst:149 ../Doc/whatsnew/3.9.rst:282 msgid "Example::" @@ -284,11 +282,17 @@ msgid "" ">>> y | x\n" "{'key2': 'value2 from x', 'key3': 'value3 from y', 'key1': 'value1 from x'}" msgstr "" +">>> x = {\"clave1\": \"valor1 de x\", \"clave2\": \"valor2 de x\"}\n" +">>> y = {\"clave2\": \"valor2 de y\", \"clave3\": \"valor3 de y\"}\n" +">>> x | y\n" +"{'clave1': 'valor1 de x', 'clave2': 'valor2 de y', 'clave3': 'valor3 de y'}\n" +">>> y | x\n" +"{'clave2': 'valor2 de x', 'clave3': 'valor3 de y', 'clave1': 'valor1 de x'}" #: ../Doc/whatsnew/3.9.rst:158 msgid "" -"See :pep:`584` for a full description. (Contributed by Brandt Bucher in :" -"issue:`36144`.)" +"See :pep:`584` for a full description. (Contributed by Brandt Bucher " +"in :issue:`36144`.)" msgstr "" "Consulte :pep:`584` para obtener una descripción completa. (Contribuido por " "Brandt Bucher en :issue:`36144`.)" @@ -299,19 +303,19 @@ msgstr "Nuevos métodos de cadena para eliminar prefijos y sufijos" #: ../Doc/whatsnew/3.9.rst:164 msgid "" -":meth:`str.removeprefix(prefix)` and :meth:`str." -"removesuffix(suffix)` have been added to easily remove an " -"unneeded prefix or a suffix from a string. Corresponding ``bytes``, " -"``bytearray``, and ``collections.UserString`` methods have also been added. " -"See :pep:`616` for a full description. (Contributed by Dennis Sweeney in :" -"issue:`39939`.)" +":meth:`str.removeprefix(prefix)` " +"and :meth:`str.removesuffix(suffix)` have been added to " +"easily remove an unneeded prefix or a suffix from a string. Corresponding " +"``bytes``, ``bytearray``, and ``collections.UserString`` methods have also " +"been added. See :pep:`616` for a full description. (Contributed by Dennis " +"Sweeney in :issue:`39939`.)" msgstr "" -"Se han agregado :meth:`str.removeprefix(prefix)` y :meth:" -"`str.removesuffix(suffix)` para eliminar fácilmente un " -"prefijo o sufijo innecesario de una cadena. También se han agregado los " -"métodos correspondientes ``bytes``, ``bytearray`` y ``collections." -"UserString``. Consulte :pep:`616` para obtener una descripción completa. " -"(Contribuido por Dennis Sweeney en :issue:`39939`.)" +"Se han agregado :meth:`str.removeprefix(prefix)` " +"y :meth:`str.removesuffix(suffix)` para eliminar " +"fácilmente un prefijo o sufijo innecesario de una cadena. También se han " +"agregado los métodos correspondientes ``bytes``, ``bytearray`` y " +"``collections.UserString``. Consulte :pep:`616` para obtener una descripción " +"completa. (Contribuido por Dennis Sweeney en :issue:`39939`.)" #: ../Doc/whatsnew/3.9.rst:172 msgid "Type Hinting Generics in Standard Collections" @@ -341,6 +345,9 @@ msgid "" " for name in names:\n" " print(\"Hello\", name)" msgstr "" +"def saludar_all(nombres: lista[cadena]) -> Ninguno:\n" +" para nombre en nombres:\n" +" imprimir(\"Hola\", nombre)" #: ../Doc/whatsnew/3.9.rst:188 msgid "" @@ -364,8 +371,8 @@ msgid "" "flexibility in Python 3.10 and later." msgstr "" "Python 3.9 usa un nuevo analizador, basado en `PEG `_ en lugar de `LL(1) `_. El rendimiento del analizador nuevo es " +"wiki/Parsing_expression_grammar>`_ en lugar de `LL(1) `_. El rendimiento del analizador nuevo es " "aproximadamente comparable al del analizador anterior, pero el formalismo " "PEG es más flexible que LL (1) cuando se trata de diseñar nuevas funciones " "de lenguaje. Comenzaremos a usar esta flexibilidad en Python 3.10 y " @@ -380,7 +387,6 @@ msgstr "" "analizador anterior." #: ../Doc/whatsnew/3.9.rst:205 -#, fuzzy msgid "" "In Python 3.10, the old parser will be deleted and so will all functionality " "that depends on it (primarily the :mod:`!parser` module, which has long been " @@ -388,11 +394,11 @@ msgid "" "using a command line switch (``-X oldparser``) or an environment variable " "(``PYTHONOLDPARSER=1``)." msgstr "" -"En Python 3.10, el analizador anterior se eliminará y también lo hará toda " -"la funcionalidad que depende de él (principalmente el módulo :mod:`parser`, " -"que ha estado en desuso durante mucho tiempo). En Python 3.9 *only*, puede " -"volver al analizador LL (1) utilizando un modificador de línea de comando " -"(``-X oldparser``) o una variable de entorno (``PYTHONOLDPARSER=1``)." +"En Python 3.10, el analizador antiguo se eliminará y también todas las " +"funciones que dependen de él (principalmente el módulo :mod:`!parser`, que " +"ha quedado obsoleto durante mucho tiempo). En Python 3.9 *only*, puede " +"volver al analizador LL(1) usando un modificador de línea de comando (``-X " +"oldparser``) o una variable de entorno (``PYTHONOLDPARSER=1``)." #: ../Doc/whatsnew/3.9.rst:211 msgid "" @@ -408,24 +414,24 @@ msgstr "Otros cambios de idioma" #: ../Doc/whatsnew/3.9.rst:218 msgid "" -":func:`__import__` now raises :exc:`ImportError` instead of :exc:" -"`ValueError`, which used to occur when a relative import went past its top-" -"level package. (Contributed by Ngalim Siregar in :issue:`37444`.)" +":func:`__import__` now raises :exc:`ImportError` instead " +"of :exc:`ValueError`, which used to occur when a relative import went past " +"its top-level package. (Contributed by Ngalim Siregar in :issue:`37444`.)" msgstr "" -":func:`__import__` ahora lanza :exc:`ImportError` en lugar de :exc:" -"`ValueError`, que solía ocurrir cuando una importación relativa pasaba de su " -"paquete de nivel superior. (Contribuido por Ngalim Siregar en :issue:" -"`37444`.)" +":func:`__import__` ahora lanza :exc:`ImportError` en lugar " +"de :exc:`ValueError`, que solía ocurrir cuando una importación relativa " +"pasaba de su paquete de nivel superior. (Contribuido por Ngalim Siregar " +"en :issue:`37444`.)" #: ../Doc/whatsnew/3.9.rst:223 msgid "" "Python now gets the absolute path of the script filename specified on the " -"command line (ex: ``python3 script.py``): the ``__file__`` attribute of the :" -"mod:`__main__` module became an absolute path, rather than a relative path. " -"These paths now remain valid after the current directory is changed by :func:" -"`os.chdir`. As a side effect, the traceback also displays the absolute path " -"for :mod:`__main__` module frames in this case. (Contributed by Victor " -"Stinner in :issue:`20443`.)" +"command line (ex: ``python3 script.py``): the ``__file__`` attribute of " +"the :mod:`__main__` module became an absolute path, rather than a relative " +"path. These paths now remain valid after the current directory is changed " +"by :func:`os.chdir`. As a side effect, the traceback also displays the " +"absolute path for :mod:`__main__` module frames in this case. (Contributed " +"by Victor Stinner in :issue:`20443`.)" msgstr "" "Python ahora obtiene la ruta absoluta del nombre de archivo del script " "especificado en la línea de comando (por ejemplo: ``python3 script.py``): el " @@ -433,20 +439,20 @@ msgstr "" "ruta absoluta, en lugar de una ruta relativa. Estas rutas ahora siguen " "siendo válidas después de que las tramas del módulo :func:`os.chdir`. Como " "efecto alterno, la traza también muestra la ruta absoluta para los marcos " -"del módulo :mod:`__main__` en este caso. (Contribuido por Victor Stinner en :" -"issue:`20443`.)" +"del módulo :mod:`__main__` en este caso. (Contribuido por Victor Stinner " +"en :issue:`20443`.)" #: ../Doc/whatsnew/3.9.rst:231 msgid "" "In the :ref:`Python Development Mode ` and in :ref:`debug build " "`, the *encoding* and *errors* arguments are now checked for " -"string encoding and decoding operations. Examples: :func:`open`, :meth:`str." -"encode` and :meth:`bytes.decode`." +"string encoding and decoding operations. " +"Examples: :func:`open`, :meth:`str.encode` and :meth:`bytes.decode`." msgstr "" "En :ref:`Python Development Mode ` y en :ref:`debug build `, los argumentos de *encoding* and *errors* ahora se comprueban para " -"las operaciones de codificación y decodificación de cadenas. Ejemplos: :func:" -"`open`, :meth:`str.encode` y :meth:`bytes.decode`." +"las operaciones de codificación y decodificación de cadenas. " +"Ejemplos: :func:`open`, :meth:`str.encode` y :meth:`bytes.decode`." #: ../Doc/whatsnew/3.9.rst:236 msgid "" @@ -467,9 +473,10 @@ msgid "" "objects. (Contributed by Serhiy Storchaka in :issue:`28029`.)" msgstr "" "``\"\".replace(\"\", s, n)`` ahora devuelve ``s`` en lugar de una cadena " -"vacía para todos los ``n`` distintos de cero. Ahora es compatible con ``\"\"." -"replace(\"\", s)``. Hay cambios similares para los objetos :class:`bytes` y :" -"class:`bytearray`. (Contribuido por Serhiy Storchaka en :issue:`28029`.)" +"vacía para todos los ``n`` distintos de cero. Ahora es compatible con " +"``\"\".replace(\"\", s)``. Hay cambios similares para los " +"objetos :class:`bytes` y :class:`bytearray`. (Contribuido por Serhiy " +"Storchaka en :issue:`28029`.)" #: ../Doc/whatsnew/3.9.rst:246 msgid "" @@ -493,43 +500,44 @@ msgstr "" "se muestran para todas las formas especiales y alias genéricos especiales " "(como ``Union`` y ``List``). El uso de :func:`help` con un alias genérico " "como ``List[int]`` mostrará la ayuda para el tipo concreto correspondiente " -"(``list`` en este caso). (Contribuido por Serhiy Storchaka en :issue:" -"`40257`.)" +"(``list`` en este caso). (Contribuido por Serhiy Storchaka " +"en :issue:`40257`.)" #: ../Doc/whatsnew/3.9.rst:256 msgid "" -"Parallel running of :meth:`~agen.aclose` / :meth:`~agen.asend` / :meth:" -"`~agen.athrow` is now prohibited, and ``ag_running`` now reflects the actual " -"running status of the async generator. (Contributed by Yury Selivanov in :" -"issue:`30773`.)" +"Parallel running " +"of :meth:`~agen.aclose` / :meth:`~agen.asend` / :meth:`~agen.athrow` is now " +"prohibited, and ``ag_running`` now reflects the actual running status of the " +"async generator. (Contributed by Yury Selivanov in :issue:`30773`.)" msgstr "" -"La ejecución en paralelo de :meth:`~agen.aclose` / :meth:`~agen.asend` / :" -"meth:`~agen.athrow` ahora está prohibida, y ``ag_running`` ahora refleja el " -"estado de ejecución real del generador asíncrono. (Contribuido por Yury " -"Selivanov en :issue:`30773`.)" +"La ejecución en paralelo " +"de :meth:`~agen.aclose` / :meth:`~agen.asend` / :meth:`~agen.athrow` ahora " +"está prohibida, y ``ag_running`` ahora refleja el estado de ejecución real " +"del generador asíncrono. (Contribuido por Yury Selivanov en :issue:`30773`.)" #: ../Doc/whatsnew/3.9.rst:261 msgid "" "Unexpected errors in calling the ``__iter__`` method are no longer masked by " -"``TypeError`` in the :keyword:`in` operator and functions :func:`~operator." -"contains`, :func:`~operator.indexOf` and :func:`~operator.countOf` of the :" -"mod:`operator` module. (Contributed by Serhiy Storchaka in :issue:`40824`.)" +"``TypeError`` in the :keyword:`in` operator and " +"functions :func:`~operator.contains`, :func:`~operator.indexOf` " +"and :func:`~operator.countOf` of the :mod:`operator` module. (Contributed by " +"Serhiy Storchaka in :issue:`40824`.)" msgstr "" "Los errores inesperados al llamar al método ``__iter__`` ya no están " -"enmascarados por ``TypeError`` en el operador :keyword:`in` y funciones :" -"func:`~operator.contains`, :func:`~operator.indexOf` y :func:`~operator." -"countOf` del módulo :mod:`operator`. (Contribuido por Serhiy Storchaka en :" -"issue:`40824`.)" +"enmascarados por ``TypeError`` en el operador :keyword:`in` y " +"funciones :func:`~operator.contains`, :func:`~operator.indexOf` " +"y :func:`~operator.countOf` del módulo :mod:`operator`. (Contribuido por " +"Serhiy Storchaka en :issue:`40824`.)" #: ../Doc/whatsnew/3.9.rst:267 msgid "" "Unparenthesized lambda expressions can no longer be the expression part in " -"an ``if`` clause in comprehensions and generator expressions. See :issue:" -"`41848` and :issue:`43755` for details." +"an ``if`` clause in comprehensions and generator expressions. " +"See :issue:`41848` and :issue:`43755` for details." msgstr "" "Las expresiones lambda sin paréntesis ya no pueden ser la parte de expresión " -"en una cláusula ``if`` en comprensiones y expresiones generadoras. Consulte :" -"issue:`41848` y :issue:`43755` para obtener más detalles." +"en una cláusula ``if`` en comprensiones y expresiones generadoras. " +"Consulte :issue:`41848` y :issue:`43755` para obtener más detalles." #: ../Doc/whatsnew/3.9.rst:273 msgid "New Modules" @@ -542,8 +550,9 @@ msgstr "zoneinfo" #: ../Doc/whatsnew/3.9.rst:278 msgid "" "The :mod:`zoneinfo` module brings support for the IANA time zone database to " -"the standard library. It adds :class:`zoneinfo.ZoneInfo`, a concrete :class:" -"`datetime.tzinfo` implementation backed by the system's time zone data." +"the standard library. It adds :class:`zoneinfo.ZoneInfo`, a " +"concrete :class:`datetime.tzinfo` implementation backed by the system's time " +"zone data." msgstr "" "El módulo :mod:`zoneinfo` brinda soporte para la base de datos de zona " "horaria de IANA a la biblioteca estándar. Agrega :class:`zoneinfo.ZoneInfo`, " @@ -570,16 +579,32 @@ msgid "" ">>> print(dt.tzname())\n" "PST" msgstr "" +">>> desde infozona importar ZoneInfo\n" +">>> desde fecha y hora importar fecha y hora, timedelta\n" +"\n" +">>> # Horario de verano\n" +">>> dt = fechahora(2020, 10, 31, 12, tzinfo=ZoneInfo(\"América/" +"Los_Angeles\"))\n" +">>> imprimir(dt)\n" +"2020-10-31 12:00:00-07:00\n" +">>> dt.tznombre()\n" +"'PDT'\n" +"\n" +">>> # hora estándar\n" +">>> dt += tiempodelta(días=7)\n" +">>> imprimir(dt)\n" +"2020-11-07 12:00:00-08:00\n" +">>> imprimir(dt.tznombre())\n" +"hora del Pacífico" #: ../Doc/whatsnew/3.9.rst:302 -#, fuzzy msgid "" "As a fall-back source of data for platforms that don't ship the IANA " "database, the :pypi:`tzdata` module was released as a first-party package -- " "distributed via PyPI and maintained by the CPython core team." msgstr "" -"Como fuente de datos alternativa para las plataformas que no envían la base " -"de datos de la IANA, el módulo |tzdata|_ se lanzó como un paquete propio, " +"Como fuente alternativa de datos para plataformas que no incluyen la base de " +"datos de la IANA, el módulo :pypi:`tzdata` se lanzó como un paquete propio, " "distribuido a través de PyPI y mantenido por el equipo central de CPython." #: ../Doc/whatsnew/3.9.rst:308 @@ -599,15 +624,15 @@ msgstr "Graphlib" #: ../Doc/whatsnew/3.9.rst:315 msgid "" -"A new module, :mod:`graphlib`, was added that contains the :class:`graphlib." -"TopologicalSorter` class to offer functionality to perform topological " -"sorting of graphs. (Contributed by Pablo Galindo, Tim Peters and Larry " -"Hastings in :issue:`17005`.)" +"A new module, :mod:`graphlib`, was added that contains " +"the :class:`graphlib.TopologicalSorter` class to offer functionality to " +"perform topological sorting of graphs. (Contributed by Pablo Galindo, Tim " +"Peters and Larry Hastings in :issue:`17005`.)" msgstr "" -"Se agregó un nuevo módulo, :mod:`graphlib`, que contiene la clase :class:" -"`graphlib.TopologicalSorter` para ofrecer funcionalidad para realizar la " -"clasificación topológica de gráficos. (Contribuido por Pablo Galindo, Tim " -"Peters y Larry Hastings en :issue:`17005`.)" +"Se agregó un nuevo módulo, :mod:`graphlib`, que contiene la " +"clase :class:`graphlib.TopologicalSorter` para ofrecer funcionalidad para " +"realizar la clasificación topológica de gráficos. (Contribuido por Pablo " +"Galindo, Tim Peters y Larry Hastings en :issue:`17005`.)" #: ../Doc/whatsnew/3.9.rst:322 msgid "Improved Modules" @@ -620,12 +645,12 @@ msgstr "ast" #: ../Doc/whatsnew/3.9.rst:327 msgid "" "Added the *indent* option to :func:`~ast.dump` which allows it to produce a " -"multiline indented output. (Contributed by Serhiy Storchaka in :issue:" -"`37995`.)" +"multiline indented output. (Contributed by Serhiy Storchaka " +"in :issue:`37995`.)" msgstr "" "Se agregó la opción *indent* a :func:`~ast.dump` que le permite producir una " -"salida con sangría de varias líneas. (Contribuido por Serhiy Storchaka en :" -"issue:`37995`.)" +"salida con sangría de varias líneas. (Contribuido por Serhiy Storchaka " +"en :issue:`37995`.)" #: ../Doc/whatsnew/3.9.rst:331 msgid "" @@ -637,8 +662,8 @@ msgstr "" "Se agregó :func:`ast.unparse` como una función en el módulo :mod:`ast` que " "se puede usar para descomprimir un objeto :class:`ast.AST` y producir una " "cadena con código que produciría un objeto :class:`ast.AST` equivalente " -"cuando se analiza. (Contribuido por Pablo Galindo y Batuhan Taskaya en :" -"issue:`38870`.)" +"cuando se analiza. (Contribuido por Pablo Galindo y Batuhan Taskaya " +"en :issue:`38870`.)" #: ../Doc/whatsnew/3.9.rst:336 msgid "" @@ -646,8 +671,8 @@ msgid "" "construct that node. (Contributed by Batuhan Taskaya in :issue:`39638`.)" msgstr "" "Se agregaron cadenas de documentación a los nodos AST que contienen la firma " -"ASDL utilizada para construir ese nodo. (Contribuido por Batuhan Taskaya en :" -"issue:`39638`.)" +"ASDL utilizada para construir ese nodo. (Contribuido por Batuhan Taskaya " +"en :issue:`39638`.)" #: ../Doc/whatsnew/3.9.rst:340 msgid "asyncio" @@ -655,52 +680,53 @@ msgstr "asyncio" #: ../Doc/whatsnew/3.9.rst:342 msgid "" -"Due to significant security concerns, the *reuse_address* parameter of :meth:" -"`asyncio.loop.create_datagram_endpoint` is no longer supported. This is " -"because of the behavior of the socket option ``SO_REUSEADDR`` in UDP. For " -"more details, see the documentation for ``loop.create_datagram_endpoint()``. " -"(Contributed by Kyle Stanley, Antoine Pitrou, and Yury Selivanov in :issue:" -"`37228`.)" +"Due to significant security concerns, the *reuse_address* parameter " +"of :meth:`asyncio.loop.create_datagram_endpoint` is no longer supported. " +"This is because of the behavior of the socket option ``SO_REUSEADDR`` in " +"UDP. For more details, see the documentation for " +"``loop.create_datagram_endpoint()``. (Contributed by Kyle Stanley, Antoine " +"Pitrou, and Yury Selivanov in :issue:`37228`.)" msgstr "" "Debido a importantes problemas de seguridad, el parámetro *reuse_address* " "de :meth:`asyncio.loop.create_datagram_endpoint` ya no es compatible. Esto " "se debe al comportamiento de la opción de socket ``SO_REUSEADDR`` en UDP. " -"Para obtener más detalles, consulte la documentación de ``loop." -"create_datagram_endpoint()``. (Contribuido por Kyle Stanley, Antoine Pitrou " -"y Yury Selivanov en :issue:`37228`.)" +"Para obtener más detalles, consulte la documentación de " +"``loop.create_datagram_endpoint()``. (Contribuido por Kyle Stanley, Antoine " +"Pitrou y Yury Selivanov en :issue:`37228`.)" #: ../Doc/whatsnew/3.9.rst:349 msgid "" -"Added a new :term:`coroutine` :meth:`~asyncio.loop." -"shutdown_default_executor` that schedules a shutdown for the default " -"executor that waits on the :class:`~concurrent.futures.ThreadPoolExecutor` " -"to finish closing. Also, :func:`asyncio.run` has been updated to use the " -"new :term:`coroutine`. (Contributed by Kyle Stanley in :issue:`34037`.)" +"Added a " +"new :term:`coroutine` :meth:`~asyncio.loop.shutdown_default_executor` that " +"schedules a shutdown for the default executor that waits on " +"the :class:`~concurrent.futures.ThreadPoolExecutor` to finish closing. " +"Also, :func:`asyncio.run` has been updated to use the new :term:`coroutine`. " +"(Contributed by Kyle Stanley in :issue:`34037`.)" msgstr "" -"Se agregó un nuevo :term:`coroutine` :meth:`~asyncio.loop." -"shutdown_default_executor` que programa un apagado para el ejecutor " -"predeterminado que espera en el :class:`~concurrent.futures." -"ThreadPoolExecutor` para finalizar el cierre. Además, :func:`asyncio.run` se " -"ha actualizado para utilizar el nuevo :term:`coroutine`. (Contribuido por " -"Kyle Stanley en :issue:`34037`.)" +"Se agregó un " +"nuevo :term:`coroutine` :meth:`~asyncio.loop.shutdown_default_executor` que " +"programa un apagado para el ejecutor predeterminado que espera en " +"el :class:`~concurrent.futures.ThreadPoolExecutor` para finalizar el cierre. " +"Además, :func:`asyncio.run` se ha actualizado para utilizar el " +"nuevo :term:`coroutine`. (Contribuido por Kyle Stanley en :issue:`34037`.)" #: ../Doc/whatsnew/3.9.rst:355 -#, fuzzy msgid "" "Added :class:`!asyncio.PidfdChildWatcher`, a Linux-specific child watcher " "implementation that polls process file descriptors. (:issue:`38692`)" msgstr "" -"Se agregó :class:`asyncio.PidfdChildWatcher`, una implementación de " -"observador de niños específica de Linux que sondea los descriptores de " +"Se agregó :class:`!asyncio.PidfdChildWatcher`, una implementación de " +"vigilancia infantil específica de Linux que sondea los descriptores de " "archivos de proceso. (:issue:`38692`)" #: ../Doc/whatsnew/3.9.rst:358 msgid "" "Added a new :term:`coroutine` :func:`asyncio.to_thread`. It is mainly used " "for running IO-bound functions in a separate thread to avoid blocking the " -"event loop, and essentially works as a high-level version of :meth:`~asyncio." -"loop.run_in_executor` that can directly take keyword arguments. (Contributed " -"by Kyle Stanley and Yury Selivanov in :issue:`32309`.)" +"event loop, and essentially works as a high-level version " +"of :meth:`~asyncio.loop.run_in_executor` that can directly take keyword " +"arguments. (Contributed by Kyle Stanley and Yury Selivanov " +"in :issue:`32309`.)" msgstr "" "Se agregó un nuevo :term:`coroutine` :func:`asyncio.to_thread`. Se utiliza " "principalmente para ejecutar funciones vinculadas a IO en un hilo separado " @@ -722,14 +748,13 @@ msgstr "" "(Contribuido por Elvis Pranskevichus en :issue:`32751`.)" #: ../Doc/whatsnew/3.9.rst:369 -#, fuzzy msgid "" ":mod:`asyncio` now raises :exc:`TypeError` when calling incompatible methods " -"with an :class:`ssl.SSLSocket` socket. (Contributed by Ido Michael in :issue:" -"`37404`.)" +"with an :class:`ssl.SSLSocket` socket. (Contributed by Ido Michael " +"in :issue:`37404`.)" msgstr "" -":mod:`asyncio` ahora lanza :exc:`TyperError` al llamar a métodos " -"incompatibles con un socket :class:`ssl.SSLSocket`. (Contribuido por Ido " +":mod:`asyncio` ahora genera :exc:`TypeError` cuando llama a métodos " +"incompatibles con un socket :class:`ssl.SSLSocket`. (Aportado por Ido " "Michael en :issue:`37404`.)" #: ../Doc/whatsnew/3.9.rst:374 @@ -751,8 +776,8 @@ msgid "" "Added new options for path manipulation in resulting ``.pyc`` files: " "*stripdir*, *prependdir*, *limit_sl_dest* parameters and -s, -p, -e command " "line options. Added the possibility to specify the option for an " -"optimization level multiple times. (Contributed by Lumír 'Frenzy' Balhar in :" -"issue:`38112`.)" +"optimization level multiple times. (Contributed by Lumír 'Frenzy' Balhar " +"in :issue:`38112`.)" msgstr "" "Se agregaron nuevas opciones para la manipulación de rutas en los archivos " "``.pyc`` resultantes: parámetros *stripdir*, *prependdir*, *limit_sl_dest* y " @@ -766,15 +791,17 @@ msgstr "Futuros concurrentes" #: ../Doc/whatsnew/3.9.rst:386 msgid "" -"Added a new *cancel_futures* parameter to :meth:`concurrent.futures.Executor." -"shutdown` that cancels all pending futures which have not started running, " -"instead of waiting for them to complete before shutting down the executor. " -"(Contributed by Kyle Stanley in :issue:`39349`.)" +"Added a new *cancel_futures* parameter " +"to :meth:`concurrent.futures.Executor.shutdown` that cancels all pending " +"futures which have not started running, instead of waiting for them to " +"complete before shutting down the executor. (Contributed by Kyle Stanley " +"in :issue:`39349`.)" msgstr "" -"Se agregó un nuevo parámetro *cancel_futures* a :meth:`concurrent.futures." -"Executor.shutdown` que cancela todos los futuros pendientes que no han " -"comenzado a ejecutarse, en lugar de esperar a que se completen antes de " -"apagar el ejecutor. (Contribuido por Kyle Stanley en :issue:`39349`.)" +"Se agregó un nuevo parámetro *cancel_futures* " +"a :meth:`concurrent.futures.Executor.shutdown` que cancela todos los futuros " +"pendientes que no han comenzado a ejecutarse, en lugar de esperar a que se " +"completen antes de apagar el ejecutor. (Contribuido por Kyle Stanley " +"en :issue:`39349`.)" #: ../Doc/whatsnew/3.9.rst:392 msgid "" @@ -783,10 +810,11 @@ msgid "" "compatibility with subinterpreters and predictability in their shutdown " "processes. (Contributed by Kyle Stanley in :issue:`39812`.)" msgstr "" -"Se eliminaron los subprocesos del demonio de :class:`~concurrent.futures." -"ThreadPoolExecutor` y :class:`~concurrent.futures.ProcessPoolExecutor`. Esto " -"mejora la compatibilidad con los subinterpretadores y la previsibilidad en " -"sus procesos de cierre. (Contribuido por Kyle Stanley en :issue:`39812`.)" +"Se eliminaron los subprocesos del demonio " +"de :class:`~concurrent.futures.ThreadPoolExecutor` " +"y :class:`~concurrent.futures.ProcessPoolExecutor`. Esto mejora la " +"compatibilidad con los subinterpretadores y la previsibilidad en sus " +"procesos de cierre. (Contribuido por Kyle Stanley en :issue:`39812`.)" #: ../Doc/whatsnew/3.9.rst:397 msgid "" @@ -807,30 +835,30 @@ msgstr "maldiciones" #: ../Doc/whatsnew/3.9.rst:405 msgid "" -"Added :func:`curses.get_escdelay`, :func:`curses.set_escdelay`, :func:" -"`curses.get_tabsize`, and :func:`curses.set_tabsize` functions. (Contributed " -"by Anthony Sottile in :issue:`38312`.)" +"Added :func:`curses.get_escdelay`, :func:`curses.set_escdelay`, :func:`curses.get_tabsize`, " +"and :func:`curses.set_tabsize` functions. (Contributed by Anthony Sottile " +"in :issue:`38312`.)" msgstr "" -"Se agregaron funciones :func:`curses.get_escdelay`, :func:`curses." -"set_escdelay`, :func:`curses.get_tabsize` y :func:`curses.set_tabsize`. " -"(Contribuido por Anthony Sottile en :issue:`38312`.)" +"Se agregaron " +"funciones :func:`curses.get_escdelay`, :func:`curses.set_escdelay`, :func:`curses.get_tabsize` " +"y :func:`curses.set_tabsize`. (Contribuido por Anthony Sottile " +"en :issue:`38312`.)" #: ../Doc/whatsnew/3.9.rst:410 msgid "datetime" msgstr "fecha y hora" #: ../Doc/whatsnew/3.9.rst:411 -#, fuzzy msgid "" -"The :meth:`~datetime.date.isocalendar` of :class:`datetime.date` and :meth:" -"`~datetime.datetime.isocalendar` of :class:`datetime.datetime` methods now " -"returns a :func:`~collections.namedtuple` instead of a :class:`tuple`. " -"(Contributed by Donghee Na in :issue:`24416`.)" +"The :meth:`~datetime.date.isocalendar` of :class:`datetime.date` " +"and :meth:`~datetime.datetime.isocalendar` of :class:`datetime.datetime` " +"methods now returns a :func:`~collections.namedtuple` instead of " +"a :class:`tuple`. (Contributed by Donghee Na in :issue:`24416`.)" msgstr "" -"Los métodos :meth:`~datetime.date.isocalendar()` de :class:`datetime.date` " -"y :meth:`~datetime.datetime.isocalendar()` de :class:`datetime.datetime` " -"ahora devuelven un :func:`~collections.namedtuple` en lugar de un :class:" -"`tuple`. (Contribuido por Dong-hee Na en :issue:`24416`.)" +"Los métodos :meth:`~datetime.date.isocalendar` de :class:`datetime.date` " +"y :meth:`~datetime.datetime.isocalendar` de :class:`datetime.datetime` ahora " +"devuelven un :func:`~collections.namedtuple` en lugar de un :class:`tuple`. " +"(Aportado por Donghee Na en :issue:`24416`.)" #: ../Doc/whatsnew/3.9.rst:417 msgid "distutils" @@ -851,32 +879,30 @@ msgid "fcntl" msgstr "fcntl" #: ../Doc/whatsnew/3.9.rst:426 -#, fuzzy msgid "" "Added constants :const:`!fcntl.F_OFD_GETLK`, :const:`!fcntl.F_OFD_SETLK` " -"and :const:`!fcntl.F_OFD_SETLKW`. (Contributed by Donghee Na in :issue:" -"`38602`.)" +"and :const:`!fcntl.F_OFD_SETLKW`. (Contributed by Donghee Na " +"in :issue:`38602`.)" msgstr "" -"Se agregaron las constantes :data:`~fcntl.F_OFD_GETLK`, :data:`~fcntl." -"F_OFD_SETLK` y :data:`~fcntl.F_OFD_SETLKW`. (Contribuido por Dong-hee Na en :" -"issue:`38602`.)" +"Se agregaron las constantes :const:`!fcntl.F_OFD_GETLK`, :const:`!" +"fcntl.F_OFD_SETLK` y :const:`!fcntl.F_OFD_SETLKW`. (Aportado por Donghee Na " +"en :issue:`38602`.)" #: ../Doc/whatsnew/3.9.rst:431 msgid "ftplib" msgstr "ftplib" #: ../Doc/whatsnew/3.9.rst:433 -#, fuzzy msgid "" -":class:`~ftplib.FTP` and :class:`~ftplib.FTP_TLS` now raise a :class:" -"`ValueError` if the given timeout for their constructor is zero to prevent " -"the creation of a non-blocking socket. (Contributed by Donghee Na in :issue:" -"`39259`.)" +":class:`~ftplib.FTP` and :class:`~ftplib.FTP_TLS` now raise " +"a :class:`ValueError` if the given timeout for their constructor is zero to " +"prevent the creation of a non-blocking socket. (Contributed by Donghee Na " +"in :issue:`39259`.)" msgstr "" -":class:`~ftplib.FTP` y :class:`~ftplib.FTP_TLS` ahora lanzan un :class:" -"`ValueError` si el tiempo de espera dado para su constructor es cero para " -"evitar la creación de un socket sin bloqueo. (Contribuido por Dong-hee Na " -"en :issue:`39259`.)" +":class:`~ftplib.FTP` y :class:`~ftplib.FTP_TLS` ahora generan " +"un :class:`ValueError` si el tiempo de espera dado para su constructor es " +"cero para evitar la creación de un socket sin bloqueo. (Aportado por Donghee " +"Na en :issue:`39259`.)" #: ../Doc/whatsnew/3.9.rst:438 msgid "gc" @@ -887,8 +913,8 @@ msgid "" "When the garbage collector makes a collection in which some objects " "resurrect (they are reachable from outside the isolated cycles after the " "finalizers have been executed), do not block the collection of all objects " -"that are still unreachable. (Contributed by Pablo Galindo and Tim Peters in :" -"issue:`38379`.)" +"that are still unreachable. (Contributed by Pablo Galindo and Tim Peters " +"in :issue:`38379`.)" msgstr "" "Cuando el recolector de basura realiza una recolección en la que resucitan " "algunos objetos (se puede acceder a ellos desde fuera de los ciclos aislados " @@ -899,8 +925,8 @@ msgstr "" #: ../Doc/whatsnew/3.9.rst:445 msgid "" "Added a new function :func:`gc.is_finalized` to check if an object has been " -"finalized by the garbage collector. (Contributed by Pablo Galindo in :issue:" -"`39322`.)" +"finalized by the garbage collector. (Contributed by Pablo Galindo " +"in :issue:`39322`.)" msgstr "" "Se agregó una nueva función :func:`gc.is_finalized` para verificar si el " "recolector de basura ha finalizado un objeto. (Contribuido por Pablo Galindo " @@ -928,23 +954,22 @@ msgstr "" "Los módulos hash incorporados ahora pueden desactivarse con ``./configure --" "without-builtin-hashlib-hashes`` o activarse selectivamente con p. Ej. ``./" "configure --with-builtin-hashlib-hashes=sha3,blake2`` para forzar el uso de " -"la implementación basada en OpenSSL. (Contribuido por Christian Heimes en :" -"issue:`40479`)" +"la implementación basada en OpenSSL. (Contribuido por Christian Heimes " +"en :issue:`40479`)" #: ../Doc/whatsnew/3.9.rst:464 msgid "http" msgstr "http" #: ../Doc/whatsnew/3.9.rst:466 -#, fuzzy msgid "" "HTTP status codes ``103 EARLY_HINTS``, ``418 IM_A_TEAPOT`` and ``425 " "TOO_EARLY`` are added to :class:`http.HTTPStatus`. (Contributed by Donghee " "Na in :issue:`39509` and Ross Rhodes in :issue:`39507`.)" msgstr "" "Los códigos de estado HTTP ``103 EARLY_HINTS``, ``418 IM_A_TEAPOT`` y ``425 " -"TOO_EARLY`` se agregan a :class:`http.HTTPStatus`. (Contribuido por Dong-hee " -"Na en :issue:`39509` y Ross Rhodes en :issue:`39507`.)" +"TOO_EARLY`` se agregan a :class:`http.HTTPStatus`. (Contribución de Donghee " +"Na en :issue:`39509` y Ross Rhodes en :issue:`39507`)." #: ../Doc/whatsnew/3.9.rst:470 msgid "IDLE and idlelib" @@ -952,8 +977,8 @@ msgstr "IDLE e idlelib" #: ../Doc/whatsnew/3.9.rst:472 msgid "" -"Added option to toggle cursor blink off. (Contributed by Zackery Spytz in :" -"issue:`4603`.)" +"Added option to toggle cursor blink off. (Contributed by Zackery Spytz " +"in :issue:`4603`.)" msgstr "" "Opción agregada para apagar el cursor parpadeando. (Contribuido por Zackery " "Spytz en :issue:`4603`.)" @@ -981,8 +1006,8 @@ msgstr "Novedades de la versión de mantenimiento 3.9" #: ../Doc/whatsnew/3.9.rst:483 msgid "" "Make IDLE invoke :func:`sys.excepthook` (when started without '-n'). User " -"hooks were previously ignored. (Contributed by Ken Hilton in :issue:" -"`43008`.)" +"hooks were previously ignored. (Contributed by Ken Hilton " +"in :issue:`43008`.)" msgstr "" "Hacer que IDLE invoque :func:`sys.excepthook` (cuando se inicia sin '-n'). " "Anteriormente se ignoraban los hooks de usuario. (Contribuido por Ken " @@ -999,10 +1024,10 @@ msgid "" "Rearrange the settings dialog. Split the General tab into Windows and Shell/" "Ed tabs. Move help sources, which extend the Help menu, to the Extensions " "tab. Make space for new options and shorten the dialog. The latter makes " -"the dialog better fit small screens. (Contributed by Terry Jan Reedy in :" -"issue:`40468`.) Move the indent space setting from the Font tab to the new " -"Windows tab. (Contributed by Mark Roseman and Terry Jan Reedy in :issue:" -"`33962`.)" +"the dialog better fit small screens. (Contributed by Terry Jan Reedy " +"in :issue:`40468`.) Move the indent space setting from the Font tab to the " +"new Windows tab. (Contributed by Mark Roseman and Terry Jan Reedy " +"in :issue:`33962`.)" msgstr "" "Reorganizar el diálogo de configuración. Dividir la pestaña General en " "Windows y Shell/Ed. Mover las fuentes de ayuda, que amplían el menú Ayuda, a " @@ -1025,24 +1050,22 @@ msgid "imaplib" msgstr "imaplib" #: ../Doc/whatsnew/3.9.rst:503 -#, fuzzy msgid "" ":class:`~imaplib.IMAP4` and :class:`~imaplib.IMAP4_SSL` now have an optional " -"*timeout* parameter for their constructors. Also, the :meth:`~imaplib.IMAP4." -"open` method now has an optional *timeout* parameter with this change. The " -"overridden methods of :class:`~imaplib.IMAP4_SSL` and :class:`~imaplib." -"IMAP4_stream` were applied to this change. (Contributed by Donghee Na in :" -"issue:`38615`.)" +"*timeout* parameter for their constructors. Also, " +"the :meth:`~imaplib.IMAP4.open` method now has an optional *timeout* " +"parameter with this change. The overridden methods " +"of :class:`~imaplib.IMAP4_SSL` and :class:`~imaplib.IMAP4_stream` were " +"applied to this change. (Contributed by Donghee Na in :issue:`38615`.)" msgstr "" ":class:`~imaplib.IMAP4` y :class:`~imaplib.IMAP4_SSL` ahora tienen un " -"parámetro *timeout* parameter for their constructors. También el método :" -"meth:`~imaplib.IMAP4.open` ahora tiene un parámetro opcional *timeout* con " -"este cambio. Los métodos anulados de :class:`~imaplib.IMAP4_SSL` y :class:" -"`~imaplib.IMAP4_stream` se aplicaron a este cambio. (Contribuido por Dong-" -"hee Na en :issue:`38615`.)" +"parámetro *timeout* opcional para sus constructores. Además, el " +"método :meth:`~imaplib.IMAP4.open` ahora tiene un parámetro *timeout* " +"opcional con este cambio. Los métodos anulados " +"de :class:`~imaplib.IMAP4_SSL` y :class:`~imaplib.IMAP4_stream` se aplicaron " +"a este cambio. (Aportado por Donghee Na en :issue:`38615`.)" #: ../Doc/whatsnew/3.9.rst:510 -#, fuzzy msgid "" ":meth:`imaplib.IMAP4.unselect` is added. :meth:`imaplib.IMAP4.unselect` " "frees server's resources associated with the selected mailbox and returns " @@ -1052,11 +1075,11 @@ msgid "" "Donghee Na in :issue:`40375`.)" msgstr "" "Se agrega :meth:`imaplib.IMAP4.unselect`. :meth:`imaplib.IMAP4.unselect` " -"libera los recursos del servidor asociados con el buzón de correo " -"seleccionado y devuelve el servidor al estado autenticado. Este comando " -"realiza las mismas acciones que :meth:`imaplib.IMAP4.close`, excepto que " -"ningún mensaje se elimina permanentemente del buzón de correo seleccionado " -"actualmente. (Contribuido por Dong-hee Na en :issue:`40375`.)" +"libera los recursos del servidor asociados con el buzón seleccionado y " +"devuelve el servidor al estado autenticado. Este comando realiza las mismas " +"acciones que :meth:`imaplib.IMAP4.close`, excepto que ningún mensaje se " +"elimina permanentemente del buzón seleccionado actualmente. (Aportado por " +"Donghee Na en :issue:`40375`.)" #: ../Doc/whatsnew/3.9.rst:518 msgid "importlib" @@ -1064,15 +1087,16 @@ msgstr "importlib" #: ../Doc/whatsnew/3.9.rst:520 msgid "" -"To improve consistency with import statements, :func:`importlib.util." -"resolve_name` now raises :exc:`ImportError` instead of :exc:`ValueError` for " -"invalid relative import attempts. (Contributed by Ngalim Siregar in :issue:" -"`37444`.)" +"To improve consistency with import " +"statements, :func:`importlib.util.resolve_name` now " +"raises :exc:`ImportError` instead of :exc:`ValueError` for invalid relative " +"import attempts. (Contributed by Ngalim Siregar in :issue:`37444`.)" msgstr "" -"Para mejorar la coherencia con las declaraciones de importación, :func:" -"`importlib.util.resolve_name` ahora lanza :exc:`ImportError` en lugar de :" -"exc:`ValueError` para intentos de importación relativa no válidos. " -"(Contribuido por Ngalim Siregar en :issue:`37444`.)" +"Para mejorar la coherencia con las declaraciones de " +"importación, :func:`importlib.util.resolve_name` ahora " +"lanza :exc:`ImportError` en lugar de :exc:`ValueError` para intentos de " +"importación relativa no válidos. (Contribuido por Ngalim Siregar " +"en :issue:`37444`.)" #: ../Doc/whatsnew/3.9.rst:525 msgid "" @@ -1092,8 +1116,8 @@ msgid "" msgstr "" "Se agregó la función :func:`importlib.resources.files` con soporte para " "subdirectorios en los datos del paquete, compatible con el backport en " -"``importlib_resources`` versión 1.5. (Contribuido por Jason R. Coombs en :" -"issue:`39791`.)" +"``importlib_resources`` versión 1.5. (Contribuido por Jason R. Coombs " +"en :issue:`39791`.)" #: ../Doc/whatsnew/3.9.rst:534 msgid "" @@ -1108,12 +1132,12 @@ msgstr "inspeccionar" #: ../Doc/whatsnew/3.9.rst:539 msgid "" ":attr:`inspect.BoundArguments.arguments` is changed from ``OrderedDict`` to " -"regular dict. (Contributed by Inada Naoki in :issue:`36350` and :issue:" -"`39775`.)" +"regular dict. (Contributed by Inada Naoki in :issue:`36350` " +"and :issue:`39775`.)" msgstr "" ":attr:`inspect.BoundArguments.arguments` se cambia de ``OrderedDict`` a " -"dictado regular. (Contribuido por Inada Naoki en :issue:`36350` y :issue:" -"`39775`.)" +"dictado regular. (Contribuido por Inada Naoki en :issue:`36350` " +"y :issue:`39775`.)" #: ../Doc/whatsnew/3.9.rst:543 msgid "ipaddress" @@ -1130,20 +1154,21 @@ msgstr "" #: ../Doc/whatsnew/3.9.rst:547 msgid "" "Scoped IPv6 addresses can be parsed using :class:`ipaddress.IPv6Address`. If " -"present, scope zone ID is available through the :attr:`~ipaddress." -"IPv6Address.scope_id` attribute. (Contributed by Oleksandr Pavliuk in :issue:" -"`34788`.)" +"present, scope zone ID is available through " +"the :attr:`~ipaddress.IPv6Address.scope_id` attribute. (Contributed by " +"Oleksandr Pavliuk in :issue:`34788`.)" msgstr "" -"Las direcciones IPv6 con alcance se pueden analizar mediante :class:" -"`ipaddress.IPv6Address`. Si está presente, la identificación de la zona del " -"alcance está disponible a través del atributo :attr:`~ipaddress.IPv6Address." -"scope_id`. (Contribuido por Oleksandr Pavliuk en :issue:`34788`.)" +"Las direcciones IPv6 con alcance se pueden analizar " +"mediante :class:`ipaddress.IPv6Address`. Si está presente, la identificación " +"de la zona del alcance está disponible a través del " +"atributo :attr:`~ipaddress.IPv6Address.scope_id`. (Contribuido por Oleksandr " +"Pavliuk en :issue:`34788`.)" #: ../Doc/whatsnew/3.9.rst:551 msgid "" "Starting with Python 3.9.5 the :mod:`ipaddress` module no longer accepts any " -"leading zeros in IPv4 address strings. (Contributed by Christian Heimes in :" -"issue:`36384`)." +"leading zeros in IPv4 address strings. (Contributed by Christian Heimes " +"in :issue:`36384`)." msgstr "" "A partir de Python 3.9.5, el módulo :mod:`ipaddress` ya no acepta ceros a la " "izquierda en cadenas de direcciones IPv4. (Contribuido por Christian Heimes " @@ -1179,8 +1204,8 @@ msgid "" "towards *y*. (Contributed by Victor Stinner in :issue:`39288`.)" msgstr "" ":func:`math.nextafter` agregado: devuelve el siguiente valor de punto " -"flotante después de *x* towards *y*. (Contribuido por Victor Stinner en :" -"issue:`39288`.)" +"flotante después de *x* towards *y*. (Contribuido por Victor Stinner " +"en :issue:`39288`.)" #: ../Doc/whatsnew/3.9.rst:570 msgid "" @@ -1196,52 +1221,49 @@ msgstr "multiprocesamiento" #: ../Doc/whatsnew/3.9.rst:577 msgid "" -"The :class:`multiprocessing.SimpleQueue` class has a new :meth:" -"`~multiprocessing.SimpleQueue.close` method to explicitly close the queue. " -"(Contributed by Victor Stinner in :issue:`30966`.)" +"The :class:`multiprocessing.SimpleQueue` class has a " +"new :meth:`~multiprocessing.SimpleQueue.close` method to explicitly close " +"the queue. (Contributed by Victor Stinner in :issue:`30966`.)" msgstr "" -"La clase :class:`multiprocessing.SimpleQueue` tiene un nuevo método :meth:" -"`~multiprocessing.SimpleQueue.close` para cerrar explícitamente la cola. " -"(Contribuido por Victor Stinner en :issue:`30966`.)" +"La clase :class:`multiprocessing.SimpleQueue` tiene un nuevo " +"método :meth:`~multiprocessing.SimpleQueue.close` para cerrar explícitamente " +"la cola. (Contribuido por Victor Stinner en :issue:`30966`.)" #: ../Doc/whatsnew/3.9.rst:583 msgid "nntplib" msgstr "nntplib" #: ../Doc/whatsnew/3.9.rst:585 -#, fuzzy msgid "" ":class:`!NNTP` and :class:`!NNTP_SSL` now raise a :class:`ValueError` if the " "given timeout for their constructor is zero to prevent the creation of a non-" "blocking socket. (Contributed by Donghee Na in :issue:`39259`.)" msgstr "" -":class:`~nntplib.NNTP` y :class:`~nntplib.NNTP_SSL` ahora lanzan un :class:" -"`ValueError` si el tiempo de espera dado para su constructor es cero para " -"evitar la creación de un socket sin bloqueo. (Contribuido por Dong-hee Na " -"en :issue:`39259`.)" +":class:`!NNTP` y :class:`!NNTP_SSL` ahora generan un :class:`ValueError` si " +"el tiempo de espera dado para su constructor es cero para evitar la creación " +"de un socket sin bloqueo. (Aportado por Donghee Na en :issue:`39259`.)" #: ../Doc/whatsnew/3.9.rst:590 msgid "os" msgstr "os" #: ../Doc/whatsnew/3.9.rst:592 -#, fuzzy msgid "" "Added :const:`~os.CLD_KILLED` and :const:`~os.CLD_STOPPED` for :attr:`!" "si_code`. (Contributed by Donghee Na in :issue:`38493`.)" msgstr "" -"Se agregaron :data:`~os.CLD_KILLED` y :data:`~os.CLD_STOPPED` para :attr:" -"`si_code`. (Contribuido por Dong-hee Na en :issue:`38493`.)" +"Se agregaron :const:`~os.CLD_KILLED` y :const:`~os.CLD_STOPPED` para :attr:`!" +"si_code`. (Aportado por Donghee Na en :issue:`38493`.)" #: ../Doc/whatsnew/3.9.rst:595 -#, fuzzy msgid "" -"Exposed the Linux-specific :func:`os.pidfd_open` (:issue:`38692`) and :const:" -"`os.P_PIDFD` (:issue:`38713`) for process management with file descriptors." +"Exposed the Linux-specific :func:`os.pidfd_open` (:issue:`38692`) " +"and :const:`os.P_PIDFD` (:issue:`38713`) for process management with file " +"descriptors." msgstr "" -"Se expusieron los :func:`os.pidfd_open` (:issue:`38692`) y :data:`os." -"P_PIDFD` (:issue:`38713`) específicos de Linux para la gestión de procesos " -"con descriptores de archivos." +"Se expusieron los :func:`os.pidfd_open` (:issue:`38692`) " +"y :const:`os.P_PIDFD` (:issue:`38713`) específicos de Linux para la gestión " +"de procesos con descriptores de archivos." #: ../Doc/whatsnew/3.9.rst:599 msgid "" @@ -1265,21 +1287,20 @@ msgid "" "an exit code. (Contributed by Victor Stinner in :issue:`40094`.)" msgstr "" "Función :func:`os.waitstatus_to_exitcode` agregada: convierte un estado de " -"espera en un código de salida. (Contribuido por Victor Stinner en :issue:" -"`40094`.)" +"espera en un código de salida. (Contribuido por Victor Stinner " +"en :issue:`40094`.)" #: ../Doc/whatsnew/3.9.rst:611 msgid "pathlib" msgstr "Pathlib" #: ../Doc/whatsnew/3.9.rst:613 -#, fuzzy msgid "" -"Added :meth:`pathlib.Path.readlink` which acts similarly to :func:`os." -"readlink`. (Contributed by Girts Folkmanis in :issue:`30618`)" +"Added :meth:`pathlib.Path.readlink` which acts similarly " +"to :func:`os.readlink`. (Contributed by Girts Folkmanis in :issue:`30618`)" msgstr "" -"Se agregó :meth:`pathlib.Path.readlink()` que actúa de manera similar a :" -"func:`os.readlink`. (Contribuido por Girts Folkmanis en :issue:`30618`)" +"Se agregó :meth:`pathlib.Path.readlink` que actúa de manera similar " +"a :func:`os.readlink`. (Aportado por Girts Folkmanis en :issue:`30618`)" #: ../Doc/whatsnew/3.9.rst:618 msgid "pdb" @@ -1298,17 +1319,16 @@ msgid "poplib" msgstr "poplib" #: ../Doc/whatsnew/3.9.rst:626 -#, fuzzy msgid "" -":class:`~poplib.POP3` and :class:`~poplib.POP3_SSL` now raise a :class:" -"`ValueError` if the given timeout for their constructor is zero to prevent " -"the creation of a non-blocking socket. (Contributed by Donghee Na in :issue:" -"`39259`.)" +":class:`~poplib.POP3` and :class:`~poplib.POP3_SSL` now raise " +"a :class:`ValueError` if the given timeout for their constructor is zero to " +"prevent the creation of a non-blocking socket. (Contributed by Donghee Na " +"in :issue:`39259`.)" msgstr "" -":class:`~poplib.POP3` y :class:`~poplib.POP3_SSL` ahora lanzan un :class:" -"`ValueError` si el tiempo de espera dado para su constructor es cero para " -"evitar la creación de un socket sin bloqueo. (Contribuido por Dong-hee Na " -"en :issue:`39259`.)" +":class:`~poplib.POP3` y :class:`~poplib.POP3_SSL` ahora generan " +"un :class:`ValueError` si el tiempo de espera dado para su constructor es " +"cero para evitar la creación de un socket sin bloqueo. (Aportado por Donghee " +"Na en :issue:`39259`.)" #: ../Doc/whatsnew/3.9.rst:631 msgid "pprint" @@ -1327,28 +1347,27 @@ msgid "pydoc" msgstr "Pydoc" #: ../Doc/whatsnew/3.9.rst:639 -#, fuzzy msgid "" "The documentation string is now shown not only for class, function, method " "etc, but for any object that has its own :attr:`~definition.__doc__` " "attribute. (Contributed by Serhiy Storchaka in :issue:`40257`.)" msgstr "" -"La cadena de documentación ahora se muestra no solo para la clase, función, " -"método, etc., sino para cualquier objeto que tenga su propio atributo " -"``__doc__``. (Contribuido por Serhiy Storchaka en :issue:`40257`.)" +"La cadena de documentación ahora se muestra no sólo para clases, funciones, " +"métodos, etc., sino para cualquier objeto que tenga su propio " +"atributo :attr:`~definition.__doc__`. (Aportado por Serhiy Storchaka " +"en :issue:`40257`.)" #: ../Doc/whatsnew/3.9.rst:645 msgid "random" msgstr "aleatorio" #: ../Doc/whatsnew/3.9.rst:647 -#, fuzzy msgid "" "Added a new :meth:`random.Random.randbytes` method: generate random bytes. " "(Contributed by Victor Stinner in :issue:`40286`.)" msgstr "" -"Se agregó un nuevo método :attr:`random.Random.randbytes`: generar bytes " -"aleatorios. (Contribuido por Victor Stinner en :issue:`40286`.)" +"Se agregó un nuevo método :meth:`random.Random.randbytes`: generar bytes " +"aleatorios. (Aportado por Victor Stinner en :issue:`40286`.)" #: ../Doc/whatsnew/3.9.rst:651 msgid "signal" @@ -1357,8 +1376,8 @@ msgstr "señal" #: ../Doc/whatsnew/3.9.rst:653 msgid "" "Exposed the Linux-specific :func:`signal.pidfd_send_signal` for sending to " -"signals to a process using a file descriptor instead of a pid. (:issue:" -"`38712`)" +"signals to a process using a file descriptor instead of a pid. " +"(:issue:`38712`)" msgstr "" "Expuso el :func:`signal.pidfd_send_signal` específico de Linux para enviar " "señales a un proceso utilizando un descriptor de archivo en lugar de un pid. " @@ -1369,59 +1388,55 @@ msgid "smtplib" msgstr "smtplib" #: ../Doc/whatsnew/3.9.rst:659 -#, fuzzy msgid "" -":class:`~smtplib.SMTP` and :class:`~smtplib.SMTP_SSL` now raise a :class:" -"`ValueError` if the given timeout for their constructor is zero to prevent " -"the creation of a non-blocking socket. (Contributed by Donghee Na in :issue:" -"`39259`.)" +":class:`~smtplib.SMTP` and :class:`~smtplib.SMTP_SSL` now raise " +"a :class:`ValueError` if the given timeout for their constructor is zero to " +"prevent the creation of a non-blocking socket. (Contributed by Donghee Na " +"in :issue:`39259`.)" msgstr "" -":class:`~smtplib.SMTP` y :class:`~smtplib.SMTP_SSL` ahora lanzan un :class:" -"`ValueError` si el tiempo de espera dado para su constructor es cero para " -"evitar la creación de un socket sin bloqueo. (Contribuido por Dong-hee Na " -"en :issue:`39259`.)" +":class:`~smtplib.SMTP` y :class:`~smtplib.SMTP_SSL` ahora generan " +"un :class:`ValueError` si el tiempo de espera dado para su constructor es " +"cero para evitar la creación de un socket sin bloqueo. (Aportado por Donghee " +"Na en :issue:`39259`.)" #: ../Doc/whatsnew/3.9.rst:663 -#, fuzzy msgid "" ":class:`~smtplib.LMTP` constructor now has an optional *timeout* parameter. " "(Contributed by Donghee Na in :issue:`39329`.)" msgstr "" "El constructor :class:`~smtplib.LMTP` ahora tiene un parámetro *timeout* " -"opcional. (Contribuido por Dong-hee Na en :issue:`39329`.)" +"opcional. (Aportado por Donghee Na en :issue:`39329`.)" #: ../Doc/whatsnew/3.9.rst:667 msgid "socket" msgstr "enchufe" #: ../Doc/whatsnew/3.9.rst:669 -#, fuzzy msgid "" -"The :mod:`socket` module now exports the :const:`~socket." -"CAN_RAW_JOIN_FILTERS` constant on Linux 4.1 and greater. (Contributed by " -"Stefan Tatschner and Zackery Spytz in :issue:`25780`.)" +"The :mod:`socket` module now exports " +"the :const:`~socket.CAN_RAW_JOIN_FILTERS` constant on Linux 4.1 and greater. " +"(Contributed by Stefan Tatschner and Zackery Spytz in :issue:`25780`.)" msgstr "" -"El módulo :mod:`socket` ahora exporta la constante :data:`~socket." -"CAN_RAW_JOIN_FILTERS` en Linux 4.1 y superior. (Contribuido por Stefan " -"Tatschner y Zackery Spytz en :issue:`25780`.)" +"El módulo :mod:`socket` ahora exporta la " +"constante :const:`~socket.CAN_RAW_JOIN_FILTERS` en Linux 4.1 y superior. " +"(Aportado por Stefan Tatschner y Zackery Spytz en :issue:`25780`.)" #: ../Doc/whatsnew/3.9.rst:673 -#, fuzzy msgid "" "The socket module now supports the :const:`~socket.CAN_J1939` protocol on " "platforms that support it. (Contributed by Karl Ding in :issue:`40291`.)" msgstr "" -"El módulo de socket ahora admite el protocolo :data:`~socket.CAN_J1939` en " -"plataformas que lo admiten. (Contribuido por Karl Ding en :issue:`40291`.)" +"El módulo de socket ahora admite el protocolo :const:`~socket.CAN_J1939` en " +"plataformas que lo admiten. (Aportado por Karl Ding en :issue:`40291`.)" #: ../Doc/whatsnew/3.9.rst:676 msgid "" -"The socket module now has the :func:`socket.send_fds` and :func:`socket." -"recv_fds` functions. (Contributed by Joannah Nanjekye, Shinya Okano and " -"Victor Stinner in :issue:`28724`.)" +"The socket module now has the :func:`socket.send_fds` " +"and :func:`socket.recv_fds` functions. (Contributed by Joannah Nanjekye, " +"Shinya Okano and Victor Stinner in :issue:`28724`.)" msgstr "" -"El módulo de enchufe ahora tiene las funciones :func:`socket.send_fds` y :" -"func:`socket.recv_fds`. (Contribuido por Joannah Nanjekye, Shinya Okano y " +"El módulo de enchufe ahora tiene las funciones :func:`socket.send_fds` " +"y :func:`socket.recv_fds`. (Contribuido por Joannah Nanjekye, Shinya Okano y " "Victor Stinner en :issue:`28724`.)" #: ../Doc/whatsnew/3.9.rst:682 @@ -1445,7 +1460,6 @@ msgid "sys" msgstr "sys" #: ../Doc/whatsnew/3.9.rst:692 -#, fuzzy msgid "" "Added a new :data:`sys.platlibdir` attribute: name of the platform-specific " "library directory. It is used to build the path of standard library and the " @@ -1454,24 +1468,23 @@ msgid "" "platforms. (Contributed by Jan Matějek, Matěj Cepl, Charalampos Stratakis " "and Victor Stinner in :issue:`1294959`.)" msgstr "" -"Se agregó un nuevo atributo :attr:`sys.platlibdir`: nombre del directorio de " +"Se agregó un nuevo atributo :data:`sys.platlibdir`: nombre del directorio de " "biblioteca específico de la plataforma. Se utiliza para construir la ruta de " "la biblioteca estándar y las rutas de los módulos de extensión instalados. " -"Es igual a ``\"lib\"`` en la mayoría de las plataformas. En Fedora y SuSE, " -"es igual a ``\"lib64\"`` en plataformas de 64 bits. (Contribuido por Jan " -"Matějek, Matěj Cepl, Charalampos Stratakis y Victor Stinner en :issue:" -"`1294959`.)" +"Es igual a ``\"lib\"`` en la mayoría de las plataformas. En Fedora y SuSE, " +"es igual a ``\"lib64\"`` en plataformas de 64 bits. (Aportado por Jan " +"Matějek, Matěj Cepl, Charalampos Stratakis y Victor Stinner " +"en :issue:`1294959`.)" #: ../Doc/whatsnew/3.9.rst:698 -#, fuzzy msgid "" "Previously, :data:`sys.stderr` was block-buffered when non-interactive. Now " "``stderr`` defaults to always being line-buffered. (Contributed by Jendrik " "Seipp in :issue:`13601`.)" msgstr "" -"Anteriormente, :attr:`sys.stderr` estaba bloqueado en búfer cuando no era " -"interactivo. Ahora ``stderr`` tiene como valor predeterminado que siempre " -"tenga búfer de línea. (Contribuido por Jendrik Seipp en :issue:`13601`.)" +"Anteriormente, :data:`sys.stderr` tenía un buffer de bloques cuando no era " +"interactivo. Ahora ``stderr`` tiene por defecto siempre un buffer de línea. " +"(Aportado por Jendrik Seipp en :issue:`13601`.)" #: ../Doc/whatsnew/3.9.rst:703 msgid "tracemalloc" @@ -1485,8 +1498,8 @@ msgid "" msgstr "" "Se agregó :func:`tracemalloc.reset_peak` para establecer el tamaño máximo de " "los bloques de memoria rastreados al tamaño actual, para medir el pico de " -"piezas de código específicas. (Contribuido por Huon Wilson en :issue:" -"`40630`.)" +"piezas de código específicas. (Contribuido por Huon Wilson " +"en :issue:`40630`.)" #: ../Doc/whatsnew/3.9.rst:710 ../Doc/whatsnew/3.9.rst:1494 msgid "typing" @@ -1513,8 +1526,8 @@ msgstr "unicodedata" msgid "" "The Unicode database has been updated to version 13.0.0. (:issue:`39926`)." msgstr "" -"La base de datos Unicode se ha actualizado a la versión 13.0.0. (:issue:" -"`39926`)." +"La base de datos Unicode se ha actualizado a la versión 13.0.0. " +"(:issue:`39926`)." #: ../Doc/whatsnew/3.9.rst:723 msgid "venv" @@ -1542,10 +1555,11 @@ msgstr "xml" #: ../Doc/whatsnew/3.9.rst:735 msgid "" -"White space characters within attributes are now preserved when serializing :" -"mod:`xml.etree.ElementTree` to XML file. EOLNs are no longer normalized to " -"\"\\n\". This is the result of discussion about how to interpret section " -"2.11 of XML spec. (Contributed by Mefistotelis in :issue:`39011`.)" +"White space characters within attributes are now preserved when " +"serializing :mod:`xml.etree.ElementTree` to XML file. EOLNs are no longer " +"normalized to \"\\n\". This is the result of discussion about how to " +"interpret section 2.11 of XML spec. (Contributed by Mefistotelis " +"in :issue:`39011`.)" msgstr "" "Los caracteres de espacio en blanco dentro de los atributos ahora se " "conservan al serializar :mod:`xml.etree.ElementTree` en un archivo XML. Los " @@ -1600,8 +1614,8 @@ msgstr "" #: ../Doc/whatsnew/3.9.rst:762 msgid "" "Previously, the bytecode evaluation loop was interrupted at each instruction " -"until the main thread handles signals. (Contributed by Victor Stinner in :" -"issue:`40010`.)" +"until the main thread handles signals. (Contributed by Victor Stinner " +"in :issue:`40010`.)" msgstr "" "Anteriormente, el ciclo de evaluación del código de bytes se interrumpía en " "cada instrucción hasta que el hilo principal manejaba las señales. " @@ -1627,28 +1641,28 @@ msgstr "" "en :issue:`37986`.)" #: ../Doc/whatsnew/3.9.rst:774 -#, fuzzy msgid "" -"A number of Python builtins (:class:`range`, :class:`tuple`, :class:`set`, :" -"class:`frozenset`, :class:`list`, :class:`dict`) are now sped up by using :" -"pep:`590` vectorcall protocol. (Contributed by Donghee Na, Mark Shannon, " -"Jeroen Demeyer and Petr Viktorin in :issue:`37207`.)" +"A number of Python builtins " +"(:class:`range`, :class:`tuple`, :class:`set`, :class:`frozenset`, :class:`list`, :class:`dict`) " +"are now sped up by using :pep:`590` vectorcall protocol. (Contributed by " +"Donghee Na, Mark Shannon, Jeroen Demeyer and Petr Viktorin " +"in :issue:`37207`.)" msgstr "" -"Varias incorporaciones de Python (:class:`range`, :class:`tuple`, :class:" -"`set`, :class:`frozenset`, :class:`list`, :class:`dict`) ahora se aceleran " -"mediante el protocolo de llamada vectorial :pep:`590`. (Contribuido por Dong-" -"hee Na, Mark Shannon, Jeroen Demeyer y Petr Viktorin en :issue:`37207`.)" +"Varias funciones integradas de Python " +"(:class:`range`, :class:`tuple`, :class:`set`, :class:`frozenset`, :class:`list`, :class:`dict`) " +"ahora se aceleran mediante el protocolo de llamada vectorial :pep:`590`. " +"(Contribución de Donghee Na, Mark Shannon, Jeroen Demeyer y Petr Viktorin " +"en :issue:`37207`)." #: ../Doc/whatsnew/3.9.rst:779 -#, fuzzy msgid "" "Optimized :meth:`!set.difference_update` for the case when the other set is " "much larger than the base set. (Suggested by Evgeny Kapun with code " "contributed by Michele Orrù in :issue:`8425`.)" msgstr "" -":func:`~set.difference_update` optimizado para el caso en el que el otro " +":meth:`!set.difference_update` optimizado para el caso en que el otro " "conjunto es mucho más grande que el conjunto base. (Sugerido por Evgeny " -"Kapun con código aportado por Michele Orrù en :issue:`8425`.)" +"Kapun con código aportado por Michele Orrù en :issue:`8425`)." #: ../Doc/whatsnew/3.9.rst:783 msgid "" @@ -1681,8 +1695,8 @@ msgid "" "15% faster. (Contributed by Inada Naoki in :issue:`37348`.)" msgstr "" "La decodificación de cadenas cortas ASCII con códecs UTF-8 y ascii ahora es " -"aproximadamente un 15% más rápida. (Contribuido por Inada Naoki en :issue:" -"`37348`.)" +"aproximadamente un 15% más rápida. (Contribuido por Inada Naoki " +"en :issue:`37348`.)" #: ../Doc/whatsnew/3.9.rst:796 msgid "" @@ -1767,25 +1781,66 @@ msgid "" " loop_overhead 0.5 0.6 0.4 0.3 0.3 " "0.3" msgstr "" +"Versión de Python 3.4 3.5 3.6 3.7 3.8 3.9\n" +"-------------- --- --- --- --- --- ---\n" +"\n" +"Acceso de lectura de variables y atributos:\n" +" lectura_local 7,1 7,1 5,4 5,1 3,9 3,9\n" +" lectura_no local 7,1 8,1 5,8 5,4 4,4 4,5\n" +" lectura_global 15,5 19,0 14,3 13,6 7,6 7,8\n" +" lectura_incorporada 21,1 21,6 18,5 19,0 7,5 7,8\n" +" read_classvar_from_class 25,6 26,5 20,7 19,5 18,4 17,9\n" +" read_classvar_from_instance 22,8 23,5 18,8 17,1 16,4 16,9\n" +" read_instancevar 32,4 33,1 28,0 26,3 25,4 25,3\n" +" read_instancevar_slots 27,8 31,3 20,8 20,8 20,2 20,5\n" +" read_namedtuple 73,8 57,5 45,0 46,8 18,4 18,7\n" +" método_encuadernado 37,6 37,9 29,6 26,9 27,7 41,1\n" +"\n" +"Acceso de escritura de variables y atributos:\n" +" escribir_local 8,7 9,3 5,5 5,3 4,3 4,3\n" +" escritura_no local 10,5 11,1 5,6 5,5 4,7 4,8\n" +" escribir_global 19,7 21,2 18,0 18,0 15,8 16,7\n" +" write_classvar 92,9 96,0 104,6 102,1 39,2 39,8\n" +" write_instancevar 44,6 45,8 40,0 38,9 35,5 37,4\n" +" write_instancevar_slots 35,6 36,1 27,3 26,6 25,7 25,8\n" +"\n" +"Acceso de lectura a la estructura de datos:\n" +" lista_lectura 24,2 24,5 20,8 20,8 19,0 19,5\n" +" lectura_deque 24,7 25,5 20,2 20,6 19,8 20,2\n" +" leer_dict 24,3 25,7 22,3 23,0 21,0 22,4\n" +" read_strdict 22,6 24,3 19,5 21,2 18,9 21,5\n" +"\n" +"Acceso de escritura a la estructura de datos:\n" +" lista_escritura 27,1 28,5 22,5 21,6 20,0 20,0\n" +" escribir_deque 28,7 30,1 22,7 21,8 23,5 21,7\n" +" escribir_dict 31,4 33,3 29,3 29,2 24,7 25,4\n" +" escribir_strdict 28,4 29,9 27,5 25,2 23,1 24,5\n" +"\n" +"Operaciones de pila (o cola):\n" +" lista_append_pop 93,4 112,7 75,4 74,2 50,8 50,6\n" +" deque_append_pop 43,5 57,0 49,4 49,2 42,5 44,2\n" +" deque_append_popleft 43,7 57,3 49,7 49,7 42,8 46,4\n" +"\n" +"Bucle de tiempo:\n" +" loop_overhead 0,5 0,6 0,4 0,3 0,3 0,3" #: ../Doc/whatsnew/3.9.rst:843 -#, fuzzy msgid "" "These results were generated from the variable access benchmark script at: " "``Tools/scripts/var_access_benchmark.py``. The benchmark script displays " "timings in nanoseconds. The benchmarks were measured on an `Intel® Core™ " -"i7-4960HQ processor `_ running the macOS 64-bit builds found at `python.org `_." +"i7-4960HQ processor `_ running " +"the macOS 64-bit builds found at `python.org `_." msgstr "" "Estos resultados se generaron a partir del script de referencia de acceso " "variable en: ``Tools/scripts/var_access_benchmark.py``. El script de " -"referencia muestra tiempos en nanosegundos. Los puntos de referencia se " +"referencia muestra tiempos en nanosegundos. Los puntos de referencia se " "midieron en un `Intel® Core™ i7-4960HQ processor `_ que ejecuta las compilaciones de macOS de 64 bits que " -"se encuentran en `python.org `_." +"se encuentran en `python.org `_." #: ../Doc/whatsnew/3.9.rst:853 msgid "Deprecated" @@ -1794,12 +1849,12 @@ msgstr "Obsoleto" #: ../Doc/whatsnew/3.9.rst:855 msgid "" "The distutils ``bdist_msi`` command is now deprecated, use ``bdist_wheel`` " -"(wheel packages) instead. (Contributed by Hugo van Kemenade in :issue:" -"`39586`.)" +"(wheel packages) instead. (Contributed by Hugo van Kemenade " +"in :issue:`39586`.)" msgstr "" "El comando distutils ``bdist_msi`` ahora está en desuso, use ``bdist_wheel`` " -"(paquetes de ruedas) en su lugar. (Contribuido por Hugo van Kemenade en :" -"issue:`39586`.)" +"(paquetes de ruedas) en su lugar. (Contribuido por Hugo van Kemenade " +"en :issue:`39586`.)" #: ../Doc/whatsnew/3.9.rst:859 msgid "" @@ -1816,31 +1871,30 @@ msgstr "" "(Contribuido por Serhiy Storchaka en :issue:`37315`.)" #: ../Doc/whatsnew/3.9.rst:865 -#, fuzzy msgid "" "The :mod:`!parser` and :mod:`!symbol` modules are deprecated and will be " "removed in future versions of Python. For the majority of use cases, users " "can leverage the Abstract Syntax Tree (AST) generation and compilation " "stage, using the :mod:`ast` module." msgstr "" -"Los módulos :mod:`parser` y :mod:`symbol` están obsoletos y se eliminarán en " -"futuras versiones de Python. Para la mayoría de los casos de uso, los " +"Los módulos :mod:`!parser` y :mod:`!symbol` están en desuso y se eliminarán " +"en futuras versiones de Python. Para la mayoría de los casos de uso, los " "usuarios pueden aprovechar la etapa de generación y compilación del árbol de " "sintaxis abstracta (AST), utilizando el módulo :mod:`ast`." #: ../Doc/whatsnew/3.9.rst:870 -#, fuzzy msgid "" -"The Public C API functions :c:func:`!PyParser_SimpleParseStringFlags`, :c:" -"func:`!PyParser_SimpleParseStringFlagsFilename`, :c:func:`!" +"The Public C API functions :c:func:`!" +"PyParser_SimpleParseStringFlags`, :c:func:`!" +"PyParser_SimpleParseStringFlagsFilename`, :c:func:`!" "PyParser_SimpleParseFileFlags` and :c:func:`!PyNode_Compile` are deprecated " "and will be removed in Python 3.10 together with the old parser." msgstr "" -"Las funciones de la API pública de C :c:func:" -"`PyParser_SimpleParseStringFlags`, :c:func:" -"`PyParser_SimpleParseStringFlagsFilename`, :c:func:" -"`PyParser_SimpleParseFileFlags` y :c:func:`PyNode_Compile` están en desuso y " -"se eliminarán en Python 3.10 junto con el analizador anterior." +"Las funciones de la API pública de C :c:func:`!" +"PyParser_SimpleParseStringFlags`, :c:func:`!" +"PyParser_SimpleParseStringFlagsFilename`, :c:func:`!" +"PyParser_SimpleParseFileFlags` y :c:func:`!PyNode_Compile` están obsoletas y " +"se eliminarán en Python 3.10 junto con el analizador antiguo." #: ../Doc/whatsnew/3.9.rst:875 msgid "" @@ -1859,22 +1913,24 @@ msgid "" "The :mod:`random` module currently accepts any hashable type as a possible " "seed value. Unfortunately, some of those types are not guaranteed to have a " "deterministic hash value. After Python 3.9, the module will restrict its " -"seeds to :const:`None`, :class:`int`, :class:`float`, :class:`str`, :class:" -"`bytes`, and :class:`bytearray`." +"seeds " +"to :const:`None`, :class:`int`, :class:`float`, :class:`str`, :class:`bytes`, " +"and :class:`bytearray`." msgstr "" "El módulo :mod:`random` actualmente acepta cualquier tipo hash como posible " "valor semilla. Desafortunadamente, no se garantiza que algunos de esos tipos " "tengan un valor hash determinista. Después de Python 3.9, el módulo " -"restringirá sus semillas a :const:`None`, :class:`int`, :class:`float`, :" -"class:`str`, :class:`bytes` y :class:`bytearray`." +"restringirá sus semillas " +"a :const:`None`, :class:`int`, :class:`float`, :class:`str`, :class:`bytes` " +"y :class:`bytearray`." #: ../Doc/whatsnew/3.9.rst:887 msgid "" "Opening the :class:`~gzip.GzipFile` file for writing without specifying the " "*mode* argument is deprecated. In future Python versions it will always be " "opened for reading by default. Specify the *mode* argument for opening it " -"for writing and silencing a warning. (Contributed by Serhiy Storchaka in :" -"issue:`28286`.)" +"for writing and silencing a warning. (Contributed by Serhiy Storchaka " +"in :issue:`28286`.)" msgstr "" "Abrir el archivo :class:`~gzip.GzipFile` para escritura sin especificar el " "argumento *mode* argument is deprecated. In future Python versions it will " @@ -1883,15 +1939,14 @@ msgstr "" "en :issue:`28286`.)" #: ../Doc/whatsnew/3.9.rst:893 -#, fuzzy msgid "" "Deprecated the ``split()`` method of :class:`!_tkinter.TkappType` in favour " "of the ``splitlist()`` method which has more consistent and predictable " "behavior. (Contributed by Serhiy Storchaka in :issue:`38371`.)" msgstr "" -"En desuso del método ``split ()`` de :class:`_tkinter.TkappType` en favor " -"del método ``splitlist()`` que tiene un comportamiento más consistente y " -"predecible. (Contribuido por Serhiy Storchaka en :issue:`38371`.)" +"Se desaprobó el método ``split()`` de :class:`!_tkinter.TkappType` en favor " +"del método ``splitlist()``, que tiene un comportamiento más consistente y " +"predecible. (Aportado por Serhiy Storchaka en :issue:`38371`.)" #: ../Doc/whatsnew/3.9.rst:898 msgid "" @@ -1904,23 +1959,20 @@ msgstr "" "y Kyle Stanley en :issue:`34790`.)" #: ../Doc/whatsnew/3.9.rst:902 -#, fuzzy msgid "" "binhex4 and hexbin4 standards are now deprecated. The :mod:`!binhex` module " "and the following :mod:`binascii` functions are now deprecated:" msgstr "" -"Los estándares binhex4 y hexbin4 ahora están en desuso. El módulo :mod:" -"`binhex` y las siguientes funciones :mod:`binascii` ahora están en desuso:" +"Los estándares binhex4 y hexbin4 ahora están en desuso. El módulo :mod:`!" +"binhex` y las siguientes funciones :mod:`binascii` ahora están en desuso:" #: ../Doc/whatsnew/3.9.rst:905 -#, fuzzy msgid ":func:`!b2a_hqx`, :func:`!a2b_hqx`" -msgstr ":func:`~binascii.b2a_hqx`, :func:`~binascii.a2b_hqx`" +msgstr ":func:`!b2a_hqx`, :func:`!a2b_hqx`" #: ../Doc/whatsnew/3.9.rst:906 -#, fuzzy msgid ":func:`!rlecode_hqx`, :func:`!rledecode_hqx`" -msgstr ":func:`~binascii.rlecode_hqx`, :func:`~binascii.rledecode_hqx`" +msgstr ":func:`!rlecode_hqx`, :func:`!rledecode_hqx`" #: ../Doc/whatsnew/3.9.rst:908 msgid "(Contributed by Victor Stinner in :issue:`39353`.)" @@ -1945,29 +1997,28 @@ msgid "" ":mod:`ast` classes ``Suite``, ``Param``, ``AugLoad`` and ``AugStore`` are " "considered deprecated and will be removed in future Python versions. They " "were not generated by the parser and not accepted by the code generator in " -"Python 3. (Contributed by Batuhan Taskaya in :issue:`39639` and :issue:" -"`39969` and Serhiy Storchaka in :issue:`39988`.)" +"Python 3. (Contributed by Batuhan Taskaya in :issue:`39639` " +"and :issue:`39969` and Serhiy Storchaka in :issue:`39988`.)" msgstr "" "Las clases :mod:`ast` ``Suite``, ``Param``, ``AugLoad`` y ``AugStore`` se " "consideran obsoletas y se eliminarán en futuras versiones de Python. No " "fueron generados por el analizador y no aceptados por el generador de código " -"en Python 3. (Contribuido por Batuhan Taskaya en :issue:`39639` y :issue:" -"`39969` y Serhiy Storchaka en :issue:`39988`)." +"en Python 3. (Contribuido por Batuhan Taskaya en :issue:`39639` " +"y :issue:`39969` y Serhiy Storchaka en :issue:`39988`)." #: ../Doc/whatsnew/3.9.rst:923 -#, fuzzy msgid "" "The :c:func:`!PyEval_InitThreads` and :c:func:`!PyEval_ThreadsInitialized` " -"functions are now deprecated and will be removed in Python 3.11. Calling :c:" -"func:`!PyEval_InitThreads` now does nothing. The :term:`GIL` is initialized " -"by :c:func:`Py_Initialize` since Python 3.7. (Contributed by Victor Stinner " -"in :issue:`39877`.)" +"functions are now deprecated and will be removed in Python 3.11. " +"Calling :c:func:`!PyEval_InitThreads` now does nothing. The :term:`GIL` is " +"initialized by :c:func:`Py_Initialize` since Python 3.7. (Contributed by " +"Victor Stinner in :issue:`39877`.)" msgstr "" -"Las funciones :c:func:`PyEval_InitThreads` y :c:func:" -"`PyEval_ThreadsInitialized` ahora están en desuso y se eliminarán en Python " -"3.11. Llamar a :c:func:`PyEval_InitThreads` ahora no hace nada. :term:`GIL` " -"es inicializado por :c:func:`Py_Initialize()` desde Python 3.7. (Contribuido " -"por Victor Stinner en :issue:`39877`.)" +"Las funciones :c:func:`!PyEval_InitThreads` y :c:func:`!" +"PyEval_ThreadsInitialized` ahora están obsoletas y se eliminarán en Python " +"3.11. Llamar a :c:func:`!PyEval_InitThreads` ahora no hace nada. " +"El :term:`GIL` se inicializa mediante :c:func:`Py_Initialize` desde Python " +"3.7. (Aportado por Victor Stinner en :issue:`39877`.)" #: ../Doc/whatsnew/3.9.rst:929 msgid "" @@ -1978,18 +2029,16 @@ msgstr "" "quedado obsoleto. (Contribuido por Zackery Spytz en :issue:`33262`.)" #: ../Doc/whatsnew/3.9.rst:932 -#, fuzzy msgid "" ":func:`!smtpd.MailmanProxy` is now deprecated as it is unusable without an " -"external module, ``mailman``. (Contributed by Samuel Colvin in :issue:" -"`35800`.)" +"external module, ``mailman``. (Contributed by Samuel Colvin " +"in :issue:`35800`.)" msgstr "" -":func:`smtpd.MailmanProxy` ahora está en desuso porque no se puede utilizar " -"sin un módulo externo, ``mailman``. (Contribuido por Samuel Colvin en :issue:" -"`35800`.)" +":func:`!smtpd.MailmanProxy` ahora está en desuso porque no se puede utilizar " +"sin un módulo externo, ``mailman``. (Aportado por Samuel Colvin " +"en :issue:`35800`.)" #: ../Doc/whatsnew/3.9.rst:935 -#, fuzzy msgid "" "The :mod:`!lib2to3` module now emits a :exc:`PendingDeprecationWarning`. " "Python 3.9 switched to a PEG parser (see :pep:`617`), and Python 3.10 may " @@ -1998,13 +2047,13 @@ msgid "" "future Python version. Consider third-party alternatives such as `LibCST`_ " "or `parso`_. (Contributed by Carl Meyer in :issue:`40360`.)" msgstr "" -"El módulo :mod:`lib2to3` ahora emite un :exc:`PendingDeprecationWarning`. " -"Python 3.9 cambió a un analizador PEG (consulte :pep:`617`), y Python 3.10 " -"puede incluir una nueva sintaxis de lenguaje que no es analizable por el " -"analizador LL (1) de lib2to3. El módulo ``lib2to3`` puede eliminarse de la " -"biblioteca estándar en una versión futura de Python. Considere alternativas " -"de terceros como `LibCST`_ o `parso`_. (Contribuido por Carl Meyer en :issue:" -"`40360`.)" +"El módulo :mod:`!lib2to3` ahora emite un :exc:`PendingDeprecationWarning`. " +"Python 3.9 cambió a un analizador PEG (ver :pep:`617`), y Python 3.10 puede " +"incluir una nueva sintaxis de lenguaje que no es analizable por el " +"analizador LL(1) de lib2to3. Es posible que el módulo :mod:`!lib2to3` se " +"elimine de la biblioteca estándar en una versión futura de Python. Considere " +"alternativas de terceros como `LibCST`_ o `parso`_. (Aportado por Carl Meyer " +"en :issue:`40360`.)" #: ../Doc/whatsnew/3.9.rst:943 msgid "" @@ -2019,28 +2068,26 @@ msgid "Removed" msgstr "Remoto" #: ../Doc/whatsnew/3.9.rst:954 -#, fuzzy msgid "" "The erroneous version at :data:`!unittest.mock.__version__` has been removed." msgstr "" -"Se ha eliminado la versión errónea en :data:`unittest.mock.__version__`." +"Se ha eliminado la versión errónea en :data:`!unittest.mock.__version__`." #: ../Doc/whatsnew/3.9.rst:956 -#, fuzzy msgid "" ":class:`!nntplib.NNTP`: ``xpath()`` and ``xgtitle()`` methods have been " "removed. These methods are deprecated since Python 3.3. Generally, these " "extensions are not supported or not enabled by NNTP server administrators. " "For ``xgtitle()``, please use :meth:`!nntplib.NNTP.descriptions` or :meth:`!" -"nntplib.NNTP.description` instead. (Contributed by Donghee Na in :issue:" -"`39366`.)" +"nntplib.NNTP.description` instead. (Contributed by Donghee Na " +"in :issue:`39366`.)" msgstr "" -":class:`nntplib.NNTP`: Se han eliminado los métodos ``xpath()`` y " -"``xgtitle()``. Estos métodos están obsoletos desde Python 3.3. Generalmente, " +":class:`!nntplib.NNTP`: se han eliminado los métodos ``xpath()`` y " +"``xgtitle()``. Estos métodos están en desuso desde Python 3.3. Generalmente, " "estas extensiones no son compatibles o no están habilitadas por los " -"administradores del servidor NNTP. Para ``xgtitle()``, utilice :meth:" -"`nntplib.NNTP.descriptions` o :meth:`nntplib.NNTP.description` en su lugar. " -"(Contribuido por Dong-hee Na en :issue:`39366`.)" +"administradores del servidor NNTP. Para ``xgtitle()``, utilice :meth:`!" +"nntplib.NNTP.descriptions` o :meth:`!nntplib.NNTP.description` en su lugar. " +"(Aportado por Donghee Na en :issue:`39366`.)" #: ../Doc/whatsnew/3.9.rst:963 msgid "" @@ -2067,14 +2114,14 @@ msgstr "" #: ../Doc/whatsnew/3.9.rst:973 msgid "" "The ``sys.getcheckinterval()`` and ``sys.setcheckinterval()`` functions have " -"been removed. They were deprecated since Python 3.2. Use :func:`sys." -"getswitchinterval` and :func:`sys.setswitchinterval` instead. (Contributed " -"by Victor Stinner in :issue:`37392`.)" +"been removed. They were deprecated since Python 3.2. " +"Use :func:`sys.getswitchinterval` and :func:`sys.setswitchinterval` instead. " +"(Contributed by Victor Stinner in :issue:`37392`.)" msgstr "" -"Se han eliminado las funciones ``sys.getcheckinterval()`` y ``sys." -"setcheckinterval()``. Fueron obsoletos desde Python 3.2. Utilice :func:`sys." -"getswitchinterval` y :func:`sys.setswitchinterval` en su lugar. (Contribuido " -"por Victor Stinner en :issue:`37392`.)" +"Se han eliminado las funciones ``sys.getcheckinterval()`` y " +"``sys.setcheckinterval()``. Fueron obsoletos desde Python 3.2. " +"Utilice :func:`sys.getswitchinterval` y :func:`sys.setswitchinterval` en su " +"lugar. (Contribuido por Victor Stinner en :issue:`37392`.)" #: ../Doc/whatsnew/3.9.rst:978 msgid "" @@ -2097,57 +2144,58 @@ msgstr "" "subprocesos. (Contribuido por Victor Stinner en :issue:`37312`.)" #: ../Doc/whatsnew/3.9.rst:986 -#, fuzzy msgid "" "``aifc.openfp()`` alias to ``aifc.open()``, ``sunau.openfp()`` alias to " "``sunau.open()``, and ``wave.openfp()`` alias to :func:`wave.open` have been " "removed. They were deprecated since Python 3.7. (Contributed by Victor " "Stinner in :issue:`37320`.)" msgstr "" -"Se han eliminado el alias de ``aifc.openfp()`` a ``aifc.open()``, el alias " -"de ``sunau.openfp()`` a ``sunau.open()`` y el alias de ``wave.openfp()`` a :" -"func:`wave.open()`. Fueron obsoletos desde Python 3.7. (Contribuido por " +"Se han eliminado el alias ``aifc.openfp()`` a ``aifc.open()``, el alias " +"``sunau.openfp()`` a ``sunau.open()`` y el alias ``wave.openfp()`` " +"a :func:`wave.open`. Quedaron en desuso desde Python 3.7. (Aportado por " "Victor Stinner en :issue:`37320`.)" #: ../Doc/whatsnew/3.9.rst:991 -#, fuzzy msgid "" "The :meth:`!isAlive` method of :class:`threading.Thread` has been removed. " "It was deprecated since Python 3.8. Use :meth:`~threading.Thread.is_alive` " "instead. (Contributed by Donghee Na in :issue:`37804`.)" msgstr "" -"Se ha eliminado el método :meth:`~threading.Thread.isAlive()` de :class:" -"`threading.Thread`. Quedó en desuso desde Python 3.8. Utilice :meth:" -"`~threading.Thread.is_alive()` en su lugar. (Contribuido por Dong-hee Na en :" -"issue:`37804`.)" +"Se eliminó el método :meth:`!isAlive` de :class:`threading.Thread`. Estaba " +"en desuso desde Python 3.8. Utilice :meth:`~threading.Thread.is_alive` en su " +"lugar. (Aportado por Donghee Na en :issue:`37804`.)" #: ../Doc/whatsnew/3.9.rst:996 msgid "" -"Methods ``getchildren()`` and ``getiterator()`` of classes :class:`~xml." -"etree.ElementTree.ElementTree` and :class:`~xml.etree.ElementTree.Element` " -"in the :mod:`~xml.etree.ElementTree` module have been removed. They were " -"deprecated in Python 3.2. Use ``iter(x)`` or ``list(x)`` instead of ``x." -"getchildren()`` and ``x.iter()`` or ``list(x.iter())`` instead of ``x." -"getiterator()``. (Contributed by Serhiy Storchaka in :issue:`36543`.)" +"Methods ``getchildren()`` and ``getiterator()`` of " +"classes :class:`~xml.etree.ElementTree.ElementTree` " +"and :class:`~xml.etree.ElementTree.Element` in " +"the :mod:`~xml.etree.ElementTree` module have been removed. They were " +"deprecated in Python 3.2. Use ``iter(x)`` or ``list(x)`` instead of " +"``x.getchildren()`` and ``x.iter()`` or ``list(x.iter())`` instead of " +"``x.getiterator()``. (Contributed by Serhiy Storchaka in :issue:`36543`.)" msgstr "" "Se han eliminado los métodos ``getchildren()`` y ``getiterator()`` de las " -"clases :class:`~xml.etree.ElementTree.ElementTree` y :class:`~xml.etree." -"ElementTree.Element` en el módulo :mod:`~xml.etree.ElementTree`. Fueron " -"obsoletos en Python 3.2. Utilice ``iter(x)`` o ``list(x)`` en lugar de ``x." -"getchildren()`` y ``x.iter()`` o ``list(x.iter())`` en lugar de ``x." -"getiterator()``. (Contribuido por Serhiy Storchaka en :issue:`36543`.)" +"clases :class:`~xml.etree.ElementTree.ElementTree` " +"y :class:`~xml.etree.ElementTree.Element` en el " +"módulo :mod:`~xml.etree.ElementTree`. Fueron obsoletos en Python 3.2. " +"Utilice ``iter(x)`` o ``list(x)`` en lugar de ``x.getchildren()`` y " +"``x.iter()`` o ``list(x.iter())`` en lugar de ``x.getiterator()``. " +"(Contribuido por Serhiy Storchaka en :issue:`36543`.)" #: ../Doc/whatsnew/3.9.rst:1004 msgid "" "The old :mod:`plistlib` API has been removed, it was deprecated since Python " -"3.4. Use the :func:`~plistlib.load`, :func:`~plistlib.loads`, :func:" -"`~plistlib.dump`, and :func:`~plistlib.dumps` functions. Additionally, the " -"*use_builtin_types* parameter was removed, standard :class:`bytes` objects " -"are always used instead. (Contributed by Jon Janzen in :issue:`36409`.)" +"3.4. Use " +"the :func:`~plistlib.load`, :func:`~plistlib.loads`, :func:`~plistlib.dump`, " +"and :func:`~plistlib.dumps` functions. Additionally, the *use_builtin_types* " +"parameter was removed, standard :class:`bytes` objects are always used " +"instead. (Contributed by Jon Janzen in :issue:`36409`.)" msgstr "" "Se eliminó la antigua API :mod:`plistlib`, quedó en desuso desde Python 3.4. " -"Utilice las funciones :func:`~plistlib.load`, :func:`~plistlib.loads`, :func:" -"`~plistlib.dump` y :func:`~plistlib.dumps`. Además, se eliminó el parámetro " +"Utilice las " +"funciones :func:`~plistlib.load`, :func:`~plistlib.loads`, :func:`~plistlib.dump` " +"y :func:`~plistlib.dumps`. Además, se eliminó el parámetro " "*use_builtin_types*; en su lugar, siempre se utilizan objetos :class:`bytes` " "estándar. (Contribuido por Jon Janzen en :issue:`36409`.)" @@ -2166,14 +2214,14 @@ msgstr "" #: ../Doc/whatsnew/3.9.rst:1015 msgid "" "``base64.encodestring()`` and ``base64.decodestring()``, aliases deprecated " -"since Python 3.1, have been removed: use :func:`base64.encodebytes` and :" -"func:`base64.decodebytes` instead. (Contributed by Victor Stinner in :issue:" -"`39351`.)" +"since Python 3.1, have been removed: use :func:`base64.encodebytes` " +"and :func:`base64.decodebytes` instead. (Contributed by Victor Stinner " +"in :issue:`39351`.)" msgstr "" "``base64.encodestring()`` y ``base64.decodestring()``, los alias obsoletos " -"desde Python 3.1, se han eliminado: utilice :func:`base64.encodebytes` y :" -"func:`base64.decodebytes` en su lugar. (Contribuido por Victor Stinner en :" -"issue:`39351`.)" +"desde Python 3.1, se han eliminado: utilice :func:`base64.encodebytes` " +"y :func:`base64.decodebytes` en su lugar. (Contribuido por Victor Stinner " +"en :issue:`39351`.)" #: ../Doc/whatsnew/3.9.rst:1020 msgid "" @@ -2200,14 +2248,14 @@ msgstr "" #: ../Doc/whatsnew/3.9.rst:1029 msgid "" "The *encoding* parameter of :func:`json.loads` has been removed. As of " -"Python 3.1, it was deprecated and ignored; using it has emitted a :exc:" -"`DeprecationWarning` since Python 3.8. (Contributed by Inada Naoki in :issue:" -"`39377`)" +"Python 3.1, it was deprecated and ignored; using it has emitted " +"a :exc:`DeprecationWarning` since Python 3.8. (Contributed by Inada Naoki " +"in :issue:`39377`)" msgstr "" "Se ha eliminado el parámetro *encoding* de :func:`json.loads`. A partir de " -"Python 3.1, fue obsoleto e ignorado; su uso ha emitido un :exc:" -"`DeprecationWarning` desde Python 3.8. (Contribuido por Inada Naoki en :" -"issue:`39377`)" +"Python 3.1, fue obsoleto e ignorado; su uso ha emitido " +"un :exc:`DeprecationWarning` desde Python 3.8. (Contribuido por Inada Naoki " +"en :issue:`39377`)" #: ../Doc/whatsnew/3.9.rst:1034 msgid "" @@ -2218,59 +2266,56 @@ msgid "" msgstr "" "Las declaraciones ``with (await asyncio.lock):`` y ``with (yield from " "asyncio.lock):`` ya no son compatibles, utilice ``async with lock`` en su " -"lugar. Lo mismo es correcto para ``asyncio.Condition`` y ``asyncio." -"Semaphore``. (Contribuido por Andrew Svetlov en :issue:`34793`.)" +"lugar. Lo mismo es correcto para ``asyncio.Condition`` y " +"``asyncio.Semaphore``. (Contribuido por Andrew Svetlov en :issue:`34793`.)" #: ../Doc/whatsnew/3.9.rst:1039 -#, fuzzy msgid "" "The :func:`!sys.getcounts` function, the ``-X showalloccount`` command line " -"option and the ``show_alloc_count`` field of the C structure :c:type:" -"`PyConfig` have been removed. They required a special Python build by " -"defining ``COUNT_ALLOCS`` macro. (Contributed by Victor Stinner in :issue:" -"`39489`.)" +"option and the ``show_alloc_count`` field of the C " +"structure :c:type:`PyConfig` have been removed. They required a special " +"Python build by defining ``COUNT_ALLOCS`` macro. (Contributed by Victor " +"Stinner in :issue:`39489`.)" msgstr "" -"Se han eliminado la función :func:`sys.getcounts`, la opción de línea de " +"Se han eliminado la función :func:`!sys.getcounts`, la opción de línea de " "comando ``-X showalloccount`` y el campo ``show_alloc_count`` de la " -"estructura C :c:type:`PyConfig`. Necesitaban una compilación especial de " -"Python definiendo la macro ``COUNT_ALLOCS``. (Contribuido por Victor Stinner " +"estructura C :c:type:`PyConfig`. Requerían una compilación especial de " +"Python definiendo la macro ``COUNT_ALLOCS``. (Aportado por Victor Stinner " "en :issue:`39489`.)" #: ../Doc/whatsnew/3.9.rst:1045 msgid "" "The ``_field_types`` attribute of the :class:`typing.NamedTuple` class has " "been removed. It was deprecated since Python 3.8. Use the " -"``__annotations__`` attribute instead. (Contributed by Serhiy Storchaka in :" -"issue:`40182`.)" +"``__annotations__`` attribute instead. (Contributed by Serhiy Storchaka " +"in :issue:`40182`.)" msgstr "" -"Se ha eliminado el atributo ``_field_types`` de la clase :class:`typing." -"NamedTuple`. Quedó en desuso desde Python 3.8. En su lugar, utilice el " -"atributo ``__annotations__``. (Contribuido por Serhiy Storchaka en :issue:" -"`40182`.)" +"Se ha eliminado el atributo ``_field_types`` de la " +"clase :class:`typing.NamedTuple`. Quedó en desuso desde Python 3.8. En su " +"lugar, utilice el atributo ``__annotations__``. (Contribuido por Serhiy " +"Storchaka en :issue:`40182`.)" #: ../Doc/whatsnew/3.9.rst:1050 -#, fuzzy msgid "" "The :meth:`!symtable.SymbolTable.has_exec` method has been removed. It was " "deprecated since 2006, and only returning ``False`` when it's called. " "(Contributed by Batuhan Taskaya in :issue:`40208`)" msgstr "" -"Se ha eliminado el método :meth:`symtable.SymbolTable.has_exec`. Quedó en " -"desuso desde 2006 y solo devuelve ``False`` cuando se llama. (Contribuido " -"por Batuhan Taskaya en :issue:`40208`)" +"Se ha eliminado el método :meth:`!symtable.SymbolTable.has_exec`. Quedó " +"obsoleto desde 2006 y solo devuelve ``False`` cuando se llama. (Aportado por " +"Batuhan Taskaya en :issue:`40208`)" #: ../Doc/whatsnew/3.9.rst:1054 -#, fuzzy msgid "" "The :meth:`!asyncio.Task.current_task` and :meth:`!asyncio.Task.all_tasks` " -"have been removed. They were deprecated since Python 3.7 and you can use :" -"func:`asyncio.current_task` and :func:`asyncio.all_tasks` instead. " +"have been removed. They were deprecated since Python 3.7 and you can " +"use :func:`asyncio.current_task` and :func:`asyncio.all_tasks` instead. " "(Contributed by Rémi Lapeyre in :issue:`40967`)" msgstr "" -"Se han eliminado :meth:`asyncio.Task.current_task` y :meth:`asyncio.Task." -"all_tasks`. Fueron obsoletos desde Python 3.7 y puede usar :func:`asyncio." -"current_task` y :func:`asyncio.all_tasks` en su lugar. (Contribución de Rémi " -"Lapeyre en :issue:`40967`)" +"Se han eliminado :meth:`!asyncio.Task.current_task` y :meth:`!" +"asyncio.Task.all_tasks`. Quedaron obsoletos desde Python 3.7 y puedes " +"usar :func:`asyncio.current_task` y :func:`asyncio.all_tasks` en su lugar. " +"(Aportado por Rémi Lapeyre en :issue:`40967`)" #: ../Doc/whatsnew/3.9.rst:1059 msgid "" @@ -2302,16 +2347,17 @@ msgstr "Cambios en la API de Python" #: ../Doc/whatsnew/3.9.rst:1075 msgid "" -":func:`__import__` and :func:`importlib.util.resolve_name` now raise :exc:" -"`ImportError` where it previously raised :exc:`ValueError`. Callers catching " -"the specific exception type and supporting both Python 3.9 and earlier " -"versions will need to catch both using ``except (ImportError, ValueError):``." +":func:`__import__` and :func:`importlib.util.resolve_name` now " +"raise :exc:`ImportError` where it previously raised :exc:`ValueError`. " +"Callers catching the specific exception type and supporting both Python 3.9 " +"and earlier versions will need to catch both using ``except (ImportError, " +"ValueError):``." msgstr "" -":func:`__import__` y :func:`importlib.util.resolve_name` ahora lanzan :exc:" -"`ImportError` donde anteriormente lanzaban :exc:`ValueError`. Las personas " -"que llaman que detectan el tipo de excepción específico y son compatibles " -"con Python 3.9 y versiones anteriores deberán detectar ambas usando ``except " -"(ImportError, ValueError):``." +":func:`__import__` y :func:`importlib.util.resolve_name` ahora " +"lanzan :exc:`ImportError` donde anteriormente lanzaban :exc:`ValueError`. " +"Las personas que llaman que detectan el tipo de excepción específico y son " +"compatibles con Python 3.9 y versiones anteriores deberán detectar ambas " +"usando ``except (ImportError, ValueError):``." #: ../Doc/whatsnew/3.9.rst:1080 msgid "" @@ -2322,13 +2368,13 @@ msgstr "" "``__VENV_PROMPT__`` se establece en ``\"\"``." #: ../Doc/whatsnew/3.9.rst:1083 -#, fuzzy msgid "" -"The :meth:`select.epoll.unregister` method no longer ignores the :const:" -"`~errno.EBADF` error. (Contributed by Victor Stinner in :issue:`39239`.)" +"The :meth:`select.epoll.unregister` method no longer ignores " +"the :const:`~errno.EBADF` error. (Contributed by Victor Stinner " +"in :issue:`39239`.)" msgstr "" -"El método :meth:`select.epoll.unregister` ya no ignora el error :data:" -"`~errno.EBADF`. (Contribuido por Victor Stinner en :issue:`39239`.)" +"El método :meth:`select.epoll.unregister` ya no ignora el " +"error :const:`~errno.EBADF`. (Aportado por Victor Stinner en :issue:`39239`.)" #: ../Doc/whatsnew/3.9.rst:1087 msgid "" @@ -2350,8 +2396,8 @@ msgstr "" "AST simplificado para suscripción. Los índices simples se representarán por " "su valor, los segmentos extendidos se representarán como tuplas. " "``Index(value)`` devolverá un ``value`` en sí mismo, ``ExtSlice(slices)`` " -"devolverá ``Tuple(slices, Load())``. (Contribuido por Serhiy Storchaka en :" -"issue:`34822`.)" +"devolverá ``Tuple(slices, Load())``. (Contribuido por Serhiy Storchaka " +"en :issue:`34822`.)" #: ../Doc/whatsnew/3.9.rst:1097 msgid "" @@ -2359,9 +2405,9 @@ msgid "" "environment variable when the :option:`-E` or :option:`-I` command line " "options are being used." msgstr "" -"El módulo :mod:`importlib` ahora ignora la variable de entorno :envvar:" -"`PYTHONCASEOK` cuando se utilizan las opciones de línea de comando :option:`-" -"E` o :option:`-I`." +"El módulo :mod:`importlib` ahora ignora la variable de " +"entorno :envvar:`PYTHONCASEOK` cuando se utilizan las opciones de línea de " +"comando :option:`-E` o :option:`-I`." #: ../Doc/whatsnew/3.9.rst:1101 msgid "" @@ -2369,21 +2415,21 @@ msgid "" "and :class:`ftplib.FTP_TLS` as a keyword-only parameter, and the default " "encoding is changed from Latin-1 to UTF-8 to follow :rfc:`2640`." msgstr "" -"El parámetro *encoding* se ha agregado a las clases :class:`ftplib.FTP` y :" -"class:`ftplib.FTP_TLS` como un parámetro de solo palabra clave, y la " +"El parámetro *encoding* se ha agregado a las clases :class:`ftplib.FTP` " +"y :class:`ftplib.FTP_TLS` como un parámetro de solo palabra clave, y la " "codificación predeterminada se cambia de Latin-1 a UTF-8 para seguir: rfc: " "`2640`." #: ../Doc/whatsnew/3.9.rst:1105 msgid "" -":meth:`asyncio.loop.shutdown_default_executor` has been added to :class:" -"`~asyncio.AbstractEventLoop`, meaning alternative event loops that inherit " -"from it should have this method defined. (Contributed by Kyle Stanley in :" -"issue:`34037`.)" +":meth:`asyncio.loop.shutdown_default_executor` has been added " +"to :class:`~asyncio.AbstractEventLoop`, meaning alternative event loops that " +"inherit from it should have this method defined. (Contributed by Kyle " +"Stanley in :issue:`34037`.)" msgstr "" -":meth:`asyncio.loop.shutdown_default_executor` se ha agregado a :class:" -"`~asyncio.AbstractEventLoop`, lo que significa que los bucles de eventos " -"alternativos que heredan de él deben tener definido este método. " +":meth:`asyncio.loop.shutdown_default_executor` se ha agregado " +"a :class:`~asyncio.AbstractEventLoop`, lo que significa que los bucles de " +"eventos alternativos que heredan de él deben tener definido este método. " "(Contribuido por Kyle Stanley en :issue:`34037`.)" #: ../Doc/whatsnew/3.9.rst:1110 @@ -2393,55 +2439,56 @@ msgid "" "``PyCF_ALLOW_TOP_LEVEL_AWAIT`` was clashing with ``CO_FUTURE_DIVISION``. " "(Contributed by Batuhan Taskaya in :issue:`39562`)" msgstr "" -"Los valores constantes de los indicadores futuros en el módulo :mod:" -"`__future__` se actualizan para evitar la colisión con los indicadores del " -"compilador. Anteriormente, ``PyCF_ALLOW_TOP_LEVEL_AWAIT`` chocaba con " -"``CO_FUTURE_DIVISION``. (Contribuido por Batuhan Taskaya en :issue:`39562`)" +"Los valores constantes de los indicadores futuros en el " +"módulo :mod:`__future__` se actualizan para evitar la colisión con los " +"indicadores del compilador. Anteriormente, ``PyCF_ALLOW_TOP_LEVEL_AWAIT`` " +"chocaba con ``CO_FUTURE_DIVISION``. (Contribuido por Batuhan Taskaya " +"en :issue:`39562`)" #: ../Doc/whatsnew/3.9.rst:1115 -#, fuzzy msgid "" "``array('u')`` now uses :c:type:`wchar_t` as C type instead of " "``Py_UNICODE``. This change doesn't affect to its behavior because " "``Py_UNICODE`` is alias of :c:type:`wchar_t` since Python 3.3. (Contributed " "by Inada Naoki in :issue:`34538`.)" msgstr "" -"``array('u')`` ahora usa ``wchar_t`` como tipo C en lugar de ``Py_UNICODE``. " -"Este cambio no afecta su comportamiento porque ``Py_UNICODE`` es alias de " -"``wchar_t`` desde Python 3.3. (Contribuido por Inada Naoki en :issue:" -"`34538`.)" +"``array('u')`` ahora usa :c:type:`wchar_t` como tipo C en lugar de " +"``Py_UNICODE``. Este cambio no afecta su comportamiento porque " +"``Py_UNICODE`` es el alias de :c:type:`wchar_t` desde Python 3.3. (Aportado " +"por Inada Naoki en :issue:`34538`.)" #: ../Doc/whatsnew/3.9.rst:1120 msgid "" "The :func:`logging.getLogger` API now returns the root logger when passed " "the name ``'root'``, whereas previously it returned a non-root logger named " "``'root'``. This could affect cases where user code explicitly wants a non-" -"root logger named ``'root'``, or instantiates a logger using ``logging." -"getLogger(__name__)`` in some top-level module called ``'root.py'``. " -"(Contributed by Vinay Sajip in :issue:`37742`.)" +"root logger named ``'root'``, or instantiates a logger using " +"``logging.getLogger(__name__)`` in some top-level module called " +"``'root.py'``. (Contributed by Vinay Sajip in :issue:`37742`.)" msgstr "" "La API :func:`logging.getLogger` ahora devuelve el registrador raíz cuando " "se le pasó el nombre ``'root'``, mientras que anteriormente devolvía un " "registrador no raíz llamado ``'root'``. Esto podría afectar los casos en los " "que el código de usuario desea explícitamente un registrador no root llamado " -"``'root'``, o crea una instancia de un registrador usando ``logging." -"getLogger(__name__)`` en algún módulo de nivel superior llamado ``'root." -"py'``. (Contribuido por Vinay Sajip en :issue:`37742`.)" +"``'root'``, o crea una instancia de un registrador usando " +"``logging.getLogger(__name__)`` en algún módulo de nivel superior llamado " +"``'root.py'``. (Contribuido por Vinay Sajip en :issue:`37742`.)" #: ../Doc/whatsnew/3.9.rst:1127 -#, fuzzy msgid "" -"Division handling of :class:`~pathlib.PurePath` now returns :data:" -"`NotImplemented` instead of raising a :exc:`TypeError` when passed something " -"other than an instance of ``str`` or :class:`~pathlib.PurePath`. This " -"allows creating compatible classes that don't inherit from those mentioned " -"types. (Contributed by Roger Aiudi in :issue:`34775`)." +"Division handling of :class:`~pathlib.PurePath` now " +"returns :data:`NotImplemented` instead of raising a :exc:`TypeError` when " +"passed something other than an instance of ``str`` " +"or :class:`~pathlib.PurePath`. This allows creating compatible classes that " +"don't inherit from those mentioned types. (Contributed by Roger Aiudi " +"in :issue:`34775`)." msgstr "" -"El manejo de división de :class:`~pathlib.PurePath` ahora devuelve " -"``NotImplemented`` en lugar de lanzar un :exc:`TypeError` cuando se pasa " -"algo que no sea una instancia de ``str`` o :class:`~pathlib.PurePath`. Esto " -"permite crear clases compatibles que no hereden de esos tipos mencionados. " -"(Contribución de Roger Aiudi en :issue:`34775`)." +"El manejo de división de :class:`~pathlib.PurePath` ahora " +"devuelve :data:`NotImplemented` en lugar de generar un :exc:`TypeError` " +"cuando se pasa algo que no sea una instancia de ``str`` " +"o :class:`~pathlib.PurePath`. Esto permite crear clases compatibles que no " +"heredan de esos tipos mencionados. (Aportado por Roger Aiudi " +"en :issue:`34775`)." #: ../Doc/whatsnew/3.9.rst:1133 msgid "" @@ -2456,23 +2503,24 @@ msgstr "" "izquierda en las cadenas de direcciones IPv4. Los ceros iniciales son " "ambiguos y algunas bibliotecas los interpretan como notación octal. Por " "ejemplo, la función heredada :func:`socket.inet_aton` trata los ceros " -"iniciales como una notación octal. La implementación glibc del :func:" -"`~socket.inet_pton` moderno no acepta ceros a la izquierda. (Contribuido por " -"Christian Heimes en :issue:`36384`)." +"iniciales como una notación octal. La implementación glibc " +"del :func:`~socket.inet_pton` moderno no acepta ceros a la izquierda. " +"(Contribuido por Christian Heimes en :issue:`36384`)." #: ../Doc/whatsnew/3.9.rst:1141 msgid "" -":func:`codecs.lookup` now normalizes the encoding name the same way as :func:" -"`encodings.normalize_encoding`, except that :func:`codecs.lookup` also " -"converts the name to lower case. For example, ``\"latex+latin1\"`` encoding " -"name is now normalized to ``\"latex_latin1\"``. (Contributed by Jordon Xu " -"in :issue:`37751`.)" +":func:`codecs.lookup` now normalizes the encoding name the same way " +"as :func:`encodings.normalize_encoding`, except that :func:`codecs.lookup` " +"also converts the name to lower case. For example, ``\"latex+latin1\"`` " +"encoding name is now normalized to ``\"latex_latin1\"``. (Contributed by " +"Jordon Xu in :issue:`37751`.)" msgstr "" ":func:`codecs.lookup` ahora normaliza el nombre de codificación de la misma " -"manera que :func:`encodings.normalize_encoding`, excepto que :func:`codecs." -"lookup` también convierte el nombre a minúsculas. Por ejemplo, el nombre de " -"codificación ``\"latex+latin1\"`` ahora está normalizado a " -"``\"latex_latin1\"``. (Contribuido por Jordon Xu en :issue:`37751`.)" +"manera que :func:`encodings.normalize_encoding`, excepto " +"que :func:`codecs.lookup` también convierte el nombre a minúsculas. Por " +"ejemplo, el nombre de codificación ``\"latex+latin1\"`` ahora está " +"normalizado a ``\"latex_latin1\"``. (Contribuido por Jordon Xu " +"en :issue:`37751`.)" #: ../Doc/whatsnew/3.9.rst:1149 msgid "Changes in the C API" @@ -2484,9 +2532,10 @@ msgid "" "with :c:func:`PyType_FromSpec` and similar APIs) hold a reference to their " "type object since Python 3.8. As indicated in the \"Changes in the C API\" " "of Python 3.8, for the vast majority of cases, there should be no side " -"effect but for types that have a custom :c:member:`~PyTypeObject." -"tp_traverse` function, ensure that all custom ``tp_traverse`` functions of " -"heap-allocated types visit the object's type." +"effect but for types that have a " +"custom :c:member:`~PyTypeObject.tp_traverse` function, ensure that all " +"custom ``tp_traverse`` functions of heap-allocated types visit the object's " +"type." msgstr "" "Las instancias de :ref:`heap-allocated types ` (como las creadas " "con :c:func:`PyType_FromSpec` y API similares) contienen una referencia a su " @@ -2510,6 +2559,16 @@ msgid "" "#endif\n" "}" msgstr "" +"entero\n" +"foo_traverse(PyObject *self, visitproc visit, void *arg)\n" +"{\n" +"// Resto de la función transversal\n" +"#si PY_VERSION_HEX >= 0x03090000\n" +" // Esto no era necesario antes de Python 3.9 (problemas de Python 35810 " +"y 40217)\n" +" Py_VISIT(Py_TYPE(self));\n" +"#endif\n" +"}" #: ../Doc/whatsnew/3.9.rst:1173 msgid "" @@ -2529,7 +2588,7 @@ msgstr "Por ejemplo, si su función ``tp_traverse`` incluye:" #: ../Doc/whatsnew/3.9.rst:1180 msgid "base->tp_traverse(self, visit, arg)" -msgstr "" +msgstr "base->tp_traverse(self,visita,arg)" #: ../Doc/whatsnew/3.9.rst:1184 msgid "then add:" @@ -2547,6 +2606,14 @@ msgid "" " }\n" "#else" msgstr "" +"#si PY_VERSION_HEX >= 0x03090000\n" +" // Esto no era necesario antes de Python 3.9 (bpo-35810 y bpo-40217)\n" +" si (base->tp_flags & Py_TPFLAGS_HEAPTYPE) {\n" +" // el tp_traverse de un tipo de montón ya visitó Py_TYPE(self)\n" +" } más {\n" +" Py_VISIT(Py_TYPE(self));\n" +" }\n" +"#demás" #: ../Doc/whatsnew/3.9.rst:1197 msgid "(See :issue:`35810` and :issue:`40217` for more information.)" @@ -2557,8 +2624,8 @@ msgstr "" msgid "" "The functions ``PyEval_CallObject``, ``PyEval_CallFunction``, " "``PyEval_CallMethod`` and ``PyEval_CallObjectWithKeywords`` are deprecated. " -"Use :c:func:`PyObject_Call` and its variants instead. (See more details in :" -"issue:`29548`.)" +"Use :c:func:`PyObject_Call` and its variants instead. (See more details " +"in :issue:`29548`.)" msgstr "" "Las funciones ``PyEval_CallObject``, ``PyEval_CallFunction``, " "``PyEval_CallMethod`` y ``PyEval_CallObjectWithKeywords`` están en desuso. " @@ -2570,17 +2637,17 @@ msgid "CPython bytecode changes" msgstr "Cambios en el código de bytes de CPython" #: ../Doc/whatsnew/3.9.rst:1207 -#, fuzzy msgid "" -"The :opcode:`!LOAD_ASSERTION_ERROR` opcode was added for handling the :" -"keyword:`assert` statement. Previously, the assert statement would not work " -"correctly if the :exc:`AssertionError` exception was being shadowed. " +"The :opcode:`!LOAD_ASSERTION_ERROR` opcode was added for handling " +"the :keyword:`assert` statement. Previously, the assert statement would not " +"work correctly if the :exc:`AssertionError` exception was being shadowed. " "(Contributed by Zackery Spytz in :issue:`34880`.)" msgstr "" -"Se agregó el código de operación :opcode:`LOAD_ASSERTION_ERROR` para manejar " -"la declaración :keyword:`assert`. Anteriormente, la declaración de aserción " -"no funcionaría correctamente si la excepción :exc:`AssertionError` estuviera " -"siendo sombreada. (Contribuido por Zackery Spytz en :issue:`34880`.)" +"Se agregó el código de operación :opcode:`!LOAD_ASSERTION_ERROR` para " +"manejar la declaración :keyword:`assert`. Anteriormente, la declaración de " +"afirmación no funcionaba correctamente si se estaba ocultando la " +"excepción :exc:`AssertionError`. (Aportado por Zackery Spytz " +"en :issue:`34880`.)" #: ../Doc/whatsnew/3.9.rst:1212 msgid "" @@ -2617,19 +2684,19 @@ msgid "Build Changes" msgstr "Construir cambios" #: ../Doc/whatsnew/3.9.rst:1226 -#, fuzzy msgid "" "Added ``--with-platlibdir`` option to the ``configure`` script: name of the " -"platform-specific library directory, stored in the new :data:`sys." -"platlibdir` attribute. See :data:`sys.platlibdir` attribute for more " -"information. (Contributed by Jan Matějek, Matěj Cepl, Charalampos Stratakis " -"and Victor Stinner in :issue:`1294959`.)" +"platform-specific library directory, stored in the " +"new :data:`sys.platlibdir` attribute. See :data:`sys.platlibdir` attribute " +"for more information. (Contributed by Jan Matějek, Matěj Cepl, Charalampos " +"Stratakis and Victor Stinner in :issue:`1294959`.)" msgstr "" "Se agregó la opción ``--with-platlibdir`` al script ``configure``: nombre " "del directorio de biblioteca específico de la plataforma, almacenado en el " -"nuevo atributo :attr:`sys.platlibdir`. Consulte el atributo :attr:`sys." -"platlibdir` para obtener más información. (Contribuido por Jan Matějek, " -"Matěj Cepl, Charalampos Stratakis y Victor Stinner en :issue:`1294959`.)" +"nuevo atributo :data:`sys.platlibdir`. Consulte el " +"atributo :data:`sys.platlibdir` para obtener más información. (Aportado por " +"Jan Matějek, Matěj Cepl, Charalampos Stratakis y Victor Stinner " +"en :issue:`1294959`.)" #: ../Doc/whatsnew/3.9.rst:1232 msgid "" @@ -2640,15 +2707,14 @@ msgstr "" "(Contribuido por Victor Stinner en :issue:`39489`.)" #: ../Doc/whatsnew/3.9.rst:1235 -#, fuzzy msgid "" "On non-Windows platforms, the :c:func:`!setenv` and :c:func:`!unsetenv` " "functions are now required to build Python. (Contributed by Victor Stinner " "in :issue:`39395`.)" msgstr "" -"En plataformas que no son de Windows, ahora se requieren las funciones :c:" -"func:`setenv` y :c:func:`unsetenv` para compilar Python. (Contribuido por " -"Victor Stinner en :issue:`39395`.)" +"En plataformas que no son Windows, ahora se requieren las " +"funciones :c:func:`!setenv` y :c:func:`!unsetenv` para compilar Python. " +"(Aportado por Victor Stinner en :issue:`39395`.)" #: ../Doc/whatsnew/3.9.rst:1239 msgid "" @@ -2656,8 +2722,8 @@ msgid "" "officially unsupported. (See :issue:`10945` for more details.)" msgstr "" "En plataformas que no son de Windows, la creación de instaladores " -"``bdist_wininst`` ahora no es compatible oficialmente. (Consulte :issue:" -"`10945` para obtener más detalles)." +"``bdist_wininst`` ahora no es compatible oficialmente. " +"(Consulte :issue:`10945` para obtener más detalles)." #: ../Doc/whatsnew/3.9.rst:1242 msgid "" @@ -2712,34 +2778,33 @@ msgstr "" "garantizamos qué conjunto de tareas de PGO produce una compilación más " "rápida. Los usuarios interesados deben ejecutar sus propios puntos de " "referencia relevantes, ya que los resultados pueden depender del entorno, la " -"carga de trabajo y la cadena de herramientas del compilador. (Consulte :" -"issue:`36044` y :issue:`37707` para obtener más detalles)." +"carga de trabajo y la cadena de herramientas del compilador. " +"(Consulte :issue:`36044` y :issue:`37707` para obtener más detalles)." #: ../Doc/whatsnew/3.9.rst:1269 msgid "C API Changes" msgstr "Cambios en la API de C" #: ../Doc/whatsnew/3.9.rst:1274 -#, fuzzy msgid "" ":pep:`573`: Added :c:func:`PyType_FromModuleAndSpec` to associate a module " "with a class; :c:func:`PyType_GetModule` and :c:func:`PyType_GetModuleState` " -"to retrieve the module and its state; and :c:type:`PyCMethod` and :c:macro:" -"`METH_METHOD` to allow a method to access the class it was defined in. " -"(Contributed by Marcel Plch and Petr Viktorin in :issue:`38787`.)" +"to retrieve the module and its state; and :c:type:`PyCMethod` " +"and :c:macro:`METH_METHOD` to allow a method to access the class it was " +"defined in. (Contributed by Marcel Plch and Petr Viktorin in :issue:`38787`.)" msgstr "" ":pep:`573`: Se agregó :c:func:`PyType_FromModuleAndSpec` para asociar un " -"módulo con una clase; :c:func:`PyType_GetModule` y :c:func:" -"`PyType_GetModuleState` para recuperar el módulo y su estado; y :c:data:" -"`PyCMethod` y :c:data:`METH_METHOD` para permitir que un método acceda a la " -"clase en la que se definió. (Contribuido por Marcel Plch y Petr Viktorin en :" -"issue:`38787`.)" +"módulo con una clase; :c:func:`PyType_GetModule` " +"y :c:func:`PyType_GetModuleState` para recuperar el módulo y su estado; " +"y :c:type:`PyCMethod` y :c:macro:`METH_METHOD` para permitir que un método " +"acceda a la clase en la que se definió. (Contribución de Marcel Plch y Petr " +"Viktorin en :issue:`38787`)." #: ../Doc/whatsnew/3.9.rst:1281 msgid "" -"Added :c:func:`PyFrame_GetCode` function: get a frame code. Added :c:func:" -"`PyFrame_GetBack` function: get the frame next outer frame. (Contributed by " -"Victor Stinner in :issue:`40421`.)" +"Added :c:func:`PyFrame_GetCode` function: get a frame code. " +"Added :c:func:`PyFrame_GetBack` function: get the frame next outer frame. " +"(Contributed by Victor Stinner in :issue:`40421`.)" msgstr "" "Se agregó la función :c:func:`PyFrame_GetCode`: obtenga un código de marco. " "Se agregó la función :c:func:`PyFrame_GetBack`: obtenga el siguiente marco " @@ -2755,19 +2820,20 @@ msgstr "" #: ../Doc/whatsnew/3.9.rst:1288 msgid "" -"Added :c:func:`PyThreadState_GetInterpreter` and :c:func:" -"`PyInterpreterState_Get` functions to get the interpreter. Added :c:func:" -"`PyThreadState_GetFrame` function to get the current frame of a Python " -"thread state. Added :c:func:`PyThreadState_GetID` function: get the unique " -"identifier of a Python thread state. (Contributed by Victor Stinner in :" -"issue:`39947`.)" -msgstr "" -"Se agregaron funciones :c:func:`PyThreadState_GetInterpreter` y :c:func:" -"`PyInterpreterState_Get` para obtener el intérprete. Se agregó la función :c:" -"func:`PyThreadState_GetFrame` para obtener el marco actual de un estado de " -"subproceso de Python. Se agregó la función :c:func:`PyThreadState_GetID`: " -"obtenga el identificador único de un estado de subproceso de Python. " -"(Contribuido por Victor Stinner en :issue:`39947`.)" +"Added :c:func:`PyThreadState_GetInterpreter` " +"and :c:func:`PyInterpreterState_Get` functions to get the interpreter. " +"Added :c:func:`PyThreadState_GetFrame` function to get the current frame of " +"a Python thread state. Added :c:func:`PyThreadState_GetID` function: get the " +"unique identifier of a Python thread state. (Contributed by Victor Stinner " +"in :issue:`39947`.)" +msgstr "" +"Se agregaron funciones :c:func:`PyThreadState_GetInterpreter` " +"y :c:func:`PyInterpreterState_Get` para obtener el intérprete. Se agregó la " +"función :c:func:`PyThreadState_GetFrame` para obtener el marco actual de un " +"estado de subproceso de Python. Se agregó la " +"función :c:func:`PyThreadState_GetID`: obtenga el identificador único de un " +"estado de subproceso de Python. (Contribuido por Victor Stinner " +"en :issue:`39947`.)" #: ../Doc/whatsnew/3.9.rst:1296 msgid "" @@ -2794,11 +2860,12 @@ msgid "" "access ``PyThreadState.recursion_depth`` field (the structure is opaque in " "the limited C API)." msgstr "" -"Proporcione :c:func:`Py_EnterRecursiveCall` y :c:func:" -"`Py_LeaveRecursiveCall` como funciones regulares para la API limitada. " -"Anteriormente, se definían como macros, pero estas macros no se compilaban " -"con la API C limitada que no puede acceder al campo ``PyThreadState." -"recursion_depth`` (la estructura es opaca en la API C limitada)." +"Proporcione :c:func:`Py_EnterRecursiveCall` " +"y :c:func:`Py_LeaveRecursiveCall` como funciones regulares para la API " +"limitada. Anteriormente, se definían como macros, pero estas macros no se " +"compilaban con la API C limitada que no puede acceder al campo " +"``PyThreadState.recursion_depth`` (la estructura es opaca en la API C " +"limitada)." #: ../Doc/whatsnew/3.9.rst:1309 msgid "" @@ -2813,38 +2880,36 @@ msgid "(Contributed by Victor Stinner in :issue:`38644` and :issue:`39542`.)" msgstr "(Contribuido por Victor Stinner en :issue:`38644` y :issue:`39542`.)" #: ../Doc/whatsnew/3.9.rst:1314 -#, fuzzy msgid "" "The :c:func:`PyModule_AddType` function is added to help adding a type to a " "module. (Contributed by Donghee Na in :issue:`40024`.)" msgstr "" -"Se agrega la función :c:func:`PyModule_AddType` para ayudar a agregar un " -"tipo a un módulo. (Contribuido por Dong-hee Na en :issue:`40024`.)" +"La función :c:func:`PyModule_AddType` se agrega para ayudar a agregar un " +"tipo a un módulo. (Aportado por Donghee Na en :issue:`40024`.)" #: ../Doc/whatsnew/3.9.rst:1318 msgid "" -"Added the functions :c:func:`PyObject_GC_IsTracked` and :c:func:" -"`PyObject_GC_IsFinalized` to the public API to allow to query if Python " -"objects are being currently tracked or have been already finalized by the " -"garbage collector respectively. (Contributed by Pablo Galindo Salgado in :" -"issue:`40241`.)" +"Added the functions :c:func:`PyObject_GC_IsTracked` " +"and :c:func:`PyObject_GC_IsFinalized` to the public API to allow to query if " +"Python objects are being currently tracked or have been already finalized by " +"the garbage collector respectively. (Contributed by Pablo Galindo Salgado " +"in :issue:`40241`.)" msgstr "" -"Se agregaron las funciones :c:func:`PyObject_GC_IsTracked` y :c:func:" -"`PyObject_GC_IsFinalized` a la API pública para permitir consultar si los " -"objetos de Python se están rastreando actualmente o si ya han sido " +"Se agregaron las funciones :c:func:`PyObject_GC_IsTracked` " +"y :c:func:`PyObject_GC_IsFinalized` a la API pública para permitir consultar " +"si los objetos de Python se están rastreando actualmente o si ya han sido " "finalizados por el recolector de basura, respectivamente. (Contribuido por " "Pablo Galindo Salgado en :issue:`40241`.)" #: ../Doc/whatsnew/3.9.rst:1324 -#, fuzzy msgid "" "Added :c:func:`!_PyObject_FunctionStr` to get a user-friendly string " -"representation of a function-like object. (Patch by Jeroen Demeyer in :issue:" -"`37645`.)" +"representation of a function-like object. (Patch by Jeroen Demeyer " +"in :issue:`37645`.)" msgstr "" -"Se agregó :c:func:`_PyObject_FunctionStr` para obtener una representación de " -"cadena fácil de usar de un objeto similar a una función. (Parche de Jeroen " -"Demeyer en :issue:`37645`.)" +"Se agregó :c:func:`!_PyObject_FunctionStr` para obtener una representación " +"de cadena fácil de usar de un objeto similar a una función. (Parche de " +"Jeroen Demeyer en :issue:`37645`.)" #: ../Doc/whatsnew/3.9.rst:1328 msgid "" @@ -2857,8 +2922,8 @@ msgstr "" #: ../Doc/whatsnew/3.9.rst:1336 msgid "" "``PyInterpreterState.eval_frame`` (:pep:`523`) now requires a new mandatory " -"*tstate* parameter (``PyThreadState*``). (Contributed by Victor Stinner in :" -"issue:`38500`.)" +"*tstate* parameter (``PyThreadState*``). (Contributed by Victor Stinner " +"in :issue:`38500`.)" msgstr "" "``PyInterpreterState.eval_frame`` (:pep:`523`) ahora requiere un nuevo " "parámetro *tstate* obligatorio (``PyThreadState*``). (Contribuido por Victor " @@ -2866,23 +2931,25 @@ msgstr "" #: ../Doc/whatsnew/3.9.rst:1340 msgid "" -"Extension modules: :c:member:`~PyModuleDef.m_traverse`, :c:member:" -"`~PyModuleDef.m_clear` and :c:member:`~PyModuleDef.m_free` functions of :c:" -"type:`PyModuleDef` are no longer called if the module state was requested " -"but is not allocated yet. This is the case immediately after the module is " -"created and before the module is executed (:c:data:`Py_mod_exec` function). " -"More precisely, these functions are not called if :c:member:`~PyModuleDef." -"m_size` is greater than 0 and the module state (as returned by :c:func:" -"`PyModule_GetState`) is ``NULL``." -msgstr "" -"Módulos de extensión: :c:member:`~PyModuleDef.m_traverse`, :c:member:" -"`~PyModuleDef.m_clear` y :c:member:`~PyModuleDef.m_free` Las funciones de :c:" -"type:`PyModuleDef` ya no se llaman si el estado del módulo era solicitado " -"pero aún no asignado. Este es el caso inmediatamente después de que se crea " -"el módulo y antes de que se ejecute (función :c:data:`Py_mod_exec`). Más " -"precisamente, estas funciones no se llaman si :c:member:`~PyModuleDef." -"m_size` es mayor que 0 y el estado del módulo (como lo devuelve :c:func:" -"`PyModule_GetState`) es ``NULL``." +"Extension " +"modules: :c:member:`~PyModuleDef.m_traverse`, :c:member:`~PyModuleDef.m_clear` " +"and :c:member:`~PyModuleDef.m_free` functions of :c:type:`PyModuleDef` are " +"no longer called if the module state was requested but is not allocated yet. " +"This is the case immediately after the module is created and before the " +"module is executed (:c:data:`Py_mod_exec` function). More precisely, these " +"functions are not called if :c:member:`~PyModuleDef.m_size` is greater than " +"0 and the module state (as returned by :c:func:`PyModule_GetState`) is " +"``NULL``." +msgstr "" +"Módulos de " +"extensión: :c:member:`~PyModuleDef.m_traverse`, :c:member:`~PyModuleDef.m_clear` " +"y :c:member:`~PyModuleDef.m_free` Las funciones de :c:type:`PyModuleDef` ya " +"no se llaman si el estado del módulo era solicitado pero aún no asignado. " +"Este es el caso inmediatamente después de que se crea el módulo y antes de " +"que se ejecute (función :c:data:`Py_mod_exec`). Más precisamente, estas " +"funciones no se llaman si :c:member:`~PyModuleDef.m_size` es mayor que 0 y " +"el estado del módulo (como lo devuelve :c:func:`PyModule_GetState`) es " +"``NULL``." #: ../Doc/whatsnew/3.9.rst:1349 msgid "" @@ -2927,37 +2994,37 @@ msgstr "" "Storchaka en :issue:`38650`.)" #: ../Doc/whatsnew/3.9.rst:1366 -#, fuzzy msgid "" "The :c:type:`!PyGC_Head` structure is now opaque. It is only defined in the " -"internal C API (``pycore_gc.h``). (Contributed by Victor Stinner in :issue:" -"`40241`.)" +"internal C API (``pycore_gc.h``). (Contributed by Victor Stinner " +"in :issue:`40241`.)" msgstr "" -"La estructura :c:type:`PyGC_Head` ahora es opaca. Solo se define en la API C " -"interna (``pycore_gc.h``). (Contribuido por Victor Stinner en :issue:" -"`40241`.)" +"La estructura :c:type:`!PyGC_Head` ahora es opaca. Solo está definido en la " +"API interna de C (``pycore_gc.h``). (Aportado por Victor Stinner " +"en :issue:`40241`.)" #: ../Doc/whatsnew/3.9.rst:1370 -#, fuzzy msgid "" -"The ``Py_UNICODE_COPY``, ``Py_UNICODE_FILL``, ``PyUnicode_WSTR_LENGTH``, :c:" -"func:`!PyUnicode_FromUnicode`, :c:func:`!PyUnicode_AsUnicode`, " -"``_PyUnicode_AsUnicode``, and :c:func:`!PyUnicode_AsUnicodeAndSize` are " -"marked as deprecated in C. They have been deprecated by :pep:`393` since " -"Python 3.3. (Contributed by Inada Naoki in :issue:`36346`.)" +"The ``Py_UNICODE_COPY``, ``Py_UNICODE_FILL``, " +"``PyUnicode_WSTR_LENGTH``, :c:func:`!PyUnicode_FromUnicode`, :c:func:`!" +"PyUnicode_AsUnicode`, ``_PyUnicode_AsUnicode``, and :c:func:`!" +"PyUnicode_AsUnicodeAndSize` are marked as deprecated in C. They have been " +"deprecated by :pep:`393` since Python 3.3. (Contributed by Inada Naoki " +"in :issue:`36346`.)" msgstr "" -"``Py_UNICODE_COPY``, ``Py_UNICODE_FILL``, ``PyUnicode_WSTR_LENGTH``, :c:func:" -"`PyUnicode_FromUnicode`, :c:func:`PyUnicode_AsUnicode`, " -"``_PyUnicode_AsUnicode`` y :c:func:`PyUnicode_AsUnicodeAndSize` están " -"marcados como obsoletos en C. Han sido obsoletos por :pep:`393` desde Python " -"3.3. (Contribuido por Inada Naoki en :issue:`36346`.)" +"``Py_UNICODE_COPY``, ``Py_UNICODE_FILL``, " +"``PyUnicode_WSTR_LENGTH``, :c:func:`!PyUnicode_FromUnicode`, :c:func:`!" +"PyUnicode_AsUnicode`, ``_PyUnicode_AsUnicode`` y :c:func:`!" +"PyUnicode_AsUnicodeAndSize` están marcados como obsoletos en C. :pep:`393` " +"los ha dejado en desuso desde Python 3.3. (Aportado por Inada Naoki " +"en :issue:`36346`.)" #: ../Doc/whatsnew/3.9.rst:1377 msgid "" "The :c:func:`Py_FatalError` function is replaced with a macro which logs " "automatically the name of the current function, unless the " -"``Py_LIMITED_API`` macro is defined. (Contributed by Victor Stinner in :" -"issue:`39882`.)" +"``Py_LIMITED_API`` macro is defined. (Contributed by Victor Stinner " +"in :issue:`39882`.)" msgstr "" "La función :c:func:`Py_FatalError` se reemplaza con una macro que registra " "automáticamente el nombre de la función actual, a menos que se defina la " @@ -2984,28 +3051,26 @@ msgid ":c:func:`PyObject_IS_GC` macro was converted to a function." msgstr "La macro :c:func:`PyObject_IS_GC` se convirtió en una función." #: ../Doc/whatsnew/3.9.rst:1389 -#, fuzzy msgid "" -"The :c:func:`!PyObject_NEW` macro becomes an alias to the :c:macro:" -"`PyObject_New` macro, and the :c:func:`!PyObject_NEW_VAR` macro becomes an " -"alias to the :c:macro:`PyObject_NewVar` macro. They no longer access " -"directly the :c:member:`PyTypeObject.tp_basicsize` member." +"The :c:func:`!PyObject_NEW` macro becomes an alias to " +"the :c:macro:`PyObject_New` macro, and the :c:func:`!PyObject_NEW_VAR` macro " +"becomes an alias to the :c:macro:`PyObject_NewVar` macro. They no longer " +"access directly the :c:member:`PyTypeObject.tp_basicsize` member." msgstr "" -"La macro :c:func:`PyObject_NEW` se convierte en un alias de la macro :c:func:" -"`PyObject_New` y la macro :c:func:`PyObject_NEW_VAR` se convierte en un " -"alias de la macro :c:func:`PyObject_NewVar`. Ya no acceden directamente al " -"miembro :c:member:`PyTypeObject.tp_basicsize`." +"La macro :c:func:`!PyObject_NEW` se convierte en un alias de la " +"macro :c:macro:`PyObject_New` y la macro :c:func:`!PyObject_NEW_VAR` se " +"convierte en un alias de la macro :c:macro:`PyObject_NewVar`. Ya no acceden " +"directamente al miembro :c:member:`PyTypeObject.tp_basicsize`." #: ../Doc/whatsnew/3.9.rst:1394 -#, fuzzy msgid "" ":c:func:`!PyObject_GET_WEAKREFS_LISTPTR` macro was converted to a function: " "the macro accessed directly the :c:member:`PyTypeObject.tp_weaklistoffset` " "member." msgstr "" -"La macro :c:func:`PyObject_GET_WEAKREFS_LISTPTR` se convirtió en una " -"función: la macro accedió directamente al miembro :c:member:`PyTypeObject." -"tp_weaklistoffset`." +"La macro :c:func:`!PyObject_GET_WEAKREFS_LISTPTR` se convirtió en una " +"función: la macro accedió directamente al " +"miembro :c:member:`PyTypeObject.tp_weaklistoffset`." #: ../Doc/whatsnew/3.9.rst:1398 msgid "" @@ -3023,8 +3088,8 @@ msgid "" msgstr "" ":c:func:`PyIndex_Check` ahora siempre se declara como una función opaca para " "ocultar los detalles de implementación: se eliminó la macro " -"``PyIndex_Check()``. La macro accedió directamente al miembro :c:member:" -"`PyTypeObject.tp_as_number`." +"``PyIndex_Check()``. La macro accedió directamente al " +"miembro :c:member:`PyTypeObject.tp_as_number`." #: ../Doc/whatsnew/3.9.rst:1405 msgid "(See :issue:`40170` for more details.)" @@ -3033,12 +3098,12 @@ msgstr "(Consulte :issue:`40170` para obtener más detalles)." #: ../Doc/whatsnew/3.9.rst:1410 msgid "" "Excluded ``PyFPE_START_PROTECT()`` and ``PyFPE_END_PROTECT()`` macros of " -"``pyfpe.h`` from the limited C API. (Contributed by Victor Stinner in :issue:" -"`38835`.)" +"``pyfpe.h`` from the limited C API. (Contributed by Victor Stinner " +"in :issue:`38835`.)" msgstr "" "Se excluyeron las macros ``PyFPE_START_PROTECT()`` y ``PyFPE_END_PROTECT()`` " -"de ``pyfpe.h`` de la API C limitada. (Contribuido por Victor Stinner en :" -"issue:`38835`.)" +"de ``pyfpe.h`` de la API C limitada. (Contribuido por Victor Stinner " +"en :issue:`38835`.)" #: ../Doc/whatsnew/3.9.rst:1414 msgid "" @@ -3058,11 +3123,11 @@ msgstr "Se excluyeron las siguientes funciones de la API C limitada:" #: ../Doc/whatsnew/3.9.rst:1423 msgid "" -"``PyThreadState_DeleteCurrent()`` (Contributed by Joannah Nanjekye in :issue:" -"`37878`.)" +"``PyThreadState_DeleteCurrent()`` (Contributed by Joannah Nanjekye " +"in :issue:`37878`.)" msgstr "" -"``PyThreadState_DeleteCurrent()`` (Contribuido por Joannah Nanjekye en :" -"issue:`37878`.)" +"``PyThreadState_DeleteCurrent()`` (Contribuido por Joannah Nanjekye " +"en :issue:`37878`.)" #: ../Doc/whatsnew/3.9.rst:1425 msgid "``_Py_CheckRecursionLimit``" @@ -3156,10 +3221,10 @@ msgid "" "explicitly to clear all free lists. (Contributed by Inada Naoki and Victor " "Stinner in :issue:`37340`, :issue:`38896` and :issue:`40428`.)" msgstr "" -"Se eliminaron las siguientes funciones de la API de C. Llame a :c:func:" -"`PyGC_Collect` explícitamente para borrar todas las listas libres. " -"(Contribuido por Inada Naoki y Victor Stinner en :issue:`37340`, :issue:" -"`38896` y :issue:`40428`.)" +"Se eliminaron las siguientes funciones de la API de C. Llame " +"a :c:func:`PyGC_Collect` explícitamente para borrar todas las listas libres. " +"(Contribuido por Inada Naoki y Victor Stinner " +"en :issue:`37340`, :issue:`38896` y :issue:`40428`.)" #: ../Doc/whatsnew/3.9.rst:1458 msgid "``PyAsyncGen_ClearFreeLists()``" @@ -3227,8 +3292,9 @@ msgid "" "used instead. (Contributed by Inada Naoki in :issue:`36346`.)" msgstr "" "Eliminado ``Py_UNICODE_MATCH``. Ha sido obsoleto por :pep:`393` y roto desde " -"Python 3.3. En su lugar, se puede utilizar la función :c:func:" -"`PyUnicode_Tailmatch`. (Contribuido por Inada Naoki en :issue:`36346`.)" +"Python 3.3. En su lugar, se puede utilizar la " +"función :c:func:`PyUnicode_Tailmatch`. (Contribuido por Inada Naoki " +"en :issue:`36346`.)" #: ../Doc/whatsnew/3.9.rst:1480 msgid "" @@ -3239,8 +3305,8 @@ msgid "" "``_Py_InitializeFromWideArgs``, ``_PyFloat_Repr``, ``_PyFloat_Digits``, " "``_PyFloat_DigitsInit``, ``PyFrame_ExtendStack``, ``_PyAIterWrapper_Type``, " "``PyNullImporter_Type``, ``PyCmpWrapper_Type``, ``PySortWrapper_Type``, " -"``PyNoArgsFunction``. (Contributed by Pablo Galindo Salgado in :issue:" -"`39372`.)" +"``PyNoArgsFunction``. (Contributed by Pablo Galindo Salgado " +"in :issue:`39372`.)" msgstr "" "Archivos de encabezado limpios de interfaces definidas pero sin " "implementación. Los símbolos API públicos que se eliminan son: " @@ -3249,8 +3315,8 @@ msgstr "" "``_Py_InitializeFromWideArgs``, ``_PyFloat_Repr``, ``_PyFloat_Digits``, " "``_PyFloat_DigitsInit``, ``PyFrame_ExtendStack``, ``_PyAIterWrapper_Type``, " "``PyNullImporter_Type``, ``PyCmpWrapper_Type``, ``PySortWrapper_Type``, " -"``PyNoArgsFunction``. (Contribuido por Pablo Galindo Salgado en :issue:" -"`39372`.)" +"``PyNoArgsFunction``. (Contribuido por Pablo Galindo Salgado " +"en :issue:`39372`.)" #: ../Doc/whatsnew/3.9.rst:1491 msgid "Notable changes in Python 3.9.1" @@ -3258,12 +3324,13 @@ msgstr "Cambios notables en Python 3.9.1" #: ../Doc/whatsnew/3.9.rst:1496 msgid "" -"The behavior of :class:`typing.Literal` was changed to conform with :pep:" -"`586` and to match the behavior of static type checkers specified in the PEP." +"The behavior of :class:`typing.Literal` was changed to conform " +"with :pep:`586` and to match the behavior of static type checkers specified " +"in the PEP." msgstr "" -"El comportamiento de :class:`typing.Literal` se modificó para cumplir con :" -"pep:`586` y para coincidir con el comportamiento de los verificadores de " -"tipo estático especificados en el PEP." +"El comportamiento de :class:`typing.Literal` se modificó para cumplir " +"con :pep:`586` y para coincidir con el comportamiento de los verificadores " +"de tipo estático especificados en el PEP." #: ../Doc/whatsnew/3.9.rst:1499 msgid "``Literal`` now de-duplicates parameters." @@ -3296,8 +3363,8 @@ msgid "" "error::" msgstr "" "Los objetos ``Literal`` ahora lanzarán una excepción :exc:`TypeError` " -"durante las comparaciones de igualdad si alguno de sus parámetros no es :" -"term:`hashable`. Tenga en cuenta que declarar ``Literal`` con parámetros " +"durante las comparaciones de igualdad si alguno de sus parámetros no " +"es :term:`hashable`. Tenga en cuenta que declarar ``Literal`` con parámetros " "mutables no arrojará un error:" #: ../Doc/whatsnew/3.9.rst:1510 @@ -3310,6 +3377,12 @@ msgid "" " File \"\", line 1, in \n" "TypeError: unhashable type: 'set'" msgstr "" +">>> escribiendo importar Literal\n" +">>> Literal[{0}]\n" +">>> Literal[{0}] == Literal[{Falso}]\n" +"Rastreo (última llamada más reciente):\n" +" Archivo \"\", línea 1, en \n" +"TypeError: tipo no comparable: 'establecer'" #: ../Doc/whatsnew/3.9.rst:1517 msgid "(Contributed by Yurii Karabas in :issue:`42345`.)" @@ -3360,58 +3433,59 @@ msgid "" "``collections.abc.Callable[[int, str], str]`` will have ``__args__`` of " "``(int, str, str)``; previously this was ``([int, str], str)``. To allow " "this change, :class:`types.GenericAlias` can now be subclassed, and a " -"subclass will be returned when subscripting the :class:`collections.abc." -"Callable` type. Code which accesses the arguments via :func:`typing." -"get_args` or ``__args__`` need to account for this change. A :exc:" -"`DeprecationWarning` may be emitted for invalid forms of parameterizing :" -"class:`collections.abc.Callable` which may have passed silently in Python " -"3.9.1. This :exc:`DeprecationWarning` will become a :exc:`TypeError` in " -"Python 3.10. (Contributed by Ken Jin in :issue:`42195`.)" +"subclass will be returned when subscripting " +"the :class:`collections.abc.Callable` type. Code which accesses the " +"arguments via :func:`typing.get_args` or ``__args__`` need to account for " +"this change. A :exc:`DeprecationWarning` may be emitted for invalid forms " +"of parameterizing :class:`collections.abc.Callable` which may have passed " +"silently in Python 3.9.1. This :exc:`DeprecationWarning` will become " +"a :exc:`TypeError` in Python 3.10. (Contributed by Ken Jin " +"in :issue:`42195`.)" msgstr "" ":class:`collections.abc.Callable` genérico ahora aplana los parámetros de " "tipo, similar a lo que hace actualmente :data:`typing.Callable`. Esto " "significa que ``collections.abc.Callable[[int, str], str]`` tendrá " "``__args__`` de ``(int, str, str)``; anteriormente esto era ``([int, str], " "str)``. Para permitir este cambio, :class:`types.GenericAlias` ahora puede " -"ser subclasificado, y se devolverá una subclase al subíndice el tipo :class:" -"`collections.abc.Callable`. El código que accede a los argumentos a través " -"de :func:`typing.get_args` o ``__args__`` debe tener en cuenta este cambio. " -"Se puede emitir un :exc:`DeprecationWarning` para formas no válidas de " -"parametrizar :class:`collections.abc.Callable` que pueden haber pasado " -"silenciosamente en Python 3.9.1. Este :exc:`DeprecationWarning` se " -"convertirá en un :exc:`TypeError` en Python 3.10. (Contribuido por Ken Jin " -"en :issue:`42195`.)" +"ser subclasificado, y se devolverá una subclase al subíndice el " +"tipo :class:`collections.abc.Callable`. El código que accede a los " +"argumentos a través de :func:`typing.get_args` o ``__args__`` debe tener en " +"cuenta este cambio. Se puede emitir un :exc:`DeprecationWarning` para formas " +"no válidas de parametrizar :class:`collections.abc.Callable` que pueden " +"haber pasado silenciosamente en Python 3.9.1. Este :exc:`DeprecationWarning` " +"se convertirá en un :exc:`TypeError` en Python 3.10. (Contribuido por Ken " +"Jin en :issue:`42195`.)" #: ../Doc/whatsnew/3.9.rst:1553 ../Doc/whatsnew/3.9.rst:1578 msgid "urllib.parse" msgstr "urllib.parse" #: ../Doc/whatsnew/3.9.rst:1555 -#, fuzzy msgid "" "Earlier Python versions allowed using both ``;`` and ``&`` as query " -"parameter separators in :func:`urllib.parse.parse_qs` and :func:`urllib." -"parse.parse_qsl`. Due to security concerns, and to conform with newer W3C " -"recommendations, this has been changed to allow only a single separator key, " -"with ``&`` as the default. This change also affects :func:`!cgi.parse` and :" -"func:`!cgi.parse_multipart` as they use the affected functions internally. " -"For more details, please see their respective documentation. (Contributed by " -"Adam Goldschmidt, Senthil Kumaran and Ken Jin in :issue:`42967`.)" -msgstr "" -"Las versiones anteriores de Python permitían el uso de ``;`` y ``&`` como " -"separadores de parámetros de consulta en :func:`urllib.parse.parse_qs` y :" -"func:`urllib.parse.parse_qsl`. Debido a problemas de seguridad y para " -"cumplir con las recomendaciones más recientes del W3C, esto se ha cambiado " -"para permitir solo una clave separadora, con ``&`` como predeterminado. Este " -"cambio también afecta a :func:`cgi.parse` y :func:`cgi.parse_multipart` ya " -"que utilizan las funciones afectadas internamente. Para obtener más " -"detalles, consulte su documentación respectiva. (Contribuido por Adam " -"Goldschmidt, Senthil Kumaran y Ken Jin en :issue:`42967`.)" +"parameter separators in :func:`urllib.parse.parse_qs` " +"and :func:`urllib.parse.parse_qsl`. Due to security concerns, and to " +"conform with newer W3C recommendations, this has been changed to allow only " +"a single separator key, with ``&`` as the default. This change also " +"affects :func:`!cgi.parse` and :func:`!cgi.parse_multipart` as they use the " +"affected functions internally. For more details, please see their respective " +"documentation. (Contributed by Adam Goldschmidt, Senthil Kumaran and Ken Jin " +"in :issue:`42967`.)" +msgstr "" +"Las versiones anteriores de Python permitían usar ``;`` y ``&`` como " +"separadores de parámetros de consulta en :func:`urllib.parse.parse_qs` " +"y :func:`urllib.parse.parse_qsl`. Debido a preocupaciones de seguridad y " +"para cumplir con las recomendaciones más recientes del W3C, esto se ha " +"cambiado para permitir solo una única clave separadora, con ``&`` como valor " +"predeterminado. Este cambio también afecta a :func:`!cgi.parse` y :func:`!" +"cgi.parse_multipart` ya que utilizan las funciones afectadas internamente. " +"Para obtener más detalles, consulte su documentación respectiva. " +"(Contribución de Adam Goldschmidt, Senthil Kumaran y Ken Jin " +"en :issue:`42967`)." #: ../Doc/whatsnew/3.9.rst:1566 -#, fuzzy msgid "Notable changes in Python 3.9.3" -msgstr "Cambios notables en Python 3.9.2" +msgstr "Cambios notables en Python 3.9.3" #: ../Doc/whatsnew/3.9.rst:1568 msgid "" @@ -3421,26 +3495,38 @@ msgid "" "old behavior, set a ``trust_server_pasv_ipv4_address`` attribute on your FTP " "instance to ``True``. (See :gh:`87451`)" msgstr "" +"Una solución de seguridad altera el comportamiento de :class:`ftplib.FTP` " +"para no confiar en la dirección IPv4 enviada desde el servidor remoto al " +"configurar un canal de datos pasivo. En su lugar, reutilizamos la dirección " +"IP del servidor ftp. Para código inusual que requiera el comportamiento " +"anterior, establezca un atributo ``trust_server_pasv_ipv4_address`` en su " +"instancia FTP en ``True``. (Ver :gh:`87451`)" #: ../Doc/whatsnew/3.9.rst:1575 -#, fuzzy msgid "Notable changes in Python 3.9.5" -msgstr "Cambios notables en Python 3.9.2" +msgstr "Cambios notables en Python 3.9.5" #: ../Doc/whatsnew/3.9.rst:1580 msgid "" "The presence of newline or tab characters in parts of a URL allows for some " -"forms of attacks. Following the WHATWG specification that updates :rfc:" -"`3986`, ASCII newline ``\\n``, ``\\r`` and tab ``\\t`` characters are " -"stripped from the URL by the parser in :mod:`urllib.parse` preventing such " -"attacks. The removal characters are controlled by a new module level " -"variable ``urllib.parse._UNSAFE_URL_BYTES_TO_REMOVE``. (See :gh:`88048`)" -msgstr "" +"forms of attacks. Following the WHATWG specification that " +"updates :rfc:`3986`, ASCII newline ``\\n``, ``\\r`` and tab ``\\t`` " +"characters are stripped from the URL by the parser in :mod:`urllib.parse` " +"preventing such attacks. The removal characters are controlled by a new " +"module level variable ``urllib.parse._UNSAFE_URL_BYTES_TO_REMOVE``. " +"(See :gh:`88048`)" +msgstr "" +"La presencia de caracteres de nueva línea o tabulación en partes de una URL " +"permite algunas formas de ataques. Siguiendo la especificación WHATWG que " +"actualiza :rfc:`3986`, el analizador en :mod:`urllib.parse` elimina de la " +"URL los caracteres de nueva línea ASCII ``\\n``, ``\\r`` y tab ``\\t`` para " +"evitar tales ataques. Los caracteres de eliminación están controlados por " +"una nueva variable de nivel de módulo " +"``urllib.parse._UNSAFE_URL_BYTES_TO_REMOVE``. (Ver :gh:`88048`)" #: ../Doc/whatsnew/3.9.rst:1588 -#, fuzzy msgid "Notable security feature in 3.9.14" -msgstr "Cambios notables en Python 3.9.1" +msgstr "Cambios notables en Python 3.9.14" #: ../Doc/whatsnew/3.9.rst:1590 msgid "" @@ -3454,15 +3540,24 @@ msgid "" "limitation ` documentation. The default limit is 4300 " "digits in string form." msgstr "" +"La conversión entre :class:`int` y :class:`str` en bases distintas de 2 " +"(binario), 4, 8 (octal), 16 (hexadecimal) o 32, como la base 10 (decimal), " +"ahora genera un :exc:`ValueError` si el número de dígitos en forma de cadena " +"está por encima de un límite para evitar posibles ataques de denegación de " +"servicio debido a la complejidad algorítmica. Esta es una mitigación " +"para :cve:`2020-10735`. Este límite se puede configurar o deshabilitar " +"mediante una variable de entorno, un indicador de línea de comando o las " +"API :mod:`sys`. Consulte la documentación de :ref:`integer string conversion " +"length limitation `. El límite predeterminado es 4300 " +"dígitos en forma de cadena." #: ../Doc/whatsnew/3.9.rst:1601 -#, fuzzy msgid "Notable changes in 3.9.17" -msgstr "Cambios notables en Python 3.9.1" +msgstr "Cambios notables en Python 3.9.17" #: ../Doc/whatsnew/3.9.rst:1604 msgid "tarfile" -msgstr "" +msgstr "archivo tar" #: ../Doc/whatsnew/3.9.rst:1606 msgid "" @@ -3474,3 +3569,11 @@ msgid "" "Python 3.14, the default will switch to ``'data'``. (Contributed by Petr " "Viktorin in :pep:`706`.)" msgstr "" +"Los métodos de extracción en :mod:`tarfile` y :func:`shutil.unpack_archive` " +"tienen un nuevo argumento, *filter*, que permite limitar funciones tar que " +"puedan resultar sorprendentes o peligrosas, como la creación de archivos " +"fuera del directorio de destino. Consulte :ref:`tarfile-extraction-filter` " +"para obtener más detalles. En Python 3.12, el uso sin el argumento *filter* " +"mostrará un :exc:`DeprecationWarning`. En Python 3.14, el valor " +"predeterminado cambiará a ``'data'``. (Aportado por Petr Viktorin " +"en :pep:`706`.)"