diff --git a/dictionaries/whatsnew_3.12.txt b/dictionaries/whatsnew_3.12.txt new file mode 100644 index 0000000000..38bf175f75 --- /dev/null +++ b/dictionaries/whatsnew_3.12.txt @@ -0,0 +1,66 @@ +preinstala +override +hasheable +Badaracco +Bhat +Bower +Bradshaw +Braun +Carlton +Chan +Chhina +Cristián +Domenico +Donghee +Firebird +Franek +Fredes +Frost +Galeon +Ganguly +Gao +Gedam +Georgi +Gibson +Goergens +Grail +Iarygin +Iceape +Jacob +Jakob +Julien +Machalow +Macías +Magiera +Maureira +Modzelewski +Mosaic +Neumaier +Ofey +Palard +Pradyun +Pranav +Ragusa +Roshan +Skipstone +Soumendra +Spearman +Stanislav +Thulasiram +Tian +Troxler +Varsovia +Walls +Wenyang +Wenzel +Zmiev +Zorin +aclocal +adáptelo +bools +conmutatividad +pbd +pseudoinstrucciones +pseudoinstrucción +tokenizarlo +tríada diff --git a/whatsnew/3.12.po b/whatsnew/3.12.po index 3ad8c47393..6bed898fb4 100644 --- a/whatsnew/3.12.po +++ b/whatsnew/3.12.po @@ -12,25 +12,25 @@ msgstr "" "POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" -"Language: es\n" "Language-Team: es \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.13.0\n" #: ../Doc/whatsnew/3.12.rst:4 msgid "What's New In Python 3.12" -msgstr "" +msgstr "Novedades de Python 3.12" #: ../Doc/whatsnew/3.12.rst msgid "Editor" -msgstr "" +msgstr "Editor" #: ../Doc/whatsnew/3.12.rst:6 msgid "Adam Turner" -msgstr "" +msgstr "Adam Turner" #: ../Doc/whatsnew/3.12.rst:48 msgid "" @@ -38,14 +38,17 @@ msgid "" "Python 3.12 was released on October 2, 2023. For full details, see the :ref:" "`changelog `." msgstr "" +"Este artículo explica las nuevas características de Python 3.12, en " +"comparación con 3.11. Python 3.12 se lanzó el 2 de octubre de 2023. Para " +"obtener detalles completos, consulte :ref:`changelog `." #: ../Doc/whatsnew/3.12.rst:54 msgid ":pep:`693` -- Python 3.12 Release Schedule" -msgstr "" +msgstr ":pep:`693` - Calendario de lanzamiento de Python 3.12" #: ../Doc/whatsnew/3.12.rst:57 msgid "Summary -- Release highlights" -msgstr "" +msgstr "Resumen: aspectos destacados de la versión" #: ../Doc/whatsnew/3.12.rst:62 msgid "" @@ -56,6 +59,13 @@ msgid "" "library. Filesystem support in :mod:`os` and :mod:`pathlib` has seen a " "number of improvements, and several modules have better performance." msgstr "" +"Python 3.12 es la última versión estable del lenguaje de programación " +"Python, con una combinación de cambios en el lenguaje y la biblioteca " +"estándar. Los cambios en la biblioteca se centran en limpiar las API " +"obsoletas, su usabilidad y su corrección. Es de destacar que el paquete :mod:" +"`!distutils` se ha eliminado de la biblioteca estándar. La compatibilidad " +"con el sistema de archivos en :mod:`os` y :mod:`pathlib` ha experimentado " +"una serie de mejoras y varios módulos tienen un mejor rendimiento." #: ../Doc/whatsnew/3.12.rst:69 msgid "" @@ -66,6 +76,12 @@ msgid "" "`generic types ` and :term:`type aliases ` with " "static type checkers." msgstr "" +"Los cambios de idioma se centran en la usabilidad, ya que a :term:`f-strings " +"` se le han eliminado muchas limitaciones y las sugerencias " +"\"¿Quiso decir...\" continúan mejorando. La nueva declaración :ref:`type " +"parameter syntax ` y :keyword:`type` mejora la ergonomía " +"para usar :term:`generic types ` y :term:`type aliases ` con controladores de tipo estático." #: ../Doc/whatsnew/3.12.rst:76 msgid "" @@ -77,80 +93,104 @@ msgid "" "change, refer to the PEP for a particular new feature; but note that PEPs " "usually are not kept up-to-date once a feature has been fully implemented." msgstr "" +"Este artículo no intenta proporcionar una especificación completa de todas " +"las características nuevas, sino que brinda una descripción general " +"conveniente. Para obtener detalles completos, debe consultar la " +"documentación, como :ref:`Library Reference ` y :ref:" +"`Language Reference `. Si desea comprender la " +"implementación completa y la justificación del diseño de un cambio, consulte " +"el PEP para conocer una característica nueva en particular; pero tenga en " +"cuenta que los PEP generalmente no se mantienen actualizados una vez que una " +"característica se ha implementado por completo." #: ../Doc/whatsnew/3.12.rst:90 msgid "New syntax features:" -msgstr "" +msgstr "Nuevas características de sintaxis:" #: ../Doc/whatsnew/3.12.rst:92 msgid "" ":ref:`PEP 695 `, type parameter syntax and the :keyword:" "`type` statement" msgstr "" +":ref:`PEP 695 `, sintaxis de parámetro de tipo y " +"sentencia :keyword:`type`" #: ../Doc/whatsnew/3.12.rst:94 msgid "New grammar features:" -msgstr "" +msgstr "Nuevas características gramaticales:" #: ../Doc/whatsnew/3.12.rst:96 msgid "" ":ref:`PEP 701 `, :term:`f-strings ` in the " "grammar" msgstr "" +":ref:`PEP 701 `, :term:`f-strings ` en la " +"gramática" #: ../Doc/whatsnew/3.12.rst:98 msgid "Interpreter improvements:" -msgstr "" +msgstr "Mejoras del intérprete:" #: ../Doc/whatsnew/3.12.rst:100 msgid "" ":ref:`PEP 684 `, a unique per-interpreter :term:`GIL " "`" msgstr "" +":ref:`PEP 684 `, un :term:`GIL ` único por intérprete" #: ../Doc/whatsnew/3.12.rst:102 msgid ":ref:`PEP 669 `, low impact monitoring" -msgstr "" +msgstr ":ref:`PEP 669 `, monitorización de bajo impacto" #: ../Doc/whatsnew/3.12.rst:103 msgid "" "`Improved 'Did you mean ...' suggestions `_ for :" "exc:`NameError`, :exc:`ImportError`, and :exc:`SyntaxError` exceptions" msgstr "" +"`Improved 'Did you mean ...' suggestions `_ para " +"excepciones :exc:`NameError`, :exc:`ImportError` y :exc:`SyntaxError`" #: ../Doc/whatsnew/3.12.rst:106 msgid "Python data model improvements:" -msgstr "" +msgstr "Mejoras en el modelo de datos de Python:" #: ../Doc/whatsnew/3.12.rst:108 msgid "" ":ref:`PEP 688 `, using the :ref:`buffer protocol " "` from Python" msgstr "" +":ref:`PEP 688 `, usando :ref:`buffer protocol " +"` de Python" #: ../Doc/whatsnew/3.12.rst:111 msgid "Significant improvements in the standard library:" -msgstr "" +msgstr "Mejoras significativas en la biblioteca estándar:" #: ../Doc/whatsnew/3.12.rst:113 msgid "The :class:`pathlib.Path` class now supports subclassing" -msgstr "" +msgstr "La clase :class:`pathlib.Path` ahora admite subclases" #: ../Doc/whatsnew/3.12.rst:114 msgid "The :mod:`os` module received several improvements for Windows support" -msgstr "" +msgstr "El módulo :mod:`os` recibió varias mejoras para el soporte de Windows" #: ../Doc/whatsnew/3.12.rst:115 msgid "" "A :ref:`command-line interface ` has been added to the :mod:" "`sqlite3` module" msgstr "" +"Se ha agregado un :ref:`command-line interface ` al módulo :mod:" +"`sqlite3`" #: ../Doc/whatsnew/3.12.rst:117 msgid "" ":func:`isinstance` checks against :func:`runtime-checkable protocols ` enjoy a speed up of between two and 20 times" msgstr "" +"Los controles :func:`isinstance` frente a :func:`runtime-checkable protocols " +"` benefician de una aceleración de entre dos y 20 " +"veces" #: ../Doc/whatsnew/3.12.rst:119 #, python-format @@ -158,12 +198,16 @@ msgid "" "The :mod:`asyncio` package has had a number of performance improvements, " "with some benchmarks showing a 75% speed up." msgstr "" +"El paquete :mod:`asyncio` ha tenido una serie de mejoras de rendimiento, y " +"algunos puntos de referencia muestran una aceleración del 75 %." #: ../Doc/whatsnew/3.12.rst:121 msgid "" "A :ref:`command-line interface ` has been added to the :mod:`uuid` " "module" msgstr "" +"Se ha agregado un :ref:`command-line interface ` al módulo :mod:" +"`uuid`" #: ../Doc/whatsnew/3.12.rst:123 #, python-format @@ -171,10 +215,12 @@ msgid "" "Due to the changes in :ref:`PEP 701 `, producing tokens " "via the :mod:`tokenize` module is up to up to 64% faster." msgstr "" +"Debido a los cambios en :ref:`PEP 701 `, la producción " +"de tokens a través del módulo :mod:`tokenize` es hasta un 64% más rápida." #: ../Doc/whatsnew/3.12.rst:126 msgid "Security improvements:" -msgstr "" +msgstr "Mejoras de seguridad:" #: ../Doc/whatsnew/3.12.rst:128 msgid "" @@ -183,58 +229,70 @@ msgid "" "github.com/hacl-star/hacl-star/>`__ project. These builtin implementations " "remain as fallbacks that are only used when OpenSSL does not provide them." msgstr "" +"Reemplaza las implementaciones :mod:`hashlib` integradas de SHA1, SHA3, " +"SHA2-384, SHA2-512 y MD5 con código verificado formalmente del proyecto " +"`HACL* `__. Estas implementaciones " +"integradas permanecen como alternativas que solo se utilizan cuando OpenSSL " +"no las proporciona." #: ../Doc/whatsnew/3.12.rst:134 msgid "C API improvements:" -msgstr "" +msgstr "Mejoras de la API C:" #: ../Doc/whatsnew/3.12.rst:136 msgid ":ref:`PEP 697 `, unstable C API tier" -msgstr "" +msgstr ":ref:`PEP 697 `, nivel de API C inestable" #: ../Doc/whatsnew/3.12.rst:137 msgid ":ref:`PEP 683 `, immortal objects" -msgstr "" +msgstr ":ref:`PEP 683 `, objetos inmortales" #: ../Doc/whatsnew/3.12.rst:139 msgid "CPython implementation improvements:" -msgstr "" +msgstr "Mejoras en la implementación de CPython:" #: ../Doc/whatsnew/3.12.rst:141 msgid ":ref:`PEP 709 `, comprehension inlining" -msgstr "" +msgstr ":ref:`PEP 709 `, comprensión en línea" #: ../Doc/whatsnew/3.12.rst:142 msgid ":ref:`CPython support ` for the Linux ``perf`` profiler" msgstr "" +":ref:`CPython support ` para el perfilador Linux ``perf``" #: ../Doc/whatsnew/3.12.rst:143 msgid "Implement stack overflow protection on supported platforms" msgstr "" +"Implementar protección contra desbordamiento de pila en plataformas " +"compatibles" #: ../Doc/whatsnew/3.12.rst:145 msgid "New typing features:" -msgstr "" +msgstr "Nuevas funciones de tipado:" #: ../Doc/whatsnew/3.12.rst:147 msgid "" ":ref:`PEP 692 `, using :class:`~typing.TypedDict` to " "annotate :term:`**kwargs `" msgstr "" +":ref:`PEP 692 `, usando :class:`~typing.TypedDict` para " +"anotar :term:`**kwargs `" #: ../Doc/whatsnew/3.12.rst:149 msgid ":ref:`PEP 698 `, :func:`typing.override` decorator" -msgstr "" +msgstr ":ref:`PEP 698 `, decorador :func:`typing.override`" #: ../Doc/whatsnew/3.12.rst:151 msgid "Important deprecations, removals or restrictions:" -msgstr "" +msgstr "Depreciaciones, eliminaciones o restricciones importantes:" #: ../Doc/whatsnew/3.12.rst:153 msgid "" ":pep:`623`: Remove ``wstr`` from Unicode objects in Python's C API, reducing " "the size of every :class:`str` object by at least 8 bytes." msgstr "" +":pep:`623`: elimina ``wstr`` de los objetos Unicode en la API C de Python, " +"reduciendo el tamaño de cada objeto :class:`str` en al menos 8 bytes." #: ../Doc/whatsnew/3.12.rst:156 msgid "" @@ -244,6 +302,12 @@ msgid "" "io/en/latest/deprecated/distutils-legacy.html>`__ package continues to " "provide :mod:`!distutils`, if you still require it in Python 3.12 and beyond." msgstr "" +":pep:`632`: elimina el paquete :mod:`!distutils`. Consulte `the migration " +"guide `_ para obtener " +"consejos sobre cómo reemplazar las API que proporcionaba. El paquete " +"`Setuptools `__ de terceros continúa proporcionando :mod:`!distutils`, si " +"aún lo necesita en Python 3.12 y versiones posteriores." #: ../Doc/whatsnew/3.12.rst:163 msgid "" @@ -253,6 +317,11 @@ msgid "" "to access these run ``pip install setuptools`` in the :ref:`activated ` virtual environment." msgstr "" +":gh:`95299`: No preinstala ``setuptools`` en entornos virtuales creados con :" +"mod:`venv`. Esto significa que ``distutils``, ``setuptools``, " +"``pkg_resources`` y ``easy_install`` ya no estarán disponibles de forma " +"predeterminada; para acceder a ellos, ejecute ``pip install setuptools`` en " +"el entorno virtual :ref:`activated `." #: ../Doc/whatsnew/3.12.rst:170 msgid "" @@ -260,14 +329,17 @@ msgid "" "removed, along with several :class:`unittest.TestCase` `method aliases " "`_." msgstr "" +"Se han eliminado los módulos :mod:`!asynchat`, :mod:`!asyncore` y :mod:`!" +"imp`, junto con varios :class:`unittest.TestCase` `method aliases `_." #: ../Doc/whatsnew/3.12.rst:176 ../Doc/whatsnew/3.12.rst:1917 msgid "New Features" -msgstr "" +msgstr "Nuevas características" #: ../Doc/whatsnew/3.12.rst:181 msgid "PEP 695: Type Parameter Syntax" -msgstr "" +msgstr "PEP 695: Sintaxis de parámetro de tipo" #: ../Doc/whatsnew/3.12.rst:183 msgid "" @@ -275,6 +347,9 @@ msgid "" "syntax that left the scope of type parameters unclear and required explicit " "declarations of variance." msgstr "" +"Las clases y funciones genéricas en :pep:`484` se declararon utilizando una " +"sintaxis detallada que dejaba el alcance de los parámetros de tipo poco " +"claro y requería declaraciones explícitas de variación." #: ../Doc/whatsnew/3.12.rst:187 msgid "" @@ -282,6 +357,8 @@ msgid "" "`generic classes ` and :ref:`functions `::" msgstr "" +":pep:`695` presenta una forma nueva, más compacta y explícita de crear :ref:" +"`generic classes ` y :ref:`functions `:" #: ../Doc/whatsnew/3.12.rst:200 msgid "" @@ -289,10 +366,14 @@ msgid "" "` using the :keyword:`type` statement, which creates an " "instance of :class:`~typing.TypeAliasType`::" msgstr "" +"Además, el PEP introduce una nueva forma de declarar :ref:`type aliases " +"` utilizando la declaración :keyword:`type`, que crea una " +"instancia de :class:`~typing.TypeAliasType`:" #: ../Doc/whatsnew/3.12.rst:206 msgid "Type aliases can also be :ref:`generic `::" msgstr "" +"Los alias de tipo también pueden ser :ref:`generic `::" #: ../Doc/whatsnew/3.12.rst:210 msgid "" @@ -300,6 +381,9 @@ msgid "" "`~typing.ParamSpec` parameters, as well as :class:`~typing.TypeVar` " "parameters with bounds or constraints::" msgstr "" +"La nueva sintaxis permite declarar los parámetros :class:`~typing." +"TypeVarTuple` y :class:`~typing.ParamSpec`, así como los parámetros :class:" +"`~typing.TypeVar` con límites o restricciones::" #: ../Doc/whatsnew/3.12.rst:219 msgid "" @@ -308,6 +392,11 @@ msgid "" "evaluation `). This means type aliases are able to refer to " "other types defined later in the file." msgstr "" +"El valor de los alias de tipo y los límites y restricciones de las variables " +"de tipo creadas mediante esta sintaxis se evalúan solo según demanda " +"(consulte :ref:`lazy evaluation `). Esto significa que los " +"alias de tipo pueden hacer referencia a otros tipos definidos más adelante " +"en el archivo." #: ../Doc/whatsnew/3.12.rst:224 msgid "" @@ -318,6 +407,14 @@ msgid "" "module scope after the class is defined. See :ref:`type-params` for a " "detailed description of the runtime semantics of type parameters." msgstr "" +"Los parámetros de tipo declarados a través de una lista de parámetros de " +"tipo son visibles dentro del alcance de la declaración y de cualquier " +"alcance anidado, pero no en el alcance externo. Por ejemplo, se pueden " +"utilizar en las anotaciones de tipo de los métodos de una clase genérica o " +"en el cuerpo de la clase. Sin embargo, no se pueden utilizar en el alcance " +"del módulo una vez definida la clase. Consulte :ref:`type-params` para " +"obtener una descripción detallada de la semántica de tiempo de ejecución de " +"los parámetros de tipo." #: ../Doc/whatsnew/3.12.rst:231 msgid "" @@ -327,20 +424,28 @@ msgid "" "differently with enclosing class scopes. In Python 3.13, :term:`annotations " "` will also be evaluated in annotation scopes." msgstr "" +"Para respaldar esta semántica de alcance, se introduce un nuevo tipo de " +"alcance, el :ref:`annotation scope `. Los ámbitos de " +"anotación se comportan en su mayor parte como ámbitos de función, pero " +"interactúan de manera diferente con los ámbitos de clase adjuntos. En Python " +"3.13, :term:`annotations ` también se evaluará en ámbitos de " +"anotación." #: ../Doc/whatsnew/3.12.rst:237 msgid "See :pep:`695` for more details." -msgstr "" +msgstr "Consulte :pep:`695` para obtener más detalles." #: ../Doc/whatsnew/3.12.rst:239 msgid "" "(PEP written by Eric Traut. Implementation by Jelle Zijlstra, Eric Traut, " "and others in :gh:`103764`.)" msgstr "" +"(PEP escrito por Eric Traut. Implementación por Jelle Zijlstra, Eric Traut y " +"otros en :gh:`103764`.)" #: ../Doc/whatsnew/3.12.rst:245 msgid "PEP 701: Syntactic formalization of f-strings" -msgstr "" +msgstr "PEP 701: Formalización sintáctica de cadenas f" #: ../Doc/whatsnew/3.12.rst:247 msgid "" @@ -350,6 +455,12 @@ msgid "" "string, multi-line expressions, comments, backslashes, and unicode escape " "sequences. Let's cover these in detail:" msgstr "" +":pep:`701` elimina algunas restricciones sobre el uso de :term:`f-strings `. Los componentes de expresión dentro de cadenas f ahora pueden ser " +"cualquier expresión Python válida, incluidas cadenas que reutilizan la misma " +"comilla que la cadena f que las contiene, expresiones de varias líneas, " +"comentarios, barras invertidas y secuencias de escape Unicode. Cubramos " +"estos en detalle:" #: ../Doc/whatsnew/3.12.rst:253 msgid "" @@ -358,6 +469,11 @@ msgid "" "available quotes (like using double quotes or triple quotes if the f-string " "uses single quotes). In Python 3.12, you can now do things like this:" msgstr "" +"Reutilización de comillas: en Python 3.11, reutilizar las mismas comillas " +"que la cadena f adjunta genera un :exc:`SyntaxError`, lo que obliga al " +"usuario a usar otras comillas disponibles (como usar comillas dobles o " +"triples si la cadena f usa comillas simples). En Python 3.12, ahora puedes " +"hacer cosas como esta:" #: ../Doc/whatsnew/3.12.rst:262 msgid "" @@ -366,12 +482,20 @@ msgid "" "expression component of f-strings made it impossible to nest f-strings " "arbitrarily. In fact, this is the most nested f-string that could be written:" msgstr "" +"Tenga en cuenta que antes de este cambio no había un límite explícito en " +"cómo se pueden anidar las cadenas f, pero el hecho de que las comillas de " +"cadena no se pueden reutilizar dentro del componente de expresión de las " +"cadenas f hacía imposible anidar cadenas f arbitrariamente. De hecho, esta " +"es la cadena f más anidada que podría escribirse:" #: ../Doc/whatsnew/3.12.rst:270 msgid "" "As now f-strings can contain any valid Python expression inside expression " "components, it is now possible to nest f-strings arbitrarily:" msgstr "" +"Como ahora las cadenas f pueden contener cualquier expresión Python válida " +"dentro de los componentes de expresión, ahora es posible anidar cadenas f de " +"forma arbitraria:" #: ../Doc/whatsnew/3.12.rst:276 msgid "" @@ -381,6 +505,12 @@ msgid "" "multiple lines), making them harder to read. In Python 3.12 you can now " "define f-strings spanning multiple lines, and add inline comments:" msgstr "" +"Expresiones y comentarios de varias líneas: en Python 3.11, las expresiones " +"de cadena f deben definirse en una sola línea, incluso si la expresión " +"dentro de la cadena f normalmente podría abarcar varias líneas (como listas " +"literales que se definen en varias líneas), lo que las hace más difícil de " +"leer. En Python 3.12 ahora puedes definir cadenas f que abarquen varias " +"líneas y agregar comentarios en línea:" #: ../Doc/whatsnew/3.12.rst:290 msgid "" @@ -390,10 +520,16 @@ msgid "" "contain the ``\\N`` part that previously could not be part of expression " "components of f-strings. Now, you can define expressions like this:" msgstr "" +"Barras invertidas y caracteres Unicode: antes de Python 3.12, las " +"expresiones de cadena f no podían contener ningún carácter ``\\``. Esto " +"también afectó a Unicode :ref:`escape sequences ` (como " +"``\\N{snowman}``), ya que contienen la parte ``\\N`` que anteriormente no " +"podía ser parte de los componentes de expresión de f-strings. Ahora puedes " +"definir expresiones como esta:" #: ../Doc/whatsnew/3.12.rst:303 msgid "See :pep:`701` for more details." -msgstr "" +msgstr "Consulte :pep:`701` para obtener más detalles." #: ../Doc/whatsnew/3.12.rst:305 msgid "" @@ -402,6 +538,11 @@ msgid "" "strings are more precise and include the exact location of the error. For " "example, in Python 3.11, the following f-string raises a :exc:`SyntaxError`:" msgstr "" +"Como efecto secundario positivo de cómo se implementó esta característica " +"(al analizar cadenas f con :pep:`the PEG parser <617>`, ahora los mensajes " +"de error para cadenas f son más precisos e incluyen la ubicación exacta del " +"error. Por ejemplo, en Python 3.11, lo siguiente f-string genera un :exc:" +"`SyntaxError`:" #: ../Doc/whatsnew/3.12.rst:318 msgid "" @@ -410,6 +551,10 @@ msgid "" "In Python 3.12, as f-strings are parsed with the PEG parser, error messages " "can be more precise and show the entire line:" msgstr "" +"pero el mensaje de error no incluye la ubicación exacta del error dentro de " +"la línea y también tiene la expresión artificialmente entre paréntesis. En " +"Python 3.12, a medida que las cadenas f se analizan con el analizador PEG, " +"los mensajes de error pueden ser más precisos y mostrar la línea completa:" #: ../Doc/whatsnew/3.12.rst:330 msgid "" @@ -417,10 +562,13 @@ msgid "" "Maureira-Fredes and Marta Gómez in :gh:`102856`. PEP written by Pablo " "Galindo, Batuhan Taskaya, Lysandros Nikolaou and Marta Gómez)." msgstr "" +"(Aportado por Pablo Galindo, Batuhan Taskaya, Lysandros Nikolaou, Cristián " +"Maureira-Fredes y Marta Gómez en :gh:`102856`. PEP escrito por Pablo " +"Galindo, Batuhan Taskaya, Lysandros Nikolaou y Marta Gómez)." #: ../Doc/whatsnew/3.12.rst:337 msgid "PEP 684: A Per-Interpreter GIL" -msgstr "" +msgstr "PEP 684: un GIL por intérprete" #: ../Doc/whatsnew/3.12.rst:339 msgid "" @@ -430,26 +578,36 @@ msgid "" "CPU cores. This is currently only available through the C-API, though a " "Python API is :pep:`anticipated for 3.13 <554>`." msgstr "" +":pep:`684` introduce un :term:`GIL ` por " +"intérprete, de modo que ahora se pueden crear subintérpretes con un GIL " +"único por intérprete. Esto permite que los programas Python aprovechen al " +"máximo múltiples núcleos de CPU. Actualmente, esto solo está disponible a " +"través de C-API, aunque una API de Python es :pep:`anticipada para 3.13 " +"<554>`." #: ../Doc/whatsnew/3.12.rst:345 msgid "" "Use the new :c:func:`Py_NewInterpreterFromConfig` function to create an " "interpreter with its own GIL::" msgstr "" +"Utilice la nueva función :c:func:`Py_NewInterpreterFromConfig` para crear un " +"intérprete con su propio GIL::" #: ../Doc/whatsnew/3.12.rst:359 msgid "" "For further examples how to use the C-API for sub-interpreters with a per-" "interpreter GIL, see :source:`Modules/_xxsubinterpretersmodule.c`." msgstr "" +"Para obtener más ejemplos de cómo utilizar C-API para subintérpretes con un " +"GIL por intérprete, consulte :source:`Modules/_xxsubinterpretersmodule.c`." #: ../Doc/whatsnew/3.12.rst:362 msgid "(Contributed by Eric Snow in :gh:`104210`, etc.)" -msgstr "" +msgstr "(Aportado por Eric Snow en :gh:`104210`, etc.)" #: ../Doc/whatsnew/3.12.rst:367 msgid "PEP 669: Low impact monitoring for CPython" -msgstr "" +msgstr "PEP 669: Monitoreo de bajo impacto para CPython" #: ../Doc/whatsnew/3.12.rst:369 msgid "" @@ -460,14 +618,20 @@ msgid "" "near-zero overhead debuggers and coverage tools. See :mod:`sys.monitoring` " "for details." msgstr "" +":pep:`669` define un nuevo :mod:`API ` para perfiladores, " +"depuradores y otras herramientas para monitorear eventos en CPython. Cubre " +"una amplia gama de eventos, incluidas llamadas, devoluciones, líneas, " +"excepciones, saltos y más. Esto significa que solo paga por lo que usa, " +"brindando soporte para depuradores generales y herramientas de cobertura " +"casi nulos. Consulte :mod:`sys.monitoring` para obtener más detalles." #: ../Doc/whatsnew/3.12.rst:377 msgid "(Contributed by Mark Shannon in :gh:`103082`.)" -msgstr "" +msgstr "(Aportado por Mark Shannon en :gh:`103082`.)" #: ../Doc/whatsnew/3.12.rst:382 msgid "PEP 688: Making the buffer protocol accessible in Python" -msgstr "" +msgstr "PEP 688: Hacer accesible el protocolo de búfer en Python" #: ../Doc/whatsnew/3.12.rst:384 msgid "" @@ -475,6 +639,10 @@ msgid "" "` from Python code. Classes that implement the :meth:`~object." "__buffer__` method are now usable as buffer types." msgstr "" +":pep:`688` presenta una forma de utilizar :ref:`buffer protocol " +"` desde el código Python. Las clases que implementan el " +"método :meth:`~object.__buffer__` ahora se pueden utilizar como tipos de " +"búfer." #: ../Doc/whatsnew/3.12.rst:388 msgid "" @@ -483,10 +651,15 @@ msgid "" "`inspect.BufferFlags` enum represents the flags that can be used to " "customize buffer creation. (Contributed by Jelle Zijlstra in :gh:`102500`.)" msgstr "" +"El nuevo :class:`collections.abc.Buffer` ABC proporciona una forma estándar " +"de representar objetos de búfer, por ejemplo en anotaciones de tipo. La " +"nueva enumeración :class:`inspect.BufferFlags` representa los indicadores " +"que se pueden usar para personalizar la creación del búfer. (Aportado por " +"Jelle Zijlstra en :gh:`102500`.)" #: ../Doc/whatsnew/3.12.rst:397 msgid "PEP 709: Comprehension inlining" -msgstr "" +msgstr "PEP 709: Integración de la comprensión" #: ../Doc/whatsnew/3.12.rst:399 msgid "" @@ -495,6 +668,10 @@ msgid "" "comprehension. This speeds up execution of a comprehension by up to two " "times. See :pep:`709` for further details." msgstr "" +"Las comprensiones de diccionario, lista y conjunto ahora están integradas, " +"en lugar de crear un nuevo objeto de función de un solo uso para cada " +"ejecución de la comprensión. Esto acelera la ejecución de una comprensión " +"hasta dos veces. Consulte :pep:`709` para obtener más detalles." #: ../Doc/whatsnew/3.12.rst:404 msgid "" @@ -502,12 +679,19 @@ msgid "" "variable of the same name in the outer scope, nor are they visible after the " "comprehension. Inlining does result in a few visible behavior changes:" msgstr "" +"Las variables de iteración de comprensión permanecen aisladas y no " +"sobrescriben una variable del mismo nombre en el alcance externo, ni son " +"visibles después de la comprensión. La incorporación da como resultado " +"algunos cambios de comportamiento visibles:" #: ../Doc/whatsnew/3.12.rst:408 msgid "" "There is no longer a separate frame for the comprehension in tracebacks, and " "tracing/profiling no longer shows the comprehension as a function call." msgstr "" +"Ya no hay un marco separado para la comprensión en los rastreos, y el " +"rastreo/elaboración de perfiles ya no muestra la comprensión como una " +"llamada a función." #: ../Doc/whatsnew/3.12.rst:410 msgid "" @@ -515,6 +699,9 @@ msgid "" "each comprehension; instead, the comprehension's locals will be included in " "the parent function's symbol table." msgstr "" +"El módulo :mod:`symtable` ya no producirá tablas de símbolos secundarios " +"para cada comprensión; en cambio, los locales de comprensión se incluirán en " +"la tabla de símbolos de la función principal." #: ../Doc/whatsnew/3.12.rst:413 msgid "" @@ -522,6 +709,9 @@ msgid "" "outside the comprehension, and no longer includes the synthetic ``.0`` " "variable for the comprehension \"argument\"." msgstr "" +"Llamar a :func:`locals` dentro de una comprensión ahora incluye variables " +"externas a la comprensión y ya no incluye la variable sintética ``.0`` para " +"el \"argumento\" de comprensión." #: ../Doc/whatsnew/3.12.rst:416 msgid "" @@ -532,14 +722,21 @@ msgid "" "error, first create a list of keys to iterate over: ``keys = list(locals()); " "[k for k in keys]``." msgstr "" +"Una comprensión que itera directamente sobre ``locals()`` (por ejemplo, ``[k " +"for k in locals()]``) puede ver \"RuntimeError: el diccionario cambió de " +"tamaño durante la iteración\" cuando se ejecuta bajo seguimiento (por " +"ejemplo, medición de cobertura de código). Este es el mismo comportamiento " +"que ya se ha visto, por ejemplo, en ``for k in locals():``. Para evitar el " +"error, primero cree una lista de claves para iterar: ``keys = " +"list(locals()); [k for k in keys]``." #: ../Doc/whatsnew/3.12.rst:423 msgid "(Contributed by Carl Meyer and Vladimir Matveev in :pep:`709`.)" -msgstr "" +msgstr "(Aportado por Carl Meyer y Vladimir Matveev en :pep:`709`.)" #: ../Doc/whatsnew/3.12.rst:426 msgid "Improved Error Messages" -msgstr "" +msgstr "Mensajes de error mejorados" #: ../Doc/whatsnew/3.12.rst:428 msgid "" @@ -547,6 +744,10 @@ msgid "" "the error messages displayed by the interpreter when a :exc:`NameError` is " "raised to the top level. (Contributed by Pablo Galindo in :gh:`98254`.)" msgstr "" +"Ahora se sugieren potencialmente módulos de la biblioteca estándar como " +"parte de los mensajes de error que muestra el intérprete cuando un :exc:" +"`NameError` se eleva al nivel superior. (Aportado por Pablo Galindo en :gh:" +"`98254`.)" #: ../Doc/whatsnew/3.12.rst:437 msgid "" @@ -556,6 +757,12 @@ msgid "" "will include ``self.`` instead of the closest match in the method " "scope. (Contributed by Pablo Galindo in :gh:`99139`.)" msgstr "" +"Mejora la sugerencia de error para excepciones :exc:`NameError` para " +"instancias. Ahora, si se genera un :exc:`NameError` en un método y la " +"instancia tiene un atributo que es exactamente igual al nombre en la " +"excepción, la sugerencia incluirá ``self.`` en lugar de la " +"coincidencia más cercana en el alcance del método. (Aportado por Pablo " +"Galindo en :gh:`99139`.)" #: ../Doc/whatsnew/3.12.rst:457 msgid "" @@ -563,6 +770,9 @@ msgid "" "from y`` instead of ``from y import x``. (Contributed by Pablo Galindo in :" "gh:`98931`.)" msgstr "" +"Mejora el mensaje de error :exc:`SyntaxError` cuando el usuario escribe " +"``import x from y`` en lugar de ``from y import x``. (Aportado por Pablo " +"Galindo en :gh:`98931`.)" #: ../Doc/whatsnew/3.12.rst:467 msgid "" @@ -571,20 +781,27 @@ msgid "" "based on the available names in ````. (Contributed by Pablo Galindo " "in :gh:`91058`.)" msgstr "" +"Las excepciones :exc:`ImportError` generadas por sentencias ``from " +"import `` fallidas ahora incluyen sugerencias para el valor de " +"```` según los nombres disponibles en ````. (Aportado por " +"Pablo Galindo en :gh:`91058`.)" #: ../Doc/whatsnew/3.12.rst:478 msgid "New Features Related to Type Hints" -msgstr "" +msgstr "Nuevas funciones relacionadas con las sugerencias de escritura" #: ../Doc/whatsnew/3.12.rst:480 msgid "" "This section covers major changes affecting :pep:`type hints <484>` and the :" "mod:`typing` module." msgstr "" +"Esta sección cubre los cambios principales que afectan a :pep:`type hints " +"<484>` y al módulo :mod:`typing`." #: ../Doc/whatsnew/3.12.rst:486 msgid "PEP 692: Using ``TypedDict`` for more precise ``**kwargs`` typing" msgstr "" +"PEP 692: uso de ``TypedDict`` para una escritura ``**kwargs`` más precisa" #: ../Doc/whatsnew/3.12.rst:488 msgid "" @@ -592,24 +809,29 @@ msgid "" "allowed for valid annotations only in cases where all of the ``**kwargs`` " "were of the same type." msgstr "" +"Escribir ``**kwargs`` en una firma de función introducida por :pep:`484` " +"permitía anotaciones válidas solo en los casos en que todos los ``**kwargs`` " +"eran del mismo tipo." #: ../Doc/whatsnew/3.12.rst:492 msgid "" ":pep:`692` specifies a more precise way of typing ``**kwargs`` by relying on " "typed dictionaries::" msgstr "" +":pep:`692` especifica una forma más precisa de escribir ``**kwargs`` " +"basándose en diccionarios escritos::" #: ../Doc/whatsnew/3.12.rst:503 msgid "See :pep:`692` for more details." -msgstr "" +msgstr "Consulte :pep:`692` para obtener más detalles." #: ../Doc/whatsnew/3.12.rst:505 msgid "(Contributed by Franek Magiera in :gh:`103629`.)" -msgstr "" +msgstr "(Aportado por Franek Magiera en :gh:`103629`.)" #: ../Doc/whatsnew/3.12.rst:510 msgid "PEP 698: Override Decorator for Static Typing" -msgstr "" +msgstr "PEP 698: Decorador override para escritura estática" #: ../Doc/whatsnew/3.12.rst:512 msgid "" @@ -619,28 +841,35 @@ msgid "" "mistakes where a method that is intended to override something in a base " "class does not in fact do so." msgstr "" +"Se ha agregado un nuevo decorador :func:`typing.override` al módulo :mod:" +"`typing`. Indica a los inspectores de tipo que el método está destinado a " +"anular un método en una superclase. Esto permite a los verificadores de " +"tipos detectar errores cuando un método destinado a anular algo en una clase " +"base en realidad no lo hace." #: ../Doc/whatsnew/3.12.rst:518 msgid "Example::" -msgstr "" +msgstr "Ejemplo::" #: ../Doc/whatsnew/3.12.rst:536 msgid "See :pep:`698` for more details." -msgstr "" +msgstr "Consulte :pep:`698` para obtener más detalles." #: ../Doc/whatsnew/3.12.rst:538 msgid "(Contributed by Steven Troxler in :gh:`101561`.)" -msgstr "" +msgstr "(Aportado por Steven Troxler en :gh:`101561`.)" #: ../Doc/whatsnew/3.12.rst:541 msgid "Other Language Changes" -msgstr "" +msgstr "Otros cambios del lenguaje" #: ../Doc/whatsnew/3.12.rst:543 msgid "" "The parser now raises :exc:`SyntaxError` when parsing source code containing " "null bytes. (Contributed by Pablo Galindo in :gh:`96670`.)" msgstr "" +"El analizador ahora genera :exc:`SyntaxError` al analizar el código fuente " +"que contiene bytes nulos. (Aportado por Pablo Galindo en :gh:`96670`.)" #: ../Doc/whatsnew/3.12.rst:546 msgid "" @@ -652,6 +881,14 @@ msgid "" "exc:`SyntaxError` will eventually be raised, instead of :exc:" "`SyntaxWarning`. (Contributed by Victor Stinner in :gh:`98401`.)" msgstr "" +"Un par de caracteres de barra invertida que no es una secuencia de escape " +"válida ahora genera un :exc:`SyntaxWarning`, en lugar de :exc:" +"`DeprecationWarning`. Por ejemplo, ``re.compile(\"\\d+\\.\\d+\")`` ahora " +"emite un :exc:`SyntaxWarning` (``\"\\d\"`` es una secuencia de escape no " +"válida; utilice cadenas sin formato para la expresión regular: ``re." +"compile(r\"\\d+\\.\\d+\")``). En una versión futura de Python, eventualmente " +"se generará :exc:`SyntaxError`, en lugar de :exc:`SyntaxWarning`. (Aportado " +"por Victor Stinner en :gh:`98401`.)" #: ../Doc/whatsnew/3.12.rst:555 msgid "" @@ -660,6 +897,11 @@ msgid "" "exc:`DeprecationWarning`. In a future Python version they will be eventually " "a :exc:`SyntaxError`. (Contributed by Victor Stinner in :gh:`98401`.)" msgstr "" +"Los escapes octales con un valor mayor que ``0o377`` (por ejemplo, " +"``\"\\477\"``), obsoletos en Python 3.11, ahora producen un :exc:" +"`SyntaxWarning`, en lugar de :exc:`DeprecationWarning`. En una futura " +"versión de Python, eventualmente serán un :exc:`SyntaxError`. (Aportado por " +"Victor Stinner en :gh:`98401`.)" #: ../Doc/whatsnew/3.12.rst:561 msgid "" @@ -670,6 +912,13 @@ msgid "" "comprehensions (like ``a``) is still disallowed, as per :pep:`572`. " "(Contributed by Nikita Sobolev in :gh:`100581`.)" msgstr "" +"Las variables utilizadas en la parte de destino de las comprensiones que no " +"están almacenadas ahora se pueden usar en expresiones de asignación (``:" +"=``). Por ejemplo, en ``[(b := 1) for a, b.prop in some_iter]``, ahora se " +"permite la asignación a ``b``. Tenga en cuenta que la asignación de " +"variables almacenadas en la parte de destino de las comprensiones (como " +"``a``) todavía no está permitida, según :pep:`572`. (Aportado por Nikita " +"Sobolev en :gh:`100581`.)" #: ../Doc/whatsnew/3.12.rst:568 msgid "" @@ -677,6 +926,10 @@ msgid "" "wrapped by a :exc:`RuntimeError`. Context information is added to the " "exception as a :pep:`678` note. (Contributed by Irit Katriel in :gh:`77757`.)" msgstr "" +"Las excepciones generadas en el método ``__set_name__`` de una clase o tipo " +"ya no están incluidas en un :exc:`RuntimeError`. La información de contexto " +"se agrega a la excepción como una nota :pep:`678`. (Aportado por Irit " +"Katriel en :gh:`77757`.)" #: ../Doc/whatsnew/3.12.rst:572 msgid "" @@ -685,6 +938,10 @@ msgid "" "exc:`ExceptionGroup`. Also changed in version 3.11.4. (Contributed by Irit " "Katriel in :gh:`103590`.)" msgstr "" +"Cuando una construcción ``try-except*`` maneja todo el :exc:`ExceptionGroup` " +"y genera otra excepción, esa excepción ya no está incluida en un :exc:" +"`ExceptionGroup`. También cambió en la versión 3.11.4. (Aportado por Irit " +"Katriel en :gh:`103590`.)" #: ../Doc/whatsnew/3.12.rst:577 msgid "" @@ -695,6 +952,13 @@ msgid "" "chance to execute the GC periodically. (Contributed by Pablo Galindo in :gh:" "`97922`.)" msgstr "" +"El recolector de basura ahora se ejecuta solo en el mecanismo de " +"interrupción de evaluación del ciclo de evaluación del código de bytes de " +"Python en lugar de en las asignaciones de objetos. El GC también se puede " +"ejecutar cuando se llama a :c:func:`PyErr_CheckSignals`, por lo que las " +"extensiones C que necesitan ejecutarse durante un período prolongado sin " +"ejecutar ningún código Python también tienen la posibilidad de ejecutar el " +"GC periódicamente. (Aportado por Pablo Galindo en :gh:`97922`.)" #: ../Doc/whatsnew/3.12.rst:584 msgid "" @@ -702,12 +966,17 @@ msgid "" "arguments of any type instead of just :class:`bool` and :class:`int`. " "(Contributed by Serhiy Storchaka in :gh:`60203`.)" msgstr "" +"Todos los invocables integrados y de extensión que esperan parámetros " +"booleanos ahora aceptan argumentos de cualquier tipo en lugar de solo :class:" +"`bool` y :class:`int`. (Contribución de Serhiy Storchaka en :gh:`60203`.)" #: ../Doc/whatsnew/3.12.rst:588 msgid "" ":class:`memoryview` now supports the half-float type (the \"e\" format " "code). (Contributed by Donghee Na and Antoine Pitrou in :gh:`90751`.)" msgstr "" +":class:`memoryview` ahora admite el tipo medio flotante (el código de " +"formato \"e\"). (Contribución de Donghee Na y Antoine Pitrou en :gh:`90751`.)" #: ../Doc/whatsnew/3.12.rst:591 msgid "" @@ -715,6 +984,9 @@ msgid "" "keys and set items. (Contributed by Will Bradshaw, Furkan Onder, and Raymond " "Hettinger in :gh:`101264`.)" msgstr "" +"Los objetos :class:`slice` ahora son hasheables, lo que permite usarlos como " +"claves de dictado y elementos de configuración. (Contribución de Will " +"Bradshaw, Furkan Onder y Raymond Hettinger en :gh:`101264`.)" #: ../Doc/whatsnew/3.12.rst:594 msgid "" @@ -722,6 +994,9 @@ msgid "" "commutativity when summing floats or mixed ints and floats. (Contributed by " "Raymond Hettinger in :gh:`100425`.)" msgstr "" +":func:`sum` ahora utiliza la suma de Neumaier para mejorar la precisión y la " +"conmutatividad al sumar flotantes o enteros y flotantes mixtos. (Aportado " +"por Raymond Hettinger en :gh:`100425`.)" #: ../Doc/whatsnew/3.12.rst:598 msgid "" @@ -729,6 +1004,9 @@ msgid "" "when parsing source code containing null bytes. (Contributed by Pablo " "Galindo in :gh:`96670`.)" msgstr "" +":func:`ast.parse` ahora genera :exc:`SyntaxError` en lugar de :exc:" +"`ValueError` al analizar el código fuente que contiene bytes nulos. " +"(Aportado por Pablo Galindo en :gh:`96670`.)" #: ../Doc/whatsnew/3.12.rst:602 msgid "" @@ -739,12 +1017,22 @@ msgid "" "for details. In 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 filters " +"` para obtener más detalles. En Python 3.14, el " +"valor predeterminado cambiará a ``'data'``. (Aportado por Petr Viktorin en :" +"pep:`706`.)" #: ../Doc/whatsnew/3.12.rst:610 msgid "" ":class:`types.MappingProxyType` instances are now hashable if the underlying " "mapping is hashable. (Contributed by Serhiy Storchaka in :gh:`87995`.)" msgstr "" +"Las instancias :class:`types.MappingProxyType` ahora son hasheables si el " +"mapeo subyacente es hasheable. (Contribución de Serhiy Storchaka en :gh:" +"`87995`.)" #: ../Doc/whatsnew/3.12.rst:614 msgid "" @@ -756,32 +1044,42 @@ msgid "" "Contributed by Pablo Galindo and Christian Heimes with contributions from " "Gregory P. Smith [Google] and Mark Shannon in :gh:`96123`.)" msgstr "" +"Agregado :ref:`support for the perf profiler ` a través de " +"la nueva variable de entorno :envvar:`PYTHONPERFSUPPORT` y la opción de " +"línea de comandos :option:`-X perf <-X>`, así como las nuevas funciones :" +"func:`sys.activate_stack_trampoline`, :func:`sys." +"deactivate_stack_trampoline` y :func:`sys.is_stack_trampoline_active`. " +"(Diseño de Pablo Galindo. Contribución de Pablo Galindo y Christian Heimes " +"con contribuciones de Gregory P. Smith [Google] y Mark Shannon en :gh:" +"`96123`.)" #: ../Doc/whatsnew/3.12.rst:626 msgid "New Modules" -msgstr "" +msgstr "Nuevos módulos" #: ../Doc/whatsnew/3.12.rst:628 msgid "None." -msgstr "" +msgstr "Ninguno." #: ../Doc/whatsnew/3.12.rst:632 msgid "Improved Modules" -msgstr "" +msgstr "Módulos mejorados" #: ../Doc/whatsnew/3.12.rst:635 msgid "array" -msgstr "" +msgstr "array" #: ../Doc/whatsnew/3.12.rst:637 msgid "" "The :class:`array.array` class now supports subscripting, making it a :term:" "`generic type`. (Contributed by Jelle Zijlstra in :gh:`98658`.)" msgstr "" +"La clase :class:`array.array` ahora admite subíndices, lo que la convierte " +"en :term:`generic type`. (Aportado por Jelle Zijlstra en :gh:`98658`.)" #: ../Doc/whatsnew/3.12.rst:641 msgid "asyncio" -msgstr "" +msgstr "asincio" #: ../Doc/whatsnew/3.12.rst:643 msgid "" @@ -790,6 +1088,10 @@ msgid "" "writing to sockets and uses :meth:`~socket.socket.sendmsg` if the platform " "supports it. (Contributed by Kumar Aditya in :gh:`91166`.)" msgstr "" +"Se ha mejorado significativamente el rendimiento de escritura en sockets en :" +"mod:`asyncio`. ``asyncio`` ahora evita copias innecesarias al escribir en " +"sockets y usa :meth:`~socket.socket.sendmsg` si la plataforma lo admite. " +"(Aportado por Kumar Aditya en :gh:`91166`.)" #: ../Doc/whatsnew/3.12.rst:648 msgid "" @@ -798,6 +1100,11 @@ msgid "" "eager task execution, making some use-cases 2x to 5x faster. (Contributed by " "Jacob Bower & Itamar Oren in :gh:`102853`, :gh:`104140`, and :gh:`104138`)" msgstr "" +"Agregado las funciones :func:`asyncio.eager_task_factory` y :func:`asyncio." +"create_eager_task_factory` para permitir la opción de un bucle de eventos " +"para la ejecución de tareas entusiastas, lo que hace que algunos casos de " +"uso sean de 2 a 5 veces más rápidos. (Contribución de Jacob Bower e Itamar " +"Oren en :gh:`102853`, :gh:`104140` y :gh:`104138`)" #: ../Doc/whatsnew/3.12.rst:653 msgid "" @@ -805,6 +1112,10 @@ msgid "" "if :func:`os.pidfd_open` is available and functional instead of :class:" "`asyncio.ThreadedChildWatcher`. (Contributed by Kumar Aditya in :gh:`98024`.)" msgstr "" +"En Linux, :mod:`asyncio` usa :class:`asyncio.PidfdChildWatcher` de forma " +"predeterminada si :func:`os.pidfd_open` está disponible y es funcional en " +"lugar de :class:`asyncio.ThreadedChildWatcher`. (Aportado por Kumar Aditya " +"en :gh:`98024`.)" #: ../Doc/whatsnew/3.12.rst:658 msgid "" @@ -813,18 +1124,29 @@ msgid "" "ThreadedChildWatcher` otherwise), so manually configuring a child watcher is " "not recommended. (Contributed by Kumar Aditya in :gh:`94597`.)" msgstr "" +"El bucle de eventos ahora utiliza el mejor observador de hijos disponible " +"para cada plataforma (:class:`asyncio.PidfdChildWatcher` si es compatible y :" +"class:`asyncio.ThreadedChildWatcher` en caso contrario), por lo que no se " +"recomienda configurar manualmente un observador de hijos. (Aportado por " +"Kumar Aditya en :gh:`94597`.)" #: ../Doc/whatsnew/3.12.rst:664 msgid "" "Add *loop_factory* parameter to :func:`asyncio.run` to allow specifying a " "custom event loop factory. (Contributed by Kumar Aditya in :gh:`99388`.)" msgstr "" +"Agregado el parámetro *loop_factory* a :func:`asyncio.run` para permitir " +"especificar una fábrica de bucle de eventos personalizada. (Aportado por " +"Kumar Aditya en :gh:`99388`.)" #: ../Doc/whatsnew/3.12.rst:668 msgid "" "Add C implementation of :func:`asyncio.current_task` for 4x-6x speedup. " "(Contributed by Itamar Oren and Pranav Thulasiram Bhat in :gh:`100344`.)" msgstr "" +"Agregado la implementación C de :func:`asyncio.current_task` para una " +"aceleración de 4x-6x. (Aportado por Itamar Oren y Pranav Thulasiram Bhat en :" +"gh:`100344`.)" #: ../Doc/whatsnew/3.12.rst:671 msgid "" @@ -832,16 +1154,21 @@ msgid "" "`asyncio` does not support legacy generator-based coroutines. (Contributed " "by Kumar Aditya in :gh:`102748`.)" msgstr "" +":func:`asyncio.iscoroutine` ahora devuelve ``False`` para generadores, ya " +"que :mod:`asyncio` no admite rutinas heredadas basadas en generadores. " +"(Aportado por Kumar Aditya en :gh:`102748`.)" #: ../Doc/whatsnew/3.12.rst:675 msgid "" ":func:`asyncio.wait` and :func:`asyncio.as_completed` now accepts generators " "yielding tasks. (Contributed by Kumar Aditya in :gh:`78530`.)" msgstr "" +":func:`asyncio.wait` y :func:`asyncio.as_completed` ahora aceptan " +"generadores que generan tareas. (Aportado por Kumar Aditya en :gh:`78530`.)" #: ../Doc/whatsnew/3.12.rst:680 msgid "calendar" -msgstr "" +msgstr "calendar" #: ../Doc/whatsnew/3.12.rst:682 msgid "" @@ -849,10 +1176,13 @@ msgid "" "the year and days of the week. (Contributed by Prince Roshan in :gh:" "`103636`.)" msgstr "" +"Agregado las enumeraciones :data:`calendar.Month` y :data:`calendar.Day` que " +"definen los meses del año y los días de la semana. (Aportado por el Príncipe " +"Roshan en :gh:`103636`.)" #: ../Doc/whatsnew/3.12.rst:687 msgid "csv" -msgstr "" +msgstr "csv" #: ../Doc/whatsnew/3.12.rst:689 msgid "" @@ -860,10 +1190,13 @@ msgid "" "provide finer grained control of ``None`` and empty strings by :class:`csv." "writer` objects." msgstr "" +"Agregado indicadores :const:`csv.QUOTE_NOTNULL` y :const:`csv.QUOTE_STRINGS` " +"para proporcionar un control más detallado de ``None`` y cadenas vacías por " +"objetos :class:`csv.writer`." #: ../Doc/whatsnew/3.12.rst:694 msgid "dis" -msgstr "" +msgstr "dis" #: ../Doc/whatsnew/3.12.rst:696 msgid "" @@ -873,36 +1206,49 @@ msgid "" "pseudo instructions. Use the new :data:`dis.hasarg` collection instead. " "(Contributed by Irit Katriel in :gh:`94216`.)" msgstr "" +"Los códigos de operación de pseudoinstrucción (que son utilizados por el " +"compilador pero que no aparecen en el código de bytes ejecutable) ahora " +"están expuestos en el módulo :mod:`dis`. :opcode:`HAVE_ARGUMENT` sigue " +"siendo relevante para códigos de operación reales, pero no es útil para " +"pseudoinstrucciones. Utilice la nueva colección :data:`dis.hasarg` en su " +"lugar. (Aportado por Irit Katriel en :gh:`94216`.)" #: ../Doc/whatsnew/3.12.rst:704 msgid "" "Add the :data:`dis.hasexc` collection to signify instructions that set an " "exception handler. (Contributed by Irit Katriel in :gh:`94216`.)" msgstr "" +"Agregado la colección :data:`dis.hasexc` para indicar instrucciones que " +"establecen un controlador de excepciones. (Aportado por Irit Katriel en :gh:" +"`94216`.)" #: ../Doc/whatsnew/3.12.rst:708 msgid "fractions" -msgstr "" +msgstr "fractions" #: ../Doc/whatsnew/3.12.rst:710 msgid "" "Objects of type :class:`fractions.Fraction` now support float-style " "formatting. (Contributed by Mark Dickinson in :gh:`100161`.)" msgstr "" +"Los objetos de tipo :class:`fractions.Fraction` ahora admiten formato de " +"estilo flotante. (Aportado por Mark Dickinson en :gh:`100161`.)" #: ../Doc/whatsnew/3.12.rst:714 msgid "importlib.resources" -msgstr "" +msgstr "importlib.resources" #: ../Doc/whatsnew/3.12.rst:716 msgid "" ":func:`importlib.resources.as_file` now supports resource directories. " "(Contributed by Jason R. Coombs in :gh:`97930`.)" msgstr "" +":func:`importlib.resources.as_file` ahora admite directorios de recursos. " +"(Aportado por Jason R. Coombs en :gh:`97930`.)" #: ../Doc/whatsnew/3.12.rst:720 msgid "inspect" -msgstr "" +msgstr "inspect" #: ../Doc/whatsnew/3.12.rst:722 msgid "" @@ -910,6 +1256,9 @@ msgid "" "a :term:`coroutine` for use with :func:`inspect.iscoroutinefunction`. " "(Contributed Carlton Gibson in :gh:`99247`.)" msgstr "" +"Agregado :func:`inspect.markcoroutinefunction` para marcar las funciones de " +"sincronización que devuelven un :term:`coroutine` para usar con :func:" +"`inspect.iscoroutinefunction`. (Contribuyó Carlton Gibson en :gh:`99247`.)" #: ../Doc/whatsnew/3.12.rst:726 msgid "" @@ -917,6 +1266,9 @@ msgid "" "for determining the current state of asynchronous generators. (Contributed " "by Thomas Krennwallner in :gh:`79940`.)" msgstr "" +"Agregado :func:`inspect.getasyncgenstate` y :func:`inspect." +"getasyncgenlocals` para determinar el estado actual de los generadores " +"asíncronos. (Aportado por Thomas Krennwallner en :gh:`79940`.)" #: ../Doc/whatsnew/3.12.rst:730 msgid "" @@ -925,10 +1277,14 @@ msgid "" "were in Python 3.11, and some may be 6x faster or more. (Contributed by Alex " "Waygood in :gh:`103193`.)" msgstr "" +"El rendimiento de :func:`inspect.getattr_static` se ha mejorado " +"considerablemente. La mayoría de las llamadas a la función deberían ser al " +"menos 2 veces más rápidas que en Python 3.11, y algunas pueden ser 6 veces " +"más rápidas o más. (Contribuido por Alex Waygood en :gh:`103193`.)" #: ../Doc/whatsnew/3.12.rst:736 msgid "itertools" -msgstr "" +msgstr "itertools" #: ../Doc/whatsnew/3.12.rst:738 msgid "" @@ -936,16 +1292,21 @@ msgid "" "the last batch may be shorter than the rest. (Contributed by Raymond " "Hettinger in :gh:`98363`.)" msgstr "" +"Agregado :class:`itertools.batched()` para recopilar en tuplas de tamaño par " +"donde el último lote puede ser más corto que el resto. (Aportado por Raymond " +"Hettinger en :gh:`98363`.)" #: ../Doc/whatsnew/3.12.rst:743 msgid "math" -msgstr "" +msgstr "math" #: ../Doc/whatsnew/3.12.rst:745 msgid "" "Add :func:`math.sumprod` for computing a sum of products. (Contributed by " "Raymond Hettinger in :gh:`100485`.)" msgstr "" +"Agregado :func:`math.sumprod` para calcular una suma de productos. (Aportado " +"por Raymond Hettinger en :gh:`100485`.)" #: ../Doc/whatsnew/3.12.rst:748 msgid "" @@ -953,10 +1314,13 @@ msgid "" "down multiple steps at a time. (By Matthias Goergens, Mark Dickinson, and " "Raymond Hettinger in :gh:`94906`.)" msgstr "" +"Se extendió :func:`math.nextafter` para incluir un argumento *steps* para " +"subir o bajar varios pasos a la vez. (Por Matthias Goergens, Mark Dickinson " +"y Raymond Hettinger en :gh:`94906`.)" #: ../Doc/whatsnew/3.12.rst:753 msgid "os" -msgstr "" +msgstr "os" #: ../Doc/whatsnew/3.12.rst:755 msgid "" @@ -964,6 +1328,9 @@ msgid "" "func:`os.pidfd_open` in non-blocking mode. (Contributed by Kumar Aditya in :" "gh:`93312`.)" msgstr "" +"Agregado :const:`os.PIDFD_NONBLOCK` para abrir un descriptor de archivo para " +"un proceso con :func:`os.pidfd_open` en modo sin bloqueo. (Aportado por " +"Kumar Aditya en :gh:`93312`.)" #: ../Doc/whatsnew/3.12.rst:759 msgid "" @@ -971,6 +1338,9 @@ msgid "" "to check if the entry is a junction. (Contributed by Charles Machalow in :gh:" "`99547`.)" msgstr "" +":class:`os.DirEntry` ahora incluye un método :meth:`os.DirEntry.is_junction` " +"para verificar si la entrada es un cruce. (Aportado por Charles Machalow en :" +"gh:`99547`.)" #: ../Doc/whatsnew/3.12.rst:763 msgid "" @@ -978,6 +1348,9 @@ msgid "" "functions on Windows for enumerating drives, volumes and mount points. " "(Contributed by Steve Dower in :gh:`102519`.)" msgstr "" +"Agregado funciones :func:`os.listdrives`, :func:`os.listvolumes` y :func:`os." +"listmounts` en Windows para enumerar unidades, volúmenes y puntos de " +"montaje. (Aportado por Steve Dower en :gh:`102519`.)" #: ../Doc/whatsnew/3.12.rst:767 msgid "" @@ -991,26 +1364,40 @@ msgid "" "faster on newer releases of Windows. (Contributed by Steve Dower in :gh:" "`99726`.)" msgstr "" +":func:`os.stat` y :func:`os.lstat` ahora son más precisos en Windows. El " +"campo ``st_birthtime`` ahora se completará con la hora de creación del " +"archivo, y ``st_ctime`` está obsoleto pero aún contiene la hora de creación " +"(pero en el futuro devolverá el último cambio de metadatos, para mantener la " +"coherencia con otras plataformas). ``st_dev`` puede tener hasta 64 bits y " +"``st_ino`` hasta 128 bits dependiendo de su sistema de archivos, y " +"``st_rdev`` siempre está configurado en cero en lugar de valores " +"incorrectos. Ambas funciones pueden ser significativamente más rápidas en " +"las versiones más recientes de Windows. (Aportado por Steve Dower en :gh:" +"`99726`.)" #: ../Doc/whatsnew/3.12.rst:778 msgid "os.path" -msgstr "" +msgstr "os.path" #: ../Doc/whatsnew/3.12.rst:780 msgid "" "Add :func:`os.path.isjunction` to check if a given path is a junction. " "(Contributed by Charles Machalow in :gh:`99547`.)" msgstr "" +"Agregado :func:`os.path.isjunction` para verificar si una ruta determinada " +"es un cruce. (Aportado por Charles Machalow en :gh:`99547`.)" #: ../Doc/whatsnew/3.12.rst:783 msgid "" "Add :func:`os.path.splitroot` to split a path into a triad ``(drive, root, " "tail)``. (Contributed by Barney Gale in :gh:`101000`.)" msgstr "" +"Agregado :func:`os.path.splitroot` para dividir una ruta en una tríada " +"``(drive, root, tail)``. (Aportado por Barney Gale en :gh:`101000`.)" #: ../Doc/whatsnew/3.12.rst:787 msgid "pathlib" -msgstr "" +msgstr "pathlib" #: ../Doc/whatsnew/3.12.rst:789 msgid "" @@ -1019,6 +1406,10 @@ msgid "" "override the :meth:`pathlib.PurePath.with_segments` method to pass " "information between path instances." msgstr "" +"Agregado soporte para subclasificar :class:`pathlib.PurePath` y :class:" +"`pathlib.Path`, además de sus variantes específicas de Posix y Windows. Las " +"subclases pueden anular el método :meth:`pathlib.PurePath.with_segments` " +"para pasar información entre instancias de ruta." #: ../Doc/whatsnew/3.12.rst:794 msgid "" @@ -1026,6 +1417,9 @@ msgid "" "all file or directory names within them, similar to :func:`os.walk`. " "(Contributed by Stanislav Zmiev in :gh:`90385`.)" msgstr "" +"Agregado :meth:`pathlib.Path.walk` para recorrer los árboles de directorios " +"y generar todos los nombres de archivos o directorios dentro de ellos, " +"similar a :func:`os.walk`. (Aportado por Stanislav Zmiev en :gh:`90385`.)" #: ../Doc/whatsnew/3.12.rst:798 msgid "" @@ -1034,12 +1428,18 @@ msgid "" "consistent with :func:`os.path.relpath`. (Contributed by Domenico Ragusa in :" "gh:`84538`.)" msgstr "" +"Agregado el parámetro opcional *walk_up* a :meth:`pathlib.PurePath." +"relative_to` para permitir la inserción de entradas ``..`` en el resultado; " +"este comportamiento es más consistente con :func:`os.path.relpath`. " +"(Aportado por Domenico Ragusa en :gh:`84538`.)" #: ../Doc/whatsnew/3.12.rst:803 msgid "" "Add :meth:`pathlib.Path.is_junction` as a proxy to :func:`os.path." "isjunction`. (Contributed by Charles Machalow in :gh:`99547`.)" msgstr "" +"Agregado :meth:`pathlib.Path.is_junction` como proxy a :func:`os.path." +"isjunction`. (Aportado por Charles Machalow en :gh:`99547`.)" #: ../Doc/whatsnew/3.12.rst:806 msgid "" @@ -1048,10 +1448,14 @@ msgid "" "path's case sensitivity, allowing for more precise control over the matching " "process." msgstr "" +"Agregado el parámetro opcional *case_sensitive* a :meth:`pathlib.Path." +"glob`, :meth:`pathlib.Path.rglob` y :meth:`pathlib.PurePath.match` para " +"hacer coincidir la distinción entre mayúsculas y minúsculas de la ruta, lo " +"que permite un control más preciso sobre el proceso de coincidencia." #: ../Doc/whatsnew/3.12.rst:811 msgid "pdb" -msgstr "" +msgstr "pbd" #: ../Doc/whatsnew/3.12.rst:813 msgid "" @@ -1059,26 +1463,33 @@ msgid "" "provide quick access to values like the current frame or the return value. " "(Contributed by Tian Gao in :gh:`103693`.)" msgstr "" +"Agregado variables convenientes para mantener valores temporalmente para la " +"sesión de depuración y proporcionar acceso rápido a valores como el marco " +"actual o el valor de retorno. (Aportado por Tian Gao en :gh:`103693`.)" #: ../Doc/whatsnew/3.12.rst:819 msgid "random" -msgstr "" +msgstr "random" #: ../Doc/whatsnew/3.12.rst:821 msgid "" "Add :func:`random.binomialvariate`. (Contributed by Raymond Hettinger in :gh:" "`81620`.)" msgstr "" +"Agregado :func:`random.binomialvariate`. (Aportado por Raymond Hettinger en :" +"gh:`81620`.)" #: ../Doc/whatsnew/3.12.rst:824 msgid "" "Add a default of ``lambd=1.0`` to :func:`random.expovariate`. (Contributed " "by Raymond Hettinger in :gh:`100234`.)" msgstr "" +"Agregado un valor predeterminado de ``lambd=1.0`` a :func:`random." +"expovariate`. (Aportado por Raymond Hettinger en :gh:`100234`.)" #: ../Doc/whatsnew/3.12.rst:828 msgid "shutil" -msgstr "" +msgstr "shutil" #: ../Doc/whatsnew/3.12.rst:830 msgid "" @@ -1087,6 +1498,10 @@ msgid "" "the current working directory of the process to *root_dir* to perform " "archiving. (Contributed by Serhiy Storchaka in :gh:`74696`.)" msgstr "" +":func:`shutil.make_archive` ahora pasa el argumento *root_dir* a " +"archivadores personalizados que lo admiten. En este caso, ya no cambia " +"temporalmente el directorio de trabajo actual del proceso a *root_dir* para " +"realizar el archivado. (Aportado por Serhiy Storchaka en :gh:`74696`.)" #: ../Doc/whatsnew/3.12.rst:836 msgid "" @@ -1095,6 +1510,10 @@ msgid "" "*(typ, val, tb)* triplet. *onerror* is deprecated and will be removed in " "Python 3.14. (Contributed by Irit Katriel in :gh:`102828`.)" msgstr "" +":func:`shutil.rmtree` ahora acepta un nuevo argumento *onexc* que es un " +"controlador de errores como *onerror* pero que espera una instancia de " +"excepción en lugar de un triplete *(typ, val, tb)*. *onerror* está en desuso " +"y se eliminará en Python 3.14. (Aportado por Irit Katriel en :gh:`102828`.)" #: ../Doc/whatsnew/3.12.rst:842 msgid "" @@ -1102,6 +1521,10 @@ msgid "" "matches within *PATH* on Windows even when the given *cmd* includes a " "directory component. (Contributed by Charles Machalow in :gh:`103179`.)" msgstr "" +":func:`shutil.which` ahora consulta la variable de entorno *PATHEXT* para " +"encontrar coincidencias dentro de *PATH* en Windows incluso cuando el *cmd* " +"dado incluye un componente de directorio. (Aportado por Charles Machalow en :" +"gh:`103179`.)" #: ../Doc/whatsnew/3.12.rst:847 msgid "" @@ -1110,6 +1533,10 @@ msgid "" "directory should be prepended to the search path. (Contributed by Charles " "Machalow in :gh:`103179`.)" msgstr "" +":func:`shutil.which` llamará a ``NeedCurrentDirectoryForExePathW`` cuando " +"solicite ejecutables en Windows para determinar si el directorio de trabajo " +"actual debe anteponerse a la ruta de búsqueda. (Aportado por Charles " +"Machalow en :gh:`103179`.)" #: ../Doc/whatsnew/3.12.rst:852 msgid "" @@ -1117,16 +1544,22 @@ msgid "" "from ``PATHEXT`` prior to a direct match elsewhere in the search path on " "Windows. (Contributed by Charles Machalow in :gh:`103179`.)" msgstr "" +":func:`shutil.which` devolverá una ruta que coincida con *cmd* con un " +"componente de ``PATHEXT`` antes de una coincidencia directa en otra parte de " +"la ruta de búsqueda en Windows. (Aportado por Charles Machalow en :gh:" +"`103179`.)" #: ../Doc/whatsnew/3.12.rst:858 ../Doc/whatsnew/3.12.rst:1637 msgid "sqlite3" -msgstr "" +msgstr "sqlite3" #: ../Doc/whatsnew/3.12.rst:860 msgid "" "Add a :ref:`command-line interface `. (Contributed by Erlend E. " "Aasland in :gh:`77617`.)" msgstr "" +"Agregado un :ref:`command-line interface `. (Aportado por " +"Erlend E. Aasland en :gh:`77617`.)" #: ../Doc/whatsnew/3.12.rst:863 msgid "" @@ -1135,6 +1568,11 @@ msgid "" "control :pep:`249`-compliant :ref:`transaction handling `. (Contributed by Erlend E. Aasland in :gh:`83638`.)" msgstr "" +"Agregado el atributo :attr:`sqlite3.Connection.autocommit` a :class:`sqlite3." +"Connection` y el parámetro *autocommit* a :func:`sqlite3.connect` para " +"controlar :ref:`transaction handling ` compatible con :pep:`249`. (Aportado por Erlend E. Aasland en :" +"gh:`83638`.)" #: ../Doc/whatsnew/3.12.rst:870 msgid "" @@ -1142,6 +1580,9 @@ msgid "" "load_extension`, for overriding the SQLite extension entry point. " "(Contributed by Erlend E. Aasland in :gh:`103015`.)" msgstr "" +"Agregado el parámetro de solo palabra clave *entrypoint* a :meth:`sqlite3." +"Connection.load_extension`, para anular el punto de entrada de la extensión " +"SQLite. (Aportado por Erlend E. Aasland en :gh:`103015`.)" #: ../Doc/whatsnew/3.12.rst:875 msgid "" @@ -1149,10 +1590,14 @@ msgid "" "setconfig` to :class:`sqlite3.Connection` to make configuration changes to a " "database connection. (Contributed by Erlend E. Aasland in :gh:`103489`.)" msgstr "" +"Agregado :meth:`sqlite3.Connection.getconfig` y :meth:`sqlite3.Connection." +"setconfig` a :class:`sqlite3.Connection` para realizar cambios de " +"configuración en una conexión de base de datos. (Aportado por Erlend E. " +"Aasland en :gh:`103489`.)" #: ../Doc/whatsnew/3.12.rst:881 msgid "statistics" -msgstr "" +msgstr "statistics" #: ../Doc/whatsnew/3.12.rst:883 msgid "" @@ -1160,10 +1605,13 @@ msgid "" "computing the Spearman correlation of ranked data. (Contributed by Raymond " "Hettinger in :gh:`95861`.)" msgstr "" +"Se extendió :func:`statistics.correlation` para incluirlo como método " +"``ranked`` para calcular la correlación de Spearman de datos clasificados. " +"(Aportado por Raymond Hettinger en :gh:`95861`.)" #: ../Doc/whatsnew/3.12.rst:888 msgid "sys" -msgstr "" +msgstr "sys" #: ../Doc/whatsnew/3.12.rst:890 msgid "" @@ -1171,6 +1619,9 @@ msgid "" "` monitoring API. (Contributed by Mark Shannon in :gh:" "`103082`.)" msgstr "" +"Agregado el espacio de nombres :mod:`sys.monitoring` para exponer la nueva " +"API de supervisión :ref:`PEP 669 `. (Aportado por Mark " +"Shannon en :gh:`103082`.)" #: ../Doc/whatsnew/3.12.rst:894 msgid "" @@ -1181,6 +1632,12 @@ msgid "" "Christian Heimes with contributions from Gregory P. Smith [Google] and Mark " "Shannon in :gh:`96123`.)" msgstr "" +"Agregado :func:`sys.activate_stack_trampoline` y :func:`sys." +"deactivate_stack_trampoline` para activar y desactivar los trampolines del " +"perfilador de pila, y :func:`sys.is_stack_trampoline_active` para consultar " +"si los trampolines del perfilador de pila están activos. (Contribuido por " +"Pablo Galindo y Christian Heimes con contribuciones de Gregory P. Smith " +"[Google] y Mark Shannon en :gh:`96123`.)" #: ../Doc/whatsnew/3.12.rst:903 msgid "" @@ -1190,6 +1647,11 @@ msgid "" "data:`sys.last_value` and :data:`sys.last_traceback`. (Contributed by Irit " "Katriel in :gh:`102778`.)" msgstr "" +"Agregado :data:`sys.last_exc` que contiene la última excepción no controlada " +"que se generó (para casos de uso de depuración post-mortem). Deje obsoletos " +"los tres campos que tienen la misma información en su formato heredado: :" +"data:`sys.last_type`, :data:`sys.last_value` y :data:`sys.last_traceback`. " +"(Aportado por Irit Katriel en :gh:`102778`.)" #: ../Doc/whatsnew/3.12.rst:909 ../Doc/whatsnew/3.12.rst:1825 msgid "" @@ -1197,6 +1659,9 @@ msgid "" "exception instance, rather than to a ``(typ, exc, tb)`` tuple. (Contributed " "by Irit Katriel in :gh:`103176`.)" msgstr "" +":func:`sys._current_exceptions` ahora devuelve una asignación de thread-id a " +"una instancia de excepción, en lugar de a una tupla ``(typ, exc, tb)``. " +"(Aportado por Irit Katriel en :gh:`103176`.)" #: ../Doc/whatsnew/3.12.rst:913 msgid "" @@ -1205,26 +1670,35 @@ msgid "" "use the recursion limit, but are protected by a different mechanism that " "prevents recursion from causing a virtual machine crash." msgstr "" +":func:`sys.setrecursionlimit` y :func:`sys.getrecursionlimit`. El límite de " +"recursividad ahora se aplica sólo al código Python. Las funciones integradas " +"no utilizan el límite de recursividad, pero están protegidas por un " +"mecanismo diferente que evita que la recursividad provoque un fallo de la " +"máquina virtual." #: ../Doc/whatsnew/3.12.rst:919 msgid "tempfile" -msgstr "" +msgstr "tempfile" #: ../Doc/whatsnew/3.12.rst:921 msgid "" "The :class:`tempfile.NamedTemporaryFile` function has a new optional " "parameter *delete_on_close* (Contributed by Evgeny Zorin in :gh:`58451`.)" msgstr "" +"La función :class:`tempfile.NamedTemporaryFile` tiene un nuevo parámetro " +"opcional *delete_on_close* (Aportado por Evgeny Zorin en :gh:`58451`.)" #: ../Doc/whatsnew/3.12.rst:923 msgid "" ":func:`tempfile.mkdtemp` now always returns an absolute path, even if the " "argument provided to the *dir* parameter is a relative path." msgstr "" +":func:`tempfile.mkdtemp` ahora siempre devuelve una ruta absoluta, incluso " +"si el argumento proporcionado al parámetro *dir* es una ruta relativa." #: ../Doc/whatsnew/3.12.rst:929 msgid "threading" -msgstr "" +msgstr "threading" #: ../Doc/whatsnew/3.12.rst:931 msgid "" @@ -1233,10 +1707,14 @@ msgid "" "all running threads in addition to the calling one. (Contributed by Pablo " "Galindo in :gh:`93503`.)" msgstr "" +"Agregado :func:`threading.settrace_all_threads` y :func:`threading." +"setprofile_all_threads` que permiten configurar funciones de seguimiento y " +"creación de perfiles en todos los hilos en ejecución además del que realiza " +"la llamada. (Aportado por Pablo Galindo en :gh:`93503`.)" #: ../Doc/whatsnew/3.12.rst:937 msgid "tkinter" -msgstr "" +msgstr "tkinter" #: ../Doc/whatsnew/3.12.rst:939 msgid "" @@ -1247,10 +1725,16 @@ msgid "" "y2), ...]``), like ``create_*()`` methods. (Contributed by Serhiy Storchaka " "in :gh:`94473`.)" msgstr "" +"``tkinter.Canvas.coords()`` ahora aplana sus argumentos. Ahora acepta no " +"sólo coordenadas como argumentos separados (``x1, y1, x2, y2, ...``) y una " +"secuencia de coordenadas (``[x1, y1, x2, y2, ...]``), sino también " +"coordenadas agrupadas en pares (``(x1, y1), (x2, y2), ...`` y ``[(x1, y1), " +"(x2, y2), ...]``), como los métodos ``create_*()``. (Aportado por Serhiy " +"Storchaka en :gh:`94473`.)" #: ../Doc/whatsnew/3.12.rst:948 msgid "tokenize" -msgstr "" +msgstr "tokenize" #: ../Doc/whatsnew/3.12.rst:950 msgid "" @@ -1259,10 +1743,14 @@ msgid "" "ref:`whatsnew312-porting-to-python312` for more information on the changes " "to the :mod:`tokenize` module." msgstr "" +"El módulo :mod:`tokenize` incluye los cambios introducidos en :pep:`701`. " +"(Aportado por Marta Gómez Macías y Pablo Galindo en :gh:`102856`.) Consulte :" +"ref:`whatsnew312-porting-to-python312` para obtener más información sobre " +"los cambios en el módulo :mod:`tokenize`." #: ../Doc/whatsnew/3.12.rst:956 msgid "types" -msgstr "" +msgstr "types" #: ../Doc/whatsnew/3.12.rst:958 msgid "" @@ -1270,10 +1758,13 @@ msgid "" "ref:`user-defined-generics` when subclassed. (Contributed by James Hilton-" "Balfe and Alex Waygood in :gh:`101827`.)" msgstr "" +"Agregado :func:`types.get_original_bases` para permitir una mayor " +"introspección de :ref:`user-defined-generics` cuando esté subclasificado. " +"(Contribución de James Hilton-Balfe y Alex Waygood en :gh:`101827`.)" #: ../Doc/whatsnew/3.12.rst:963 msgid "typing" -msgstr "" +msgstr "typing" #: ../Doc/whatsnew/3.12.rst:965 msgid "" @@ -1287,6 +1778,17 @@ msgid "" "protocol on Python 3.12+, and vice versa. Most users are unlikely to be " "affected by this change. (Contributed by Alex Waygood in :gh:`102433`.)" msgstr "" +"Las comprobaciones de :func:`isinstance` con :func:`runtime-checkable " +"protocols ` ahora usan :func:`inspect." +"getattr_static` en lugar de :func:`hasattr` para buscar si existen " +"atributos. Esto significa que los descriptores y los métodos :meth:`~object." +"__getattr__` ya no se evalúan inesperadamente durante las comprobaciones de " +"``isinstance()`` con protocolos verificables en tiempo de ejecución. Sin " +"embargo, también puede significar que algunos objetos que solían " +"considerarse instancias de un protocolo verificable en tiempo de ejecución " +"ya no se consideran instancias de ese protocolo en Python 3.12+, y " +"viceversa. Es poco probable que la mayoría de los usuarios se vean afectados " +"por este cambio. (Contribuido por Alex Waygood en :gh:`102433`.)" #: ../Doc/whatsnew/3.12.rst:976 msgid "" @@ -1295,12 +1797,20 @@ msgid "" "onto a runtime-checkable protocol will still work, but will have no impact " "on :func:`isinstance` checks comparing objects to the protocol. For example::" msgstr "" +"Los miembros de un protocolo verificable en tiempo de ejecución ahora se " +"consideran \"congelados\" en tiempo de ejecución tan pronto como se crea la " +"clase. La aplicación de parches de atributos en un protocolo verificable en " +"tiempo de ejecución seguirá funcionando, pero no tendrá ningún impacto en " +"las comprobaciones :func:`isinstance` que comparan objetos con el protocolo. " +"Por ejemplo::" #: ../Doc/whatsnew/3.12.rst:998 msgid "" "This change was made in order to speed up ``isinstance()`` checks against " "runtime-checkable protocols." msgstr "" +"Este cambio se realizó para acelerar las comprobaciones de ``isinstance()`` " +"en protocolos verificables en tiempo de ejecución." #: ../Doc/whatsnew/3.12.rst:1001 msgid "" @@ -1312,6 +1822,14 @@ msgid "" "more members may be slower than in Python 3.11. (Contributed by Alex Waygood " "in :gh:`74690` and :gh:`103193`.)" msgstr "" +"El perfil de rendimiento de las comprobaciones de :func:`isinstance` frente " +"a :func:`runtime-checkable protocols ` ha cambiado " +"significativamente. La mayoría de las comprobaciones de ``isinstance()`` en " +"protocolos con solo unos pocos miembros deberían ser al menos 2 veces más " +"rápidas que en 3.11, y algunas pueden ser 20 veces más rápidas o más. Sin " +"embargo, las comprobaciones de ``isinstance()`` con protocolos con catorce o " +"más miembros pueden ser más lentas que en Python 3.11. (Contribuido por Alex " +"Waygood en :gh:`74690` y :gh:`103193`.)" #: ../Doc/whatsnew/3.12.rst:1009 msgid "" @@ -1319,49 +1837,60 @@ msgid "" "the ``__orig_bases__`` attribute. (Contributed by Adrian Garcia Badaracco " "in :gh:`103699`.)" msgstr "" +"Todas las clases :data:`typing.TypedDict` y :data:`typing.NamedTuple` ahora " +"tienen el atributo ``__orig_bases__``. (Aportado por Adrián García Badaracco " +"en :gh:`103699`.)" #: ../Doc/whatsnew/3.12.rst:1013 msgid "" "Add ``frozen_default`` parameter to :func:`typing.dataclass_transform`. " "(Contributed by Erik De Bonte in :gh:`99957`.)" msgstr "" +"Agregado el parámetro ``frozen_default`` a :func:`typing." +"dataclass_transform`. (Aportado por Erik De Bonte en :gh:`99957`.)" #: ../Doc/whatsnew/3.12.rst:1017 msgid "unicodedata" -msgstr "" +msgstr "unicodedata" #: ../Doc/whatsnew/3.12.rst:1019 msgid "" "The Unicode database has been updated to version 15.0.0. (Contributed by " "Benjamin Peterson in :gh:`96734`)." msgstr "" +"La base de datos Unicode se ha actualizado a la versión 15.0.0. (Aportado " +"por Benjamin Peterson en :gh:`96734`)." #: ../Doc/whatsnew/3.12.rst:1023 ../Doc/whatsnew/3.12.rst:1678 msgid "unittest" -msgstr "" +msgstr "unittest" #: ../Doc/whatsnew/3.12.rst:1025 msgid "" "Add a ``--durations`` command line option, showing the N slowest test cases::" msgstr "" +"Agregado una opción de línea de comando ``--durations``, que muestra los N " +"casos de prueba más lentos:" #: ../Doc/whatsnew/3.12.rst:1041 msgid "(Contributed by Giampaolo Rodola in :gh:`48330`)" -msgstr "" +msgstr "(Aportado por Giampaolo Rodola en :gh:`48330`)" #: ../Doc/whatsnew/3.12.rst:1044 msgid "uuid" -msgstr "" +msgstr "uuid" #: ../Doc/whatsnew/3.12.rst:1046 msgid "" "Add a :ref:`command-line interface `. (Contributed by Adam Chhina " "in :gh:`88597`.)" msgstr "" +"Agregado un :ref:`command-line interface `. (Aportado por Adam " +"Chhina en :gh:`88597`.)" #: ../Doc/whatsnew/3.12.rst:1051 msgid "Optimizations" -msgstr "" +msgstr "Optimizaciones" #: ../Doc/whatsnew/3.12.rst:1053 msgid "" @@ -1369,6 +1898,9 @@ msgid "" "object size by 8 or 16 bytes on 64bit platform. (:pep:`623`) (Contributed by " "Inada Naoki in :gh:`92536`.)" msgstr "" +"Elimine los miembros ``wstr`` y ``wstr_length`` de los objetos Unicode. " +"Reduce el tamaño del objeto en 8 o 16 bytes en una plataforma de 64 bits. (:" +"pep:`623`) (Aportado por Inada Naoki en :gh:`92536`.)" #: ../Doc/whatsnew/3.12.rst:1057 msgid "" @@ -1376,6 +1908,10 @@ msgid "" "process, which improves performance by 1-5%. (Contributed by Kevin " "Modzelewski in :gh:`90536` and tuned by Donghee Na in :gh:`101525`)" msgstr "" +"Agregado soporte experimental para usar el optimizador binario BOLT en el " +"proceso de compilación, lo que mejora el rendimiento entre un 1% y un 5%. " +"(Contribuido por Kevin Modzelewski en :gh:`90536` y sintonizado por Donghee " +"Na en :gh:`101525`)" #: ../Doc/whatsnew/3.12.rst:1061 msgid "" @@ -1384,12 +1920,18 @@ msgid "" "replacement strings containing group references by 2--3 times. (Contributed " "by Serhiy Storchaka in :gh:`91524`.)" msgstr "" +"Acelere la sustitución de expresiones regulares (funciones :func:`re.sub` y :" +"func:`re.subn` y los métodos :class:`!re.Pattern` correspondientes) para " +"cadenas de reemplazo que contienen referencias de grupo entre 2 y 3 veces. " +"(Aportado por Serhiy Storchaka en :gh:`91524`.)" #: ../Doc/whatsnew/3.12.rst:1066 msgid "" "Speed up :class:`asyncio.Task` creation by deferring expensive string " "formatting. (Contributed by Itamar Oren in :gh:`103793`.)" msgstr "" +"Acelere la creación de :class:`asyncio.Task` aplazando el costoso formato de " +"cadenas. (Aportado por Itamar Oren en :gh:`103793`.)" #: ../Doc/whatsnew/3.12.rst:1069 #, python-format @@ -1399,6 +1941,10 @@ msgid "" "`701` in the :mod:`tokenize` module. (Contributed by Marta Gómez Macías and " "Pablo Galindo in :gh:`102856`.)" msgstr "" +"Las funciones :func:`tokenize.tokenize` y :func:`tokenize.generate_tokens` " +"son hasta un 64 % más rápidas como efecto secundario de los cambios " +"necesarios para cubrir :pep:`701` en el módulo :mod:`tokenize`. (Aportado " +"por Marta Gómez Macías y Pablo Galindo en :gh:`102856`.)" #: ../Doc/whatsnew/3.12.rst:1074 msgid "" @@ -1406,10 +1952,13 @@ msgid "" "`LOAD_SUPER_ATTR` instruction. (Contributed by Carl Meyer and Vladimir " "Matveev in :gh:`103497`.)" msgstr "" +"Acelere las llamadas al método :func:`super` y las cargas de atributos " +"mediante la nueva instrucción :opcode:`LOAD_SUPER_ATTR`. (Contribución de " +"Carl Meyer y Vladimir Matveev en :gh:`103497`.)" #: ../Doc/whatsnew/3.12.rst:1080 msgid "CPython bytecode changes" -msgstr "" +msgstr "Cambios en el código de bytes de CPython" #: ../Doc/whatsnew/3.12.rst:1082 msgid "" @@ -1418,6 +1967,10 @@ msgid "" "`!LOAD_METHOD` instruction if the low bit of its oparg is set. (Contributed " "by Ken Jin in :gh:`93429`.)" msgstr "" +"Elimine la instrucción :opcode:`!LOAD_METHOD`. Se ha fusionado con :opcode:" +"`LOAD_ATTR`. :opcode:`LOAD_ATTR` ahora se comportará como la antigua " +"instrucción :opcode:`!LOAD_METHOD` si el bit bajo de su oparg está " +"configurado. (Contribuido por Ken Jin en :gh:`93429`.)" #: ../Doc/whatsnew/3.12.rst:1087 msgid "" @@ -1425,54 +1978,72 @@ msgid "" "JUMP_IF_TRUE_OR_POP` instructions. (Contributed by Irit Katriel in :gh:" "`102859`.)" msgstr "" +"Elimine las instrucciones :opcode:`!JUMP_IF_FALSE_OR_POP` y :opcode:`!" +"JUMP_IF_TRUE_OR_POP`. (Aportado por Irit Katriel en :gh:`102859`.)" #: ../Doc/whatsnew/3.12.rst:1090 msgid "" "Remove the :opcode:`!PRECALL` instruction. (Contributed by Mark Shannon in :" "gh:`92925`.)" msgstr "" +"Elimine la instrucción :opcode:`!PRECALL`. (Aportado por Mark Shannon en :gh:" +"`92925`.)" #: ../Doc/whatsnew/3.12.rst:1093 msgid "" "Add the :opcode:`BINARY_SLICE` and :opcode:`STORE_SLICE` instructions. " "(Contributed by Mark Shannon in :gh:`94163`.)" msgstr "" +"Agregado las instrucciones :opcode:`BINARY_SLICE` y :opcode:`STORE_SLICE`. " +"(Aportado por Mark Shannon en :gh:`94163`.)" #: ../Doc/whatsnew/3.12.rst:1096 msgid "" "Add the :opcode:`CALL_INTRINSIC_1` instructions. (Contributed by Mark " "Shannon in :gh:`99005`.)" msgstr "" +"Agregado las instrucciones :opcode:`CALL_INTRINSIC_1`. (Aportado por Mark " +"Shannon en :gh:`99005`.)" #: ../Doc/whatsnew/3.12.rst:1099 msgid "" "Add the :opcode:`CALL_INTRINSIC_2` instruction. (Contributed by Irit Katriel " "in :gh:`101799`.)" msgstr "" +"Agregado la instrucción :opcode:`CALL_INTRINSIC_2`. (Aportado por Irit " +"Katriel en :gh:`101799`.)" #: ../Doc/whatsnew/3.12.rst:1102 msgid "" "Add the :opcode:`CLEANUP_THROW` instruction. (Contributed by Brandt Bucher " "in :gh:`90997`.)" msgstr "" +"Agregado la instrucción :opcode:`CLEANUP_THROW`. (Aportado por Brandt Bucher " +"en :gh:`90997`.)" #: ../Doc/whatsnew/3.12.rst:1105 msgid "" "Add the :opcode:`!END_SEND` instruction. (Contributed by Mark Shannon in :gh:" "`103082`.)" msgstr "" +"Agregado la instrucción :opcode:`!END_SEND`. (Aportado por Mark Shannon en :" +"gh:`103082`.)" #: ../Doc/whatsnew/3.12.rst:1108 msgid "" "Add the :opcode:`LOAD_FAST_AND_CLEAR` instruction as part of the " "implementation of :pep:`709`. (Contributed by Carl Meyer in :gh:`101441`.)" msgstr "" +"Agregada la instrucción :opcode:`LOAD_FAST_AND_CLEAR` como parte de la " +"implementación de :pep:`709`. (Aportado por Carl Meyer en :gh:`101441`.)" #: ../Doc/whatsnew/3.12.rst:1111 msgid "" "Add the :opcode:`LOAD_FAST_CHECK` instruction. (Contributed by Dennis " "Sweeney in :gh:`93143`.)" msgstr "" +"Agregado la instrucción :opcode:`LOAD_FAST_CHECK`. (Aportado por Dennis " +"Sweeney en :gh:`93143`.)" #: ../Doc/whatsnew/3.12.rst:1114 msgid "" @@ -1482,22 +2053,32 @@ msgid "" "opcode, which can be replaced with :opcode:`LOAD_LOCALS` plus :opcode:" "`LOAD_FROM_DICT_OR_DEREF`. (Contributed by Jelle Zijlstra in :gh:`103764`.)" msgstr "" +"Agregado los códigos de operación :opcode:`LOAD_FROM_DICT_OR_DEREF`, :opcode:" +"`LOAD_FROM_DICT_OR_GLOBALS` y :opcode:`LOAD_LOCALS` como parte de la " +"implementación de :pep:`695`. Elimine el código de operación :opcode:`!" +"LOAD_CLASSDEREF`, que se puede reemplazar con :opcode:`LOAD_LOCALS` más :" +"opcode:`LOAD_FROM_DICT_OR_DEREF`. (Aportado por Jelle Zijlstra en :gh:" +"`103764`.)" #: ../Doc/whatsnew/3.12.rst:1120 msgid "" "Add the :opcode:`LOAD_SUPER_ATTR` instruction. (Contributed by Carl Meyer " "and Vladimir Matveev in :gh:`103497`.)" msgstr "" +"Agregado la instrucción :opcode:`LOAD_SUPER_ATTR`. (Contribución de Carl " +"Meyer y Vladimir Matveev en :gh:`103497`.)" #: ../Doc/whatsnew/3.12.rst:1123 msgid "" "Add the :opcode:`RETURN_CONST` instruction. (Contributed by Wenyang Wang in :" "gh:`101632`.)" msgstr "" +"Agregado la instrucción :opcode:`RETURN_CONST`. (Aportado por Wenyang Wang " +"en :gh:`101632`.)" #: ../Doc/whatsnew/3.12.rst:1126 msgid "Demos and Tools" -msgstr "" +msgstr "Demostraciones y herramientas" #: ../Doc/whatsnew/3.12.rst:1128 msgid "" @@ -1505,6 +2086,10 @@ msgid "" "copy can be found in the `old-demos project `_. (Contributed by Victor Stinner in :gh:`97681`.)" msgstr "" +"Elimine el directorio ``Tools/demo/`` que contenía scripts de demostración " +"antiguos. Se puede encontrar una copia en el `old-demos project `_. (Aportado por Victor Stinner en :gh:" +"`97681`.)" #: ../Doc/whatsnew/3.12.rst:1133 msgid "" @@ -1512,10 +2097,13 @@ msgid "" "can be found in the `old-demos project `_. (Contributed by Victor Stinner in :gh:`97669`.)" msgstr "" +"Elimine los scripts de ejemplo obsoletos del directorio ``Tools/scripts/``. " +"Se puede encontrar una copia en el `old-demos project `_. (Aportado por Victor Stinner en :gh:`97669`.)" #: ../Doc/whatsnew/3.12.rst:1140 ../Doc/whatsnew/3.12.rst:2219 msgid "Deprecated" -msgstr "" +msgstr "Obsoleto" #: ../Doc/whatsnew/3.12.rst:1142 msgid "" @@ -1523,6 +2111,9 @@ msgid "" "argparse.BooleanOptionalAction` are deprecated and will be removed in 3.14. " "(Contributed by Nikita Sobolev in :gh:`92248`.)" msgstr "" +":mod:`argparse`: Los parámetros *type*, *choices* y *metavar* de :class:`!" +"argparse.BooleanOptionalAction` están obsoletos y se eliminarán en 3.14. " +"(Contribución de Nikita Sobolev en :gh:`92248`.)" #: ../Doc/whatsnew/3.12.rst:1147 msgid "" @@ -1531,36 +2122,42 @@ msgid "" "emitted at runtime when they are accessed or used, and will be removed in " "Python 3.14:" msgstr "" +":mod:`ast`: las siguientes características de :mod:`ast` han quedado " +"obsoletas en la documentación desde Python 3.8, ahora provocan que se emita " +"un :exc:`DeprecationWarning` en tiempo de ejecución cuando se accede a ellas " +"o se usan, y se eliminarán en Python 3.14:" #: ../Doc/whatsnew/3.12.rst:1151 ../Doc/whatsnew/3.12.rst:1383 msgid ":class:`!ast.Num`" -msgstr "" +msgstr ":class:`!ast.Num`" #: ../Doc/whatsnew/3.12.rst:1152 ../Doc/whatsnew/3.12.rst:1384 msgid ":class:`!ast.Str`" -msgstr "" +msgstr ":class:`!ast.Str`" #: ../Doc/whatsnew/3.12.rst:1153 ../Doc/whatsnew/3.12.rst:1385 msgid ":class:`!ast.Bytes`" -msgstr "" +msgstr ":class:`!ast.Bytes`" #: ../Doc/whatsnew/3.12.rst:1154 ../Doc/whatsnew/3.12.rst:1386 msgid ":class:`!ast.NameConstant`" -msgstr "" +msgstr ":class:`!ast.NameConstant`" #: ../Doc/whatsnew/3.12.rst:1155 ../Doc/whatsnew/3.12.rst:1387 msgid ":class:`!ast.Ellipsis`" -msgstr "" +msgstr ":class:`!ast.Ellipsis`" #: ../Doc/whatsnew/3.12.rst:1157 msgid "" "Use :class:`ast.Constant` instead. (Contributed by Serhiy Storchaka in :gh:" "`90953`.)" msgstr "" +"Utilice :class:`ast.Constant` en su lugar. (Aportado por Serhiy Storchaka " +"en :gh:`90953`.)" #: ../Doc/whatsnew/3.12.rst:1160 ../Doc/whatsnew/3.12.rst:1389 msgid ":mod:`asyncio`:" -msgstr "" +msgstr ":mod:`asyncio`:" #: ../Doc/whatsnew/3.12.rst:1162 msgid "" @@ -1569,6 +2166,10 @@ msgid "" "`asyncio.SafeChildWatcher` are deprecated and will be removed in Python " "3.14. (Contributed by Kumar Aditya in :gh:`94597`.)" msgstr "" +"Las clases de vigilancia secundaria :class:`asyncio.MultiLoopChildWatcher`, :" +"class:`asyncio.FastChildWatcher`, :class:`asyncio.AbstractChildWatcher` y :" +"class:`asyncio.SafeChildWatcher` están en desuso y se eliminarán en Python " +"3.14. (Aportado por Kumar Aditya en :gh:`94597`.)" #: ../Doc/whatsnew/3.12.rst:1168 msgid "" @@ -1577,6 +2178,10 @@ msgid "" "AbstractEventLoopPolicy.get_child_watcher` are deprecated and will be " "removed in Python 3.14. (Contributed by Kumar Aditya in :gh:`94597`.)" msgstr "" +":func:`asyncio.set_child_watcher`, :func:`asyncio.get_child_watcher`, :meth:" +"`asyncio.AbstractEventLoopPolicy.set_child_watcher` y :meth:`asyncio." +"AbstractEventLoopPolicy.get_child_watcher` están en desuso y se eliminarán " +"en Python 3.14. (Aportado por Kumar Aditya en :gh:`94597`.)" #: ../Doc/whatsnew/3.12.rst:1174 msgid "" @@ -1585,6 +2190,10 @@ msgid "" "and it decides to create one. (Contributed by Serhiy Storchaka and Guido van " "Rossum in :gh:`100160`.)" msgstr "" +"El método :meth:`~asyncio.get_event_loop` de la política de bucle de eventos " +"predeterminada ahora emite un :exc:`DeprecationWarning` si no hay ningún " +"bucle de eventos establecido y decide crear uno. (Contribución de Serhiy " +"Storchaka y Guido van Rossum en :gh:`100160`.)" #: ../Doc/whatsnew/3.12.rst:1179 msgid "" @@ -1592,6 +2201,9 @@ msgid "" "are deprecated and replaced by :data:`calendar.JANUARY` and :data:`calendar." "FEBRUARY`. (Contributed by Prince Roshan in :gh:`103636`.)" msgstr "" +":mod:`calendar`: las constantes ``calendar.January`` y ``calendar.February`` " +"están obsoletas y reemplazadas por :data:`calendar.JANUARY` y :data:" +"`calendar.FEBRUARY`. (Aportado por el Príncipe Roshan en :gh:`103636`.)" #: ../Doc/whatsnew/3.12.rst:1183 msgid "" @@ -1600,6 +2212,10 @@ msgid "" "typing, prefer a union, like ``bytes | bytearray``, or :class:`collections." "abc.Buffer`. (Contributed by Shantanu Jain in :gh:`91896`.)" msgstr "" +":mod:`collections.abc`: :class:`collections.abc.ByteString` en desuso. " +"Prefiere :class:`Sequence` o :class:`collections.abc.Buffer`. Para usar al " +"escribir, prefiera una unión, como ``bytes | bytearray`` o :class:" +"`collections.abc.Buffer`. (Aportado por Shantanu Jain en :gh:`91896`.)" #: ../Doc/whatsnew/3.12.rst:1188 msgid "" @@ -1610,46 +2226,57 @@ msgid "" "now` and :meth:`~datetime.datetime.fromtimestamp` with the *tz* parameter " "set to :const:`datetime.UTC`. (Contributed by Paul Ganssle in :gh:`103857`.)" msgstr "" +":mod:`datetime`: :meth:`~datetime.datetime.utcnow` y :meth:`~datetime." +"datetime.utcfromtimestamp` de :class:`datetime.datetime` están en desuso y " +"se eliminarán en una versión futura. En su lugar, utilice objetos que tengan " +"en cuenta la zona horaria para representar las fechas y horas en UTC: " +"respectivamente, llame a :meth:`~datetime.datetime.now` y :meth:`~datetime." +"datetime.fromtimestamp` con el parámetro *tz* establecido en :const:" +"`datetime.UTC`. (Aportado por Paul Ganssle en :gh:`103857`.)" #: ../Doc/whatsnew/3.12.rst:1196 msgid "" ":mod:`email`: Deprecate the *isdst* parameter in :func:`email.utils." "localtime`. (Contributed by Alan Williams in :gh:`72346`.)" msgstr "" +":mod:`email`: obsoleto el parámetro *isdst* en :func:`email.utils." +"localtime`. (Aportado por Alan Williams en :gh:`72346`.)" #: ../Doc/whatsnew/3.12.rst:1199 msgid "" ":mod:`importlib.abc`: Deprecated the following classes, scheduled for " "removal in Python 3.14:" msgstr "" +":mod:`importlib.abc`: Obsoletas las siguientes clases, cuya eliminación está " +"programada en Python 3.14:" #: ../Doc/whatsnew/3.12.rst:1202 ../Doc/whatsnew/3.12.rst:1406 msgid ":class:`!importlib.abc.ResourceReader`" -msgstr "" +msgstr ":class:`!importlib.abc.ResourceReader`" #: ../Doc/whatsnew/3.12.rst:1203 ../Doc/whatsnew/3.12.rst:1407 msgid ":class:`!importlib.abc.Traversable`" -msgstr "" +msgstr ":class:`!importlib.abc.Traversable`" #: ../Doc/whatsnew/3.12.rst:1204 ../Doc/whatsnew/3.12.rst:1408 msgid ":class:`!importlib.abc.TraversableResources`" -msgstr "" +msgstr ":class:`!importlib.abc.TraversableResources`" #: ../Doc/whatsnew/3.12.rst:1206 msgid "Use :mod:`importlib.resources.abc` classes instead:" -msgstr "" +msgstr "Utilice clases :mod:`importlib.resources.abc` en su lugar:" #: ../Doc/whatsnew/3.12.rst:1208 msgid ":class:`importlib.resources.abc.Traversable`" -msgstr "" +msgstr ":class:`importlib.resources.abc.Traversable`" #: ../Doc/whatsnew/3.12.rst:1209 msgid ":class:`importlib.resources.abc.TraversableResources`" -msgstr "" +msgstr ":class:`importlib.resources.abc.TraversableResources`" #: ../Doc/whatsnew/3.12.rst:1211 msgid "(Contributed by Jason R. Coombs and Hugo van Kemenade in :gh:`93963`.)" -msgstr "" +msgstr "(Contribución de Jason R. Coombs y Hugo van Kemenade en :gh:`93963`.)" #: ../Doc/whatsnew/3.12.rst:1213 msgid "" @@ -1659,6 +2286,11 @@ msgid "" "code volume and maintenance burden. (Contributed by Raymond Hettinger in :gh:" "`101588`.)" msgstr "" +":mod:`itertools`: obsoleta la compatibilidad con operaciones de copia, copia " +"profunda y pickle, que no está documentada, es ineficiente, históricamente " +"tiene errores e inconsistente. Esto se eliminará en 3.14 para lograr una " +"reducción significativa en el volumen de código y la carga de mantenimiento. " +"(Aportado por Raymond Hettinger en :gh:`101588`.)" #: ../Doc/whatsnew/3.12.rst:1219 msgid "" @@ -1671,6 +2303,15 @@ msgid "" "specify when your code *requires* ``'fork'``. See :ref:`contexts and start " "methods `." msgstr "" +":mod:`multiprocessing`: en Python 3.14, el método de inicio predeterminado " +"de :mod:`multiprocessing` cambiará a uno más seguro en Linux, BSD y otras " +"plataformas POSIX que no sean macOS donde ``'fork'`` es actualmente el " +"predeterminado (:gh:`84559`). Agregar una advertencia de tiempo de ejecución " +"sobre esto se consideró demasiado perjudicial ya que se espera que a la " +"mayoría del código no le importe. Utilice las API :func:`~multiprocessing." +"get_context` o :func:`~multiprocessing.set_start_method` para especificar " +"explícitamente cuándo su código *requires* ``'fork'``. Ver :ref:`contexts " +"and start methods `." #: ../Doc/whatsnew/3.12.rst:1229 msgid "" @@ -1678,6 +2319,9 @@ msgid "" "are deprecated and will be removed in Python 3.14; use :func:`importlib.util." "find_spec` instead. (Contributed by Nikita Sobolev in :gh:`97850`.)" msgstr "" +":mod:`pkgutil`: :func:`pkgutil.find_loader` y :func:`pkgutil.get_loader` " +"están en desuso y se eliminarán en Python 3.14; utilice :func:`importlib." +"util.find_spec` en su lugar. (Contribución de Nikita Sobolev en :gh:`97850`.)" #: ../Doc/whatsnew/3.12.rst:1234 msgid "" @@ -1686,10 +2330,15 @@ msgid "" "gained a proper :exc:`DeprecationWarning` in 3.12. Remove them in 3.14. " "(Contributed by Soumendra Ganguly and Gregory P. Smith in :gh:`85984`.)" msgstr "" +":mod:`pty`: el módulo tiene dos funciones ``master_open()`` y " +"``slave_open()`` no documentadas que han quedado obsoletas desde Python 2 " +"pero que solo obtuvieron un :exc:`DeprecationWarning` adecuado en 3.12. " +"Elimínelos en 3.14. (Aportado por Soumendra Ganguly y Gregory P. Smith en :" +"gh:`85984`.)" #: ../Doc/whatsnew/3.12.rst:1239 msgid ":mod:`os`:" -msgstr "" +msgstr ":mod:`os`:" #: ../Doc/whatsnew/3.12.rst:1241 msgid "" @@ -1699,6 +2348,11 @@ msgid "" "contain the creation time, which is also available in the new " "``st_birthtime`` field. (Contributed by Steve Dower in :gh:`99726`.)" msgstr "" +"Los campos ``st_ctime`` devueltos por :func:`os.stat` y :func:`os.lstat` en " +"Windows están en desuso. En una versión futura, contendrán la hora del " +"último cambio de metadatos, de forma coherente con otras plataformas. Por " +"ahora, todavía contienen la hora de creación, que también está disponible en " +"el nuevo campo ``st_birthtime``. (Aportado por Steve Dower en :gh:`99726`.)" #: ../Doc/whatsnew/3.12.rst:1247 msgid "" @@ -1712,6 +2366,16 @@ msgid "" "`_ for *why* we're now surfacing this " "longstanding platform compatibility problem to developers." msgstr "" +"En plataformas POSIX, :func:`os.fork` ahora puede generar un :exc:" +"`DeprecationWarning` cuando detecta una llamada desde un proceso " +"multiproceso. Siempre ha habido una incompatibilidad fundamental con la " +"plataforma POSIX al hacerlo. Incluso si dicho código *appeared* funciona. " +"Agregamos la advertencia para crear conciencia, ya que los problemas " +"encontrados por el código al hacer esto son cada vez más frecuentes. " +"Consulte la documentación de :func:`os.fork` para obtener más detalles junto " +"con `this discussion on fork being incompatible with threads `_ para *why*. Ahora estamos exponiendo a los " +"desarrolladores este problema de compatibilidad de plataforma de larga data." #: ../Doc/whatsnew/3.12.rst:1257 msgid "" @@ -1719,6 +2383,9 @@ msgid "" "`concurrent.futures` the fix is to use a different :mod:`multiprocessing` " "start method such as ``\"spawn\"`` or ``\"forkserver\"``." msgstr "" +"Cuando aparece esta advertencia debido al uso de :mod:`multiprocessing` o :" +"mod:`concurrent.futures`, la solución es utilizar un método de inicio de :" +"mod:`multiprocessing` diferente, como ``\"spawn\"`` o ``\"forkserver\"``." #: ../Doc/whatsnew/3.12.rst:1261 msgid "" @@ -1726,10 +2393,13 @@ msgid "" "and will be removed in Python 3.14. Use *onexc* instead. (Contributed by " "Irit Katriel in :gh:`102828`.)" msgstr "" +":mod:`shutil`: el argumento *onerror* de :func:`shutil.rmtree` está obsoleto " +"y se eliminará en Python 3.14. Utilice *onexc* en su lugar. (Aportado por " +"Irit Katriel en :gh:`102828`.)" #: ../Doc/whatsnew/3.12.rst:1264 msgid ":mod:`sqlite3`:" -msgstr "" +msgstr ":mod:`sqlite3`:" #: ../Doc/whatsnew/3.12.rst:1266 msgid "" @@ -1737,6 +2407,10 @@ msgid "" "deprecated. Instead, use the :ref:`sqlite3-adapter-converter-recipes` and " "tailor them to your needs. (Contributed by Erlend E. Aasland in :gh:`90016`.)" msgstr "" +":ref:`default adapters and converters ` ahora " +"están en desuso. En su lugar, utilice el :ref:`sqlite3-adapter-converter-" +"recipes` y adáptelo a sus necesidades. (Aportado por Erlend E. Aasland en :" +"gh:`90016`.)" #: ../Doc/whatsnew/3.12.rst:1272 msgid "" @@ -1747,6 +2421,12 @@ msgid "" "as a sequence will raise a :exc:`~sqlite3.ProgrammingError`. (Contributed by " "Erlend E. Aasland in :gh:`101698`.)" msgstr "" +"En :meth:`~sqlite3.Cursor.execute`, :exc:`DeprecationWarning` ahora se emite " +"cuando :ref:`named placeholders ` se utiliza junto con " +"los parámetros proporcionados como :term:`sequence` en lugar de como :class:" +"`dict`. A partir de Python 3.14, el uso de marcadores de posición con nombre " +"con parámetros proporcionados como una secuencia generará un :exc:`~sqlite3." +"ProgrammingError`. (Aportado por Erlend E. Aasland en :gh:`101698`.)" #: ../Doc/whatsnew/3.12.rst:1279 msgid "" @@ -1754,6 +2434,9 @@ msgid "" "last_traceback` fields are deprecated. Use :data:`sys.last_exc` instead. " "(Contributed by Irit Katriel in :gh:`102778`.)" msgstr "" +":mod:`sys`: los campos :data:`sys.last_type`, :data:`sys.last_value` y :data:" +"`sys.last_traceback` están en desuso. Utilice :data:`sys.last_exc` en su " +"lugar. (Aportado por Irit Katriel en :gh:`102778`.)" #: ../Doc/whatsnew/3.12.rst:1283 msgid "" @@ -1761,16 +2444,22 @@ msgid "" "deprecated until Python 3.14, when ``'data'`` filter will become the " "default. See :ref:`tarfile-extraction-filter` for details." msgstr "" +":mod:`tarfile`: la extracción de archivos tar sin especificar *filter* está " +"en desuso hasta Python 3.14, cuando el filtro ``'data'`` se convertirá en el " +"predeterminado. Consulte :ref:`tarfile-extraction-filter` para obtener más " +"detalles." #: ../Doc/whatsnew/3.12.rst:1287 msgid ":mod:`typing`:" -msgstr "" +msgstr ":mod:`typing`:" #: ../Doc/whatsnew/3.12.rst:1289 msgid "" ":class:`typing.Hashable` and :class:`typing.Sized` aliases for :class:" "`collections.abc.Hashable` and :class:`collections.abc.Sized`. (:gh:`94309`.)" msgstr "" +":class:`typing.Hashable` y :class:`typing.Sized` alias para :class:" +"`collections.abc.Hashable` y :class:`collections.abc.Sized`. (:gh:`94309`.)" #: ../Doc/whatsnew/3.12.rst:1292 msgid "" @@ -1778,6 +2467,9 @@ msgid "" "`DeprecationWarning` to be emitted when it is used. (Contributed by Alex " "Waygood in :gh:`91896`.)" msgstr "" +":class:`typing.ByteString`, en desuso desde Python 3.9, ahora provoca que se " +"emita un :exc:`DeprecationWarning` cuando se utiliza. (Aportado por Alex " +"Waygood en :gh:`91896`.)" #: ../Doc/whatsnew/3.12.rst:1296 msgid "" @@ -1786,6 +2478,11 @@ msgid "" "Before, the Python implementation emitted :exc:`FutureWarning`, and the C " "implementation emitted nothing. (Contributed by Jacob Walls in :gh:`83122`.)" msgstr "" +":mod:`xml.etree.ElementTree`: el módulo ahora emite :exc:" +"`DeprecationWarning` al probar el valor de verdad de un :class:`xml.etree." +"ElementTree.Element`. Antes, la implementación de Python emitía :exc:" +"`FutureWarning` y la implementación de C no emitía nada. (Aportado por Jacob " +"Walls en :gh:`83122`.)" #: ../Doc/whatsnew/3.12.rst:1302 msgid "" @@ -1795,6 +2492,12 @@ msgid "" "a future version of Python. Use the single-arg versions of these functions " "instead. (Contributed by Ofey Chan in :gh:`89874`.)" msgstr "" +"Las firmas de 3 argumentos (tipo, valor, rastreo) de :meth:`coroutine " +"throw() `, :meth:`generator throw() ` y :" +"meth:`async generator throw() ` están en desuso y es posible " +"que se eliminen en una versión futura de Python. Utilice en su lugar las " +"versiones de un solo argumento de estas funciones. (Aportado por Ofey Chan " +"en :gh:`89874`.)" #: ../Doc/whatsnew/3.12.rst:1308 msgid "" @@ -1802,6 +2505,9 @@ msgid "" "differs from ``__spec__.parent`` (previously it was :exc:`ImportWarning`). " "(Contributed by Brett Cannon in :gh:`65961`.)" msgstr "" +":exc:`DeprecationWarning` ahora se genera cuando ``__package__`` en un " +"módulo difiere de ``__spec__.parent`` (anteriormente era :exc:" +"`ImportWarning`). (Aportado por Brett Cannon en :gh:`65961`.)" #: ../Doc/whatsnew/3.12.rst:1313 msgid "" @@ -1809,6 +2515,9 @@ msgid "" "will cease to be set or taken into consideration by the import system in " "Python 3.14. (Contributed by Brett Cannon in :gh:`65961`.)" msgstr "" +"La configuración de ``__package__`` o ``__cached__`` en un módulo está " +"obsoleta y el sistema de importación dejará de configurarla o tomarla en " +"consideración en Python 3.14. (Aportado por Brett Cannon en :gh:`65961`.)" #: ../Doc/whatsnew/3.12.rst:1317 msgid "" @@ -1818,6 +2527,11 @@ msgid "" "underlying ``int``, convert to int explicitly: ``~int(x)``. (Contributed by " "Tim Hoffmann in :gh:`103487`.)" msgstr "" +"El operador de inversión bit a bit (``~``) en bool está en desuso. Lanzará " +"un error en Python 3.14. Utilice ``not`` para la negación lógica de bools. " +"En el raro caso de que realmente necesite la inversión bit a bit del ``int`` " +"subyacente, lo convierte a int explícitamente: ``~int(x)``. (Aportado por " +"Tim Hoffmann en :gh:`103487`.)" #: ../Doc/whatsnew/3.12.rst:1323 msgid "" @@ -1826,275 +2540,291 @@ msgid "" "therefore it will be removed in 3.14. (Contributed by Nikita Sobolev in :gh:" "`101866`.)" msgstr "" +"El acceso a ``co_lnotab`` en objetos de código quedó obsoleto en Python 3.10 " +"a través de :pep:`626`, pero solo obtuvo un :exc:`DeprecationWarning` " +"adecuado en 3.12, por lo que se eliminará en 3.14. (Aportado por Nikita " +"Sobolev en :gh:`101866`.)" #: ../Doc/whatsnew/3.12.rst:1329 msgid "Pending Removal in Python 3.13" -msgstr "" +msgstr "Eliminación pendiente en Python 3.13" #: ../Doc/whatsnew/3.12.rst:1331 msgid "" "The following modules and APIs have been deprecated in earlier Python " "releases, and will be removed in Python 3.13." msgstr "" +"Los siguientes módulos y API quedaron obsoletos en versiones anteriores de " +"Python y se eliminarán en Python 3.13." #: ../Doc/whatsnew/3.12.rst:1334 msgid "Modules (see :pep:`594`):" -msgstr "" +msgstr "Módulos (ver :pep:`594`):" #: ../Doc/whatsnew/3.12.rst:1336 msgid ":mod:`aifc`" -msgstr "" +msgstr ":mod:`aifc`" #: ../Doc/whatsnew/3.12.rst:1337 msgid ":mod:`audioop`" -msgstr "" +msgstr ":mod:`audioop`" #: ../Doc/whatsnew/3.12.rst:1338 msgid ":mod:`cgi`" -msgstr "" +msgstr ":mod:`cgi`" #: ../Doc/whatsnew/3.12.rst:1339 msgid ":mod:`cgitb`" -msgstr "" +msgstr ":mod:`cgitb`" #: ../Doc/whatsnew/3.12.rst:1340 msgid ":mod:`chunk`" -msgstr "" +msgstr ":mod:`chunk`" #: ../Doc/whatsnew/3.12.rst:1341 msgid ":mod:`crypt`" -msgstr "" +msgstr ":mod:`crypt`" #: ../Doc/whatsnew/3.12.rst:1342 msgid ":mod:`imghdr`" -msgstr "" +msgstr ":mod:`imghdr`" #: ../Doc/whatsnew/3.12.rst:1343 msgid ":mod:`mailcap`" -msgstr "" +msgstr ":mod:`mailcap`" #: ../Doc/whatsnew/3.12.rst:1344 msgid ":mod:`msilib`" -msgstr "" +msgstr ":mod:`msilib`" #: ../Doc/whatsnew/3.12.rst:1345 msgid ":mod:`nis`" -msgstr "" +msgstr ":mod:`nis`" #: ../Doc/whatsnew/3.12.rst:1346 msgid ":mod:`nntplib`" -msgstr "" +msgstr ":mod:`nntplib`" #: ../Doc/whatsnew/3.12.rst:1347 msgid ":mod:`ossaudiodev`" -msgstr "" +msgstr ":mod:`ossaudiodev`" #: ../Doc/whatsnew/3.12.rst:1348 msgid ":mod:`pipes`" -msgstr "" +msgstr ":mod:`pipes`" #: ../Doc/whatsnew/3.12.rst:1349 msgid ":mod:`sndhdr`" -msgstr "" +msgstr ":mod:`sndhdr`" #: ../Doc/whatsnew/3.12.rst:1350 msgid ":mod:`spwd`" -msgstr "" +msgstr ":mod:`spwd`" #: ../Doc/whatsnew/3.12.rst:1351 msgid ":mod:`sunau`" -msgstr "" +msgstr ":mod:`sunau`" #: ../Doc/whatsnew/3.12.rst:1352 msgid ":mod:`telnetlib`" -msgstr "" +msgstr ":mod:`telnetlib`" #: ../Doc/whatsnew/3.12.rst:1353 msgid ":mod:`uu`" -msgstr "" +msgstr ":mod:`uu`" #: ../Doc/whatsnew/3.12.rst:1354 msgid ":mod:`xdrlib`" -msgstr "" +msgstr ":mod:`xdrlib`" #: ../Doc/whatsnew/3.12.rst:1356 msgid "Other modules:" -msgstr "" +msgstr "Otros módulos:" #: ../Doc/whatsnew/3.12.rst:1358 msgid ":mod:`!lib2to3`, and the :program:`2to3` program (:gh:`84540`)" -msgstr "" +msgstr ":mod:`!lib2to3` y el programa :program:`2to3` (:gh:`84540`)" #: ../Doc/whatsnew/3.12.rst:1360 msgid "APIs:" -msgstr "" +msgstr "APIs:" #: ../Doc/whatsnew/3.12.rst:1362 msgid ":class:`!configparser.LegacyInterpolation` (:gh:`90765`)" -msgstr "" +msgstr ":class:`!configparser.LegacyInterpolation` (:gh:`90765`)" #: ../Doc/whatsnew/3.12.rst:1363 msgid ":func:`locale.getdefaultlocale` (:gh:`90817`)" -msgstr "" +msgstr ":func:`locale.getdefaultlocale` (:gh:`90817`)" #: ../Doc/whatsnew/3.12.rst:1364 msgid ":meth:`!turtle.RawTurtle.settiltangle` (:gh:`50096`)" -msgstr "" +msgstr ":meth:`!turtle.RawTurtle.settiltangle` (:gh:`50096`)" #: ../Doc/whatsnew/3.12.rst:1365 msgid ":func:`!unittest.findTestCases` (:gh:`50096`)" -msgstr "" +msgstr ":func:`!unittest.findTestCases` (:gh:`50096`)" #: ../Doc/whatsnew/3.12.rst:1366 msgid ":func:`!unittest.getTestCaseNames` (:gh:`50096`)" -msgstr "" +msgstr ":func:`!unittest.getTestCaseNames` (:gh:`50096`)" #: ../Doc/whatsnew/3.12.rst:1367 msgid ":func:`!unittest.makeSuite` (:gh:`50096`)" -msgstr "" +msgstr ":func:`!unittest.makeSuite` (:gh:`50096`)" #: ../Doc/whatsnew/3.12.rst:1368 msgid ":meth:`!unittest.TestProgram.usageExit` (:gh:`67048`)" -msgstr "" +msgstr ":meth:`!unittest.TestProgram.usageExit` (:gh:`67048`)" #: ../Doc/whatsnew/3.12.rst:1369 msgid ":class:`!webbrowser.MacOSX` (:gh:`86421`)" -msgstr "" +msgstr ":class:`!webbrowser.MacOSX` (:gh:`86421`)" #: ../Doc/whatsnew/3.12.rst:1370 msgid ":class:`classmethod` descriptor chaining (:gh:`89519`)" -msgstr "" +msgstr "Encadenamiento de descriptores :class:`classmethod` (:gh:`89519`)" #: ../Doc/whatsnew/3.12.rst:1373 ../Doc/whatsnew/3.12.rst:2306 msgid "Pending Removal in Python 3.14" -msgstr "" +msgstr "Eliminación pendiente en Python 3.14" #: ../Doc/whatsnew/3.12.rst:1375 msgid "" "The following APIs have been deprecated and will be removed in Python 3.14." msgstr "" +"Las siguientes API han quedado obsoletas y se eliminarán en Python 3.14." #: ../Doc/whatsnew/3.12.rst:1378 msgid "" ":mod:`argparse`: The *type*, *choices*, and *metavar* parameters of :class:`!" "argparse.BooleanOptionalAction`" msgstr "" +":mod:`argparse`: Los parámetros *type*, *choices* y *metavar* de :class:`!" +"argparse.BooleanOptionalAction`" #: ../Doc/whatsnew/3.12.rst:1381 msgid ":mod:`ast`:" -msgstr "" +msgstr ":mod:`ast`:" #: ../Doc/whatsnew/3.12.rst:1391 msgid ":class:`!asyncio.MultiLoopChildWatcher`" -msgstr "" +msgstr ":class:`!asyncio.MultiLoopChildWatcher`" #: ../Doc/whatsnew/3.12.rst:1392 msgid ":class:`!asyncio.FastChildWatcher`" -msgstr "" +msgstr ":class:`!asyncio.FastChildWatcher`" #: ../Doc/whatsnew/3.12.rst:1393 msgid ":class:`!asyncio.AbstractChildWatcher`" -msgstr "" +msgstr ":class:`!asyncio.AbstractChildWatcher`" #: ../Doc/whatsnew/3.12.rst:1394 msgid ":class:`!asyncio.SafeChildWatcher`" -msgstr "" +msgstr ":class:`!asyncio.SafeChildWatcher`" #: ../Doc/whatsnew/3.12.rst:1395 msgid ":func:`!asyncio.set_child_watcher`" -msgstr "" +msgstr ":func:`!asyncio.set_child_watcher`" #: ../Doc/whatsnew/3.12.rst:1396 msgid ":func:`!asyncio.get_child_watcher`," -msgstr "" +msgstr ":func:`!asyncio.get_child_watcher`," #: ../Doc/whatsnew/3.12.rst:1397 msgid ":meth:`!asyncio.AbstractEventLoopPolicy.set_child_watcher`" -msgstr "" +msgstr ":meth:`!asyncio.AbstractEventLoopPolicy.set_child_watcher`" #: ../Doc/whatsnew/3.12.rst:1398 msgid ":meth:`!asyncio.AbstractEventLoopPolicy.get_child_watcher`" -msgstr "" +msgstr ":meth:`!asyncio.AbstractEventLoopPolicy.get_child_watcher`" #: ../Doc/whatsnew/3.12.rst:1400 msgid ":mod:`collections.abc`: :class:`!collections.abc.ByteString`." -msgstr "" +msgstr ":mod:`collections.abc`: :class:`!collections.abc.ByteString`." #: ../Doc/whatsnew/3.12.rst:1402 msgid ":mod:`email`: the *isdst* parameter in :func:`email.utils.localtime`." -msgstr "" +msgstr ":mod:`email`: el parámetro *isdst* en :func:`email.utils.localtime`." #: ../Doc/whatsnew/3.12.rst:1404 msgid ":mod:`importlib.abc`:" -msgstr "" +msgstr ":mod:`importlib.abc`:" #: ../Doc/whatsnew/3.12.rst:1410 msgid ":mod:`itertools`: Support for copy, deepcopy, and pickle operations." msgstr "" +":mod:`itertools`: soporte para operaciones de copia, copia profunda y pickle." #: ../Doc/whatsnew/3.12.rst:1412 msgid ":mod:`pkgutil`:" -msgstr "" +msgstr ":mod:`pkgutil`:" #: ../Doc/whatsnew/3.12.rst:1414 msgid ":func:`!pkgutil.find_loader`" -msgstr "" +msgstr ":func:`!pkgutil.find_loader`" #: ../Doc/whatsnew/3.12.rst:1415 msgid ":func:`!pkgutil.get_loader`." -msgstr "" +msgstr ":func:`!pkgutil.get_loader`." #: ../Doc/whatsnew/3.12.rst:1417 msgid ":mod:`pty`:" -msgstr "" +msgstr ":mod:`pty`:" #: ../Doc/whatsnew/3.12.rst:1419 msgid ":func:`!pty.master_open`" -msgstr "" +msgstr ":func:`!pty.master_open`" #: ../Doc/whatsnew/3.12.rst:1420 msgid ":func:`!pty.slave_open`" -msgstr "" +msgstr ":func:`!pty.slave_open`" #: ../Doc/whatsnew/3.12.rst:1422 msgid ":mod:`shutil`: The *onerror* argument of :func:`shutil.rmtree`" -msgstr "" +msgstr ":mod:`shutil`: El argumento *onerror* de :func:`shutil.rmtree`" #: ../Doc/whatsnew/3.12.rst:1424 msgid ":mod:`typing`: :class:`!typing.ByteString`" -msgstr "" +msgstr ":mod:`typing`: :class:`!typing.ByteString`" #: ../Doc/whatsnew/3.12.rst:1426 msgid "" ":mod:`xml.etree.ElementTree`: Testing the truth value of an :class:`xml." "etree.ElementTree.Element`." msgstr "" +":mod:`xml.etree.ElementTree`: Probando el valor de verdad de un :class:`xml." +"etree.ElementTree.Element`." #: ../Doc/whatsnew/3.12.rst:1428 msgid "The ``__package__`` and ``__cached__`` attributes on module objects." msgstr "" +"Los atributos ``__package__`` y ``__cached__`` en los objetos del módulo." #: ../Doc/whatsnew/3.12.rst:1430 msgid "The ``co_lnotab`` attribute of code objects." -msgstr "" +msgstr "El atributo ``co_lnotab`` de los objetos de código." #: ../Doc/whatsnew/3.12.rst:1433 ../Doc/whatsnew/3.12.rst:2361 msgid "Pending Removal in Future Versions" -msgstr "" +msgstr "Eliminación pendiente en versiones futuras" #: ../Doc/whatsnew/3.12.rst:1435 msgid "" "The following APIs were deprecated in earlier Python versions and will be " "removed, although there is currently no date scheduled for their removal." msgstr "" +"Las siguientes API quedaron obsoletas en versiones anteriores de Python y se " +"eliminarán, aunque actualmente no hay una fecha programada para su " +"eliminación." #: ../Doc/whatsnew/3.12.rst:1438 msgid ":mod:`array`'s ``'u'`` format code (:gh:`57281`)" -msgstr "" +msgstr "Código de formato ``'u'`` de :mod:`array` (:gh:`57281`)" #: ../Doc/whatsnew/3.12.rst:1440 msgid ":class:`typing.Text` (:gh:`92332`)" -msgstr "" +msgstr ":class:`typing.Text` (:gh:`92332`)" #: ../Doc/whatsnew/3.12.rst:1442 msgid "" @@ -2107,14 +2837,22 @@ msgid "" "keyword:`is` and :keyword:`or`. In a future release it will be changed to a " "syntax error. (:gh:`87999`)" msgstr "" +"Actualmente, Python acepta literales numéricos seguidos inmediatamente de " +"palabras clave, por ejemplo ``0in x``, ``1or x``, ``0if 1else 2``. Permite " +"expresiones confusas y ambiguas como ``[0x1for x in y]`` (que puede " +"interpretarse como ``[0x1 for x in y]`` o ``[0x1f or x in y]``). Se genera " +"una advertencia de sintaxis si el literal numérico va seguido inmediatamente " +"de una de las palabras clave :keyword:`and`, :keyword:`else`, :keyword:" +"`for`, :keyword:`if`, :keyword:`in`, :keyword:`is` y :keyword:`or`. En una " +"versión futura se cambiará a un error de sintaxis. (:gh:`87999`)" #: ../Doc/whatsnew/3.12.rst:1453 ../Doc/whatsnew/3.12.rst:2393 msgid "Removed" -msgstr "" +msgstr "Eliminado" #: ../Doc/whatsnew/3.12.rst:1456 msgid "asynchat and asyncore" -msgstr "" +msgstr "asynchat y asyncore" #: ../Doc/whatsnew/3.12.rst:1458 msgid "" @@ -2122,38 +2860,49 @@ msgid "" "having been deprecated in Python 3.6. Use :mod:`asyncio` instead. " "(Contributed by Nikita Sobolev in :gh:`96580`.)" msgstr "" +"Estos dos módulos se eliminaron según lo programado en :pep:`594` y quedaron " +"obsoletos en Python 3.6. Utilice :mod:`asyncio` en su lugar. (Aportado por " +"Nikita Sobolev en :gh:`96580`.)" #: ../Doc/whatsnew/3.12.rst:1465 msgid "configparser" -msgstr "" +msgstr "configparser" #: ../Doc/whatsnew/3.12.rst:1467 msgid "" "Several names deprecated in the :mod:`configparser` way back in 3.2 have " "been removed per :gh:`89336`:" msgstr "" +"Varios nombres obsoletos en :mod:`configparser` en 3.2 se han eliminado " +"según :gh:`89336`:" #: ../Doc/whatsnew/3.12.rst:1470 msgid "" ":class:`configparser.ParsingError` no longer has a ``filename`` attribute or " "argument. Use the ``source`` attribute and argument instead." msgstr "" +":class:`configparser.ParsingError` ya no tiene un atributo o argumento " +"``filename``. Utilice el atributo y el argumento ``source`` en su lugar." #: ../Doc/whatsnew/3.12.rst:1472 msgid "" ":mod:`configparser` no longer has a ``SafeConfigParser`` class. Use the " "shorter :class:`~configparser.ConfigParser` name instead." msgstr "" +":mod:`configparser` ya no tiene una clase ``SafeConfigParser``. Utilice en " +"su lugar el nombre :class:`~configparser.ConfigParser` más corto." #: ../Doc/whatsnew/3.12.rst:1474 msgid "" ":class:`configparser.ConfigParser` no longer has a ``readfp`` method. Use :" "meth:`~configparser.ConfigParser.read_file` instead." msgstr "" +":class:`configparser.ConfigParser` ya no tiene un método ``readfp``. " +"Utilice :meth:`~configparser.ConfigParser.read_file` en su lugar." #: ../Doc/whatsnew/3.12.rst:1478 msgid "distutils" -msgstr "" +msgstr "distutils" #: ../Doc/whatsnew/3.12.rst:1480 msgid "" @@ -2163,16 +2912,24 @@ msgid "" "project can be installed: it still provides ``distutils``. (Contributed by " "Victor Stinner in :gh:`92584`.)" msgstr "" +"Elimine el paquete :py:mod:`!distutils`. Quedó obsoleto en Python 3.10 por :" +"pep:`632` \"Módulo distutils obsoleto\". Para proyectos que todavía usan " +"``distutils`` y no se pueden actualizar a otra cosa, se puede instalar el " +"proyecto ``setuptools``: todavía proporciona ``distutils``. (Aportado por " +"Victor Stinner en :gh:`92584`.)" #: ../Doc/whatsnew/3.12.rst:1487 msgid "ensurepip" -msgstr "" +msgstr "ensurepip" #: ../Doc/whatsnew/3.12.rst:1489 msgid "" "Remove the bundled setuptools wheel from :mod:`ensurepip`, and stop " "installing setuptools in environments created by :mod:`venv`." msgstr "" +"Retire la rueda de herramientas de configuración incluida en :mod:" +"`ensurepip` y deje de instalar herramientas de configuración en entornos " +"creados por :mod:`venv`." #: ../Doc/whatsnew/3.12.rst:1492 msgid "" @@ -2181,6 +2938,11 @@ msgid "" "still be used with ``pip install``, since pip will provide ``setuptools`` in " "the build environment it uses for building a package." msgstr "" +"``pip (>= 22.1)`` no requiere la instalación de herramientas de " +"configuración en el entorno. Los paquetes basados ​​en ``setuptools`` (y " +"``distutils``) aún se pueden usar con ``pip install``, ya que pip " +"proporcionará ``setuptools`` en el entorno de compilación que utiliza para " +"crear un paquete." #: ../Doc/whatsnew/3.12.rst:1498 msgid "" @@ -2191,34 +2953,46 @@ msgid "" "project should be declared as a dependency and installed separately " "(typically, using pip)." msgstr "" +"``easy_install``, ``pkg_resources``, ``setuptools`` y ``distutils`` ya no se " +"proporcionan de forma predeterminada en entornos creados con ``venv`` o " +"arrancados con ``ensurepip``, ya que forman parte del paquete " +"``setuptools``. Para proyectos que dependen de estos en tiempo de ejecución, " +"el proyecto ``setuptools`` debe declararse como una dependencia e instalarse " +"por separado (generalmente, usando pip)." #: ../Doc/whatsnew/3.12.rst:1505 msgid "(Contributed by Pradyun Gedam in :gh:`95299`.)" -msgstr "" +msgstr "(Aportado por Pradyun Gedam en :gh:`95299`.)" #: ../Doc/whatsnew/3.12.rst:1508 msgid "enum" -msgstr "" +msgstr "enum" #: ../Doc/whatsnew/3.12.rst:1510 msgid "" "Remove :mod:`enum`'s ``EnumMeta.__getattr__``, which is no longer needed for " "enum attribute access. (Contributed by Ethan Furman in :gh:`95083`.)" msgstr "" +"Elimine ``EnumMeta.__getattr__`` de :mod:`enum`, que ya no es necesario para " +"acceder al atributo de enumeración. (Aportado por Ethan Furman en :gh:" +"`95083`.)" #: ../Doc/whatsnew/3.12.rst:1515 msgid "ftplib" -msgstr "" +msgstr "ftplib" #: ../Doc/whatsnew/3.12.rst:1517 msgid "" "Remove :mod:`ftplib`'s ``FTP_TLS.ssl_version`` class attribute: use the " "*context* parameter instead. (Contributed by Victor Stinner in :gh:`94172`.)" msgstr "" +"Elimine el atributo de clase ``FTP_TLS.ssl_version`` de :mod:`ftplib`: " +"utilice el parámetro *context* en su lugar. (Aportado por Victor Stinner en :" +"gh:`94172`.)" #: ../Doc/whatsnew/3.12.rst:1522 msgid "gzip" -msgstr "" +msgstr "gzip" #: ../Doc/whatsnew/3.12.rst:1524 msgid "" @@ -2228,10 +3002,15 @@ msgid "" "extension if it was not present. (Contributed by Victor Stinner in :gh:" "`94196`.)" msgstr "" +"Elimine el atributo ``filename`` del :class:`gzip.GzipFile` de :mod:`gzip`, " +"en desuso desde Python 2.6; utilice el atributo :attr:`~gzip.GzipFile.name` " +"en su lugar. En modo de escritura, el atributo ``filename`` agregaba la " +"extensión de archivo ``'.gz'`` si no estaba presente. (Aportado por Victor " +"Stinner en :gh:`94196`.)" #: ../Doc/whatsnew/3.12.rst:1531 msgid "hashlib" -msgstr "" +msgstr "hashlib" #: ../Doc/whatsnew/3.12.rst:1533 msgid "" @@ -2241,22 +3020,31 @@ msgid "" "of :func:`~hashlib.pbkdf2_hmac()` which is faster. (Contributed by Victor " "Stinner in :gh:`94199`.)" msgstr "" +"Elimine la implementación pura de Python de :func:`hashlib.pbkdf2_hmac()` " +"de :mod:`hashlib`, obsoleta en Python 3.10. Python 3.10 y versiones " +"posteriores requieren OpenSSL 1.1.1 (:pep:`644`): esta versión de OpenSSL " +"proporciona una implementación C de :func:`~hashlib.pbkdf2_hmac()` que es " +"más rápida. (Aportado por Victor Stinner en :gh:`94199`.)" #: ../Doc/whatsnew/3.12.rst:1540 ../Doc/whatsnew/3.12.rst:1567 msgid "importlib" -msgstr "" +msgstr "importlib" #: ../Doc/whatsnew/3.12.rst:1542 msgid "" "Many previously deprecated cleanups in :mod:`importlib` have now been " "completed:" msgstr "" +"Muchas limpiezas anteriormente obsoletas en :mod:`importlib` ahora se han " +"completado:" #: ../Doc/whatsnew/3.12.rst:1545 msgid "" "References to, and support for :meth:`!module_repr()` has been removed. " "(Contributed by Barry Warsaw in :gh:`97850`.)" msgstr "" +"Se han eliminado las referencias y la compatibilidad con :meth:`!" +"module_repr()`. (Aportado por Barry Varsovia en :gh:`97850`.)" #: ../Doc/whatsnew/3.12.rst:1548 msgid "" @@ -2264,156 +3052,169 @@ msgid "" "``importlib.util.module_for_loader`` have all been removed. (Contributed by " "Brett Cannon and Nikita Sobolev in :gh:`65961` and :gh:`97850`.)" msgstr "" +"Se han eliminado ``importlib.util.set_package``, ``importlib.util." +"set_loader`` y ``importlib.util.module_for_loader``. (Contribución de Brett " +"Cannon y Nikita Sobolev en :gh:`65961` y :gh:`97850`.)" #: ../Doc/whatsnew/3.12.rst:1552 msgid "" "Support for ``find_loader()`` and ``find_module()`` APIs have been removed. " "(Contributed by Barry Warsaw in :gh:`98040`.)" msgstr "" +"Se eliminó la compatibilidad con las API ``find_loader()`` y " +"``find_module()``. (Aportado por Barry Varsovia en :gh:`98040`.)" #: ../Doc/whatsnew/3.12.rst:1555 msgid "" "``importlib.abc.Finder``, ``pkgutil.ImpImporter``, and ``pkgutil.ImpLoader`` " "have been removed. (Contributed by Barry Warsaw in :gh:`98040`.)" msgstr "" +"Se han eliminado ``importlib.abc.Finder``, ``pkgutil.ImpImporter`` y " +"``pkgutil.ImpLoader``. (Aportado por Barry Varsovia en :gh:`98040`.)" #: ../Doc/whatsnew/3.12.rst:1559 ../Doc/whatsnew/3.12.rst:1567 msgid "imp" -msgstr "" +msgstr "imp" #: ../Doc/whatsnew/3.12.rst:1561 msgid "" "The :mod:`!imp` module has been removed. (Contributed by Barry Warsaw in :" "gh:`98040`.)" msgstr "" +"Se ha eliminado el módulo :mod:`!imp`. (Aportado por Barry Varsovia en :gh:" +"`98040`.)" #: ../Doc/whatsnew/3.12.rst:1564 msgid "To migrate, consult the following correspondence table:" -msgstr "" +msgstr "Para migrar consulte la siguiente tabla de correspondencias:" #: ../Doc/whatsnew/3.12.rst:1569 msgid "``imp.NullImporter``" -msgstr "" +msgstr "``imp.NullImporter``" #: ../Doc/whatsnew/3.12.rst:1569 msgid "Insert ``None`` into ``sys.path_importer_cache``" -msgstr "" +msgstr "Inserta ``None`` en ``sys.path_importer_cache``" #: ../Doc/whatsnew/3.12.rst:1570 msgid "``imp.cache_from_source()``" -msgstr "" +msgstr "``imp.cache_from_source()``" #: ../Doc/whatsnew/3.12.rst:1570 msgid ":func:`importlib.util.cache_from_source`" -msgstr "" +msgstr ":func:`importlib.util.cache_from_source`" #: ../Doc/whatsnew/3.12.rst:1571 msgid "``imp.find_module()``" -msgstr "" +msgstr "``imp.find_module()``" #: ../Doc/whatsnew/3.12.rst:1571 msgid ":func:`importlib.util.find_spec`" -msgstr "" +msgstr ":func:`importlib.util.find_spec`" #: ../Doc/whatsnew/3.12.rst:1572 msgid "``imp.get_magic()``" -msgstr "" +msgstr "``imp.get_magic()``" #: ../Doc/whatsnew/3.12.rst:1572 msgid ":attr:`importlib.util.MAGIC_NUMBER`" -msgstr "" +msgstr ":attr:`importlib.util.MAGIC_NUMBER`" #: ../Doc/whatsnew/3.12.rst:1573 msgid "``imp.get_suffixes()``" -msgstr "" +msgstr "``imp.get_suffixes()``" #: ../Doc/whatsnew/3.12.rst:1573 msgid "" ":attr:`importlib.machinery.SOURCE_SUFFIXES`, :attr:`importlib.machinery." "EXTENSION_SUFFIXES`, and :attr:`importlib.machinery.BYTECODE_SUFFIXES`" msgstr "" +":attr:`importlib.machinery.SOURCE_SUFFIXES`, :attr:`importlib.machinery." +"EXTENSION_SUFFIXES` y :attr:`importlib.machinery.BYTECODE_SUFFIXES`" #: ../Doc/whatsnew/3.12.rst:1574 msgid "``imp.get_tag()``" -msgstr "" +msgstr "``imp.get_tag()``" #: ../Doc/whatsnew/3.12.rst:1574 msgid ":attr:`sys.implementation.cache_tag `" -msgstr "" +msgstr ":attr:`sys.implementation.cache_tag `" #: ../Doc/whatsnew/3.12.rst:1575 msgid "``imp.load_module()``" -msgstr "" +msgstr "``imp.load_module()``" #: ../Doc/whatsnew/3.12.rst:1575 msgid ":func:`importlib.import_module`" -msgstr "" +msgstr ":func:`importlib.import_module`" #: ../Doc/whatsnew/3.12.rst:1576 msgid "``imp.new_module(name)``" -msgstr "" +msgstr "``imp.new_module(name)``" #: ../Doc/whatsnew/3.12.rst:1576 msgid "``types.ModuleType(name)``" -msgstr "" +msgstr "``types.ModuleType(name)``" #: ../Doc/whatsnew/3.12.rst:1577 msgid "``imp.reload()``" -msgstr "" +msgstr "``imp.reload()``" #: ../Doc/whatsnew/3.12.rst:1577 msgid ":func:`importlib.reload`" -msgstr "" +msgstr ":func:`importlib.reload`" #: ../Doc/whatsnew/3.12.rst:1578 msgid "``imp.source_from_cache()``" -msgstr "" +msgstr "``imp.source_from_cache()``" #: ../Doc/whatsnew/3.12.rst:1578 msgid ":func:`importlib.util.source_from_cache`" -msgstr "" +msgstr ":func:`importlib.util.source_from_cache`" #: ../Doc/whatsnew/3.12.rst:1579 msgid "``imp.load_source()``" -msgstr "" +msgstr "``imp.load_source()``" #: ../Doc/whatsnew/3.12.rst:1579 msgid "*See below*" -msgstr "" +msgstr "*Ver abajo*" #: ../Doc/whatsnew/3.12.rst:1582 msgid "Replace ``imp.load_source()`` with::" -msgstr "" +msgstr "Reemplace ``imp.load_source()`` con::" #: ../Doc/whatsnew/3.12.rst:1597 msgid "Remove :mod:`!imp` functions and attributes with no replacements:" -msgstr "" +msgstr "Elimine las funciones y atributos de :mod:`!imp` sin reemplazos:" #: ../Doc/whatsnew/3.12.rst:1599 msgid "Undocumented functions:" -msgstr "" +msgstr "Funciones no documentadas:" #: ../Doc/whatsnew/3.12.rst:1601 msgid "``imp.init_builtin()``" -msgstr "" +msgstr "``imp.init_builtin()``" #: ../Doc/whatsnew/3.12.rst:1602 msgid "``imp.load_compiled()``" -msgstr "" +msgstr "``imp.load_compiled()``" #: ../Doc/whatsnew/3.12.rst:1603 msgid "``imp.load_dynamic()``" -msgstr "" +msgstr "``imp.load_dynamic()``" #: ../Doc/whatsnew/3.12.rst:1604 msgid "``imp.load_package()``" -msgstr "" +msgstr "``imp.load_package()``" #: ../Doc/whatsnew/3.12.rst:1606 msgid "" "``imp.lock_held()``, ``imp.acquire_lock()``, ``imp.release_lock()``: the " "locking scheme has changed in Python 3.3 to per-module locks." msgstr "" +"``imp.lock_held()``, ``imp.acquire_lock()``, ``imp.release_lock()``: el " +"esquema de bloqueo ha cambiado en Python 3.3 a bloqueos por módulo." #: ../Doc/whatsnew/3.12.rst:1608 msgid "" @@ -2421,10 +3222,13 @@ msgid "" "``PY_COMPILED``, ``C_EXTENSION``, ``PY_RESOURCE``, ``PKG_DIRECTORY``, " "``C_BUILTIN``, ``PY_FROZEN``, ``PY_CODERESOURCE``, ``IMP_HOOK``." msgstr "" +"Constantes ``imp.find_module()``: ``SEARCH_ERROR``, ``PY_SOURCE``, " +"``PY_COMPILED``, ``C_EXTENSION``, ``PY_RESOURCE``, ``PKG_DIRECTORY``, " +"``C_BUILTIN``, ``PY_FROZEN``, ``PY_CODERESOURCE``, ``IMP_HOOK``." #: ../Doc/whatsnew/3.12.rst:1613 msgid "io" -msgstr "" +msgstr "io" #: ../Doc/whatsnew/3.12.rst:1615 msgid "" @@ -2434,10 +3238,15 @@ msgid "" "open` is also a static method. (Contributed by Victor Stinner in :gh:" "`94169`.)" msgstr "" +"Elimine ``io.OpenWrapper`` y ``_pyio.OpenWrapper`` de :mod:`io`, obsoletos " +"en Python 3.10: simplemente use :func:`open` en su lugar. La función :func:" +"`open` (:func:`io.open`) es una función incorporada. Desde Python 3.10, :" +"func:`!_pyio.open` también es un método estático. (Aportado por Victor " +"Stinner en :gh:`94169`.)" #: ../Doc/whatsnew/3.12.rst:1622 msgid "locale" -msgstr "" +msgstr "locale" #: ../Doc/whatsnew/3.12.rst:1624 msgid "" @@ -2445,6 +3254,9 @@ msgid "" "3.7: use :func:`locale.format_string` instead. (Contributed by Victor " "Stinner in :gh:`94226`.)" msgstr "" +"Elimine la función :func:`!locale.format` de :mod:`locale`, obsoleta en " +"Python 3.7: use :func:`locale.format_string` en su lugar. (Aportado por " +"Victor Stinner en :gh:`94226`.)" #: ../Doc/whatsnew/3.12.rst:1628 msgid "" @@ -2453,26 +3265,34 @@ msgid "" "module or any other :mod:`asyncio`-based server instead. (Contributed by " "Oleg Iarygin in :gh:`93243`.)" msgstr "" +"``smtpd``: el módulo se eliminó según lo programado en :pep:`594`, ya que " +"quedó obsoleto en Python 3.4.7 y 3.5.4. Utilice el módulo aiosmtpd_ PyPI o " +"cualquier otro servidor basado en :mod:`asyncio`. (Contribución de Oleg " +"Iarygin en :gh:`93243`.)" #: ../Doc/whatsnew/3.12.rst:1639 msgid "" "The following undocumented :mod:`sqlite3` features, deprecated in Python " "3.10, are now removed:" msgstr "" +"Las siguientes características :mod:`sqlite3` no documentadas, obsoletas en " +"Python 3.10, ahora se eliminan:" #: ../Doc/whatsnew/3.12.rst:1642 msgid "``sqlite3.enable_shared_cache()``" -msgstr "" +msgstr "``sqlite3.enable_shared_cache()``" #: ../Doc/whatsnew/3.12.rst:1643 msgid "``sqlite3.OptimizedUnicode``" -msgstr "" +msgstr "``sqlite3.OptimizedUnicode``" #: ../Doc/whatsnew/3.12.rst:1645 msgid "" "If a shared cache must be used, open the database in URI mode using the " "``cache=shared`` query parameter." msgstr "" +"Si se debe utilizar una caché compartida, abra la base de datos en modo URI " +"utilizando el parámetro de consulta ``cache=shared``." #: ../Doc/whatsnew/3.12.rst:1648 msgid "" @@ -2481,14 +3301,18 @@ msgid "" "``OptimizedUnicode`` can either use ``str`` explicitly, or rely on the " "default value which is also ``str``." msgstr "" +"La fábrica de textos ``sqlite3.OptimizedUnicode`` ha sido un alias para :" +"class:`str` desde Python 3.3. El código que previamente configuró la fábrica " +"de texto en ``OptimizedUnicode`` puede usar ``str`` explícitamente o confiar " +"en el valor predeterminado que también es ``str``." #: ../Doc/whatsnew/3.12.rst:1653 msgid "(Contributed by Erlend E. Aasland in :gh:`92548`.)" -msgstr "" +msgstr "(Aportado por Erlend E. Aasland en :gh:`92548`.)" #: ../Doc/whatsnew/3.12.rst:1656 msgid "ssl" -msgstr "" +msgstr "ssl" #: ../Doc/whatsnew/3.12.rst:1658 msgid "" @@ -2496,6 +3320,9 @@ msgid "" "Python 3.6: use :func:`os.urandom` or :func:`ssl.RAND_bytes` instead. " "(Contributed by Victor Stinner in :gh:`94199`.)" msgstr "" +"Elimine la función :func:`!ssl.RAND_pseudo_bytes` de :mod:`ssl`, obsoleta en " +"Python 3.6: use :func:`os.urandom` o :func:`ssl.RAND_bytes` en su lugar. " +"(Aportado por Victor Stinner en :gh:`94199`.)" #: ../Doc/whatsnew/3.12.rst:1662 msgid "" @@ -2504,6 +3331,10 @@ msgid "" "uses the :func:`!ssl.match_hostname` function. (Contributed by Victor " "Stinner in :gh:`94199`.)" msgstr "" +"Elimine la función :func:`!ssl.match_hostname`. Quedó obsoleto en Python " +"3.7. OpenSSL realiza coincidencias de nombres de host desde Python 3.7, " +"Python ya no usa la función :func:`!ssl.match_hostname`. (Aportado por " +"Victor Stinner en :gh:`94199`.)" #: ../Doc/whatsnew/3.12.rst:1668 msgid "" @@ -2515,156 +3346,169 @@ msgid "" "`_: Improper Certificate " "Validation. (Contributed by Victor Stinner in :gh:`94199`.)" msgstr "" +"Elimine la función :func:`!ssl.wrap_socket`, obsoleta en Python 3.7: en su " +"lugar, cree un objeto :class:`ssl.SSLContext` y llame a su método :class:" +"`ssl.SSLContext.wrap_socket`. Cualquier paquete que todavía use :func:`!ssl." +"wrap_socket` está roto y es inseguro. La función no envía una extensión SNI " +"TLS ni valida el nombre de host del servidor. El código está sujeto a " +"`CWE-295 `_: Validación de " +"certificado incorrecta. (Aportado por Victor Stinner en :gh:`94199`.)" #: ../Doc/whatsnew/3.12.rst:1680 msgid "Remove many long-deprecated :mod:`unittest` features:" msgstr "" +"Elimine muchas características de :mod:`unittest` que están en desuso desde " +"hace mucho tiempo:" #: ../Doc/whatsnew/3.12.rst:1684 msgid "A number of :class:`~unittest.TestCase` method aliases:" -msgstr "" +msgstr "Varios alias del método :class:`~unittest.TestCase`:" #: ../Doc/whatsnew/3.12.rst:1687 msgid "Deprecated alias" -msgstr "" +msgstr "Alias obsoleto" #: ../Doc/whatsnew/3.12.rst:1687 msgid "Method Name" -msgstr "" +msgstr "Nombre del método" #: ../Doc/whatsnew/3.12.rst:1687 msgid "Deprecated in" -msgstr "" +msgstr "En desuso en" #: ../Doc/whatsnew/3.12.rst:1689 msgid "``failUnless``" -msgstr "" +msgstr "``failUnless``" #: ../Doc/whatsnew/3.12.rst:1689 ../Doc/whatsnew/3.12.rst:1696 msgid ":meth:`.assertTrue`" -msgstr "" +msgstr ":meth:`.assertTrue`" #: ../Doc/whatsnew/3.12.rst:1689 ../Doc/whatsnew/3.12.rst:1690 #: ../Doc/whatsnew/3.12.rst:1691 ../Doc/whatsnew/3.12.rst:1692 #: ../Doc/whatsnew/3.12.rst:1693 ../Doc/whatsnew/3.12.rst:1694 #: ../Doc/whatsnew/3.12.rst:1695 msgid "3.1" -msgstr "" +msgstr "3.1" #: ../Doc/whatsnew/3.12.rst:1690 msgid "``failIf``" -msgstr "" +msgstr "``failIf``" #: ../Doc/whatsnew/3.12.rst:1690 msgid ":meth:`.assertFalse`" -msgstr "" +msgstr ":meth:`.assertFalse`" #: ../Doc/whatsnew/3.12.rst:1691 msgid "``failUnlessEqual``" -msgstr "" +msgstr "``failUnlessEqual``" #: ../Doc/whatsnew/3.12.rst:1691 ../Doc/whatsnew/3.12.rst:1697 msgid ":meth:`.assertEqual`" -msgstr "" +msgstr ":meth:`.assertEqual`" #: ../Doc/whatsnew/3.12.rst:1692 msgid "``failIfEqual``" -msgstr "" +msgstr "``failIfEqual``" #: ../Doc/whatsnew/3.12.rst:1692 ../Doc/whatsnew/3.12.rst:1698 msgid ":meth:`.assertNotEqual`" -msgstr "" +msgstr ":meth:`.assertNotEqual`" #: ../Doc/whatsnew/3.12.rst:1693 msgid "``failUnlessAlmostEqual``" -msgstr "" +msgstr "``failUnlessAlmostEqual``" #: ../Doc/whatsnew/3.12.rst:1693 ../Doc/whatsnew/3.12.rst:1699 msgid ":meth:`.assertAlmostEqual`" -msgstr "" +msgstr ":meth:`.assertAlmostEqual`" #: ../Doc/whatsnew/3.12.rst:1694 msgid "``failIfAlmostEqual``" -msgstr "" +msgstr "``failIfAlmostEqual``" #: ../Doc/whatsnew/3.12.rst:1694 ../Doc/whatsnew/3.12.rst:1700 msgid ":meth:`.assertNotAlmostEqual`" -msgstr "" +msgstr ":meth:`.assertNotAlmostEqual`" #: ../Doc/whatsnew/3.12.rst:1695 msgid "``failUnlessRaises``" -msgstr "" +msgstr "``failUnlessRaises``" #: ../Doc/whatsnew/3.12.rst:1695 msgid ":meth:`.assertRaises`" -msgstr "" +msgstr ":meth:`.assertRaises`" #: ../Doc/whatsnew/3.12.rst:1696 msgid "``assert_``" -msgstr "" +msgstr "``assert_``" #: ../Doc/whatsnew/3.12.rst:1696 ../Doc/whatsnew/3.12.rst:1697 #: ../Doc/whatsnew/3.12.rst:1698 ../Doc/whatsnew/3.12.rst:1699 #: ../Doc/whatsnew/3.12.rst:1700 ../Doc/whatsnew/3.12.rst:1701 #: ../Doc/whatsnew/3.12.rst:1702 msgid "3.2" -msgstr "" +msgstr "3.2" #: ../Doc/whatsnew/3.12.rst:1697 msgid "``assertEquals``" -msgstr "" +msgstr "``assertEquals``" #: ../Doc/whatsnew/3.12.rst:1698 msgid "``assertNotEquals``" -msgstr "" +msgstr "``assertNotEquals``" #: ../Doc/whatsnew/3.12.rst:1699 msgid "``assertAlmostEquals``" -msgstr "" +msgstr "``assertAlmostEquals``" #: ../Doc/whatsnew/3.12.rst:1700 msgid "``assertNotAlmostEquals``" -msgstr "" +msgstr "``assertNotAlmostEquals``" #: ../Doc/whatsnew/3.12.rst:1701 msgid "``assertRegexpMatches``" -msgstr "" +msgstr "``assertRegexpMatches``" #: ../Doc/whatsnew/3.12.rst:1701 msgid ":meth:`.assertRegex`" -msgstr "" +msgstr ":meth:`.assertRegex`" #: ../Doc/whatsnew/3.12.rst:1702 msgid "``assertRaisesRegexp``" -msgstr "" +msgstr "``assertRaisesRegexp``" #: ../Doc/whatsnew/3.12.rst:1702 msgid ":meth:`.assertRaisesRegex`" -msgstr "" +msgstr ":meth:`.assertRaisesRegex`" #: ../Doc/whatsnew/3.12.rst:1703 msgid "``assertNotRegexpMatches``" -msgstr "" +msgstr "``assertNotRegexpMatches``" #: ../Doc/whatsnew/3.12.rst:1703 msgid ":meth:`.assertNotRegex`" -msgstr "" +msgstr ":meth:`.assertNotRegex`" #: ../Doc/whatsnew/3.12.rst:1703 msgid "3.5" -msgstr "" +msgstr "3.5" #: ../Doc/whatsnew/3.12.rst:1706 msgid "" "You can use https://github.com/isidentical/teyit to automatically modernise " "your unit tests." msgstr "" +"Puede utilizar https://github.com/isidentical/teyit para modernizar " +"automáticamente sus pruebas unitarias." #: ../Doc/whatsnew/3.12.rst:1709 msgid "" "Undocumented and broken :class:`~unittest.TestCase` method " "``assertDictContainsSubset`` (deprecated in Python 3.2)." msgstr "" +"Método ``assertDictContainsSubset`` de :class:`~unittest.TestCase` " +"indocumentado y roto (obsoleto en Python 3.2)." #: ../Doc/whatsnew/3.12.rst:1712 msgid "" @@ -2672,20 +3516,25 @@ msgid "" "loadTestsFromModule>` parameter *use_load_tests* (deprecated and ignored " "since Python 3.2)." msgstr "" +"Parámetro :meth:`TestLoader.loadTestsFromModule ` no documentado *use_load_tests* (obsoleto e ignorado " +"desde Python 3.2)." #: ../Doc/whatsnew/3.12.rst:1716 msgid "" "An alias of the :class:`~unittest.TextTestResult` class: ``_TextTestResult`` " "(deprecated in Python 3.2)." msgstr "" +"Un alias de la clase :class:`~unittest.TextTestResult`: ``_TextTestResult`` " +"(obsoleto en Python 3.2)." #: ../Doc/whatsnew/3.12.rst:1719 msgid "(Contributed by Serhiy Storchaka in :gh:`89325`.)" -msgstr "" +msgstr "(Contribución de Serhiy Storchaka en :gh:`89325`.)" #: ../Doc/whatsnew/3.12.rst:1722 msgid "webbrowser" -msgstr "" +msgstr "webbrowser" #: ../Doc/whatsnew/3.12.rst:1724 msgid "" @@ -2693,10 +3542,14 @@ msgid "" "browsers include: Grail, Mosaic, Netscape, Galeon, Skipstone, Iceape, " "Firebird, and Firefox versions 35 and below (:gh:`102871`)." msgstr "" +"Elimina la compatibilidad con navegadores obsoletos de :mod:`webbrowser`. " +"Los navegadores eliminados incluyen: Grail, Mosaic, Netscape, Galeon, " +"Skipstone, Iceape, Firebird y Firefox versiones 35 e inferiores (:gh:" +"`102871`)." #: ../Doc/whatsnew/3.12.rst:1729 msgid "xml.etree.ElementTree" -msgstr "" +msgstr "xml.etree.ElementTree" #: ../Doc/whatsnew/3.12.rst:1731 msgid "" @@ -2706,10 +3559,15 @@ msgid "" "no ``copy()`` method, only a ``__copy__()`` method. (Contributed by Victor " "Stinner in :gh:`94383`.)" msgstr "" +"Elimine el método ``ElementTree.Element.copy()`` de la implementación pura " +"de Python, obsoleto en Python 3.10, use la función :func:`copy.copy` en su " +"lugar. La implementación C de :mod:`xml.etree.ElementTree` no tiene ningún " +"método ``copy()``, solo un método ``__copy__()``. (Aportado por Victor " +"Stinner en :gh:`94383`.)" #: ../Doc/whatsnew/3.12.rst:1738 msgid "zipimport" -msgstr "" +msgstr "zipimport" #: ../Doc/whatsnew/3.12.rst:1740 msgid "" @@ -2717,10 +3575,14 @@ msgid "" "deprecated in Python 3.10: use the ``find_spec()`` method instead. See :pep:" "`451` for the rationale. (Contributed by Victor Stinner in :gh:`94379`.)" msgstr "" +"Elimine los métodos ``find_loader()`` y ``find_module()`` de :mod:" +"`zipimport`, obsoletos en Python 3.10: use el método ``find_spec()`` en su " +"lugar. Consulte :pep:`451` para conocer el fundamento. (Aportado por Victor " +"Stinner en :gh:`94379`.)" #: ../Doc/whatsnew/3.12.rst:1746 msgid "Others" -msgstr "" +msgstr "Otros" #: ../Doc/whatsnew/3.12.rst:1748 msgid "" @@ -2729,6 +3591,10 @@ msgid "" "com/sphinx-contrib/sphinx-lint>`_. (Contributed by Julien Palard in :gh:" "`98179`.)" msgstr "" +"Elimine la regla ``suspicious`` de la documentación :file:`Makefile` y :file:" +"`Doc/tools/rstlint.py`, ambas a favor de `sphinx-lint `_. (Contribución de Julien Palard en :gh:" +"`98179`.)" #: ../Doc/whatsnew/3.12.rst:1753 msgid "" @@ -2739,20 +3605,27 @@ msgid "" "(*ssl_context* in :mod:`imaplib`) instead. (Contributed by Victor Stinner " "in :gh:`94172`.)" msgstr "" +"Elimine los parámetros *keyfile* y *certfile* de los módulos :mod:`ftplib`, :" +"mod:`imaplib`, :mod:`poplib` y :mod:`smtplib`, y los parámetros *key_file*, " +"*cert_file* y *check_hostname* del módulo :mod:`http.client`, todos " +"obsoletos desde Python 3.6. Utilice el parámetro *context* (*ssl_context* " +"en :mod:`imaplib`) en su lugar. (Aportado por Victor Stinner en :gh:`94172`.)" #: ../Doc/whatsnew/3.12.rst:1764 ../Doc/whatsnew/3.12.rst:2079 msgid "Porting to Python 3.12" -msgstr "" +msgstr "Portar a Python 3.12" #: ../Doc/whatsnew/3.12.rst:1766 msgid "" "This section lists previously described changes and other bugfixes that may " "require changes to your code." msgstr "" +"Esta sección enumera los cambios descritos anteriormente y otras " +"correcciones de errores que pueden requerir cambios en su código." #: ../Doc/whatsnew/3.12.rst:1770 msgid "Changes in the Python API" -msgstr "" +msgstr "Cambios en la API de Python" #: ../Doc/whatsnew/3.12.rst:1772 msgid "" @@ -2762,6 +3635,12 @@ msgid "" "strings can now only contain ASCII letters and digits and underscore. " "(Contributed by Serhiy Storchaka in :gh:`91760`.)" msgstr "" +"Ahora se aplican reglas más estrictas para las referencias numéricas de " +"grupos y los nombres de grupos en expresiones regulares. Ahora sólo se " +"acepta como referencia numérica la secuencia de dígitos ASCII. El nombre del " +"grupo en patrones de bytes y cadenas de reemplazo ahora solo puede contener " +"letras y dígitos ASCII y guiones bajos. (Contribución de Serhiy Storchaka " +"en :gh:`91760`.)" #: ../Doc/whatsnew/3.12.rst:1779 msgid "" @@ -2774,6 +3653,14 @@ msgid "" "``randrange(10**25)``. (Originally suggested by Serhiy Storchaka :gh:" "`86388`.)" msgstr "" +"Elimine la funcionalidad ``randrange()`` en desuso desde Python 3.10. " +"Anteriormente, ``randrange(10.0)`` se convertía sin pérdidas a " +"``randrange(10)``. Ahora, genera un :exc:`TypeError`. Además, la excepción " +"planteada para valores no enteros como ``randrange(10.5)`` o " +"``randrange('10')`` se cambió de :exc:`ValueError` a :exc:`TypeError`. Esto " +"también evita errores en los que ``randrange(1e25)`` seleccionaría " +"silenciosamente de un rango mayor que ``randrange(10**25)``. (Originalmente " +"sugerido por Serhiy Storchaka :gh:`86388`.)" #: ../Doc/whatsnew/3.12.rst:1787 msgid "" @@ -2784,6 +3671,13 @@ msgid "" "handler`. Argument files should be encoded in UTF-8 instead of ANSI Codepage " "on Windows." msgstr "" +":class:`argparse.ArgumentParser` cambió la codificación y el controlador de " +"errores para leer argumentos de un archivo (por ejemplo, la opción " +"``fromfile_prefix_chars``) de la codificación de texto predeterminada (por " +"ejemplo, :func:`locale.getpreferredencoding(False) `) a :term:`filesystem encoding and error handler`. Los " +"archivos de argumentos deben codificarse en UTF-8 en lugar de en la página " +"de códigos ANSI en Windows." #: ../Doc/whatsnew/3.12.rst:1793 msgid "" @@ -2791,6 +3685,9 @@ msgid "" "and 3.5.4. A recommended replacement is the :mod:`asyncio`-based aiosmtpd_ " "PyPI module." msgstr "" +"Elimine el módulo ``smtpd`` basado en ``asyncore`` que está en desuso en " +"Python 3.4.7 y 3.5.4. Un reemplazo recomendado es el módulo aiosmtpd_ PyPI " +"basado en :mod:`asyncio`." #: ../Doc/whatsnew/3.12.rst:1797 msgid "" @@ -2798,6 +3695,9 @@ msgid "" "exception, rather than reading :data:`sys.stdin`. The feature was deprecated " "in Python 3.9. (Contributed by Victor Stinner in :gh:`94352`.)" msgstr "" +":func:`shlex.split`: Pasar ``None`` por el argumento *s* ahora genera una " +"excepción, en lugar de leer :data:`sys.stdin`. La característica quedó " +"obsoleta en Python 3.9. (Aportado por Victor Stinner en :gh:`94352`.)" #: ../Doc/whatsnew/3.12.rst:1802 msgid "" @@ -2806,6 +3706,9 @@ msgid "" "type is accepted for bytes strings. (Contributed by Victor Stinner in :gh:" "`98393`.)" msgstr "" +"El módulo :mod:`os` ya no acepta rutas tipo bytes, como los tipos :class:" +"`bytearray` y :class:`memoryview`: solo se acepta el tipo exacto :class:" +"`bytes` para cadenas de bytes. (Aportado por Victor Stinner en :gh:`98393`.)" #: ../Doc/whatsnew/3.12.rst:1807 msgid "" @@ -2818,6 +3721,15 @@ msgid "" "process-global resources, which are best managed from the main interpreter. " "(Contributed by Donghee Na in :gh:`99127`.)" msgstr "" +":func:`syslog.openlog` y :func:`syslog.closelog` ahora fallan si se usan en " +"subintérpretes. :func:`syslog.syslog` aún se puede usar en subintérpretes, " +"pero ahora solo si :func:`syslog.openlog` ya ha sido llamado en el " +"intérprete principal. Estas nuevas restricciones no se aplican al intérprete " +"principal, por lo que sólo un conjunto muy pequeño de usuarios podría verse " +"afectado. Este cambio ayuda con el aislamiento del intérprete. Además, :mod:" +"`syslog` es un contenedor de recursos globales de procesos, que se " +"administran mejor desde el intérprete principal. (Aportado por Donghee Na " +"en :gh:`99127`.)" #: ../Doc/whatsnew/3.12.rst:1816 msgid "" @@ -2830,6 +3742,17 @@ msgid "" "fine. If synchronization is needed, implement locking within the cached " "property getter function or around multi-threaded access points." msgstr "" +"Se elimina el comportamiento de bloqueo no documentado de :func:`~functools." +"cached_property`, porque bloqueaba todas las instancias de la clase, lo que " +"generaba una alta contención de bloqueo. Esto significa que una función de " +"obtención de propiedades almacenadas en caché ahora podría ejecutarse más de " +"una vez para una sola instancia, si dos subprocesos se ejecutan. Para la " +"mayoría de las propiedades almacenadas en caché simples (por ejemplo, " +"aquellas que son idempotentes y simplemente calculan un valor en función de " +"otros atributos de la instancia), esto estará bien. Si se necesita " +"sincronización, implemente el bloqueo dentro de la función de obtención de " +"propiedades en caché o alrededor de puntos de acceso de subprocesos " +"múltiples." #: ../Doc/whatsnew/3.12.rst:1829 msgid "" @@ -2837,6 +3760,10 @@ msgid "" "unpack_archive`, pass the *filter* argument to limit features that may be " "surprising or dangerous. See :ref:`tarfile-extraction-filter` for details." msgstr "" +"Al extraer archivos tar usando :mod:`tarfile` o :func:`shutil." +"unpack_archive`, pase el argumento *filter* para limitar las funciones que " +"pueden resultar sorprendentes o peligrosas. Consulte :ref:`tarfile-" +"extraction-filter` para obtener más detalles." #: ../Doc/whatsnew/3.12.rst:1834 msgid "" @@ -2849,44 +3776,65 @@ msgid "" "tokenization in the expression components. For example for the f-string " "``f\"start {1+1} end\"`` the old version of the tokenizer emitted::" msgstr "" +"La salida de las funciones :func:`tokenize.tokenize` y :func:`tokenize." +"generate_tokens` ahora cambia debido a los cambios introducidos en :pep:" +"`701`. Esto significa que los tokens ``STRING`` ya no se emiten para cadenas " +"f y los tokens descritos en :pep:`701` ahora se producen en su lugar: " +"``FSTRING_START``, ``FSTRING_MIDDLE`` y ``FSTRING_END`` ahora se emiten para " +"partes de \"cadena\" de cadena f además de los tokens apropiados para la " +"tokenización. en los componentes de la expresión. Por ejemplo, para la " +"cadena f ``f\"start {1+1} end\"``, la versión anterior del tokenizador " +"emitió::" #: ../Doc/whatsnew/3.12.rst:1845 msgid "while the new version emits::" -msgstr "" +msgstr "mientras que la nueva versión emite::" #: ../Doc/whatsnew/3.12.rst:1857 msgid "" "Additionally, there may be some minor behavioral changes as a consequence of " "the changes required to support :pep:`701`. Some of these changes include:" msgstr "" +"Además, puede haber algunos cambios de comportamiento menores como " +"consecuencia de los cambios necesarios para admitir :pep:`701`. Algunos de " +"estos cambios incluyen:" #: ../Doc/whatsnew/3.12.rst:1860 msgid "" "The ``type`` attribute of the tokens emitted when tokenizing some invalid " "Python characters such as ``!`` has changed from ``ERRORTOKEN`` to ``OP``." msgstr "" +"El atributo ``type`` de los tokens emitidos al tokenizar algunos caracteres " +"de Python no válidos, como ``!``, ha cambiado de ``ERRORTOKEN`` a ``OP``." #: ../Doc/whatsnew/3.12.rst:1863 msgid "" "Incomplete single-line strings now also raise :exc:`tokenize.TokenError` as " "incomplete multiline strings do." msgstr "" +"Las cadenas incompletas de una sola línea ahora también generan :exc:" +"`tokenize.TokenError` como lo hacen las cadenas incompletas de varias líneas." #: ../Doc/whatsnew/3.12.rst:1866 msgid "" "Some incomplete or invalid Python code now raises :exc:`tokenize.TokenError` " "instead of returning arbitrary ``ERRORTOKEN`` tokens when tokenizing it." msgstr "" +"Algún código Python incompleto o no válido ahora genera :exc:`tokenize." +"TokenError` en lugar de devolver tokens ``ERRORTOKEN`` arbitrarios al " +"tokenizarlo." #: ../Doc/whatsnew/3.12.rst:1869 msgid "" "Mixing tabs and spaces as indentation in the same file is not supported " "anymore and will raise a :exc:`TabError`." msgstr "" +"Ya no se admite la combinación de tabulaciones y espacios como sangría en el " +"mismo archivo y generará un :exc:`TabError`." #: ../Doc/whatsnew/3.12.rst:1873 msgid "Build Changes" -msgstr "" +msgstr "Cambios de compilación" #: ../Doc/whatsnew/3.12.rst:1875 msgid "" @@ -2896,6 +3844,12 @@ msgid "" "config`` and fall back to manual detection. (Contributed by Christian Heimes " "in :gh:`93939`.)" msgstr "" +"Python ya no usa :file:`setup.py` para crear módulos de extensión C " +"compartidos. Los parámetros de compilación, como encabezados y bibliotecas, " +"se detectan en el script ``configure``. Las extensiones están construidas " +"por :file:`Makefile`. La mayoría de las extensiones usan ``pkg-config`` y " +"recurren a la detección manual. (Aportado por Christian Heimes en :gh:" +"`93939`.)" #: ../Doc/whatsnew/3.12.rst:1881 msgid "" @@ -2903,6 +3857,9 @@ msgid "" "required to build Python. ``va_start()`` is no longer called with a single " "parameter. (Contributed by Kumar Aditya in :gh:`93207`.)" msgstr "" +"Ahora se requiere ``va_start()`` con dos parámetros, como ``va_start(args, " +"format),``, para compilar Python. ``va_start()`` ya no se llama con un solo " +"parámetro. (Aportado por Kumar Aditya en :gh:`93207`.)" #: ../Doc/whatsnew/3.12.rst:1886 msgid "" @@ -2910,6 +3867,9 @@ msgid "" "policy if the Clang compiler accepts the flag. (Contributed by Donghee Na " "in :gh:`89536`.)" msgstr "" +"CPython ahora usa la opción ThinLTO como política predeterminada de " +"optimización del tiempo de enlace si el compilador Clang acepta la marca. " +"(Aportado por Donghee Na en :gh:`89536`.)" #: ../Doc/whatsnew/3.12.rst:1890 msgid "" @@ -2919,45 +3879,54 @@ msgid "" "optimization levels (0, 1, 2) at once. (Contributed by Victor Stinner in :gh:" "`99289`.)" msgstr "" +"Agregado la variable ``COMPILEALL_OPTS`` en :file:`Makefile` para anular las " +"opciones de :mod:`compileall` (predeterminada: ``-j0``) en ``make install``. " +"También fusionó los 3 comandos ``compileall`` en un solo comando para crear " +"archivos .pyc para todos los niveles de optimización (0, 1, 2) a la vez. " +"(Aportado por Victor Stinner en :gh:`99289`.)" #: ../Doc/whatsnew/3.12.rst:1896 msgid "Add platform triplets for 64-bit LoongArch:" -msgstr "" +msgstr "Agregado tripletes de plataforma para LoongArch de 64 bits:" #: ../Doc/whatsnew/3.12.rst:1898 msgid "loongarch64-linux-gnusf" -msgstr "" +msgstr "loongarch64-linux-gnusf" #: ../Doc/whatsnew/3.12.rst:1899 msgid "loongarch64-linux-gnuf32" -msgstr "" +msgstr "loongarch64-linux-gnuf32" #: ../Doc/whatsnew/3.12.rst:1900 msgid "loongarch64-linux-gnu" -msgstr "" +msgstr "loongarch64-linux-gnu" #: ../Doc/whatsnew/3.12.rst:1902 msgid "(Contributed by Zhang Na in :gh:`90656`.)" -msgstr "" +msgstr "(Aportado por Zhang Na en :gh:`90656`.)" #: ../Doc/whatsnew/3.12.rst:1904 msgid "``PYTHON_FOR_REGEN`` now require Python 3.10 or newer." -msgstr "" +msgstr "``PYTHON_FOR_REGEN`` ahora requiere Python 3.10 o posterior." #: ../Doc/whatsnew/3.12.rst:1906 msgid "" "Autoconf 2.71 and aclocal 1.16.4 is now required to regenerate :file:`!" "configure`. (Contributed by Christian Heimes in :gh:`89886`.)" msgstr "" +"Ahora se requieren Autoconf 2.71 y aclocal 1.16.4 para regenerar :file:`!" +"configure`. (Aportado por Christian Heimes en :gh:`89886`.)" #: ../Doc/whatsnew/3.12.rst:1910 msgid "" "Windows builds and macOS installers from python.org now use OpenSSL 3.0." msgstr "" +"Las compilaciones de Windows y los instaladores de macOS de python.org ahora " +"usan OpenSSL 3.0." #: ../Doc/whatsnew/3.12.rst:1914 msgid "C API Changes" -msgstr "" +msgstr "Cambios en la API de C" #: ../Doc/whatsnew/3.12.rst:1921 msgid "" @@ -2966,66 +3935,84 @@ msgid "" "change in each minor release of CPython without deprecation warnings. Its " "contents are marked by the ``PyUnstable_`` prefix in names." msgstr "" +":pep:`697`: presente :ref:`Unstable C API tier `, destinado " +"a herramientas de bajo nivel como depuradores y compiladores JIT. Esta API " +"puede cambiar en cada versión menor de CPython sin advertencias de " +"obsolescencia. Su contenido está marcado con el prefijo ``PyUnstable_`` en " +"los nombres." #: ../Doc/whatsnew/3.12.rst:1927 msgid "Code object constructors:" -msgstr "" +msgstr "Constructores de objetos de código:" #: ../Doc/whatsnew/3.12.rst:1929 msgid "``PyUnstable_Code_New()`` (renamed from ``PyCode_New``)" -msgstr "" +msgstr "``PyUnstable_Code_New()`` (renombrado de ``PyCode_New``)" #: ../Doc/whatsnew/3.12.rst:1930 msgid "" "``PyUnstable_Code_NewWithPosOnlyArgs()`` (renamed from " "``PyCode_NewWithPosOnlyArgs``)" msgstr "" +"``PyUnstable_Code_NewWithPosOnlyArgs()`` (renombrado de " +"``PyCode_NewWithPosOnlyArgs``)" #: ../Doc/whatsnew/3.12.rst:1932 msgid "Extra storage for code objects (:pep:`523`):" -msgstr "" +msgstr "Almacenamiento adicional para objetos de código (:pep:`523`):" #: ../Doc/whatsnew/3.12.rst:1934 msgid "" "``PyUnstable_Eval_RequestCodeExtraIndex()`` (renamed from " "``_PyEval_RequestCodeExtraIndex``)" msgstr "" +"``PyUnstable_Eval_RequestCodeExtraIndex()`` (renombrado de " +"``_PyEval_RequestCodeExtraIndex``)" #: ../Doc/whatsnew/3.12.rst:1935 msgid "``PyUnstable_Code_GetExtra()`` (renamed from ``_PyCode_GetExtra``)" -msgstr "" +msgstr "``PyUnstable_Code_GetExtra()`` (renombrado de ``_PyCode_GetExtra``)" #: ../Doc/whatsnew/3.12.rst:1936 msgid "``PyUnstable_Code_SetExtra()`` (renamed from ``_PyCode_SetExtra``)" -msgstr "" +msgstr "``PyUnstable_Code_SetExtra()`` (renombrado de ``_PyCode_SetExtra``)" #: ../Doc/whatsnew/3.12.rst:1938 msgid "" "The original names will continue to be available until the respective API " "changes." msgstr "" +"Los nombres originales seguirán estando disponibles hasta que cambie la API " +"respectiva." #: ../Doc/whatsnew/3.12.rst:1941 msgid "(Contributed by Petr Viktorin in :gh:`101101`.)" -msgstr "" +msgstr "(Aportado por Petr Viktorin en :gh:`101101`.)" #: ../Doc/whatsnew/3.12.rst:1943 msgid "" ":pep:`697`: Add an API for extending types whose instance memory layout is " "opaque:" msgstr "" +":pep:`697`: agregue una API para extender tipos cuyo diseño de memoria de " +"instancia es opaco:" #: ../Doc/whatsnew/3.12.rst:1946 msgid "" ":c:member:`PyType_Spec.basicsize` can be zero or negative to specify " "inheriting or extending the base class size." msgstr "" +":c:member:`PyType_Spec.basicsize` puede ser cero o negativo para especificar " +"heredar o ampliar el tamaño de la clase base." #: ../Doc/whatsnew/3.12.rst:1948 msgid "" ":c:func:`PyObject_GetTypeData` and :c:func:`PyType_GetTypeDataSize` added to " "allow access to subclass-specific instance data." msgstr "" +"Se agregaron :c:func:`PyObject_GetTypeData` y :c:func:" +"`PyType_GetTypeDataSize` para permitir el acceso a datos de instancia " +"específicos de subclase." #: ../Doc/whatsnew/3.12.rst:1950 msgid "" @@ -3033,16 +4020,21 @@ msgid "" "to allow safely extending certain variable-sized types, including :c:var:" "`PyType_Type`." msgstr "" +"Se agregaron :c:macro:`Py_TPFLAGS_ITEMS_AT_END` y :c:func:" +"`PyObject_GetItemData` para permitir extender de forma segura ciertos tipos " +"de tamaño variable, incluido :c:var:`PyType_Type`." #: ../Doc/whatsnew/3.12.rst:1953 msgid "" ":c:macro:`Py_RELATIVE_OFFSET` added to allow defining :c:type:`members " "` in terms of a subclass-specific struct." msgstr "" +"Se agregó :c:macro:`Py_RELATIVE_OFFSET` para permitir definir :c:type:" +"`members ` en términos de una estructura específica de subclase." #: ../Doc/whatsnew/3.12.rst:1956 msgid "(Contributed by Petr Viktorin in :gh:`103509`.)" -msgstr "" +msgstr "(Aportado por Petr Viktorin en :gh:`103509`.)" #: ../Doc/whatsnew/3.12.rst:1958 msgid "" @@ -3051,28 +4043,34 @@ msgid "" "`PyType_FromModuleAndSpec` using an additional metaclass argument. " "(Contributed by Wenzel Jakob in :gh:`93012`.)" msgstr "" +"Agregado la nueva función :ref:`limited C API ` :c:func:" +"`PyType_FromMetaclass`, que generaliza el :c:func:`PyType_FromModuleAndSpec` " +"existente utilizando un argumento de metaclase adicional. (Aportado por " +"Wenzel Jakob en :gh:`93012`.)" #: ../Doc/whatsnew/3.12.rst:1963 msgid "" "API for creating objects that can be called using :ref:`the vectorcall " "protocol ` was added to the :ref:`Limited API `:" msgstr "" +"Se agregó API para crear objetos que se pueden llamar usando :ref:`the " +"vectorcall protocol ` a :ref:`Limited API `:" #: ../Doc/whatsnew/3.12.rst:1967 msgid ":c:macro:`Py_TPFLAGS_HAVE_VECTORCALL`" -msgstr "" +msgstr ":c:macro:`Py_TPFLAGS_HAVE_VECTORCALL`" #: ../Doc/whatsnew/3.12.rst:1968 msgid ":c:func:`PyVectorcall_NARGS`" -msgstr "" +msgstr ":c:func:`PyVectorcall_NARGS`" #: ../Doc/whatsnew/3.12.rst:1969 msgid ":c:func:`PyVectorcall_Call`" -msgstr "" +msgstr ":c:func:`PyVectorcall_Call`" #: ../Doc/whatsnew/3.12.rst:1970 msgid ":c:type:`vectorcallfunc`" -msgstr "" +msgstr ":c:type:`vectorcallfunc`" #: ../Doc/whatsnew/3.12.rst:1972 msgid "" @@ -3084,6 +4082,13 @@ msgid "" "``Py_TPFLAGS_HAVE_VECTORCALL`` flag. (Contributed by Petr Viktorin in :gh:" "`93274`.)" msgstr "" +"El indicador :c:macro:`Py_TPFLAGS_HAVE_VECTORCALL` ahora se elimina de una " +"clase cuando se reasigna el método :py:meth:`~object.__call__` de la clase. " +"Esto hace que vectorcall sea seguro de usar con tipos mutables (es decir, " +"tipos de montón sin el indicador inmutable, :c:macro:" +"`Py_TPFLAGS_IMMUTABLETYPE`). Los tipos mutables que no anulan :c:member:" +"`~PyTypeObject.tp_call` ahora heredan el indicador " +"``Py_TPFLAGS_HAVE_VECTORCALL``. (Aportado por Petr Viktorin en :gh:`93274`.)" #: ../Doc/whatsnew/3.12.rst:1980 msgid "" @@ -3092,24 +4097,30 @@ msgid "" "classes to support object ``__dict__`` and weakrefs with less bookkeeping, " "using less memory and with faster access." msgstr "" +"Se han agregado los indicadores :c:macro:`Py_TPFLAGS_MANAGED_DICT` y :c:" +"macro:`Py_TPFLAGS_MANAGED_WEAKREF`. Esto permite que las clases de " +"extensiones admitan el objeto ``__dict__`` y las referencias débiles con " +"menos contabilidad, usando menos memoria y con un acceso más rápido." #: ../Doc/whatsnew/3.12.rst:1985 msgid "" "API for performing calls using :ref:`the vectorcall protocol ` " "was added to the :ref:`Limited API `:" msgstr "" +"Se agregó API para realizar llamadas usando :ref:`the vectorcall protocol " +"` a :ref:`Limited API `:" #: ../Doc/whatsnew/3.12.rst:1989 msgid ":c:func:`PyObject_Vectorcall`" -msgstr "" +msgstr ":c:func:`PyObject_Vectorcall`" #: ../Doc/whatsnew/3.12.rst:1990 msgid ":c:func:`PyObject_VectorcallMethod`" -msgstr "" +msgstr ":c:func:`PyObject_VectorcallMethod`" #: ../Doc/whatsnew/3.12.rst:1991 msgid ":c:macro:`PY_VECTORCALL_ARGUMENTS_OFFSET`" -msgstr "" +msgstr ":c:macro:`PY_VECTORCALL_ARGUMENTS_OFFSET`" #: ../Doc/whatsnew/3.12.rst:1993 msgid "" @@ -3117,6 +4128,9 @@ msgid "" "protocol are now available in the :ref:`Limited API `. (Contributed " "by Wenzel Jakob in :gh:`98586`.)" msgstr "" +"Esto significa que tanto el extremo entrante como el saliente del protocolo " +"de llamada vectorial ahora están disponibles en el :ref:`Limited API " +"`. (Aportado por Wenzel Jakob en :gh:`98586`.)" #: ../Doc/whatsnew/3.12.rst:1997 msgid "" @@ -3125,6 +4139,11 @@ msgid "" "functions in all running threads in addition to the calling one. " "(Contributed by Pablo Galindo in :gh:`93503`.)" msgstr "" +"Agregado dos nuevas funciones públicas, :c:func:" +"`PyEval_SetProfileAllThreads` y :c:func:`PyEval_SetTraceAllThreads`, que " +"permiten configurar funciones de seguimiento y creación de perfiles en todos " +"los subprocesos en ejecución además del que realiza la llamada. (Aportado " +"por Pablo Galindo en :gh:`93503`.)" #: ../Doc/whatsnew/3.12.rst:2003 msgid "" @@ -3132,6 +4151,9 @@ msgid "" "the vectorcall field of a given :c:type:`PyFunctionObject`. (Contributed by " "Andrew Frost in :gh:`92257`.)" msgstr "" +"Agregado la nueva función :c:func:`PyFunction_SetVectorcall` a la API de C " +"que establece el campo de llamada vectorial de un :c:type:`PyFunctionObject` " +"determinado. (Aportado por Andrew Frost en :gh:`92257`.)" #: ../Doc/whatsnew/3.12.rst:2007 msgid "" @@ -3141,6 +4163,11 @@ msgid "" "interpreters, JIT compilers, or debuggers. (Contributed by Carl Meyer in :gh:" "`91052`.)" msgstr "" +"La API de C ahora permite registrar devoluciones de llamada a través de :c:" +"func:`PyDict_AddWatcher`, :c:func:`PyDict_Watch` y API relacionadas para ser " +"llamadas cada vez que se modifica un diccionario. Está pensado para " +"optimizar intérpretes, compiladores JIT o depuradores. (Aportado por Carl " +"Meyer en :gh:`91052`.)" #: ../Doc/whatsnew/3.12.rst:2013 msgid "" @@ -3148,6 +4175,9 @@ msgid "" "callbacks to receive notification on changes to a type. (Contributed by Carl " "Meyer in :gh:`91051`.)" msgstr "" +"Agregado las API :c:func:`PyType_AddWatcher` y :c:func:`PyType_Watch` para " +"registrar devoluciones de llamadas y recibir notificaciones sobre cambios en " +"un tipo. (Aportado por Carl Meyer en :gh:`91051`.)" #: ../Doc/whatsnew/3.12.rst:2017 msgid "" @@ -3155,6 +4185,10 @@ msgid "" "register callbacks to receive notification on creation and destruction of " "code objects. (Contributed by Itamar Oren in :gh:`91054`.)" msgstr "" +"Agregado las API :c:func:`PyCode_AddWatcher` y :c:func:`PyCode_ClearWatcher` " +"para registrar devoluciones de llamadas y recibir notificaciones sobre la " +"creación y destrucción de objetos de código. (Aportado por Itamar Oren en :" +"gh:`91054`.)" #: ../Doc/whatsnew/3.12.rst:2022 msgid "" @@ -3162,6 +4196,9 @@ msgid "" "get a frame variable by its name. (Contributed by Victor Stinner in :gh:" "`91248`.)" msgstr "" +"Agregado las funciones :c:func:`PyFrame_GetVar` y :c:func:" +"`PyFrame_GetVarString` para obtener una variable de marco por su nombre. " +"(Aportado por Victor Stinner en :gh:`91248`.)" #: ../Doc/whatsnew/3.12.rst:2026 msgid "" @@ -3172,6 +4209,12 @@ msgid "" "`PyErr_Restore`. This is less error prone and a bit more efficient. " "(Contributed by Mark Shannon in :gh:`101578`.)" msgstr "" +"Agregado :c:func:`PyErr_GetRaisedException` y :c:func:" +"`PyErr_SetRaisedException` para guardar y restaurar la excepción actual. " +"Estas funciones devuelven y aceptan un único objeto de excepción, en lugar " +"de los argumentos triples de los ahora obsoletos :c:func:`PyErr_Fetch` y :c:" +"func:`PyErr_Restore`. Esto es menos propenso a errores y un poco más " +"eficiente. (Aportado por Mark Shannon en :gh:`101578`.)" #: ../Doc/whatsnew/3.12.rst:2034 msgid "" @@ -3179,6 +4222,9 @@ msgid "" "replace the legacy-API ``_PyErr_ChainExceptions``, which is now deprecated. " "(Contributed by Mark Shannon in :gh:`101578`.)" msgstr "" +"Agregado ``_PyErr_ChainExceptions1``, que toma una instancia de excepción, " +"para reemplazar la API heredada ``_PyErr_ChainExceptions``, que ahora está " +"en desuso. (Aportado por Mark Shannon en :gh:`101578`.)" #: ../Doc/whatsnew/3.12.rst:2038 msgid "" @@ -3187,6 +4233,10 @@ msgid "" "args` passed to the exception's constructor. (Contributed by Mark Shannon " "in :gh:`101578`.)" msgstr "" +"Agregado :c:func:`PyException_GetArgs` y :c:func:`PyException_SetArgs` como " +"funciones convenientes para recuperar y modificar el :attr:`~BaseException." +"args` pasado al constructor de la excepción. (Aportado por Mark Shannon en :" +"gh:`101578`.)" #: ../Doc/whatsnew/3.12.rst:2043 msgid "" @@ -3194,63 +4244,78 @@ msgid "" "replace the legacy-api :c:func:`!PyErr_Display`. (Contributed by Irit " "Katriel in :gh:`102755`)." msgstr "" +"Agregado :c:func:`PyErr_DisplayException`, que toma una instancia de " +"excepción, para reemplazar la API heredada :c:func:`!PyErr_Display`. " +"(Aportado por Irit Katriel en :gh:`102755`)." #: ../Doc/whatsnew/3.12.rst:2049 msgid "" ":pep:`683`: Introduce *Immortal Objects*, which allows objects to bypass " "reference counts, and related changes to the C-API:" msgstr "" +":pep:`683`: presente *Immortal Objects*, que permite que los objetos omitan " +"los recuentos de referencias y los cambios relacionados en C-API:" #: ../Doc/whatsnew/3.12.rst:2052 msgid "``_Py_IMMORTAL_REFCNT``: The reference count that defines an object" msgstr "" +"``_Py_IMMORTAL_REFCNT``: el recuento de referencias que define un objeto" #: ../Doc/whatsnew/3.12.rst:2053 msgid "as immortal." -msgstr "" +msgstr "como inmortal." #: ../Doc/whatsnew/3.12.rst:2054 msgid "" "``_Py_IsImmortal`` Checks if an object has the immortal reference count." msgstr "" +"``_Py_IsImmortal`` Comprueba si un objeto tiene el recuento de referencia " +"inmortal." #: ../Doc/whatsnew/3.12.rst:2055 msgid "``PyObject_HEAD_INIT`` This will now initialize reference count to" msgstr "" +"``PyObject_HEAD_INIT`` Esto ahora inicializará el recuento de referencias" #: ../Doc/whatsnew/3.12.rst:2056 msgid "``_Py_IMMORTAL_REFCNT`` when used with ``Py_BUILD_CORE``." -msgstr "" +msgstr "``_Py_IMMORTAL_REFCNT`` cuando se utiliza con ``Py_BUILD_CORE``." #: ../Doc/whatsnew/3.12.rst:2057 msgid "``SSTATE_INTERNED_IMMORTAL`` An identifier for interned unicode objects" msgstr "" +"``SSTATE_INTERNED_IMMORTAL`` Un identificador para objetos Unicode internos" #: ../Doc/whatsnew/3.12.rst:2058 msgid "that are immortal." -msgstr "" +msgstr "que son inmortales." #: ../Doc/whatsnew/3.12.rst:2059 msgid "``SSTATE_INTERNED_IMMORTAL_STATIC`` An identifier for interned unicode" msgstr "" +"``SSTATE_INTERNED_IMMORTAL_STATIC`` Un identificador para Unicode interno" #: ../Doc/whatsnew/3.12.rst:2060 msgid "objects that are immortal and static" -msgstr "" +msgstr "Objetos inmortales y estáticos." #: ../Doc/whatsnew/3.12.rst:2063 msgid "``sys.getunicodeinternedsize`` This returns the total number of unicode" msgstr "" +"``sys.getunicodeinternedsize`` Esto devuelve el número total de Unicode" #: ../Doc/whatsnew/3.12.rst:2062 msgid "" "objects that have been interned. This is now needed for :file:`refleak.py` " "to correctly track reference counts and allocated blocks" msgstr "" +"objetos que han sido internados. Esto ahora es necesario para que :file:" +"`refleak.py` rastree correctamente los recuentos de referencia y los bloques " +"asignados." #: ../Doc/whatsnew/3.12.rst:2065 msgid "(Contributed by Eddie Elizondo in :gh:`84436`.)" -msgstr "" +msgstr "(Contribuido por Eddie Elizondo en :gh:`84436`.)" #: ../Doc/whatsnew/3.12.rst:2067 msgid "" @@ -3259,6 +4324,10 @@ msgid "" "with their own GILs. (See :ref:`whatsnew312-pep684` for more info.) " "(Contributed by Eric Snow in :gh:`104110`.)" msgstr "" +":pep:`684`: agregue la nueva función :c:func:`Py_NewInterpreterFromConfig` " +"y :c:type:`PyInterpreterConfig`, que pueden usarse para crear subintérpretes " +"con sus propios GIL. (Consulte :ref:`whatsnew312-pep684` para obtener más " +"información). (Contribución de Eric Snow en :gh:`104110`.)" #: ../Doc/whatsnew/3.12.rst:2073 msgid "" @@ -3266,12 +4335,18 @@ msgid "" "`Py_DECREF` functions are now implemented as opaque function calls to hide " "implementation details. (Contributed by Victor Stinner in :gh:`105387`.)" msgstr "" +"En la versión limitada de C API 3.12, las funciones :c:func:`Py_INCREF` y :c:" +"func:`Py_DECREF` ahora se implementan como llamadas de función opacas para " +"ocultar los detalles de implementación. (Aportado por Victor Stinner en :gh:" +"`105387`.)" #: ../Doc/whatsnew/3.12.rst:2081 msgid "" "Legacy Unicode APIs based on ``Py_UNICODE*`` representation has been " "removed. Please migrate to APIs based on UTF-8 or ``wchar_t*``." msgstr "" +"Se han eliminado las API Unicode heredadas basadas en la representación " +"``Py_UNICODE*``. Migre a API basadas en UTF-8 o ``wchar_t*``." #: ../Doc/whatsnew/3.12.rst:2084 msgid "" @@ -3279,6 +4354,9 @@ msgid "" "``Py_UNICODE*`` based format (e.g. ``u``, ``Z``) anymore. Please migrate to " "other formats for Unicode like ``s``, ``z``, ``es``, and ``U``." msgstr "" +"Las funciones de análisis de argumentos como :c:func:`PyArg_ParseTuple` ya " +"no admiten el formato basado en ``Py_UNICODE*`` (por ejemplo, ``u``, ``Z``). " +"Migre a otros formatos para Unicode como ``s``, ``z``, ``es`` y ``U``." #: ../Doc/whatsnew/3.12.rst:2088 msgid "" @@ -3288,6 +4366,12 @@ msgid "" "breakage, consider using the existing public C-API instead, or, if " "necessary, the (internal-only) ``_PyObject_GET_WEAKREFS_LISTPTR()`` macro." msgstr "" +"``tp_weaklist`` para todos los tipos integrados estáticos siempre es " +"``NULL``. Este es un campo solo interno en ``PyTypeObject``, pero señalamos " +"el cambio en caso de que alguien acceda al campo directamente de todos " +"modos. Para evitar roturas, considere utilizar la C-API pública existente o, " +"si es necesario, la macro ``_PyObject_GET_WEAKREFS_LISTPTR()`` (solo " +"interna)." #: ../Doc/whatsnew/3.12.rst:2095 msgid "" @@ -3296,12 +4380,18 @@ msgid "" "this. We mention this in case someone happens to be accessing the internal-" "only field directly." msgstr "" +"Es posible que este :c:member:`PyTypeObject.tp_subclasses` solo interno ya " +"no sea un puntero de objeto válido. Su tipo se cambió a :c:expr:`void *` " +"para reflejar esto. Mencionamos esto en caso de que alguien acceda " +"directamente al campo interno." #: ../Doc/whatsnew/3.12.rst:2100 msgid "" "To get a list of subclasses, call the Python method :py:meth:`~class." "__subclasses__` (using :c:func:`PyObject_CallMethod`, for example)." msgstr "" +"Para obtener una lista de subclases, llame al método Python :py:meth:`~class." +"__subclasses__` (usando :c:func:`PyObject_CallMethod`, por ejemplo)." #: ../Doc/whatsnew/3.12.rst:2104 msgid "" @@ -3311,6 +4401,11 @@ msgid "" "and :c:func:`PyUnicode_FromFormatV`. (Contributed by Serhiy Storchaka in :gh:" "`98836`.)" msgstr "" +"Agregado soporte para más opciones de formato (alineación a la izquierda, " +"octales, hexadecimales en mayúsculas, cadenas :c:type:`intmax_t`, :c:type:" +"`ptrdiff_t`, :c:type:`wchar_t` C, ancho variable y precisión) en :c:func:" +"`PyUnicode_FromFormat` y :c:func:`PyUnicode_FromFormatV`. (Aportado por " +"Serhiy Storchaka en :gh:`98836`.)" #: ../Doc/whatsnew/3.12.rst:2110 msgid "" @@ -3320,12 +4415,20 @@ msgid "" "the result string, and any extra arguments discarded. (Contributed by Serhiy " "Storchaka in :gh:`95781`.)" msgstr "" +"Un carácter de formato no reconocido en :c:func:`PyUnicode_FromFormat` y :c:" +"func:`PyUnicode_FromFormatV` ahora establece un :exc:`SystemError`. En " +"versiones anteriores, provocaba que el resto de la cadena de formato se " +"copiara tal cual en la cadena de resultado y se descartaran los argumentos " +"adicionales. (Aportado por Serhiy Storchaka en :gh:`95781`.)" #: ../Doc/whatsnew/3.12.rst:2116 msgid "" "Fix wrong sign placement in :c:func:`PyUnicode_FromFormat` and :c:func:" "`PyUnicode_FromFormatV`. (Contributed by Philip Georgi in :gh:`95504`.)" msgstr "" +"Se corrigió la ubicación incorrecta de los letreros en :c:func:" +"`PyUnicode_FromFormat` y :c:func:`PyUnicode_FromFormatV`. (Aportado por " +"Philip Georgi en :gh:`95504`.)" #: ../Doc/whatsnew/3.12.rst:2120 msgid "" @@ -3340,6 +4443,16 @@ msgid "" "traverse and clear their instance's dictionaries. To clear weakrefs, call :c:" "func:`PyObject_ClearWeakRefs`, as before." msgstr "" +"Las clases de extensión que deseen agregar un ``__dict__`` o una ranura de " +"referencia débil deben usar :c:macro:`Py_TPFLAGS_MANAGED_DICT` y :c:macro:" +"`Py_TPFLAGS_MANAGED_WEAKREF` en lugar de ``tp_dictoffset`` y " +"``tp_weaklistoffset``, respectivamente. El uso de ``tp_dictoffset`` y " +"``tp_weaklistoffset`` aún se admite, pero no es totalmente compatible con la " +"herencia múltiple (:gh:`95589`) y el rendimiento puede ser peor. Las clases " +"que declaran :c:macro:`Py_TPFLAGS_MANAGED_DICT` deben llamar a :c:func:`!" +"_PyObject_VisitManagedDict` y :c:func:`!_PyObject_ClearManagedDict` para " +"recorrer y borrar los diccionarios de su instancia. Para borrar referencias " +"débiles, llame a :c:func:`PyObject_ClearWeakRefs`, como antes." #: ../Doc/whatsnew/3.12.rst:2132 msgid "" @@ -3348,6 +4461,10 @@ msgid "" "exact :class:`bytes` type is accepted for bytes strings. (Contributed by " "Victor Stinner in :gh:`98393`.)" msgstr "" +"La función :c:func:`PyUnicode_FSDecoder` ya no acepta rutas de tipo bytes, " +"como los tipos :class:`bytearray` y :class:`memoryview`: solo se acepta el " +"tipo :class:`bytes` exacto para cadenas de bytes. (Aportado por Victor " +"Stinner en :gh:`98393`.)" #: ../Doc/whatsnew/3.12.rst:2137 msgid "" @@ -3356,6 +4473,10 @@ msgid "" "effects, these side effects are no longer duplicated. (Contributed by Victor " "Stinner in :gh:`98724`.)" msgstr "" +"Las macros :c:macro:`Py_CLEAR`, :c:macro:`Py_SETREF` y :c:macro:`Py_XSETREF` " +"ahora solo evalúan sus argumentos una vez. Si un argumento tiene efectos " +"secundarios, estos efectos secundarios ya no se duplican. (Aportado por " +"Victor Stinner en :gh:`98724`.)" #: ../Doc/whatsnew/3.12.rst:2142 msgid "" @@ -3364,6 +4485,10 @@ msgid "" "that set the error indicator now normalize the exception before storing it. " "(Contributed by Mark Shannon in :gh:`101578`.)" msgstr "" +"El indicador de error del intérprete ahora siempre está normalizado. Esto " +"significa que :c:func:`PyErr_SetObject`, :c:func:`PyErr_SetString` y las " +"otras funciones que configuran el indicador de error ahora normalizan la " +"excepción antes de almacenarla. (Aportado por Mark Shannon en :gh:`101578`.)" #: ../Doc/whatsnew/3.12.rst:2147 msgid "" @@ -3372,24 +4497,30 @@ msgid "" "debug builds. If you happen to be using it then you'll need to start using " "``_Py_GetGlobalRefTotal()``." msgstr "" +"``_Py_RefTotal`` ya no tiene autoridad y solo se conserva por compatibilidad " +"con ABI. Tenga en cuenta que es un global interno y solo está disponible en " +"compilaciones de depuración. Si lo está utilizando, deberá comenzar a " +"utilizar ``_Py_GetGlobalRefTotal()``." #: ../Doc/whatsnew/3.12.rst:2152 msgid "" "The following functions now select an appropriate metaclass for the newly " "created type:" msgstr "" +"Las siguientes funciones ahora seleccionan una metaclase apropiada para el " +"tipo recién creado:" #: ../Doc/whatsnew/3.12.rst:2155 msgid ":c:func:`PyType_FromSpec`" -msgstr "" +msgstr ":c:func:`PyType_FromSpec`" #: ../Doc/whatsnew/3.12.rst:2156 msgid ":c:func:`PyType_FromSpecWithBases`" -msgstr "" +msgstr ":c:func:`PyType_FromSpecWithBases`" #: ../Doc/whatsnew/3.12.rst:2157 msgid ":c:func:`PyType_FromModuleAndSpec`" -msgstr "" +msgstr ":c:func:`PyType_FromModuleAndSpec`" #: ../Doc/whatsnew/3.12.rst:2159 msgid "" @@ -3398,6 +4529,10 @@ msgid "" "functions ignore ``tp_new`` of the metaclass, possibly allowing incomplete " "initialization." msgstr "" +"La creación de clases cuya metaclase anule :c:member:`~PyTypeObject.tp_new` " +"está en desuso y en Python 3.14+ no estará permitida. Tenga en cuenta que " +"estas funciones ignoran ``tp_new`` de la metaclase, lo que posiblemente " +"permita una inicialización incompleta." #: ../Doc/whatsnew/3.12.rst:2164 msgid "" @@ -3405,6 +4540,9 @@ msgid "" "disallows creating classes whose metaclass overrides ``tp_new`` (:meth:" "`~object.__new__` in Python)." msgstr "" +"Tenga en cuenta que :c:func:`PyType_FromMetaclass` (agregado en Python 3.12) " +"ya no permite la creación de clases cuya metaclase anule ``tp_new`` (:meth:" +"`~object.__new__` en Python)." #: ../Doc/whatsnew/3.12.rst:2168 msgid "" @@ -3414,16 +4552,24 @@ msgid "" "since (meta)classes assume that ``tp_new`` was called. There is no simple " "general workaround. One of the following may work for you:" msgstr "" +"Dado que ``tp_new`` anula casi todo lo que hacen las funciones " +"``PyType_From*``, las dos son incompatibles entre sí. El comportamiento " +"existente (ignorar la metaclase durante varios pasos de la creación de " +"tipos) no es seguro en general, ya que las (meta)clases suponen que se llamó " +"a ``tp_new``. No existe una solución general sencilla. Uno de los siguientes " +"puede funcionar para usted:" #: ../Doc/whatsnew/3.12.rst:2175 msgid "If you control the metaclass, avoid using ``tp_new`` in it:" -msgstr "" +msgstr "Si controlas la metaclase, evita usar ``tp_new`` en ella:" #: ../Doc/whatsnew/3.12.rst:2177 msgid "" "If initialization can be skipped, it can be done in :c:member:`~PyTypeObject." "tp_init` instead." msgstr "" +"Si se puede omitir la inicialización, se puede realizar en :c:member:" +"`~PyTypeObject.tp_init`." #: ../Doc/whatsnew/3.12.rst:2179 msgid "" @@ -3432,6 +4578,10 @@ msgid "" "`Py_TPFLAGS_DISALLOW_INSTANTIATION` flag. This makes it acceptable for " "``PyType_From*`` functions." msgstr "" +"Si no es necesario crear una instancia de la metaclase desde Python, " +"configure su ``tp_new`` en ``NULL`` usando el indicador :c:macro:" +"`Py_TPFLAGS_DISALLOW_INSTANTIATION`. Esto lo hace aceptable para funciones " +"``PyType_From*``." #: ../Doc/whatsnew/3.12.rst:2184 msgid "" @@ -3439,12 +4589,17 @@ msgid "" "(slots or setting the instance size), create types by :ref:`calling ` " "the metaclass." msgstr "" +"Evite las funciones ``PyType_From*``: si no necesita funciones específicas " +"de C (ranuras o configuración del tamaño de la instancia), cree tipos " +"mediante la metaclase :ref:`calling `." #: ../Doc/whatsnew/3.12.rst:2188 msgid "" "If you *know* the ``tp_new`` can be skipped safely, filter the deprecation " "warning out using :func:`warnings.catch_warnings` from Python." msgstr "" +"Si *know* puede omitir ``tp_new`` de forma segura, filtre la advertencia de " +"obsolescencia usando :func:`warnings.catch_warnings` de Python." #: ../Doc/whatsnew/3.12.rst:2191 msgid "" @@ -3453,6 +4608,11 @@ msgid "" "because clients generally rely on process-wide global state (since these " "callbacks have no way of recovering extension module state)." msgstr "" +":c:var:`PyOS_InputHook` y :c:var:`PyOS_ReadlineFunctionPointer` ya no se " +"llaman en :ref:`subinterpreters `. Esto se debe a " +"que los clientes generalmente dependen del estado global de todo el proceso " +"(ya que estas devoluciones de llamada no tienen forma de recuperar el estado " +"del módulo de extensión)." #: ../Doc/whatsnew/3.12.rst:2196 msgid "" @@ -3460,6 +4620,9 @@ msgid "" "a subinterpreter that they don't support (or haven't yet been loaded in). " "See :gh:`104668` for more info." msgstr "" +"Esto también evita situaciones en las que las extensiones pueden encontrarse " +"ejecutándose en un subintérprete que no admiten (o que aún no se han " +"cargado). Consulte :gh:`104668` para obtener más información." #: ../Doc/whatsnew/3.12.rst:2200 msgid "" @@ -3471,14 +4634,21 @@ msgid "" "efficient access to the value of :c:struct:`PyLongObject`\\s which fit into " "a single machine word:" msgstr "" +":c:struct:`PyLongObject` ha tenido cambios internos para un mejor " +"rendimiento. Aunque las partes internas de :c:struct:`PyLongObject` son " +"privadas, algunos módulos de extensión las utilizan. Ya no se debe acceder " +"directamente a los campos internos, sino que se deben utilizar las funciones " +"API que comienzan con ``PyLong_...``. Se proporcionan dos nuevas funciones " +"API *unstable* para un acceso eficiente al valor de :c:struct:" +"`PyLongObject`\\s que cabe en una sola palabra de máquina:" #: ../Doc/whatsnew/3.12.rst:2208 msgid ":c:func:`PyUnstable_Long_IsCompact`" -msgstr "" +msgstr ":c:func:`PyUnstable_Long_IsCompact`" #: ../Doc/whatsnew/3.12.rst:2209 msgid ":c:func:`PyUnstable_Long_CompactValue`" -msgstr "" +msgstr ":c:func:`PyUnstable_Long_CompactValue`" #: ../Doc/whatsnew/3.12.rst:2211 msgid "" @@ -3488,6 +4658,12 @@ msgid "" "allocator is not already thread-safe and you need guidance then please " "create a new GitHub issue and CC ``@ericsnowcurrently``." msgstr "" +"Ahora se requiere que los asignadores personalizados, configurados a través " +"de :c:func:`PyMem_SetAllocator`, sean seguros para subprocesos, " +"independientemente del dominio de memoria. Los asignadores que no tienen su " +"propio estado, incluidos los \"ganchos\", no se ven afectados. Si su " +"asignador personalizado aún no es seguro para subprocesos y necesita " +"orientación, cree una nueva incidencia en GitHub y CC ``@ericsnowcurrently``." #: ../Doc/whatsnew/3.12.rst:2221 msgid "" @@ -3497,182 +4673,223 @@ msgid "" "in Python 3.14. (Contributed by Ramvikrams and Kumar Aditya in :gh:`101193`. " "PEP by Ken Jin.)" msgstr "" +"De acuerdo con :pep:`699`, el campo ``ma_version_tag`` en :c:type:" +"`PyDictObject` está obsoleto para los módulos de extensión. Acceder a este " +"campo generará una advertencia del compilador en el momento de la " +"compilación. Este campo se eliminará en Python 3.14. (Contribución de " +"Ramvikrams y Kumar Aditya en :gh:`101193`. PEP de Ken Jin.)" #: ../Doc/whatsnew/3.12.rst:2226 msgid "Deprecate global configuration variable:" -msgstr "" +msgstr "Variable de configuración global obsoleta:" #: ../Doc/whatsnew/3.12.rst:2228 ../Doc/whatsnew/3.12.rst:2313 msgid ":c:var:`Py_DebugFlag`: use :c:member:`PyConfig.parser_debug`" -msgstr "" +msgstr ":c:var:`Py_DebugFlag`: use :c:member:`PyConfig.parser_debug`" #: ../Doc/whatsnew/3.12.rst:2229 ../Doc/whatsnew/3.12.rst:2314 msgid ":c:var:`Py_VerboseFlag`: use :c:member:`PyConfig.verbose`" -msgstr "" +msgstr ":c:var:`Py_VerboseFlag`: use :c:member:`PyConfig.verbose`" #: ../Doc/whatsnew/3.12.rst:2230 ../Doc/whatsnew/3.12.rst:2315 msgid ":c:var:`Py_QuietFlag`: use :c:member:`PyConfig.quiet`" -msgstr "" +msgstr ":c:var:`Py_QuietFlag`: use :c:member:`PyConfig.quiet`" #: ../Doc/whatsnew/3.12.rst:2231 ../Doc/whatsnew/3.12.rst:2316 msgid ":c:var:`Py_InteractiveFlag`: use :c:member:`PyConfig.interactive`" -msgstr "" +msgstr ":c:var:`Py_InteractiveFlag`: use :c:member:`PyConfig.interactive`" #: ../Doc/whatsnew/3.12.rst:2232 ../Doc/whatsnew/3.12.rst:2317 msgid ":c:var:`Py_InspectFlag`: use :c:member:`PyConfig.inspect`" -msgstr "" +msgstr ":c:var:`Py_InspectFlag`: use :c:member:`PyConfig.inspect`" #: ../Doc/whatsnew/3.12.rst:2233 ../Doc/whatsnew/3.12.rst:2318 msgid ":c:var:`Py_OptimizeFlag`: use :c:member:`PyConfig.optimization_level`" -msgstr "" +msgstr ":c:var:`Py_OptimizeFlag`: use :c:member:`PyConfig.optimization_level`" #: ../Doc/whatsnew/3.12.rst:2234 ../Doc/whatsnew/3.12.rst:2319 msgid ":c:var:`Py_NoSiteFlag`: use :c:member:`PyConfig.site_import`" -msgstr "" +msgstr ":c:var:`Py_NoSiteFlag`: use :c:member:`PyConfig.site_import`" #: ../Doc/whatsnew/3.12.rst:2235 ../Doc/whatsnew/3.12.rst:2320 msgid ":c:var:`Py_BytesWarningFlag`: use :c:member:`PyConfig.bytes_warning`" -msgstr "" +msgstr ":c:var:`Py_BytesWarningFlag`: use :c:member:`PyConfig.bytes_warning`" #: ../Doc/whatsnew/3.12.rst:2236 ../Doc/whatsnew/3.12.rst:2321 msgid ":c:var:`Py_FrozenFlag`: use :c:member:`PyConfig.pathconfig_warnings`" -msgstr "" +msgstr ":c:var:`Py_FrozenFlag`: use :c:member:`PyConfig.pathconfig_warnings`" #: ../Doc/whatsnew/3.12.rst:2237 ../Doc/whatsnew/3.12.rst:2322 msgid "" ":c:var:`Py_IgnoreEnvironmentFlag`: use :c:member:`PyConfig.use_environment`" msgstr "" +":c:var:`Py_IgnoreEnvironmentFlag`: use :c:member:`PyConfig.use_environment`" #: ../Doc/whatsnew/3.12.rst:2238 ../Doc/whatsnew/3.12.rst:2323 msgid "" ":c:var:`Py_DontWriteBytecodeFlag`: use :c:member:`PyConfig.write_bytecode`" msgstr "" +":c:var:`Py_DontWriteBytecodeFlag`: use :c:member:`PyConfig.write_bytecode`" #: ../Doc/whatsnew/3.12.rst:2239 ../Doc/whatsnew/3.12.rst:2324 msgid "" ":c:var:`Py_NoUserSiteDirectory`: use :c:member:`PyConfig.user_site_directory`" msgstr "" +":c:var:`Py_NoUserSiteDirectory`: use :c:member:`PyConfig.user_site_directory`" #: ../Doc/whatsnew/3.12.rst:2240 ../Doc/whatsnew/3.12.rst:2325 msgid "" ":c:var:`Py_UnbufferedStdioFlag`: use :c:member:`PyConfig.buffered_stdio`" msgstr "" +":c:var:`Py_UnbufferedStdioFlag`: use :c:member:`PyConfig.buffered_stdio`" #: ../Doc/whatsnew/3.12.rst:2241 ../Doc/whatsnew/3.12.rst:2326 msgid "" ":c:var:`Py_HashRandomizationFlag`: use :c:member:`PyConfig.use_hash_seed` " "and :c:member:`PyConfig.hash_seed`" msgstr "" +":c:var:`Py_HashRandomizationFlag`: use :c:member:`PyConfig.use_hash_seed` y :" +"c:member:`PyConfig.hash_seed`" #: ../Doc/whatsnew/3.12.rst:2243 ../Doc/whatsnew/3.12.rst:2328 msgid ":c:var:`Py_IsolatedFlag`: use :c:member:`PyConfig.isolated`" -msgstr "" +msgstr ":c:var:`Py_IsolatedFlag`: use :c:member:`PyConfig.isolated`" #: ../Doc/whatsnew/3.12.rst:2244 ../Doc/whatsnew/3.12.rst:2329 msgid "" ":c:var:`Py_LegacyWindowsFSEncodingFlag`: use :c:member:`PyPreConfig." "legacy_windows_fs_encoding`" msgstr "" +":c:var:`Py_LegacyWindowsFSEncodingFlag`: use :c:member:`PyPreConfig." +"legacy_windows_fs_encoding`" #: ../Doc/whatsnew/3.12.rst:2245 ../Doc/whatsnew/3.12.rst:2330 msgid "" ":c:var:`Py_LegacyWindowsStdioFlag`: use :c:member:`PyConfig." "legacy_windows_stdio`" msgstr "" +":c:var:`Py_LegacyWindowsStdioFlag`: use :c:member:`PyConfig." +"legacy_windows_stdio`" #: ../Doc/whatsnew/3.12.rst:2246 ../Doc/whatsnew/3.12.rst:2331 msgid "" ":c:var:`!Py_FileSystemDefaultEncoding`: use :c:member:`PyConfig." "filesystem_encoding`" msgstr "" +":c:var:`!Py_FileSystemDefaultEncoding`: use :c:member:`PyConfig." +"filesystem_encoding`" #: ../Doc/whatsnew/3.12.rst:2247 ../Doc/whatsnew/3.12.rst:2332 msgid "" ":c:var:`!Py_HasFileSystemDefaultEncoding`: use :c:member:`PyConfig." "filesystem_encoding`" msgstr "" +":c:var:`!Py_HasFileSystemDefaultEncoding`: use :c:member:`PyConfig." +"filesystem_encoding`" #: ../Doc/whatsnew/3.12.rst:2248 ../Doc/whatsnew/3.12.rst:2333 msgid "" ":c:var:`!Py_FileSystemDefaultEncodeErrors`: use :c:member:`PyConfig." "filesystem_errors`" msgstr "" +":c:var:`!Py_FileSystemDefaultEncodeErrors`: use :c:member:`PyConfig." +"filesystem_errors`" #: ../Doc/whatsnew/3.12.rst:2249 ../Doc/whatsnew/3.12.rst:2334 msgid "" ":c:var:`!Py_UTF8Mode`: use :c:member:`PyPreConfig.utf8_mode` (see :c:func:" "`Py_PreInitialize`)" msgstr "" +":c:var:`!Py_UTF8Mode`: use :c:member:`PyPreConfig.utf8_mode` (ver :c:func:" +"`Py_PreInitialize`)" #: ../Doc/whatsnew/3.12.rst:2251 msgid "" "The :c:func:`Py_InitializeFromConfig` API should be used with :c:type:" "`PyConfig` instead. (Contributed by Victor Stinner in :gh:`77782`.)" msgstr "" +"La API :c:func:`Py_InitializeFromConfig` debe usarse con :c:type:`PyConfig` " +"en su lugar. (Aportado por Victor Stinner en :gh:`77782`.)" #: ../Doc/whatsnew/3.12.rst:2255 msgid "" "Creating :c:data:`immutable types ` with mutable " "bases is deprecated and will be disabled in Python 3.14. (:gh:`95388`)" msgstr "" +"La creación de :c:data:`immutable types ` con " +"bases mutables está obsoleta y se deshabilitará en Python 3.14. (:gh:`95388`)" #: ../Doc/whatsnew/3.12.rst:2258 msgid "" "The :file:`structmember.h` header is deprecated, though it continues to be " "available and there are no plans to remove it." msgstr "" +"El encabezado :file:`structmember.h` está en desuso, aunque sigue estando " +"disponible y no hay planes para eliminarlo." #: ../Doc/whatsnew/3.12.rst:2261 msgid "" "Its contents are now available just by including :file:`Python.h`, with a " "``Py`` prefix added if it was missing:" msgstr "" +"Su contenido ahora está disponible simplemente incluyendo :file:`Python.h`, " +"con un prefijo ``Py`` agregado si faltara:" #: ../Doc/whatsnew/3.12.rst:2264 msgid "" ":c:struct:`PyMemberDef`, :c:func:`PyMember_GetOne` and :c:func:" "`PyMember_SetOne`" msgstr "" +":c:struct:`PyMemberDef`, :c:func:`PyMember_GetOne` y :c:func:" +"`PyMember_SetOne`" #: ../Doc/whatsnew/3.12.rst:2266 msgid "" "Type macros like :c:macro:`Py_T_INT`, :c:macro:`Py_T_DOUBLE`, etc. " "(previously ``T_INT``, ``T_DOUBLE``, etc.)" msgstr "" +"Escriba macros como :c:macro:`Py_T_INT`, :c:macro:`Py_T_DOUBLE`, etc. " +"(anteriormente ``T_INT``, ``T_DOUBLE``, etc.)" #: ../Doc/whatsnew/3.12.rst:2268 msgid "" "The flags :c:macro:`Py_READONLY` (previously ``READONLY``) and :c:macro:" "`Py_AUDIT_READ` (previously all uppercase)" msgstr "" +"Las banderas :c:macro:`Py_READONLY` (anteriormente ``READONLY``) y :c:macro:" +"`Py_AUDIT_READ` (anteriormente todas en mayúsculas)" #: ../Doc/whatsnew/3.12.rst:2271 msgid "Several items are not exposed from :file:`Python.h`:" -msgstr "" +msgstr "Varios elementos no están expuestos desde :file:`Python.h`:" #: ../Doc/whatsnew/3.12.rst:2273 msgid ":c:macro:`T_OBJECT` (use :c:macro:`Py_T_OBJECT_EX`)" -msgstr "" +msgstr ":c:macro:`T_OBJECT` (use :c:macro:`Py_T_OBJECT_EX`)" #: ../Doc/whatsnew/3.12.rst:2274 msgid ":c:macro:`T_NONE` (previously undocumented, and pretty quirky)" -msgstr "" +msgstr ":c:macro:`T_NONE` (anteriormente indocumentado y bastante peculiar)" #: ../Doc/whatsnew/3.12.rst:2275 msgid "The macro ``WRITE_RESTRICTED`` which does nothing." -msgstr "" +msgstr "La macro ``WRITE_RESTRICTED`` que no hace nada." #: ../Doc/whatsnew/3.12.rst:2276 msgid "" "The macros ``RESTRICTED`` and ``READ_RESTRICTED``, equivalents of :c:macro:" "`Py_AUDIT_READ`." msgstr "" +"Las macros ``RESTRICTED`` y ``READ_RESTRICTED``, equivalentes a :c:macro:" +"`Py_AUDIT_READ`." #: ../Doc/whatsnew/3.12.rst:2278 msgid "" "In some configurations, ```` is not included from :file:`Python." "h`. It should be included manually when using ``offsetof()``." msgstr "" +"En algunas configuraciones, ```` no se incluye en :file:`Python." +"h`. Debe incluirse manualmente cuando se utiliza ``offsetof()``." #: ../Doc/whatsnew/3.12.rst:2281 msgid "" @@ -3680,12 +4897,18 @@ msgid "" "original names. Your old code can stay unchanged, unless the extra include " "and non-namespaced macros bother you greatly." msgstr "" +"El encabezado obsoleto continúa proporcionando su contenido original con los " +"nombres originales. Su código antiguo puede permanecer sin cambios, a menos " +"que las macros de inclusión y sin espacio de nombres adicionales le molesten " +"mucho." #: ../Doc/whatsnew/3.12.rst:2286 msgid "" "(Contributed in :gh:`47146` by Petr Viktorin, based on earlier work by " "Alexander Belopolsky and Matthias Braun.)" msgstr "" +"(Contribuido en :gh:`47146` por Petr Viktorin, basado en trabajos anteriores " +"de Alexander Belopolsky y Matthias Braun.)" #: ../Doc/whatsnew/3.12.rst:2289 msgid "" @@ -3693,18 +4916,27 @@ msgid "" "func:`PyErr_GetRaisedException` and :c:func:`PyErr_SetRaisedException` " "instead. (Contributed by Mark Shannon in :gh:`101578`.)" msgstr "" +":c:func:`PyErr_Fetch` y :c:func:`PyErr_Restore` están en desuso. Utilice :c:" +"func:`PyErr_GetRaisedException` y :c:func:`PyErr_SetRaisedException` en su " +"lugar. (Aportado por Mark Shannon en :gh:`101578`.)" #: ../Doc/whatsnew/3.12.rst:2294 msgid "" ":c:func:`!PyErr_Display` is deprecated. Use :c:func:`PyErr_DisplayException` " "instead. (Contributed by Irit Katriel in :gh:`102755`)." msgstr "" +":c:func:`!PyErr_Display` está en desuso. Utilice :c:func:" +"`PyErr_DisplayException` en su lugar. (Aportado por Irit Katriel en :gh:" +"`102755`)." #: ../Doc/whatsnew/3.12.rst:2297 msgid "" "``_PyErr_ChainExceptions`` is deprecated. Use ``_PyErr_ChainExceptions1`` " "instead. (Contributed by Irit Katriel in :gh:`102192`.)" msgstr "" +"``_PyErr_ChainExceptions`` está en desuso. Utilice " +"``_PyErr_ChainExceptions1`` en su lugar. (Aportado por Irit Katriel en :gh:" +"`102192`.)" #: ../Doc/whatsnew/3.12.rst:2300 msgid "" @@ -3712,185 +4944,216 @@ msgid "" "func:`PyType_FromModuleAndSpec` to create a class whose metaclass overrides :" "c:member:`~PyTypeObject.tp_new` is deprecated. Call the metaclass instead." msgstr "" +"El uso de :c:func:`PyType_FromSpec`, :c:func:`PyType_FromSpecWithBases` o :c:" +"func:`PyType_FromModuleAndSpec` para crear una clase cuya metaclase anula :c:" +"member:`~PyTypeObject.tp_new` está en desuso. En su lugar, llame a la " +"metaclase." #: ../Doc/whatsnew/3.12.rst:2308 msgid "" "The ``ma_version_tag`` field in :c:type:`PyDictObject` for extension modules " "(:pep:`699`; :gh:`101193`)." msgstr "" +"El campo ``ma_version_tag`` en :c:type:`PyDictObject` para módulos de " +"extensión (:pep:`699`; :gh:`101193`)." #: ../Doc/whatsnew/3.12.rst:2311 msgid "Global configuration variables:" -msgstr "" +msgstr "Variables de configuración globales:" #: ../Doc/whatsnew/3.12.rst:2336 msgid "" "The :c:func:`Py_InitializeFromConfig` API should be used with :c:type:" "`PyConfig` instead." msgstr "" +"La API :c:func:`Py_InitializeFromConfig` debe usarse con :c:type:`PyConfig` " +"en su lugar." #: ../Doc/whatsnew/3.12.rst:2339 msgid "" "Creating :c:data:`immutable types ` with mutable " "bases (:gh:`95388`)." msgstr "" +"Creando :c:data:`immutable types ` con bases " +"mutables (:gh:`95388`)." #: ../Doc/whatsnew/3.12.rst:2343 msgid "Pending Removal in Python 3.15" -msgstr "" +msgstr "Eliminación pendiente en Python 3.15" #: ../Doc/whatsnew/3.12.rst:2345 msgid "" ":c:func:`PyImport_ImportModuleNoBlock`: use :c:func:`PyImport_ImportModule`" msgstr "" +":c:func:`PyImport_ImportModuleNoBlock`: utilizar :c:func:" +"`PyImport_ImportModule`" #: ../Doc/whatsnew/3.12.rst:2346 msgid ":c:type:`!Py_UNICODE_WIDE` type: use :c:type:`wchar_t`" -msgstr "" +msgstr "Tipo :c:type:`!Py_UNICODE_WIDE`: use :c:type:`wchar_t`" #: ../Doc/whatsnew/3.12.rst:2347 msgid ":c:type:`Py_UNICODE` type: use :c:type:`wchar_t`" -msgstr "" +msgstr "Tipo :c:type:`Py_UNICODE`: use :c:type:`wchar_t`" #: ../Doc/whatsnew/3.12.rst:2348 msgid "Python initialization functions:" -msgstr "" +msgstr "Funciones de inicialización de Python:" #: ../Doc/whatsnew/3.12.rst:2350 msgid "" ":c:func:`PySys_ResetWarnOptions`: clear :data:`sys.warnoptions` and :data:`!" "warnings.filters`" msgstr "" +":c:func:`PySys_ResetWarnOptions`: borrar :data:`sys.warnoptions` y :data:`!" +"warnings.filters`" #: ../Doc/whatsnew/3.12.rst:2352 msgid ":c:func:`Py_GetExecPrefix`: get :data:`sys.exec_prefix`" -msgstr "" +msgstr ":c:func:`Py_GetExecPrefix`: obtener :data:`sys.exec_prefix`" #: ../Doc/whatsnew/3.12.rst:2353 msgid ":c:func:`Py_GetPath`: get :data:`sys.path`" -msgstr "" +msgstr ":c:func:`Py_GetPath`: obtener :data:`sys.path`" #: ../Doc/whatsnew/3.12.rst:2354 msgid ":c:func:`Py_GetPrefix`: get :data:`sys.prefix`" -msgstr "" +msgstr ":c:func:`Py_GetPrefix`: obtener :data:`sys.prefix`" #: ../Doc/whatsnew/3.12.rst:2355 msgid ":c:func:`Py_GetProgramFullPath`: get :data:`sys.executable`" -msgstr "" +msgstr ":c:func:`Py_GetProgramFullPath`: obtener :data:`sys.executable`" #: ../Doc/whatsnew/3.12.rst:2356 msgid ":c:func:`Py_GetProgramName`: get :data:`sys.executable`" -msgstr "" +msgstr ":c:func:`Py_GetProgramName`: obtener :data:`sys.executable`" #: ../Doc/whatsnew/3.12.rst:2357 msgid "" ":c:func:`Py_GetPythonHome`: get :c:member:`PyConfig.home` or the :envvar:" "`PYTHONHOME` environment variable" msgstr "" +":c:func:`Py_GetPythonHome`: obtenga :c:member:`PyConfig.home` o la variable " +"de entorno :envvar:`PYTHONHOME`" #: ../Doc/whatsnew/3.12.rst:2363 msgid "" "The following APIs are deprecated and will be removed, although there is " "currently no date scheduled for their removal." msgstr "" +"Las siguientes API están obsoletas y se eliminarán, aunque actualmente no " +"hay una fecha programada para su eliminación." #: ../Doc/whatsnew/3.12.rst:2366 msgid ":c:macro:`Py_TPFLAGS_HAVE_FINALIZE`: unneeded since Python 3.8" -msgstr "" +msgstr ":c:macro:`Py_TPFLAGS_HAVE_FINALIZE`: innecesario desde Python 3.8" #: ../Doc/whatsnew/3.12.rst:2367 msgid ":c:func:`PyErr_Fetch`: use :c:func:`PyErr_GetRaisedException`" -msgstr "" +msgstr ":c:func:`PyErr_Fetch`: utilizar :c:func:`PyErr_GetRaisedException`" #: ../Doc/whatsnew/3.12.rst:2368 msgid "" ":c:func:`PyErr_NormalizeException`: use :c:func:`PyErr_GetRaisedException`" msgstr "" +":c:func:`PyErr_NormalizeException`: utilizar :c:func:" +"`PyErr_GetRaisedException`" #: ../Doc/whatsnew/3.12.rst:2369 msgid ":c:func:`PyErr_Restore`: use :c:func:`PyErr_SetRaisedException`" -msgstr "" +msgstr ":c:func:`PyErr_Restore`: utilizar :c:func:`PyErr_SetRaisedException`" #: ../Doc/whatsnew/3.12.rst:2370 msgid "" ":c:func:`PyModule_GetFilename`: use :c:func:`PyModule_GetFilenameObject`" msgstr "" +":c:func:`PyModule_GetFilename`: utilizar :c:func:`PyModule_GetFilenameObject`" #: ../Doc/whatsnew/3.12.rst:2371 msgid ":c:func:`PyOS_AfterFork`: use :c:func:`PyOS_AfterFork_Child`" -msgstr "" +msgstr ":c:func:`PyOS_AfterFork`: utilizar :c:func:`PyOS_AfterFork_Child`" #: ../Doc/whatsnew/3.12.rst:2372 msgid "" ":c:func:`PySlice_GetIndicesEx`: use :c:func:`PySlice_Unpack` and :c:func:" "`PySlice_AdjustIndices`" msgstr "" +":c:func:`PySlice_GetIndicesEx`: utilice :c:func:`PySlice_Unpack` y :c:func:" +"`PySlice_AdjustIndices`" #: ../Doc/whatsnew/3.12.rst:2373 msgid ":c:func:`!PyUnicode_AsDecodedObject`: use :c:func:`PyCodec_Decode`" msgstr "" +":c:func:`!PyUnicode_AsDecodedObject`: utilizar :c:func:`PyCodec_Decode`" #: ../Doc/whatsnew/3.12.rst:2374 msgid ":c:func:`!PyUnicode_AsDecodedUnicode`: use :c:func:`PyCodec_Decode`" msgstr "" +":c:func:`!PyUnicode_AsDecodedUnicode`: utilizar :c:func:`PyCodec_Decode`" #: ../Doc/whatsnew/3.12.rst:2375 msgid ":c:func:`!PyUnicode_AsEncodedObject`: use :c:func:`PyCodec_Encode`" msgstr "" +":c:func:`!PyUnicode_AsEncodedObject`: utilizar :c:func:`PyCodec_Encode`" #: ../Doc/whatsnew/3.12.rst:2376 msgid ":c:func:`!PyUnicode_AsEncodedUnicode`: use :c:func:`PyCodec_Encode`" msgstr "" +":c:func:`!PyUnicode_AsEncodedUnicode`: utilizar :c:func:`PyCodec_Encode`" #: ../Doc/whatsnew/3.12.rst:2377 msgid ":c:func:`PyUnicode_READY`: unneeded since Python 3.12" -msgstr "" +msgstr ":c:func:`PyUnicode_READY`: innecesario desde Python 3.12" #: ../Doc/whatsnew/3.12.rst:2378 msgid ":c:func:`!PyErr_Display`: use :c:func:`PyErr_DisplayException`" -msgstr "" +msgstr ":c:func:`!PyErr_Display`: utilizar :c:func:`PyErr_DisplayException`" #: ../Doc/whatsnew/3.12.rst:2379 msgid ":c:func:`!_PyErr_ChainExceptions`: use ``_PyErr_ChainExceptions1``" msgstr "" +":c:func:`!_PyErr_ChainExceptions`: utilizar ``_PyErr_ChainExceptions1``" #: ../Doc/whatsnew/3.12.rst:2380 msgid "" ":c:member:`!PyBytesObject.ob_shash` member: call :c:func:`PyObject_Hash` " "instead" msgstr "" +"Miembro :c:member:`!PyBytesObject.ob_shash`: llame a :c:func:`PyObject_Hash` " +"en su lugar" #: ../Doc/whatsnew/3.12.rst:2382 msgid ":c:member:`!PyDictObject.ma_version_tag` member" -msgstr "" +msgstr "Miembro :c:member:`!PyDictObject.ma_version_tag`" #: ../Doc/whatsnew/3.12.rst:2383 msgid "Thread Local Storage (TLS) API:" -msgstr "" +msgstr "API de almacenamiento local de subprocesos (TLS):" #: ../Doc/whatsnew/3.12.rst:2385 msgid ":c:func:`PyThread_create_key`: use :c:func:`PyThread_tss_alloc`" -msgstr "" +msgstr ":c:func:`PyThread_create_key`: utilizar :c:func:`PyThread_tss_alloc`" #: ../Doc/whatsnew/3.12.rst:2386 msgid ":c:func:`PyThread_delete_key`: use :c:func:`PyThread_tss_free`" -msgstr "" +msgstr ":c:func:`PyThread_delete_key`: utilizar :c:func:`PyThread_tss_free`" #: ../Doc/whatsnew/3.12.rst:2387 msgid ":c:func:`PyThread_set_key_value`: use :c:func:`PyThread_tss_set`" -msgstr "" +msgstr ":c:func:`PyThread_set_key_value`: utilizar :c:func:`PyThread_tss_set`" #: ../Doc/whatsnew/3.12.rst:2388 msgid ":c:func:`PyThread_get_key_value`: use :c:func:`PyThread_tss_get`" -msgstr "" +msgstr ":c:func:`PyThread_get_key_value`: utilizar :c:func:`PyThread_tss_get`" #: ../Doc/whatsnew/3.12.rst:2389 msgid ":c:func:`PyThread_delete_key_value`: use :c:func:`PyThread_tss_delete`" msgstr "" +":c:func:`PyThread_delete_key_value`: utilizar :c:func:`PyThread_tss_delete`" #: ../Doc/whatsnew/3.12.rst:2390 msgid ":c:func:`PyThread_ReInitTLS`: unneeded since Python 3.7" -msgstr "" +msgstr ":c:func:`PyThread_ReInitTLS`: innecesario desde Python 3.7" #: ../Doc/whatsnew/3.12.rst:2395 msgid "" @@ -3898,61 +5161,73 @@ msgid "" "C API. The :file:`token.h` header file was only designed to be used by " "Python internals. (Contributed by Victor Stinner in :gh:`92651`.)" msgstr "" +"Elimine el archivo de encabezado :file:`token.h`. Nunca hubo ninguna API C " +"de tokenizador público. El archivo de encabezado :file:`token.h` solo fue " +"diseñado para ser utilizado por componentes internos de Python. (Aportado " +"por Victor Stinner en :gh:`92651`.)" #: ../Doc/whatsnew/3.12.rst:2400 msgid "Legacy Unicode APIs have been removed. See :pep:`623` for detail." msgstr "" +"Se han eliminado las API Unicode heredadas. Consulte :pep:`623` para obtener " +"más detalles." #: ../Doc/whatsnew/3.12.rst:2402 msgid ":c:macro:`!PyUnicode_WCHAR_KIND`" -msgstr "" +msgstr ":c:macro:`!PyUnicode_WCHAR_KIND`" #: ../Doc/whatsnew/3.12.rst:2403 msgid ":c:func:`!PyUnicode_AS_UNICODE`" -msgstr "" +msgstr ":c:func:`!PyUnicode_AS_UNICODE`" #: ../Doc/whatsnew/3.12.rst:2404 msgid ":c:func:`!PyUnicode_AsUnicode`" -msgstr "" +msgstr ":c:func:`!PyUnicode_AsUnicode`" #: ../Doc/whatsnew/3.12.rst:2405 msgid ":c:func:`!PyUnicode_AsUnicodeAndSize`" -msgstr "" +msgstr ":c:func:`!PyUnicode_AsUnicodeAndSize`" #: ../Doc/whatsnew/3.12.rst:2406 msgid ":c:func:`!PyUnicode_AS_DATA`" -msgstr "" +msgstr ":c:func:`!PyUnicode_AS_DATA`" #: ../Doc/whatsnew/3.12.rst:2407 msgid ":c:func:`!PyUnicode_FromUnicode`" -msgstr "" +msgstr ":c:func:`!PyUnicode_FromUnicode`" #: ../Doc/whatsnew/3.12.rst:2408 msgid ":c:func:`!PyUnicode_GET_SIZE`" -msgstr "" +msgstr ":c:func:`!PyUnicode_GET_SIZE`" #: ../Doc/whatsnew/3.12.rst:2409 msgid ":c:func:`!PyUnicode_GetSize`" -msgstr "" +msgstr ":c:func:`!PyUnicode_GetSize`" #: ../Doc/whatsnew/3.12.rst:2410 msgid ":c:func:`!PyUnicode_GET_DATA_SIZE`" -msgstr "" +msgstr ":c:func:`!PyUnicode_GET_DATA_SIZE`" #: ../Doc/whatsnew/3.12.rst:2412 msgid "" "Remove the ``PyUnicode_InternImmortal()`` function macro. (Contributed by " "Victor Stinner in :gh:`85858`.)" msgstr "" +"Elimine la macro de función ``PyUnicode_InternImmortal()``. (Aportado por " +"Victor Stinner en :gh:`85858`.)" #: ../Doc/whatsnew/3.12.rst:2415 msgid "" "Remove ``Jython`` compatibility hacks from several stdlib modules and tests. " "(Contributed by Nikita Sobolev in :gh:`99482`.)" msgstr "" +"Elimine los trucos de compatibilidad ``Jython`` de varios módulos y pruebas " +"stdlib. (Aportado por Nikita Sobolev en :gh:`99482`.)" #: ../Doc/whatsnew/3.12.rst:2418 msgid "" "Remove ``_use_broken_old_ctypes_structure_semantics_`` flag from :mod:" "`ctypes` module. (Contributed by Nikita Sobolev in :gh:`99285`.)" msgstr "" +"Elimine el indicador ``_use_broken_old_ctypes_structure_semantics_`` del " +"módulo :mod:`ctypes`. (Aportado por Nikita Sobolev en :gh:`99285`.)"