diff --git a/dictionaries/whatsnew_3.8.txt b/dictionaries/whatsnew_3.8.txt index c31eb3b781..10afcb67d2 100644 --- a/dictionaries/whatsnew_3.8.txt +++ b/dictionaries/whatsnew_3.8.txt @@ -19,6 +19,7 @@ Bo Bolsterlee Bronson Bussonnier +Bélanger Cannon Carl Chapman @@ -26,6 +27,7 @@ Cheryl Christian Ci Coombs +Coudert Customized Cuthbert Cédric @@ -92,6 +94,7 @@ Levkivskyi Mark Matveev Max +Maxime Meily Merzouki Meyer @@ -120,6 +123,7 @@ Reedy Roach Rodola Rodolà +Rykoff Rémi Sabella Saimadhav diff --git a/whatsnew/3.8.po b/whatsnew/3.8.po index a489a078e0..eb593fc91a 100644 --- a/whatsnew/3.8.po +++ b/whatsnew/3.8.po @@ -11,12 +11,12 @@ msgstr "" "POT-Creation-Date: 2026-02-26 18:44-0300\n" "PO-Revision-Date: 2022-10-28 00:58+0200\n" "Last-Translator: Jaime Resano \n" -"Language: es_ES\n" "Language-Team: \n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"Language: es_ES\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "Generated-By: Babel 2.18.0\n" #: ../Doc/whatsnew/3.8.rst:3 @@ -34,8 +34,8 @@ msgstr "Raymond Hettinger" #: ../Doc/whatsnew/3.8.rst:47 msgid "" "This article explains the new features in Python 3.8, compared to 3.7. " -"Python 3.8 was released on October 14, 2019. For full details, see the :ref:" -"`changelog `." +"Python 3.8 was released on October 14, 2019. For full details, see " +"the :ref:`changelog `." msgstr "" "Este artículo explica las nuevas características de Python 3.8, en " "comparación con 3.7. Python 3.8 se lanzó el 14 de octubre de 2019. Para " @@ -57,14 +57,15 @@ msgstr "Expresiones de asignación" msgid "" "There is new syntax ``:=`` that assigns values to variables as part of a " "larger expression. It is affectionately known as \"the walrus operator\" due " -"to its resemblance to `the eyes and tusks of a walrus `_." +"to its resemblance to `the eyes and tusks of a walrus `_." msgstr "" "La nueva sintaxis ``:=`` asigna valores a variables como parte de una " "expresión más grande. Se le conoce cariñosamente como \"el operador morsa\" " -"debido a su parecido con `los ojos y colmillos de una morsa `_." +"debido a su parecido con `los ojos y colmillos de una morsa `_." #: ../Doc/whatsnew/3.8.rst:82 msgid "" @@ -80,6 +81,8 @@ msgid "" "if (n := len(a)) > 10:\n" " print(f\"List is too long ({n} elements, expected <= 10)\")" msgstr "" +"si (n := len(a)) > 10:\n" +" print(f\"La lista es demasiado larga ({n} elementos, esperado <= 10)\")" #: ../Doc/whatsnew/3.8.rst:88 msgid "" @@ -99,6 +102,9 @@ msgid "" "if (mo := re.search(r'(\\d+)% discount', advertisement)):\n" " discount = float(mo.group(1)) / 100.0" msgstr "" +"descuento = 0.0\n" +"if (mo := re.search(r'(\\d+)% descuento', publicidad)):\n" +" descuento = flotante(mes.grupo(1)) / 100.0" #: ../Doc/whatsnew/3.8.rst:96 msgid "" @@ -116,6 +122,9 @@ msgid "" "while (block := f.read(256)) != '':\n" " process(block)" msgstr "" +"# Bucle sobre bloques de longitud fija\n" +"mientras (bloque := f.read(256)) != '':\n" +" proceso (bloque)" #: ../Doc/whatsnew/3.8.rst:104 msgid "" @@ -131,6 +140,8 @@ msgid "" "[clean_name.title() for name in names\n" " if (clean_name := normalize('NFC', name)) in allowed_names]" msgstr "" +"[clean_name.title() para nombre en nombres\n" +" if (clean_name := normalize('NFC', nombre)) en nombres_permitidos]" #: ../Doc/whatsnew/3.8.rst:111 msgid "" @@ -153,19 +164,19 @@ msgid "Positional-only parameters" msgstr "Parámetros solo posicionales" #: ../Doc/whatsnew/3.8.rst:122 -#, fuzzy msgid "" "There is a new function parameter syntax ``/`` to indicate that some " "function parameters must be specified positionally and cannot be used as " "keyword arguments. This is the same notation shown by ``help()`` for C " -"functions annotated with Larry Hastings' `Argument Clinic `__ tool." +"functions annotated with Larry Hastings' `Argument Clinic `__ tool." msgstr "" -"Hay una nueva sintaxis para establecer parámetro de función, ``/``, para " -"indicar que algunos parámetros de función deben especificarse solo " -"posicionalmente y no pueden usarse como argumentos por palabra clave. Esta " -"es la misma notación que muestra ``help()`` para las funciones de C anotadas " -"con la herramienta :ref:`Argument Clinic ` de Larry Hastings." +"Hay una nueva sintaxis de parámetro de función ``/`` para indicar que " +"algunos parámetros de función deben especificarse posicionalmente y no " +"pueden usarse como argumentos de palabras clave. Esta es la misma notación " +"que muestra ``help()`` para funciones C anotadas con la herramienta " +"`Argument Clinic `__ " +"de Larry Hastings." #: ../Doc/whatsnew/3.8.rst:128 msgid "" @@ -182,6 +193,8 @@ msgid "" "def f(a, b, /, c, d, *, e, f):\n" " print(a, b, c, d, e, f)" msgstr "" +"def f(a, b, /, c, d, *, e, f):\n" +" imprimir(a,b,c,d,e,f)" #: ../Doc/whatsnew/3.8.rst:135 msgid "The following is a valid call::" @@ -189,7 +202,7 @@ msgstr "La siguiente es una invocación válida::" #: ../Doc/whatsnew/3.8.rst:137 msgid "f(10, 20, 30, d=40, e=50, f=60)" -msgstr "" +msgstr "f(10, 20, 30, d=40, e=50, f=60)" #: ../Doc/whatsnew/3.8.rst:139 msgid "However, these are invalid calls::" @@ -200,6 +213,9 @@ msgid "" "f(10, b=20, c=30, d=40, e=50, f=60) # b cannot be a keyword argument\n" "f(10, 20, 30, 40, 50, f=60) # e must be a keyword argument" msgstr "" +"f(10, b=20, c=30, d=40, e=50, f=60) # b no puede ser un argumento de palabra " +"clave\n" +"f(10, 20, 30, 40, 50, f=60) # e debe ser un argumento de palabra clave" #: ../Doc/whatsnew/3.8.rst:144 msgid "" @@ -218,6 +234,9 @@ msgid "" " \"Emulate the built in divmod() function\"\n" " return (a // b, a % b)" msgstr "" +"def divmod(a, b, /):\n" +" \"Emular la función divmod() integrada\"\n" +" retorno (a // b, a % b)" #: ../Doc/whatsnew/3.8.rst:152 msgid "" @@ -226,13 +245,15 @@ msgid "" "signature ``len(obj, /)``. This precludes awkward calls such as::" msgstr "" "Otro caso de uso es excluir los argumentos por palabra clave cuando el " -"nombre del parámetro no es útil. Por ejemplo, la función incorporada :func:" -"`len` tiene la firma ``len(obj, /)``. Esto excluye llamadas inoportunas " -"como::" +"nombre del parámetro no es útil. Por ejemplo, la función " +"incorporada :func:`len` tiene la firma ``len(obj, /)``. Esto excluye " +"llamadas inoportunas como::" #: ../Doc/whatsnew/3.8.rst:156 msgid "len(obj='hello') # The \"obj\" keyword argument impairs readability" msgstr "" +"len(obj='hello') # El argumento de la palabra clave \"obj\" perjudica la " +"legibilidad" #: ../Doc/whatsnew/3.8.rst:158 msgid "" @@ -253,6 +274,8 @@ msgid "" "def quantiles(dist, /, *, n=4, method='exclusive')\n" " ..." msgstr "" +"def cuantiles(dist, /, *, n=4, método='exclusivo')\n" +" ..." #: ../Doc/whatsnew/3.8.rst:167 msgid "" @@ -272,6 +295,11 @@ msgid "" ">>> f(10, 20, a=1, b=2, c=3) # a and b are used in two ways\n" "10 20 {'a': 1, 'b': 2, 'c': 3}" msgstr "" +">>> def f(a, b, /, **kwargs):\n" +"... imprimir(a, b, kwargs)\n" +"...\n" +">>> f(10, 20, a=1, b=2, c=3) # a y b se usan de dos maneras\n" +"10 20 {'a': 1, 'b': 2, 'c': 3}" #: ../Doc/whatsnew/3.8.rst:176 msgid "" @@ -290,6 +318,10 @@ msgid "" " def __init__(self, iterable=None, /, **kwds):\n" " # Note \"iterable\" is a possible keyword argument" msgstr "" +"Contador de clase (dict):\n" +"\n" +" def __init__(self, iterable=Ninguno, /, **kwds):\n" +" # Nota \"iterable\" es un posible argumento de palabra clave" #: ../Doc/whatsnew/3.8.rst:185 msgid "See :pep:`570` for a full description." @@ -319,11 +351,12 @@ msgstr "" #: ../Doc/whatsnew/3.8.rst:201 msgid "" -"The location of the cache is reported in :data:`sys.pycache_prefix` (:const:" -"`None` indicates the default location in ``__pycache__`` subdirectories)." +"The location of the cache is reported in :data:`sys.pycache_prefix` " +"(:const:`None` indicates the default location in ``__pycache__`` " +"subdirectories)." msgstr "" -"La ubicación de la caché se define en :data:`sys.pycache_prefix` (:const:" -"`None` indica la ubicación predeterminada en los subdirectorios " +"La ubicación de la caché se define en :data:`sys.pycache_prefix` " +"(:const:`None` indica la ubicación predeterminada en los subdirectorios " "``__pycache__``)." #: ../Doc/whatsnew/3.8.rst:205 @@ -352,10 +385,10 @@ msgid "" "Release builds and :ref:`debug builds ` are now ABI compatible: " "defining the ``Py_DEBUG`` macro no longer implies the ``Py_TRACE_REFS`` " "macro, which introduces the only ABI incompatibility. The ``Py_TRACE_REFS`` " -"macro, which adds the :func:`sys.getobjects` function and the :envvar:" -"`PYTHONDUMPREFS` environment variable, can be set using the new :option:`./" -"configure --with-trace-refs <--with-trace-refs>` build option. (Contributed " -"by Victor Stinner in :issue:`36465`.)" +"macro, which adds the :func:`sys.getobjects` function and " +"the :envvar:`PYTHONDUMPREFS` environment variable, can be set using the " +"new :option:`./configure --with-trace-refs <--with-trace-refs>` build " +"option. (Contributed by Victor Stinner in :issue:`36465`.)" msgstr "" "Las versiones de versiones y :ref:`debug builds ` ahora son " "compatibles con ABI: definir la macro ``Py_DEBUG`` ya no implica la macro " @@ -424,8 +457,8 @@ msgid "" "On the other hand, ``pkg-config python3.8 --libs`` no longer contains ``-" "lpython3.8``. C extensions must not be linked to libpython (except on " "Android and Cygwin, whose cases are handled by the script); this change is " -"backward incompatible on purpose. (Contributed by Victor Stinner in :issue:" -"`36721`.)" +"backward incompatible on purpose. (Contributed by Victor Stinner " +"in :issue:`36721`.)" msgstr "" "Por otro lado, ``pkg-config python3.8 --libs`` ya no contiene ``-" "lpython3.8``. Las extensiones en C no deben estar enlazadas a libpython " @@ -465,6 +498,9 @@ msgid "" ">>> f'{user=!s} {delta.days=:,d}'\n" "'user=eric_idle delta.days=16,075'" msgstr "" +">>> delta = fecha.hoy() - miembro_since\n" +">>> f'{usuario=!s} {delta.días=:,d}'\n" +"'usuario=eric_idle delta.días=16,075'" #: ../Doc/whatsnew/3.8.rst:274 msgid "" @@ -480,6 +516,8 @@ msgid "" ">>> print(f'{theta=} {cos(radians(theta))=:.3f}')\n" "theta=30 cos(radians(theta))=0.866" msgstr "" +">>> print(f'{theta=} {cos(radianes(theta))=:.3f}')\n" +"theta=30 cos(radianes(theta))=0,866" #: ../Doc/whatsnew/3.8.rst:280 msgid "(Contributed by Eric V. Smith and Larry Hastings in :issue:`36817`.)" @@ -658,11 +696,12 @@ msgid "" "reference configuration, replacing global configuration variables and other " "private variables." msgstr "" -"Este PEP también agrega los campos ``_PyRuntimeState.preconfig`` (tipo :c:" -"type:`PyPreConfig`) y ``PyInterpreterState.config`` (tipo :c:type:" -"`PyConfig`) a estas estructuras internas. ``PyInterpreterState.config`` se " -"convierte en la nueva configuración de referencia, reemplazando las " -"variables de configuración globales y otras variables privadas." +"Este PEP también agrega los campos ``_PyRuntimeState.preconfig`` " +"(tipo :c:type:`PyPreConfig`) y ``PyInterpreterState.config`` " +"(tipo :c:type:`PyConfig`) a estas estructuras internas. " +"``PyInterpreterState.config`` se convierte en la nueva configuración de " +"referencia, reemplazando las variables de configuración globales y otras " +"variables privadas." #: ../Doc/whatsnew/3.8.rst:343 msgid "" @@ -687,8 +726,9 @@ msgstr "PEP 590: Vectorcall: un protocolo de llamada rápida para CPython" #: ../Doc/whatsnew/3.8.rst:354 msgid "" ":ref:`vectorcall` is added to the Python/C API. It is meant to formalize " -"existing optimizations which were already done for various classes. Any :ref:" -"`static type ` implementing a callable can use this protocol." +"existing optimizations which were already done for various classes. " +"Any :ref:`static type ` implementing a callable can use this " +"protocol." msgstr "" ":ref:`vectorcall` se agrega a la API de Python / C. Está destinado a " "formalizar las optimizaciones existentes que ya se realizaron para varias " @@ -709,11 +749,11 @@ msgstr "Consultar :pep:`590` para obtener una descripción completa." #: ../Doc/whatsnew/3.8.rst:365 msgid "" -"(Contributed by Jeroen Demeyer, Mark Shannon and Petr Viktorin in :issue:" -"`36974`.)" +"(Contributed by Jeroen Demeyer, Mark Shannon and Petr Viktorin " +"in :issue:`36974`.)" msgstr "" -"(Contribución de Jeroen Demeyer, Mark Shannon y Petr Viktorin en :issue:" -"`36974`.)" +"(Contribución de Jeroen Demeyer, Mark Shannon y Petr Viktorin " +"en :issue:`36974`.)" #: ../Doc/whatsnew/3.8.rst:369 msgid "Pickle protocol 5 with out-of-band data buffers" @@ -761,23 +801,23 @@ msgid "" "due to a problem with the implementation. In Python 3.8 this restriction " "was lifted. (Contributed by Serhiy Storchaka in :issue:`32489`.)" msgstr "" -"La declaración :keyword:`continue` era ilegal en la cláusula :keyword:" -"`finally` debido a un problema con la implementación. En Python 3.8 se ha " -"eliminado esta restricción. (Contribución de Serhiy Storchaka en :issue:" -"`32489`.)" +"La declaración :keyword:`continue` era ilegal en la " +"cláusula :keyword:`finally` debido a un problema con la implementación. En " +"Python 3.8 se ha eliminado esta restricción. (Contribución de Serhiy " +"Storchaka en :issue:`32489`.)" #: ../Doc/whatsnew/3.8.rst:393 msgid "" "The :class:`bool`, :class:`int`, and :class:`fractions.Fraction` types now " -"have an :meth:`~int.as_integer_ratio` method like that found in :class:" -"`float` and :class:`decimal.Decimal`. This minor API extension makes it " -"possible to write ``numerator, denominator = x.as_integer_ratio()`` and have " -"it work across multiple numeric types. (Contributed by Lisa Roach in :issue:" -"`33073` and Raymond Hettinger in :issue:`37819`.)" +"have an :meth:`~int.as_integer_ratio` method like that found " +"in :class:`float` and :class:`decimal.Decimal`. This minor API extension " +"makes it possible to write ``numerator, denominator = x.as_integer_ratio()`` " +"and have it work across multiple numeric types. (Contributed by Lisa Roach " +"in :issue:`33073` and Raymond Hettinger in :issue:`37819`.)" msgstr "" "Los tipos :class:`bool`, :class:`int` y :class:`fractions.Fraction` ahora " -"tienen un método :meth:`~int.as_integer_ratio` como el que se encuentra en :" -"class:`float` y :class:`decimal.Decimal`. Esta extensión menor de la API " +"tienen un método :meth:`~int.as_integer_ratio` como el que se encuentra " +"en :class:`float` y :class:`decimal.Decimal`. Esta extensión menor de la API " "hace posible escribir ``numerator, denominator = x.as_integer_ratio()`` y " "hacer que funcione con múltiples tipos numéricos. (Contribución de Lisa " "Roach en :issue:`33073` y de Raymond Hettinger en :issue:`37819`.)" @@ -786,8 +826,8 @@ msgstr "" msgid "" "Constructors of :class:`int`, :class:`float` and :class:`complex` will now " "use the :meth:`~object.__index__` special method, if available and the " -"corresponding method :meth:`~object.__int__`, :meth:`~object.__float__` or :" -"meth:`~object.__complex__` is not available. (Contributed by Serhiy " +"corresponding method :meth:`~object.__int__`, :meth:`~object.__float__` " +"or :meth:`~object.__complex__` is not available. (Contributed by Serhiy " "Storchaka in :issue:`20092`.)" msgstr "" "Los constructores de :class:`int`, :class:`float` y :class:`complex` ahora " @@ -801,8 +841,8 @@ msgid "" "Added support of :samp:`\\\\N\\\\{{name}\\\\}` escapes in :mod:`regular " "expressions `::" msgstr "" -"Agregado soporte para escapes :samp:`\\\\N\\\\{{name}\\\\}` en :mod:" -"`expresiones regulares `::" +"Agregado soporte para escapes :samp:`\\\\N\\\\{{name}\\\\}` " +"en :mod:`expresiones regulares `::" #: ../Doc/whatsnew/3.8.rst:409 #, python-brace-format @@ -812,6 +852,11 @@ msgid "" ">>> int(copyright_year_pattern.search(notice).group(1))\n" "2019" msgstr "" +">>> aviso = 'Copyright © 2019'\n" +">>> copyright_year_pattern = re.compile(r'\\N{signo de copyright}" +"\\s*(\\d{4})')\n" +">>> int(copyright_year_pattern.search(aviso).grupo(1))\n" +"2019" #: ../Doc/whatsnew/3.8.rst:414 msgid "" @@ -821,20 +866,20 @@ msgstr "" #: ../Doc/whatsnew/3.8.rst:416 msgid "" -"Dict and dictviews are now iterable in reversed insertion order using :func:" -"`reversed`. (Contributed by Rémi Lapeyre in :issue:`33462`.)" +"Dict and dictviews are now iterable in reversed insertion order " +"using :func:`reversed`. (Contributed by Rémi Lapeyre in :issue:`33462`.)" msgstr "" "Los diccionarios y sus vistas ahora se pueden iterar en orden inverso de " -"inserción usando :func:`reversed`. (Contribución de Rémi Lapeyre en :issue:" -"`33462`.)" +"inserción usando :func:`reversed`. (Contribución de Rémi Lapeyre " +"en :issue:`33462`.)" #: ../Doc/whatsnew/3.8.rst:419 msgid "" "The syntax allowed for keyword names in function calls was further " "restricted. In particular, ``f((keyword)=arg)`` is no longer allowed. It was " "never intended to permit more than a bare name on the left-hand side of a " -"keyword argument assignment term. (Contributed by Benjamin Peterson in :" -"issue:`34641`.)" +"keyword argument assignment term. (Contributed by Benjamin Peterson " +"in :issue:`34641`.)" msgstr "" "La sintaxis permitida para los nombres por palabra clave en las llamadas a " "funciones se ha restringido aún más. En particular, ``f((keyword)=arg)`` ya " @@ -848,10 +893,10 @@ msgid "" "statements no longer requires enclosing parentheses. This brings the *yield* " "and *return* syntax into better agreement with normal assignment syntax::" msgstr "" -"El desempaquetado de iterables generalizado en declaraciones :keyword:" -"`yield` y :keyword:`return` ya no requiere ser encerrado entre paréntesis. " -"Esto hace que la sintaxis de *yield* y *return* se asemeje más a la sintaxis " -"normal de asignación::" +"El desempaquetado de iterables generalizado en " +"declaraciones :keyword:`yield` y :keyword:`return` ya no requiere ser " +"encerrado entre paréntesis. Esto hace que la sintaxis de *yield* y *return* " +"se asemeje más a la sintaxis normal de asignación::" #: ../Doc/whatsnew/3.8.rst:430 msgid "" @@ -862,6 +907,12 @@ msgid "" ">>> parse('simpsons homer marge bart lisa maggie')\n" "('SIMPSONS', 'homer', 'marge', 'bart', 'lisa', 'maggie')" msgstr "" +">>> def analizar(familia):\n" +"... apellido, *members = family.split()\n" +"... return lastname.upper(), *miembros\n" +"...\n" +">>> parse('los simpsons homero marge bart lisa maggie')\n" +"('SIMPSONS', 'homero', 'marge', 'bart', 'lisa', 'maggie')" #: ../Doc/whatsnew/3.8.rst:437 msgid "(Contributed by David Cuthbert and Jordan Chapman in :issue:`32117`.)" @@ -882,20 +933,21 @@ msgstr "" #: ../Doc/whatsnew/3.8.rst:445 msgid "" -"Arithmetic operations between subclasses of :class:`datetime.date` or :class:" -"`datetime.datetime` and :class:`datetime.timedelta` objects now return an " -"instance of the subclass, rather than the base class. This also affects the " -"return type of operations whose implementation (directly or indirectly) " -"uses :class:`datetime.timedelta` arithmetic, such as :meth:`~datetime." -"datetime.astimezone`. (Contributed by Paul Ganssle in :issue:`32417`.)" -msgstr "" -"Las operaciones aritméticas entre subclases de :class:`datetime.date` o :" -"class:`datetime.datetime` y :class:`datetime.timedelta` ahora retornan una " -"instancia de la subclase, en lugar de la clase base. Esto también afecta al " -"tipo de retorno de las operaciones cuya implementación (directa o " -"indirectamente) usa la aritmética de :class:`datetime.timedelta`, como :meth:" -"`~datetime.datetime.astimezone`. (Contribución de Paul Ganssle en :issue:" -"`32417`.)" +"Arithmetic operations between subclasses of :class:`datetime.date` " +"or :class:`datetime.datetime` and :class:`datetime.timedelta` objects now " +"return an instance of the subclass, rather than the base class. This also " +"affects the return type of operations whose implementation (directly or " +"indirectly) uses :class:`datetime.timedelta` arithmetic, such " +"as :meth:`~datetime.datetime.astimezone`. (Contributed by Paul Ganssle " +"in :issue:`32417`.)" +msgstr "" +"Las operaciones aritméticas entre subclases de :class:`datetime.date` " +"o :class:`datetime.datetime` y :class:`datetime.timedelta` ahora retornan " +"una instancia de la subclase, en lugar de la clase base. Esto también afecta " +"al tipo de retorno de las operaciones cuya implementación (directa o " +"indirectamente) usa la aritmética de :class:`datetime.timedelta`, " +"como :meth:`~datetime.datetime.astimezone`. (Contribución de Paul Ganssle " +"en :issue:`32417`.)" #: ../Doc/whatsnew/3.8.rst:453 msgid "" @@ -912,24 +964,24 @@ msgstr "" "código de salida correcto, de modo que el proceso que lo invocó puede " "detectar que murió debido a Ctrl-C. Los shells en POSIX y Windows usan esto " "para terminar la ejecución de los scripts en sesiones interactivas de forma " -"correcta. (Contribución de Google a través de Gregory P. Smith en :issue:" -"`1054041`.)" +"correcta. (Contribución de Google a través de Gregory P. Smith " +"en :issue:`1054041`.)" #: ../Doc/whatsnew/3.8.rst:460 msgid "" -"Some advanced styles of programming require updating the :class:`types." -"CodeType` object for an existing function. Since code objects are " -"immutable, a new code object needs to be created, one that is modeled on the " -"existing code object. With 19 parameters, this was somewhat tedious. Now, " -"the new ``replace()`` method makes it possible to create a clone with a few " -"altered parameters." +"Some advanced styles of programming require updating " +"the :class:`types.CodeType` object for an existing function. Since code " +"objects are immutable, a new code object needs to be created, one that is " +"modeled on the existing code object. With 19 parameters, this was somewhat " +"tedious. Now, the new ``replace()`` method makes it possible to create a " +"clone with a few altered parameters." msgstr "" -"Algunos estilos de programación avanzados requieren actualizar el objeto :" -"class:`types.CodeType` para una función ya existente. Dado que los objetos " -"de código son inmutables, es necesario crear un nuevo objeto de código, que " -"sea modelado a partir del objeto de código existente. Con 19 parámetros, " -"esto era algo tedioso. Ahora, el nuevo método ``replace()`` hace posible " -"crear un clon con algunos parámetros alterados." +"Algunos estilos de programación avanzados requieren actualizar el " +"objeto :class:`types.CodeType` para una función ya existente. Dado que los " +"objetos de código son inmutables, es necesario crear un nuevo objeto de " +"código, que sea modelado a partir del objeto de código existente. Con 19 " +"parámetros, esto era algo tedioso. Ahora, el nuevo método ``replace()`` hace " +"posible crear un clon con algunos parámetros alterados." #: ../Doc/whatsnew/3.8.rst:467 msgid "" @@ -951,6 +1003,15 @@ msgid "" "TypeError: mean() got some positional-only arguments passed as keyword " "arguments: 'data'" msgstr "" +">>> de la media de importación de estadísticas\n" +">>> media(datos=[10, 20, 90])\n" +"40\n" +">>> media.__código__ = media.__código__.reemplazar(co_posonlyargcount=1)\n" +">>> media(datos=[10, 20, 90])\n" +"Rastreo (última llamada más reciente):\n" +" ...\n" +"TypeError: mean() obtuvo algunos argumentos solo posicionales pasados como " +"argumentos de palabras clave: 'datos'" #: ../Doc/whatsnew/3.8.rst:479 msgid "(Contributed by Victor Stinner in :issue:`37032`.)" @@ -982,6 +1043,10 @@ msgid "" ">>> 119 * 38 % 137\n" "1" msgstr "" +">>> poder(38, -1, 137)\n" +"119\n" +">>> 119 * 38 % 137\n" +"1" #: ../Doc/whatsnew/3.8.rst:495 msgid "" @@ -1022,6 +1087,17 @@ msgid "" "role? Sir Robin\n" "actor? Eric Idle" msgstr "" +">>> # Comprensión de dictámenes\n" +">>> emitir = {entrada('¿rol? '): entrada('actor? ') para i en el rango(2)}\n" +"papel? Rey Arturo\n" +"actor? Chapman\n" +"papel? Caballero Negro\n" +"actor? cleese\n" +"\n" +">>> # Dictar literal\n" +">>> reparto = {entrada('¿rol? '): entrada('actor? ')}\n" +"papel? señor robin\n" +"actor? eric inactivo" #: ../Doc/whatsnew/3.8.rst:522 msgid "" @@ -1042,29 +1118,33 @@ msgid "" " 'łukasz langa': 'Łukasz Langa',\n" " 'walter dörwald': 'Walter Dörwald'}" msgstr "" +">>> nombres = ['Martin von Löwis', 'Łukasz Langa', 'Walter Dörwald']\n" +">>> {(n := normalize('NFC', nombre)).casefold() : n para nombre en nombres}\n" +"{'martin von löwis': 'Martin von Löwis',\n" +" 'łukasz langa': 'Łukasz Langa',\n" +" 'walter dörwald': 'Walter Dörwald'}" #: ../Doc/whatsnew/3.8.rst:532 msgid "(Contributed by Jörn Heissler in :issue:`35224`.)" msgstr "(Contribución de Jörn Heissler en :issue:`35224`.)" #: ../Doc/whatsnew/3.8.rst:534 -#, fuzzy msgid "" "The :meth:`object.__reduce__` method can now return a tuple from two to six " "elements long. Formerly, five was the limit. The new, optional sixth " "element is a callable with a ``(obj, state)`` signature. This allows the " "direct control over the state-updating behavior of a specific object. If " -"not *None*, this callable will have priority over the object's :meth:" -"`~object.__setstate__` method. (Contributed by Pierre Glaser and Olivier " -"Grisel in :issue:`35900`.)" -msgstr "" -"El método :meth:`object.__reduce__` ahora puede retornar una tupla con una " -"longitud que va desde los dos a los seis elementos. Anteriormente, el límite " -"era cinco. El nuevo sexto elemento opcional es un invocable con una firma " -"``(obj, state)``. Esto permite el control directo sobre el comportamiento de " -"actualización de estado de un objeto específico. Si no es *None*, este " -"invocable tendrá prioridad sobre el método :meth:`~__setstate__` del objeto. " -"(Contribución de Pierre Glaser y Olivier Grisel en :issue:`35900`.)" +"not *None*, this callable will have priority over the " +"object's :meth:`~object.__setstate__` method. (Contributed by Pierre Glaser " +"and Olivier Grisel in :issue:`35900`.)" +msgstr "" +"El método :meth:`object.__reduce__` ahora puede devolver una tupla de dos a " +"seis elementos de longitud. Antes, cinco era el límite. El nuevo sexto " +"elemento opcional es invocable con una firma ``(obj, state)``. Esto permite " +"el control directo sobre el comportamiento de actualización de estado de un " +"objeto específico. Si no es *None*, este invocable tendrá prioridad sobre " +"el método :meth:`~object.__setstate__` del objeto. (Aportado por Pierre " +"Glaser y Olivier Grisel en :issue:`35900`.)" #: ../Doc/whatsnew/3.8.rst:543 msgid "New Modules" @@ -1098,6 +1178,20 @@ msgid "" " PackagePath('requests-2.22.0.dist-info/RECORD'),\n" " PackagePath('requests-2.22.0.dist-info/WHEEL')]" msgstr "" +">>> # Nota: el siguiente ejemplo requiere que las populares \"solicitudes\"\n" +">>> # paquete ha sido instalado.\n" +">>>\n" +">>> desde importlib.metadata versión de importación, requisitos, archivos\n" +">>> versión('solicitudes')\n" +"'2.22.0'\n" +">>> lista(requiere('solicitudes'))\n" +"['chardet (<3.1.0,>=3.0.2)']\n" +">>> lista(archivos('solicitudes'))[:5]\n" +"[PaquetePath('solicitudes-2.22.0.dist-info/INSTALLER'),\n" +" PackagePath('solicitudes-2.22.0.dist-info/LICENCIA'),\n" +" PackagePath('solicitudes-2.22.0.dist-info/METADATA'),\n" +" PackagePath('solicitudes-2.22.0.dist-info/RECORD'),\n" +" PackagePath('solicitudes-2.22.0.dist-info/WHEEL')]" #: ../Doc/whatsnew/3.8.rst:564 msgid "(Contributed by Barry Warsaw and Jason R. Coombs in :issue:`34632`.)" @@ -1140,8 +1234,8 @@ msgstr "La función :func:`ast.parse` tiene algunos flags nuevos:" #: ../Doc/whatsnew/3.8.rst:584 msgid "" -"``type_comments=True`` causes it to return the text of :pep:`484` and :pep:" -"`526` type comments associated with certain AST nodes;" +"``type_comments=True`` causes it to return the text of :pep:`484` " +"and :pep:`526` type comments associated with certain AST nodes;" msgstr "" "``type_comments=True`` causa que la función retorne el texto de los " "comentarios de tipo especificados en :pep:`484` y :pep:`526` asociados con " @@ -1159,12 +1253,12 @@ msgstr "" #: ../Doc/whatsnew/3.8.rst:590 msgid "" "``feature_version=(3, N)`` allows specifying an earlier Python 3 version. " -"For example, ``feature_version=(3, 4)`` will treat :keyword:`async` and :" -"keyword:`await` as non-reserved words." +"For example, ``feature_version=(3, 4)`` will treat :keyword:`async` " +"and :keyword:`await` as non-reserved words." msgstr "" "``feature_version=(3, N)`` permite especificar una versión de Python 3 " -"previa. Por ejemplo, ``feature_version=(3, 4)`` hará que se trate a :keyword:" -"`async` y :keyword:`await` como palabras no reservadas." +"previa. Por ejemplo, ``feature_version=(3, 4)`` hará que se trate " +"a :keyword:`async` y :keyword:`await` como palabras no reservadas." #: ../Doc/whatsnew/3.8.rst:594 msgid "(Contributed by Guido van Rossum in :issue:`35766`.)" @@ -1195,6 +1289,13 @@ msgid "" "\n" "asyncio.run(main())" msgstr "" +"importar asincio\n" +"\n" +"asíncrono de definición principal():\n" +" espera asyncio.sleep(0)\n" +" volver 42\n" +"\n" +"asyncio.run(principal())" #: ../Doc/whatsnew/3.8.rst:612 msgid "This is *roughly* equivalent to::" @@ -1216,15 +1317,29 @@ msgid "" " asyncio.set_event_loop(None)\n" " loop.close()" msgstr "" +"importar asincio\n" +"\n" +"asíncrono de definición principal():\n" +" espera asyncio.sleep(0)\n" +" volver 42\n" +"\n" +"bucle = asyncio.new_event_loop()\n" +"asyncio.set_event_loop(bucle)\n" +"prueba:\n" +" loop.run_until_complete(principal())\n" +"finalmente:\n" +" asyncio.set_event_loop(Ninguno)\n" +" bucle.cerrar()" #: ../Doc/whatsnew/3.8.rst:629 msgid "" -"The actual implementation is significantly more complex. Thus, :func:" -"`asyncio.run` should be the preferred way of running asyncio programs." +"The actual implementation is significantly more complex. " +"Thus, :func:`asyncio.run` should be the preferred way of running asyncio " +"programs." msgstr "" -"La implementación real es significativamente más compleja. Por lo tanto, :" -"func:`asyncio.run` debería ser la forma preferida de ejecutar programas " -"asyncio." +"La implementación real es significativamente más compleja. Por lo " +"tanto, :func:`asyncio.run` debería ser la forma preferida de ejecutar " +"programas asyncio." #: ../Doc/whatsnew/3.8.rst:632 msgid "(Contributed by Yury Selivanov in :issue:`32314`.)" @@ -1254,6 +1369,14 @@ msgid "" ">>> await asyncio.sleep(10, result='hello')\n" "hello" msgstr "" +"$ python -m asincio\n" +"asincio REPL 3.8.0\n" +"Utilice \"await\" directamente en lugar de \"asyncio.run()\".\n" +"Escriba \"ayuda\", \"derechos de autor\", \"créditos\" o \"licencia\" para " +"obtener más información.\n" +">>> importar asincio\n" +">>> espera asyncio.sleep(10, resultado='hola')\n" +"hola" #: ../Doc/whatsnew/3.8.rst:649 msgid "(Contributed by Yury Selivanov in :issue:`37028`.)" @@ -1261,23 +1384,25 @@ msgstr "(Contribución de Yury Selivanov en :issue:`37028`.)" #: ../Doc/whatsnew/3.8.rst:651 ../Doc/whatsnew/3.8.rst:1973 msgid "" -"The exception :class:`asyncio.CancelledError` now inherits from :class:" -"`BaseException` rather than :class:`Exception` and no longer inherits from :" -"class:`concurrent.futures.CancelledError`. (Contributed by Yury Selivanov " -"in :issue:`32528`.)" +"The exception :class:`asyncio.CancelledError` now inherits " +"from :class:`BaseException` rather than :class:`Exception` and no longer " +"inherits from :class:`concurrent.futures.CancelledError`. (Contributed by " +"Yury Selivanov in :issue:`32528`.)" msgstr "" -"La excepción :class:`asyncio.CancelledError` ahora hereda de :class:" -"`BaseException` en lugar de :class:`Exception` y ya no hereda de :class:" -"`concurrent.futures.CancelledError`. (Contribuido por Yury Selivanov en :" -"issue:`32528`.)" +"La excepción :class:`asyncio.CancelledError` ahora hereda " +"de :class:`BaseException` en lugar de :class:`Exception` y ya no hereda " +"de :class:`concurrent.futures.CancelledError`. (Contribuido por Yury " +"Selivanov en :issue:`32528`.)" #: ../Doc/whatsnew/3.8.rst:656 msgid "" -"On Windows, the default event loop is now :class:`~asyncio." -"ProactorEventLoop`. (Contributed by Victor Stinner in :issue:`34687`.)" +"On Windows, the default event loop is " +"now :class:`~asyncio.ProactorEventLoop`. (Contributed by Victor Stinner " +"in :issue:`34687`.)" msgstr "" -"En Windows, el ciclo de eventos predeterminado ahora es :class:`~asyncio." -"ProactorEventLoop`. (Contribución de Victor Stinner en :issue:`34687`.)" +"En Windows, el ciclo de eventos predeterminado ahora " +"es :class:`~asyncio.ProactorEventLoop`. (Contribución de Victor Stinner " +"en :issue:`34687`.)" #: ../Doc/whatsnew/3.8.rst:659 msgid "" @@ -1289,13 +1414,13 @@ msgstr "" #: ../Doc/whatsnew/3.8.rst:662 msgid "" -":class:`~asyncio.ProactorEventLoop` can now be interrupted by :exc:" -"`KeyboardInterrupt` (\"CTRL+C\"). (Contributed by Vladimir Matveev in :issue:" -"`23057`.)" +":class:`~asyncio.ProactorEventLoop` can now be interrupted " +"by :exc:`KeyboardInterrupt` (\"CTRL+C\"). (Contributed by Vladimir Matveev " +"in :issue:`23057`.)" msgstr "" -":class:`~asyncio.ProactorEventLoop` ahora puede ser interrumpido por :exc:" -"`KeyboardInterrupt` (\"CTRL+C\"). (Contribución de Vladimir Matveev en :" -"issue:`23057`.)" +":class:`~asyncio.ProactorEventLoop` ahora puede ser interrumpido " +"por :exc:`KeyboardInterrupt` (\"CTRL+C\"). (Contribución de Vladimir Matveev " +"en :issue:`23057`.)" #: ../Doc/whatsnew/3.8.rst:666 msgid "" @@ -1303,25 +1428,25 @@ msgid "" "an :class:`asyncio.Task`. (Contributed by Alex Grönholm in :issue:`36999`.)" msgstr "" "Se ha agregado :meth:`asyncio.Task.get_coro` para obtener la corrutina " -"envuelta dentro de :class:`asyncio.Task`. (Contribución de Alex Grönholm en :" -"issue:`36999`.)" +"envuelta dentro de :class:`asyncio.Task`. (Contribución de Alex Grönholm " +"en :issue:`36999`.)" #: ../Doc/whatsnew/3.8.rst:670 msgid "" "Asyncio tasks can now be named, either by passing the ``name`` keyword " -"argument to :func:`asyncio.create_task` or the :meth:`~asyncio.loop." -"create_task` event loop method, or by calling the :meth:`~asyncio.Task." -"set_name` method on the task object. The task name is visible in the " -"``repr()`` output of :class:`asyncio.Task` and can also be retrieved using " -"the :meth:`~asyncio.Task.get_name` method. (Contributed by Alex Grönholm in :" -"issue:`34270`.)" +"argument to :func:`asyncio.create_task` or " +"the :meth:`~asyncio.loop.create_task` event loop method, or by calling " +"the :meth:`~asyncio.Task.set_name` method on the task object. The task name " +"is visible in the ``repr()`` output of :class:`asyncio.Task` and can also be " +"retrieved using the :meth:`~asyncio.Task.get_name` method. (Contributed by " +"Alex Grönholm in :issue:`34270`.)" msgstr "" "Las tareas de Asyncio ahora se pueden nombrar, ya sea pasando el argumento " -"por palabra clave ``name`` a :func:`asyncio.create_task` o al método :meth:" -"`~asyncio.loop.create_task` del bucle de eventos, o invocando al método :" -"meth:`~asyncio.Task.set_name` en el objeto de tarea. El nombre de la tarea " -"es visible en la salida de ``repr()`` de :class:`asyncio.Task` y también se " -"puede recuperar usando el método :meth:`~asyncio.Task.get_name`. " +"por palabra clave ``name`` a :func:`asyncio.create_task` o al " +"método :meth:`~asyncio.loop.create_task` del bucle de eventos, o invocando " +"al método :meth:`~asyncio.Task.set_name` en el objeto de tarea. El nombre de " +"la tarea es visible en la salida de ``repr()`` de :class:`asyncio.Task` y " +"también se puede recuperar usando el método :meth:`~asyncio.Task.get_name`. " "(Contribución de Alex Grönholm en :issue:`34270`.)" #: ../Doc/whatsnew/3.8.rst:678 @@ -1347,19 +1472,19 @@ msgstr "builtins" #: ../Doc/whatsnew/3.8.rst:690 msgid "" -"The :func:`compile` built-in has been improved to accept the ``ast." -"PyCF_ALLOW_TOP_LEVEL_AWAIT`` flag. With this new flag passed, :func:" -"`compile` will allow top-level ``await``, ``async for`` and ``async with`` " -"constructs that are usually considered invalid syntax. Asynchronous code " -"object marked with the ``CO_COROUTINE`` flag may then be returned. " -"(Contributed by Matthias Bussonnier in :issue:`34616`)" +"The :func:`compile` built-in has been improved to accept the " +"``ast.PyCF_ALLOW_TOP_LEVEL_AWAIT`` flag. With this new flag " +"passed, :func:`compile` will allow top-level ``await``, ``async for`` and " +"``async with`` constructs that are usually considered invalid syntax. " +"Asynchronous code object marked with the ``CO_COROUTINE`` flag may then be " +"returned. (Contributed by Matthias Bussonnier in :issue:`34616`)" msgstr "" "La función incorporada :func:`compile` se ha mejorado para que acepte el " -"flag ``ast.PyCF_ALLOW_TOP_LEVEL_AWAIT``. Si se pasa este nuevo flag, :func:" -"`compile` permitirá construcciones de nivel superior ``await``, ``async " -"for`` y ``async with``, que normalmente se consideran sintaxis inválida. El " -"objeto de código asíncrono marcado con el flag ``CO_COROUTINE`` puede ser " -"retornado. (Contribución de Matthias Bussonnier en :issue:`34616`.)" +"flag ``ast.PyCF_ALLOW_TOP_LEVEL_AWAIT``. Si se pasa este nuevo " +"flag, :func:`compile` permitirá construcciones de nivel superior ``await``, " +"``async for`` y ``async with``, que normalmente se consideran sintaxis " +"inválida. El objeto de código asíncrono marcado con el flag ``CO_COROUTINE`` " +"puede ser retornado. (Contribución de Matthias Bussonnier en :issue:`34616`.)" #: ../Doc/whatsnew/3.8.rst:699 msgid "collections" @@ -1367,22 +1492,22 @@ msgstr "collections" #: ../Doc/whatsnew/3.8.rst:701 msgid "" -"The :meth:`~collections.somenamedtuple._asdict` method for :func:" -"`collections.namedtuple` now returns a :class:`dict` instead of a :class:" -"`collections.OrderedDict`. This works because regular dicts have guaranteed " -"ordering since Python 3.7. If the extra features of :class:`OrderedDict` are " -"required, the suggested remediation is to cast the result to the desired " -"type: ``OrderedDict(nt._asdict())``. (Contributed by Raymond Hettinger in :" -"issue:`35864`.)" -msgstr "" -"El método :meth:`~collections.somenamedtuple._asdict` para :func:" -"`collections.namedtuple` ahora retorna una instancia de :class:`dict` en " -"lugar de una de :class:`collections.OrderedDict`. Esto funciona porque se " -"garantiza que los diccionarios regulares mantienen el orden de inserción " -"desde Python 3.7. Si se requieren las características adicionales de :class:" -"`OrderedDict`, la solución sugerida es realizar una conversión del resultado " -"al tipo deseado: ``OrderedDict(nt._asdict())``. (Contribución de Raymond " -"Hettinger en :issue:`35864`.)" +"The :meth:`~collections.somenamedtuple._asdict` method " +"for :func:`collections.namedtuple` now returns a :class:`dict` instead of " +"a :class:`collections.OrderedDict`. This works because regular dicts have " +"guaranteed ordering since Python 3.7. If the extra features " +"of :class:`OrderedDict` are required, the suggested remediation is to cast " +"the result to the desired type: ``OrderedDict(nt._asdict())``. (Contributed " +"by Raymond Hettinger in :issue:`35864`.)" +msgstr "" +"El método :meth:`~collections.somenamedtuple._asdict` " +"para :func:`collections.namedtuple` ahora retorna una instancia " +"de :class:`dict` en lugar de una de :class:`collections.OrderedDict`. Esto " +"funciona porque se garantiza que los diccionarios regulares mantienen el " +"orden de inserción desde Python 3.7. Si se requieren las características " +"adicionales de :class:`OrderedDict`, la solución sugerida es realizar una " +"conversión del resultado al tipo deseado: ``OrderedDict(nt._asdict())``. " +"(Contribución de Raymond Hettinger en :issue:`35864`.)" #: ../Doc/whatsnew/3.8.rst:711 msgid "cProfile" @@ -1404,6 +1529,11 @@ msgid "" " # code to be profiled\n" " ..." msgstr "" +"importar perfil c\n" +"\n" +"con cProfile.Profile() como generador de perfiles:\n" +" # código para perfilar\n" +" ..." #: ../Doc/whatsnew/3.8.rst:722 msgid "(Contributed by Scott Sanderson in :issue:`29235`.)" @@ -1436,8 +1566,9 @@ msgid "" "Serhiy Storchaka in :issue:`31680`.)" msgstr "" "Se agregó una nueva variable que contiene información de versión " -"estructurada para la biblioteca ncurses subyacente: :data:`~curses." -"ncurses_version`. (Contribución de Serhiy Storchaka en :issue:`31680`.)" +"estructurada para la biblioteca ncurses " +"subyacente: :data:`~curses.ncurses_version`. (Contribución de Serhiy " +"Storchaka en :issue:`31680`.)" #: ../Doc/whatsnew/3.8.rst:743 msgid "ctypes" @@ -1449,8 +1580,9 @@ msgid "" "parameter to specify flags for the underlying ``LoadLibraryEx`` call. The " "default flags are set to only load DLL dependencies from trusted locations, " "including the path where the DLL is stored (if a full or partial path is " -"used to load the initial DLL) and paths added by :func:`~os." -"add_dll_directory`. (Contributed by Steve Dower in :issue:`36085`.)" +"used to load the initial DLL) and paths added " +"by :func:`~os.add_dll_directory`. (Contributed by Steve Dower " +"in :issue:`36085`.)" msgstr "" "En Windows, :class:`~ctypes.CDLL` y sus subclases ahora aceptan un parámetro " "*winmode* para especificar flags para la invocación subyacente de " @@ -1465,20 +1597,21 @@ msgid "datetime" msgstr "datetime" #: ../Doc/whatsnew/3.8.rst:756 -#, fuzzy msgid "" -"Added new alternate constructors :meth:`datetime.date.fromisocalendar` and :" -"meth:`datetime.datetime.fromisocalendar`, which construct :class:`~datetime." -"date` and :class:`~datetime.datetime` objects respectively from ISO year, " -"week number, and weekday; these are the inverse of each class's " -"``isocalendar`` method. (Contributed by Paul Ganssle in :issue:`36004`.)" -msgstr "" -"Se agregaron nuevos constructores alternativos :meth:`datetime.date." -"fromisocalendar` y :meth:`datetime.datetime.fromisocalendar`, que construyen " -"objetos :class:`date` y :class:`datetime` respectivamente con el año, número " -"de semana y día de la semana de la fecha del calendario ISO. Estos son el " -"inverso del método ``isocalendar`` de cada clase. (Contribución de Paul " -"Ganssle en :issue:`36004`.)" +"Added new alternate constructors :meth:`datetime.date.fromisocalendar` " +"and :meth:`datetime.datetime.fromisocalendar`, which " +"construct :class:`~datetime.date` and :class:`~datetime.datetime` objects " +"respectively from ISO year, week number, and weekday; these are the inverse " +"of each class's ``isocalendar`` method. (Contributed by Paul Ganssle " +"in :issue:`36004`.)" +msgstr "" +"Se agregaron nuevos constructores " +"alternativos :meth:`datetime.date.fromisocalendar` " +"y :meth:`datetime.datetime.fromisocalendar`, que construyen " +"objetos :class:`~datetime.date` y :class:`~datetime.datetime` " +"respectivamente a partir del año, número de semana y día de la semana ISO; " +"estos son el inverso del método ``isocalendar`` de cada clase. (Aportado por " +"Paul Ganssle en :issue:`36004`.)" #: ../Doc/whatsnew/3.8.rst:764 msgid "functools" @@ -1504,6 +1637,13 @@ msgid "" "def f(x):\n" " ..." msgstr "" +"@lru_cache\n" +"definición f(x):\n" +" ...\n" +"\n" +"@lru_cache(tamaño máximo=256)\n" +"definición f(x):\n" +" ..." #: ../Doc/whatsnew/3.8.rst:777 msgid "(Contributed by Raymond Hettinger in :issue:`36772`.)" @@ -1531,6 +1671,16 @@ msgid "" " def variance(self):\n" " return statistics.variance(self.data)" msgstr "" +"importar funciones\n" +"estadísticas de importación\n" +"\n" +"conjunto de datos de clase:\n" +" def __init__(self, secuencia_de_números):\n" +" self.data = secuencia_de_números\n" +"\n" +" @functools.cached_property\n" +" varianza def(yo):\n" +" devolver estadísticas.varianza(self.data)" #: ../Doc/whatsnew/3.8.rst:793 msgid "(Contributed by Carl Meyer in :issue:`21145`)" @@ -1539,12 +1689,12 @@ msgstr "(Contribución de Carl Meyer en :issue:`21145`.)" #: ../Doc/whatsnew/3.8.rst:796 msgid "" "Added a new :func:`functools.singledispatchmethod` decorator that converts " -"methods into :term:`generic functions ` using :term:" -"`single dispatch`::" +"methods into :term:`generic functions ` " +"using :term:`single dispatch`::" msgstr "" "Se ha agregado un nuevo decorador :func:`functools.singledispatchmethod` que " -"convierte métodos en :term:`funciones genéricas ` usando :" -"term:`single dispatch`::" +"convierte métodos en :term:`funciones genéricas ` " +"usando :term:`single dispatch`::" #: ../Doc/whatsnew/3.8.rst:800 msgid "" @@ -1566,6 +1716,23 @@ msgid "" " targets = set(tasks)\n" " self.tasks = [x for x in self.tasks if x not in targets]" msgstr "" +"desde functools importar método de envío único\n" +"desde la importación de contextlib suprimir\n" +"\n" +"clase Administrador de tareas:\n" +"\n" +" def __init__(yo, tareas):\n" +" self.tasks = lista (tareas)\n" +"\n" +" @singledispatchmethod\n" +" def descartar(yo, valor):\n" +" con suprimir (ValueError):\n" +" self.tareas.eliminar(valor)\n" +"\n" +" @descartar.registro(lista)\n" +" def _(yo, tareas):\n" +" objetivos = conjunto (tareas)\n" +" self.tasks = [x para x en self.tasks si x no está en objetivos]" #: ../Doc/whatsnew/3.8.rst:818 msgid "(Contributed by Ethan Smith in :issue:`32380`)" @@ -1615,10 +1782,10 @@ msgid "" "for certain types of invalid or corrupt gzip files. (Contributed by Filip " "Gruszczyński, Michele Orrù, and Zackery Spytz in :issue:`6584`.)" msgstr "" -"Una excepción :exc:`~gzip.BadGzipFile` es lanzada ahora, en lugar de :exc:" -"`OSError`, para ciertos tipos de archivos gzip no válidos o corruptos. " -"(Contribución de Filip Gruszczyński, Michele Orrù y Zackery Spytz en :issue:" -"`6584`.)" +"Una excepción :exc:`~gzip.BadGzipFile` es lanzada ahora, en lugar " +"de :exc:`OSError`, para ciertos tipos de archivos gzip no válidos o " +"corruptos. (Contribución de Filip Gruszczyński, Michele Orrù y Zackery Spytz " +"en :issue:`6584`.)" #: ../Doc/whatsnew/3.8.rst:848 msgid "IDLE and idlelib" @@ -1661,8 +1828,8 @@ msgid "" "Added optional line numbers for IDLE editor windows. Windows open without " "line numbers unless set otherwise in the General tab of the configuration " "dialog. Line numbers for an existing window are shown and hidden in the " -"Options menu. (Contributed by Tal Einat and Saimadhav Heblikar in :issue:" -"`17535`.)" +"Options menu. (Contributed by Tal Einat and Saimadhav Heblikar " +"in :issue:`17535`.)" msgstr "" "Se agregaron números de línea opcionales para las ventanas del editor IDLE. " "Las ventanas se abren sin números de línea, a menos que se establezca lo " @@ -1684,8 +1851,8 @@ msgstr "" "emoji y otros caracteres que no son BMP. Estos caracteres se pueden mostrar " "o copiar y pegar en ,o desde, el portapapeles. Convertir cadenas de Tcl a " "Python y viceversa ahora nunca falla. (Mucha gente trabajó en esto durante " -"ocho años, pero el problema finalmente lo resolvió Serhiy Storchaka en :" -"issue:`13153`.)" +"ocho años, pero el problema finalmente lo resolvió Serhiy Storchaka " +"en :issue:`13153`.)" #: ../Doc/whatsnew/3.8.rst:876 msgid "New in 3.8.1:" @@ -1693,8 +1860,8 @@ msgstr "Nuevo en 3.8.1:" #: ../Doc/whatsnew/3.8.rst:878 msgid "" -"Add option to toggle cursor blink off. (Contributed by Zackery Spytz in :" -"issue:`4603`.)" +"Add option to toggle cursor blink off. (Contributed by Zackery Spytz " +"in :issue:`4603`.)" msgstr "" "Agregue la opción para desactivar el parpadeo del cursor. (Contribuido por " "Zackery Spytz en :issue:`4603`.)" @@ -1735,8 +1902,8 @@ msgstr "" "La función :func:`inspect.getdoc` puede ahora encontrar cadenas de " "documentación para ``__slots__`` si el este atributo es un :class:`dict` " "cuyos valores son las cadenas de documentación. Esto proporciona opciones de " -"documentación similares a las que ya tenemos para :func:`property`, :func:" -"`classmethod` y :func:`staticmethod`::" +"documentación similares a las que ya tenemos " +"para :func:`property`, :func:`classmethod` y :func:`staticmethod`::" #: ../Doc/whatsnew/3.8.rst:897 #, python-brace-format @@ -1748,6 +1915,12 @@ msgid "" " self.bit_rate = round(bit_rate / 1000.0, 1)\n" " self.duration = ceil(duration)" msgstr "" +"clip de audio de clase:\n" +" __slots__ = {'bit_rate': 'expresado en kilohercios con un decimal',\n" +" 'duración': 'en segundos, redondeado a un número entero'}\n" +" def __init__(self, bit_rate, duración):\n" +" self.bit_rate = redondo(bit_rate / 1000.0, 1)\n" +" self.duración = techo (duración)" #: ../Doc/whatsnew/3.8.rst:904 msgid "(Contributed by Raymond Hettinger in :issue:`36326`.)" @@ -1789,6 +1962,9 @@ msgid "" ">>> list(accumulate([10, 5, 30, 15], initial=1000))\n" "[1000, 1010, 1015, 1045, 1060]" msgstr "" +">>> desde la importación de itertools se acumula\n" +">>> lista(acumular([10, 5, 30, 15], inicial=1000))\n" +"[1000, 1010, 1015, 1045, 1060]" #: ../Doc/whatsnew/3.8.rst:926 msgid "(Contributed by Lisa Roach in :issue:`34659`.)" @@ -1812,17 +1988,17 @@ msgid "logging" msgstr "logging" #: ../Doc/whatsnew/3.8.rst:939 -#, fuzzy msgid "" "Added a *force* keyword argument to :func:`logging.basicConfig`. When set to " "true, any existing handlers attached to the root logger are removed and " "closed before carrying out the configuration specified by the other " "arguments." msgstr "" -"Agregado un argumento por palabra clave *force* a la función :func:`logging." -"basicConfig()`. Cuando se establece en verdadero, cualquier controlador " -"existente adjunto al registrador (logger) raíz se elimina y se cierra antes " -"de realizar la configuración especificada por los otros argumentos." +"Se agregó un argumento de palabra clave *force* " +"a :func:`logging.basicConfig`. Cuando se establece en verdadero, cualquier " +"controlador existente adjunto al registrador raíz se elimina y se cierra " +"antes de llevar a cabo la configuración especificada por los otros " +"argumentos." #: ../Doc/whatsnew/3.8.rst:944 msgid "" @@ -1856,8 +2032,8 @@ msgid "" "between two points. (Contributed by Raymond Hettinger in :issue:`33089`.)" msgstr "" "Se ha agregado la nueva función :func:`math.dist` para calcular la distancia " -"euclidiana entre dos puntos. (Contribución de Raymond Hettinger en :issue:" -"`33089`.)" +"euclidiana entre dos puntos. (Contribución de Raymond Hettinger " +"en :issue:`33089`.)" #: ../Doc/whatsnew/3.8.rst:960 msgid "" @@ -1875,9 +2051,9 @@ msgid "" "that returns the product of a 'start' value (default: 1) times an iterable " "of numbers::" msgstr "" -"Agregada una nueva función, :func:`math.prod`, como función análoga a :func:" -"`sum`, que retorna el producto de todos los elementos de un iterable de " -"números partiendo de un valor de inicio (*start*) (por defecto: 1)::" +"Agregada una nueva función, :func:`math.prod`, como función análoga " +"a :func:`sum`, que retorna el producto de todos los elementos de un iterable " +"de números partiendo de un valor de inicio (*start*) (por defecto: 1)::" #: ../Doc/whatsnew/3.8.rst:968 msgid "" @@ -1886,6 +2062,10 @@ msgid "" ">>> math.prod(likelihoods, start=prior)\n" "0.126" msgstr "" +">>> anterior = 0.8\n" +">>> probabilidades = [0,625, 0,84, 0,30]\n" +">>> math.prod(probabilidades, inicio=antes)\n" +"0.126" #: ../Doc/whatsnew/3.8.rst:973 msgid "(Contributed by Pablo Galindo in :issue:`35606`.)" @@ -1893,11 +2073,11 @@ msgstr "(Contribución de Pablo Galindo en :issue:`35606`.)" #: ../Doc/whatsnew/3.8.rst:975 msgid "" -"Added two new combinatoric functions :func:`math.perm` and :func:`math." -"comb`::" +"Added two new combinatoric functions :func:`math.perm` " +"and :func:`math.comb`::" msgstr "" -"Agregadas dos nuevas funciones combinatorias, :func:`math.perm` y :func:" -"`math.comb`::" +"Agregadas dos nuevas funciones combinatorias, :func:`math.perm` " +"y :func:`math.comb`::" #: ../Doc/whatsnew/3.8.rst:977 msgid "" @@ -1906,6 +2086,10 @@ msgid "" ">>> math.comb(10, 3) # Combinations of 10 things taken 3 at a time\n" "120" msgstr "" +">>> math.perm(10, 3) # Permutaciones de 10 cosas tomadas de 3 a la vez\n" +"720\n" +">>> math.comb(10, 3) # Combinaciones de 10 cosas tomadas de 3 a la vez\n" +"120" #: ../Doc/whatsnew/3.8.rst:982 msgid "" @@ -1936,6 +2120,12 @@ msgid "" ">>> floor(sqrt(s - 1)) # incorrect\n" "650320427" msgstr "" +">>>r=650320427\n" +">>> s = r ** 2\n" +">>> isqrt(s - 1) # correcto\n" +"650320426\n" +">>> piso(sqrt(s - 1)) # incorrecto\n" +"650320427" #: ../Doc/whatsnew/3.8.rst:997 msgid "(Contributed by Mark Dickinson in :issue:`36887`.)" @@ -1956,8 +2146,8 @@ msgstr "mmap" #: ../Doc/whatsnew/3.8.rst:1006 msgid "" "The :class:`mmap.mmap` class now has an :meth:`~mmap.mmap.madvise` method to " -"access the ``madvise()`` system call. (Contributed by Zackery Spytz in :" -"issue:`32941`.)" +"access the ``madvise()`` system call. (Contributed by Zackery Spytz " +"in :issue:`32941`.)" msgstr "" "La clase :class:`mmap.mmap` ahora tiene un método :meth:`~mmap.mmap.madvise` " "para acceder a la llamada al sistema ``madvise()``. (Contribución de Zackery " @@ -1991,13 +2181,13 @@ msgstr "os" msgid "" "Added new function :func:`~os.add_dll_directory` on Windows for providing " "additional search paths for native dependencies when importing extension " -"modules or loading DLLs using :mod:`ctypes`. (Contributed by Steve Dower in :" -"issue:`36085`.)" +"modules or loading DLLs using :mod:`ctypes`. (Contributed by Steve Dower " +"in :issue:`36085`.)" msgstr "" "Se agregó una nueva función :func:`~os.add_dll_directory` en Windows para " "proporcionar rutas de búsqueda adicionales para las dependencias nativas al " -"importar módulos de extensión o al cargar archivos DLL utilizando :mod:" -"`ctypes`. (Contribución de Steve Dower en :issue:`36085`.)" +"importar módulos de extensión o al cargar archivos DLL " +"utilizando :mod:`ctypes`. (Contribución de Steve Dower en :issue:`36085`.)" #: ../Doc/whatsnew/3.8.rst:1029 msgid "" @@ -2010,37 +2200,35 @@ msgstr "" "Heimes en :issue:`26836`.)" #: ../Doc/whatsnew/3.8.rst:1033 -#, fuzzy msgid "" "On Windows, much of the manual logic for handling reparse points (including " "symlinks and directory junctions) has been delegated to the operating " "system. Specifically, :func:`os.stat` will now traverse anything supported " "by the operating system, while :func:`os.lstat` will only open reparse " -"points that identify as \"name surrogates\" while others are opened as for :" -"func:`os.stat`. In all cases, :attr:`os.stat_result.st_mode` will only have " -"``S_IFLNK`` set for symbolic links and not other kinds of reparse points. To " -"identify other kinds of reparse point, check the new :attr:`os.stat_result." -"st_reparse_tag` attribute." -msgstr "" -"En Windows, gran parte de la lógica manual para manejar los puntos de " -"reinterpretación (incluidos los enlaces simbólicos y las uniones de " -"directorios) se ha delegado al sistema operativo. Específicamente, :func:`os." -"stat` ahora se encargará de todo lo que sea compatible con el sistema " -"operativo, mientras que :func:`os.lstat` solo abrirá puntos de " -"reinterpretación que se identifican como \"sustitutos de nombre\" y el resto " -"se abrirán mediante :func:`os.stat`. En todos los casos, :attr:`stat_result." -"st_mode` solo tendrá establecido ``S_IFLNK`` para enlaces simbólicos y no " -"para otros tipos de puntos de reinterpretación. Para identificar otros tipos " -"de puntos de reinterpretación, verifica el nuevo atributo :attr:`stat_result." -"st_reparse_tag`." +"points that identify as \"name surrogates\" while others are opened as " +"for :func:`os.stat`. In all cases, :attr:`os.stat_result.st_mode` will only " +"have ``S_IFLNK`` set for symbolic links and not other kinds of reparse " +"points. To identify other kinds of reparse point, check the " +"new :attr:`os.stat_result.st_reparse_tag` attribute." +msgstr "" +"En Windows, gran parte de la lógica manual para manejar puntos de análisis " +"(incluidos enlaces simbólicos y uniones de directorios) se ha delegado al " +"sistema operativo. Específicamente, :func:`os.stat` ahora atravesará " +"cualquier cosa admitida por el sistema operativo, mientras " +"que :func:`os.lstat` solo abrirá puntos de análisis que se identifiquen como " +"\"suplentes de nombres\", mientras que otros se abren como " +"para :func:`os.stat`. En todos los casos, :attr:`os.stat_result.st_mode` " +"solo tendrá ``S_IFLNK`` configurado para enlaces simbólicos y no para otros " +"tipos de puntos de análisis. Para identificar otros tipos de puntos de " +"análisis, consulte el nuevo atributo :attr:`os.stat_result.st_reparse_tag`." #: ../Doc/whatsnew/3.8.rst:1042 msgid "" "On Windows, :func:`os.readlink` is now able to read directory junctions. " "Note that :func:`~os.path.islink` will return ``False`` for directory " "junctions, and so code that checks ``islink`` first will continue to treat " -"junctions as directories, while code that handles errors from :func:`os." -"readlink` may now treat junctions as links." +"junctions as directories, while code that handles errors " +"from :func:`os.readlink` may now treat junctions as links." msgstr "" "En Windows, :func:`os.readlink` ahora puede leer uniones de directorio. Ten " "en cuenta que :func:`~os.path.islink` retornará ``False`` para las uniones " @@ -2059,28 +2247,28 @@ msgstr "os.path" #: ../Doc/whatsnew/3.8.rst:1054 msgid "" -":mod:`os.path` functions that return a boolean result like :func:`~os.path." -"exists`, :func:`~os.path.lexists`, :func:`~os.path.isdir`, :func:`~os.path." -"isfile`, :func:`~os.path.islink`, and :func:`~os.path.ismount` now return " -"``False`` instead of raising :exc:`ValueError` or its subclasses :exc:" -"`UnicodeEncodeError` and :exc:`UnicodeDecodeError` for paths that contain " -"characters or bytes unrepresentable at the OS level. (Contributed by Serhiy " -"Storchaka in :issue:`33721`.)" -msgstr "" -"Las funciones de :mod:`os.path` que retornan un resultado booleano como :" -"func:`~os.path.exists`, :func:`~os.path.lexists`, :func:`~os.path.isdir`, :" -"func:`~os.path.isfile`, :func:`~os.path.islink` e :func:`~os.path.ismount` " -"ahora retornan ``False`` en lugar de lanzar una excepción :exc:`ValueError`, " -"o sus subclases :exc:`UnicodeEncodeError` y :exc:`UnicodeDecodeError`, para " -"rutas que contienen caracteres o bytes irrepresentables a nivel del sistema " -"operativo. (Contribución de Serhiy Storchaka en :issue:`33721`.)" +":mod:`os.path` functions that return a boolean result " +"like :func:`~os.path.exists`, :func:`~os.path.lexists`, :func:`~os.path.isdir`, :func:`~os.path.isfile`, :func:`~os.path.islink`, " +"and :func:`~os.path.ismount` now return ``False`` instead of " +"raising :exc:`ValueError` or its subclasses :exc:`UnicodeEncodeError` " +"and :exc:`UnicodeDecodeError` for paths that contain characters or bytes " +"unrepresentable at the OS level. (Contributed by Serhiy Storchaka " +"in :issue:`33721`.)" +msgstr "" +"Las funciones de :mod:`os.path` que retornan un resultado booleano " +"como :func:`~os.path.exists`, :func:`~os.path.lexists`, :func:`~os.path.isdir`, :func:`~os.path.isfile`, :func:`~os.path.islink` " +"e :func:`~os.path.ismount` ahora retornan ``False`` en lugar de lanzar una " +"excepción :exc:`ValueError`, o sus subclases :exc:`UnicodeEncodeError` " +"y :exc:`UnicodeDecodeError`, para rutas que contienen caracteres o bytes " +"irrepresentables a nivel del sistema operativo. (Contribución de Serhiy " +"Storchaka en :issue:`33721`.)" #: ../Doc/whatsnew/3.8.rst:1062 ../Doc/whatsnew/3.8.rst:1968 msgid "" ":func:`~os.path.expanduser` on Windows now prefers the :envvar:`USERPROFILE` " "environment variable and does not use :envvar:`HOME`, which is not normally " -"set for regular user accounts. (Contributed by Anthony Sottile in :issue:" -"`36264`.)" +"set for regular user accounts. (Contributed by Anthony Sottile " +"in :issue:`36264`.)" msgstr "" ":func:`~os.path.expanduser` en Windows ahora usa preferentemente la variable " "de entorno :envvar:`USERPROFILE` y no usa :envvar:`HOME`, que normalmente no " @@ -2109,30 +2297,22 @@ msgid "pathlib" msgstr "pathlib" #: ../Doc/whatsnew/3.8.rst:1079 -#, fuzzy -msgid "" -":mod:`pathlib.Path` methods that return a boolean result like :meth:" -"`~pathlib.Path.exists`, :meth:`~pathlib.Path.is_dir`, :meth:`~pathlib.Path." -"is_file`, :meth:`~pathlib.Path.is_mount`, :meth:`~pathlib.Path.is_symlink`, :" -"meth:`~pathlib.Path.is_block_device`, :meth:`~pathlib.Path.is_char_device`, :" -"meth:`~pathlib.Path.is_fifo`, :meth:`~pathlib.Path.is_socket` now return " -"``False`` instead of raising :exc:`ValueError` or its subclass :exc:" -"`UnicodeEncodeError` for paths that contain characters unrepresentable at " -"the OS level. (Contributed by Serhiy Storchaka in :issue:`33721`.)" -msgstr "" -"Los métodos del módulo :mod:`pathlib.Path` que retornan un resultado " -"booleano, como :meth:`~pathlib.Path.exists()`, :meth:`~pathlib.Path." -"is_dir()`, :meth:`~pathlib.Path.is_file()`, :meth:`~pathlib.Path." -"is_mount()`, :meth:`~pathlib.Path.is_symlink()`, :meth:`~pathlib.Path." -"is_block_device()`, :meth:`~pathlib.Path.is_char_device()`, :meth:`~pathlib." -"Path.is_fifo()` o :meth:`~pathlib.Path.is_socket()`, ahora retornan " -"``False`` en vez de lanzar una excepción :exc:`ValueError` o su subclase :" -"exc:`UnicodeEncodeError` para rutas que contienen caracteres no " -"representables a nivel del sistema operativo. (Contribución de Serhiy " +msgid "" +":mod:`pathlib.Path` methods that return a boolean result " +"like :meth:`~pathlib.Path.exists`, :meth:`~pathlib.Path.is_dir`, :meth:`~pathlib.Path.is_file`, :meth:`~pathlib.Path.is_mount`, :meth:`~pathlib.Path.is_symlink`, :meth:`~pathlib.Path.is_block_device`, :meth:`~pathlib.Path.is_char_device`, :meth:`~pathlib.Path.is_fifo`, :meth:`~pathlib.Path.is_socket` " +"now return ``False`` instead of raising :exc:`ValueError` or its " +"subclass :exc:`UnicodeEncodeError` for paths that contain characters " +"unrepresentable at the OS level. (Contributed by Serhiy Storchaka " +"in :issue:`33721`.)" +msgstr "" +"Los métodos :mod:`pathlib.Path` que devuelven un resultado booleano " +"como :meth:`~pathlib.Path.exists`, :meth:`~pathlib.Path.is_dir`, :meth:`~pathlib.Path.is_file`, :meth:`~pathlib.Path.is_mount`, :meth:`~pathlib.Path.is_symlink`, :meth:`~pathlib.Path.is_block_device`, :meth:`~pathlib.Path.is_char_device`, :meth:`~pathlib.Path.is_fifo`, :meth:`~pathlib.Path.is_socket` " +"ahora devuelven ``False`` en lugar de generar :exc:`ValueError` o su " +"subclase :exc:`UnicodeEncodeError` para rutas que contienen caracteres no " +"representables en el nivel del sistema operativo. (Aportado por Serhiy " "Storchaka en :issue:`33721`.)" #: ../Doc/whatsnew/3.8.rst:1089 -#, fuzzy msgid "" "Added :meth:`!pathlib.Path.link_to` which creates a hard link pointing to a " "path. (Contributed by Joannah Nanjekye in :issue:`26978`) Note that " @@ -2140,7 +2320,7 @@ msgid "" "``hardlink_to`` method added in 3.10 which matches the semantics of the " "existing ``symlink_to`` method." msgstr "" -"Se agregó :meth:`pathlib.Path.link_to()` que crea un vínculo físico que " +"Se agregó :meth:`!pathlib.Path.link_to` que crea un vínculo físico que " "apunta a una ruta. (Contribución de Joannah Nanjekye en :issue:`26978`) " "Tenga en cuenta que ``link_to`` quedó obsoleto en 3.10 y se eliminó en 3.12 " "en favor de un método ``hardlink_to`` agregado en 3.10 que coincide con la " @@ -2152,16 +2332,17 @@ msgstr "pickle" #: ../Doc/whatsnew/3.8.rst:1100 msgid "" -":mod:`pickle` extensions subclassing the C-optimized :class:`~pickle." -"Pickler` can now override the pickling logic of functions and classes by " -"defining the special :meth:`~pickle.Pickler.reducer_override` method. " -"(Contributed by Pierre Glaser and Olivier Grisel in :issue:`35900`.)" +":mod:`pickle` extensions subclassing the C-" +"optimized :class:`~pickle.Pickler` can now override the pickling logic of " +"functions and classes by defining the " +"special :meth:`~pickle.Pickler.reducer_override` method. (Contributed by " +"Pierre Glaser and Olivier Grisel in :issue:`35900`.)" msgstr "" -"Las extensiones de :mod:`pickle` que subclasifican la clase optimizada de C :" -"class:`~pickle.Pickler` ahora pueden anular la lógica de pickling de " -"funciones y clases definiendo el método especial :meth:`~pickle.Pickler." -"reducer_override`. (Contribución de Pierre Glaser y Olivier Grisel en :issue:" -"`35900`.)" +"Las extensiones de :mod:`pickle` que subclasifican la clase optimizada de " +"C :class:`~pickle.Pickler` ahora pueden anular la lógica de pickling de " +"funciones y clases definiendo el método " +"especial :meth:`~pickle.Pickler.reducer_override`. (Contribución de Pierre " +"Glaser y Olivier Grisel en :issue:`35900`.)" #: ../Doc/whatsnew/3.8.rst:1107 msgid "plistlib" @@ -2170,8 +2351,8 @@ msgstr "plistlib" #: ../Doc/whatsnew/3.8.rst:1109 msgid "" "Added new :class:`plistlib.UID` and enabled support for reading and writing " -"NSKeyedArchiver-encoded binary plists. (Contributed by Jon Janzen in :issue:" -"`26707`.)" +"NSKeyedArchiver-encoded binary plists. (Contributed by Jon Janzen " +"in :issue:`26707`.)" msgstr "" "Se ha agregado la nueva clase :class:`plistlib.UID` y se ha habilitado el " "soporte para leer y escribir plists binarios codificados por " @@ -2189,12 +2370,12 @@ msgid "" "dictionaries retain the order that keys were inserted. This can be useful " "for comparison to JSON inputs during debugging." msgstr "" -"Se ha agregado el parámetro *sort_dicts* a varias funciones del módulo :mod:" -"`pprint`. De forma predeterminada, esas funciones continúan ordenando los " -"diccionarios antes de procesarlos o imprimirlos. Sin embargo, si " -"*sort_dicts* se establece en falso, los diccionarios conservan el orden en " -"que se insertaron las claves. Esto puede resultar útil para la comparación " -"con entradas JSON durante la depuración." +"Se ha agregado el parámetro *sort_dicts* a varias funciones del " +"módulo :mod:`pprint`. De forma predeterminada, esas funciones continúan " +"ordenando los diccionarios antes de procesarlos o imprimirlos. Sin embargo, " +"si *sort_dicts* se establece en falso, los diccionarios conservan el orden " +"en que se insertaron las claves. Esto puede resultar útil para la " +"comparación con entradas JSON durante la depuración." #: ../Doc/whatsnew/3.8.rst:1123 msgid "" @@ -2209,8 +2390,8 @@ msgstr "" #, python-brace-format msgid "" ">>> from pprint import pprint, pp\n" -">>> d = dict(source='input.txt', operation='filter', destination='output." -"txt')\n" +">>> d = dict(source='input.txt', operation='filter', " +"destination='output.txt')\n" ">>> pp(d, width=40) # Original order\n" "{'source': 'input.txt',\n" " 'operation': 'filter',\n" @@ -2220,6 +2401,17 @@ msgid "" " 'operation': 'filter',\n" " 'source': 'input.txt'}" msgstr "" +">>> desde pprint importar pprint, pp\n" +">>> d = dict(fuente='entrada.txt', operación='filtro', " +"destino='salida.txt')\n" +">>> pp(d, ancho=40) # Orden original\n" +"{'fuente': 'entrada.txt',\n" +" 'operación': 'filtro',\n" +" 'destino': 'salida.txt'}\n" +">>> pprint(d, ancho=40) # Claves ordenadas alfabéticamente\n" +"{'destino': 'salida.txt',\n" +" 'operación': 'filtro',\n" +" 'fuente': 'entrada.txt'}" #: ../Doc/whatsnew/3.8.rst:1137 msgid "(Contributed by Rémi Lapeyre in :issue:`30670`.)" @@ -2243,11 +2435,11 @@ msgstr "shlex" #: ../Doc/whatsnew/3.8.rst:1150 msgid "" -"The new :func:`shlex.join` function acts as the inverse of :func:`shlex." -"split`. (Contributed by Bo Bayles in :issue:`32102`.)" +"The new :func:`shlex.join` function acts as the inverse " +"of :func:`shlex.split`. (Contributed by Bo Bayles in :issue:`32102`.)" msgstr "" -"La nueva función :func:`shlex.join` actúa a la inversa de :func:`shlex." -"split`. (Contribución de Bo Bayles en :issue:`32102`.)" +"La nueva función :func:`shlex.join` actúa a la inversa " +"de :func:`shlex.split`. (Contribución de Bo Bayles en :issue:`32102`.)" #: ../Doc/whatsnew/3.8.rst:1155 msgid "shutil" @@ -2276,8 +2468,8 @@ msgstr "" #: ../Doc/whatsnew/3.8.rst:1165 msgid "" ":func:`shutil.rmtree` on Windows now removes directory junctions without " -"recursively removing their contents first. (Contributed by Steve Dower in :" -"issue:`37834`.)" +"recursively removing their contents first. (Contributed by Steve Dower " +"in :issue:`37834`.)" msgstr "" ":func:`shutil.rmtree` en Windows ahora elimina las uniones de directorio sin " "eliminar recursivamente su contenido primero. (Contribución de Steve Dower " @@ -2288,29 +2480,27 @@ msgid "socket" msgstr "socket" #: ../Doc/whatsnew/3.8.rst:1173 -#, fuzzy msgid "" "Added :meth:`~socket.create_server` and :meth:`~socket.has_dualstack_ipv6` " "convenience functions to automate the necessary tasks usually involved when " "creating a server socket, including accepting both IPv4 and IPv6 connections " "on the same socket. (Contributed by Giampaolo Rodolà in :issue:`17561`.)" msgstr "" -"Se han agregado las funciones de conveniencia :meth:`~ socket." -"create_server()` y :meth:`~socket.has_dualstack_ipv6()` para automatizar las " -"tareas necesarias involucradas al crear un socket servidor, incluida la " -"aceptación de conexiones IPv4 e IPv6 en el mismo socket . (Contribución de " +"Se agregaron funciones de conveniencia :meth:`~socket.create_server` " +"y :meth:`~socket.has_dualstack_ipv6` para automatizar las tareas necesarias " +"que generalmente involucran al crear un socket de servidor, incluida la " +"aceptación de conexiones IPv4 e IPv6 en el mismo socket. (Aportado por " "Giampaolo Rodolà en :issue:`17561`.)" #: ../Doc/whatsnew/3.8.rst:1178 -#, fuzzy msgid "" -"The :func:`socket.if_nameindex`, :func:`socket.if_nametoindex`, and :func:" -"`socket.if_indextoname` functions have been implemented on Windows. " -"(Contributed by Zackery Spytz in :issue:`37007`.)" +"The :func:`socket.if_nameindex`, :func:`socket.if_nametoindex`, " +"and :func:`socket.if_indextoname` functions have been implemented on " +"Windows. (Contributed by Zackery Spytz in :issue:`37007`.)" msgstr "" -"Las funciones :func:`socket.if_nameindex()`, :func:`socket.if_nametoindex()` " -"y :func:`socket.if_indextoname()` se han implementado en Windows. " -"(Contribución de Zackery Spytz en :issue:`37007`.)" +"Las funciones :func:`socket.if_nameindex`, :func:`socket.if_nametoindex` " +"y :func:`socket.if_indextoname` se han implementado en Windows. (Aportado " +"por Zackery Spytz en :issue:`37007`.)" #: ../Doc/whatsnew/3.8.rst:1184 msgid "ssl" @@ -2318,12 +2508,13 @@ msgstr "ssl" #: ../Doc/whatsnew/3.8.rst:1186 msgid "" -"Added :attr:`~ssl.SSLContext.post_handshake_auth` to enable and :meth:`~ssl." -"SSLSocket.verify_client_post_handshake` to initiate TLS 1.3 post-handshake " -"authentication. (Contributed by Christian Heimes in :issue:`34670`.)" +"Added :attr:`~ssl.SSLContext.post_handshake_auth` to enable " +"and :meth:`~ssl.SSLSocket.verify_client_post_handshake` to initiate TLS 1.3 " +"post-handshake authentication. (Contributed by Christian Heimes " +"in :issue:`34670`.)" msgstr "" -"Se ha agregado :attr:`~ssl.SSLContext.post_handshake_auth` para habilitar y :" -"meth:`~ssl.SSLSocket.verify_client_post_handshake` para iniciar la " +"Se ha agregado :attr:`~ssl.SSLContext.post_handshake_auth` para habilitar " +"y :meth:`~ssl.SSLSocket.verify_client_post_handshake` para iniciar la " "autenticación tras el establecimiento de la comunicación en TLS 1.3. " "(Contribución de Christian Heimes en :issue:`34670`.)" @@ -2332,24 +2523,22 @@ msgid "statistics" msgstr "statistics" #: ../Doc/whatsnew/3.8.rst:1195 -#, fuzzy msgid "" -"Added :func:`statistics.fmean` as a faster, floating-point variant of :func:" -"`statistics.mean`. (Contributed by Raymond Hettinger and Steven D'Aprano " -"in :issue:`35904`.)" +"Added :func:`statistics.fmean` as a faster, floating-point variant " +"of :func:`statistics.mean`. (Contributed by Raymond Hettinger and Steven " +"D'Aprano in :issue:`35904`.)" msgstr "" -"Se ha agregado :func:`statistics.fmean` como una variante de punto flotante " -"más rápida de :func:`statistics.mean()`. (Contribución de Raymond Hettinger " -"y Steven D'Aprano en :issue:`35904`.)" +"Se agregó :func:`statistics.fmean` como una variante de punto flotante más " +"rápida de :func:`statistics.mean`. (Contribución de Raymond Hettinger y " +"Steven D'Aprano en :issue:`35904`.)" #: ../Doc/whatsnew/3.8.rst:1199 -#, fuzzy msgid "" "Added :func:`statistics.geometric_mean` (Contributed by Raymond Hettinger " "in :issue:`27181`.)" msgstr "" -"Se ha agregado :func:`statistics.geometric_mean()` (Contribución de Raymond " -"Hettinger en :issue:`27181`.)" +"Se agregó :func:`statistics.geometric_mean` (Contribución de Raymond " +"Hettinger en :issue:`27181`)." #: ../Doc/whatsnew/3.8.rst:1202 msgid "" @@ -2403,6 +2592,27 @@ msgid "" ">>> temperature_feb.samples(3) # Generate random samples\n" "[7.672102882379219, 12.000027119750287, 4.647488369766392]" msgstr "" +">>> temperatura_febrero = DistNormal.de_muestras([4, 12, -3, 2, 7, 14])\n" +">>> temperatura_febrero.media\n" +"6.0\n" +">>> temperatura_febrero.stdev\n" +"6.356099432828281\n" +"\n" +">>> Temperature_feb.cdf(3) # Probabilidad de estar por debajo de 3 grados\n" +"0.3184678262814532\n" +">>> # Probabilidad relativa de ser 7 grados frente a 10 grados\n" +">>> temperatura_febrero.pdf(7) / temperatura_febrero.pdf(10)\n" +"1.2039930378537762\n" +"\n" +">>> el_niño = DistNormal(4, 2.5)\n" +">>> temperatura_febrero += el_niño # Añadir un efecto climático\n" +">>> temperatura_feb\n" +"DistNormal(mu=10.0, sigma=6.830080526611674)\n" +"\n" +">>> temperatura_feb * (9/5) + 32 # Convertir a Fahrenheit\n" +"DistNormal(mu=50.0, sigma=12.294144947901014)\n" +">>> Temperature_feb.samples(3) # Generar muestras aleatorias\n" +"[7.672102882379219, 12.000027119750287, 4.647488369766392]" #: ../Doc/whatsnew/3.8.rst:1239 msgid "sys" @@ -2447,10 +2657,10 @@ msgstr "threading" #: ../Doc/whatsnew/3.8.rst:1262 msgid "" -"Add a new :func:`threading.excepthook` function which handles uncaught :meth:" -"`threading.Thread.run` exception. It can be overridden to control how " -"uncaught :meth:`threading.Thread.run` exceptions are handled. (Contributed " -"by Victor Stinner in :issue:`1230540`.)" +"Add a new :func:`threading.excepthook` function which handles " +"uncaught :meth:`threading.Thread.run` exception. It can be overridden to " +"control how uncaught :meth:`threading.Thread.run` exceptions are handled. " +"(Contributed by Victor Stinner in :issue:`1230540`.)" msgstr "" "Se ha agregado una nueva función :func:`threading.excepthook` que maneja las " "excepciones :meth:`threading.Thread.run` no capturadas. Se puede anular para " @@ -2459,19 +2669,21 @@ msgstr "" #: ../Doc/whatsnew/3.8.rst:1267 msgid "" -"Add a new :func:`threading.get_native_id` function and a :data:`~threading." -"Thread.native_id` attribute to the :class:`threading.Thread` class. These " -"return the native integral Thread ID of the current thread assigned by the " -"kernel. This feature is only available on certain platforms, see :func:" -"`get_native_id ` for more information. (Contributed " -"by Jake Tesler in :issue:`36084`.)" +"Add a new :func:`threading.get_native_id` function and " +"a :data:`~threading.Thread.native_id` attribute to " +"the :class:`threading.Thread` class. These return the native integral Thread " +"ID of the current thread assigned by the kernel. This feature is only " +"available on certain platforms, see :func:`get_native_id " +"` for more information. (Contributed by Jake Tesler " +"in :issue:`36084`.)" msgstr "" "Se han agregado una nueva función :func:`threading.get_native_id` y un " -"atributo :data:`~threading.Thread.native_id` a la clase :class:`threading." -"Thread`. Estos retornan el Thread ID nativo integral del hilo actual " -"asignado por el kernel. Esta función solo está disponible en determinadas " -"plataformas, consulta :func:`get_native_id ` para " -"obtener más información. (Contribución de Jake Tesler en :issue:`36084`.)" +"atributo :data:`~threading.Thread.native_id` a la " +"clase :class:`threading.Thread`. Estos retornan el Thread ID nativo integral " +"del hilo actual asignado por el kernel. Esta función solo está disponible en " +"determinadas plataformas, consulta :func:`get_native_id " +"` para obtener más información. (Contribución de " +"Jake Tesler en :issue:`36084`.)" #: ../Doc/whatsnew/3.8.rst:1277 msgid "tokenize" @@ -2494,36 +2706,33 @@ msgid "tkinter" msgstr "tkinter" #: ../Doc/whatsnew/3.8.rst:1288 -#, fuzzy msgid "" "Added methods :meth:`!selection_from`, :meth:`!selection_present`, :meth:`!" "selection_range` and :meth:`!selection_to` in the :class:`!tkinter.Spinbox` " "class. (Contributed by Juliette Monsel in :issue:`34829`.)" msgstr "" -"Se han agregado los métodos :meth:`~tkinter.Spinbox.selection_from`, :meth:" -"`~tkinter.Spinbox.selection_present`, :meth:`~tkinter.Spinbox." -"selection_range` y :meth:`~tkinter.Spinbox.selection_to` a la clase :class:" -"`tkinter.Spinbox`. (Contribución de Juliette Monsel en :issue:`34829`.)" +"Se agregaron los métodos :meth:`!selection_from`, :meth:`!" +"selection_present`, :meth:`!selection_range` y :meth:`!selection_to` en la " +"clase :class:`!tkinter.Spinbox`. (Aportado por Juliette Monsel " +"en :issue:`34829`.)" #: ../Doc/whatsnew/3.8.rst:1295 -#, fuzzy msgid "" "Added method :meth:`!moveto` in the :class:`!tkinter.Canvas` class. " "(Contributed by Juliette Monsel in :issue:`23831`.)" msgstr "" -"Se ha agregado el método :meth:`~tkinter.Canvas.moveto` a la clase :class:" -"`tkinter.Canvas`. (Contribución de Juliette Monsel en :issue:`23831`.)" +"Se agregó el método :meth:`!moveto` en la clase :class:`!tkinter.Canvas`. " +"(Aportado por Juliette Monsel en :issue:`23831`.)" #: ../Doc/whatsnew/3.8.rst:1299 -#, fuzzy msgid "" "The :class:`!tkinter.PhotoImage` class now has :meth:`!transparency_get` " -"and :meth:`!transparency_set` methods. (Contributed by Zackery Spytz in :" -"issue:`25451`.)" +"and :meth:`!transparency_set` methods. (Contributed by Zackery Spytz " +"in :issue:`25451`.)" msgstr "" -"La clase :class:`tkinter.PhotoImage` ahora dispone de los métodos :meth:" -"`~tkinter.PhotoImage.transparency_get` y :meth:`~tkinter.PhotoImage." -"transparency_set`. (Contribución de Zackery Spytz en :issue:`25451`.)" +"La clase :class:`!tkinter.PhotoImage` ahora tiene los métodos :meth:`!" +"transparency_get` y :meth:`!transparency_set`. (Aportado por Zackery Spytz " +"en :issue:`25451`.)" #: ../Doc/whatsnew/3.8.rst:1306 msgid "time" @@ -2547,13 +2756,13 @@ msgstr "Se han incorporado varias características al módulo :mod:`typing`:" #: ../Doc/whatsnew/3.8.rst:1317 msgid "" -"A dictionary type with per-key types. See :pep:`589` and :class:`typing." -"TypedDict`. TypedDict uses only string keys. By default, every key is " -"required to be present. Specify \"total=False\" to allow keys to be " -"optional::" +"A dictionary type with per-key types. See :pep:`589` " +"and :class:`typing.TypedDict`. TypedDict uses only string keys. By default, " +"every key is required to be present. Specify \"total=False\" to allow keys " +"to be optional::" msgstr "" -"Un tipo de diccionario con tipos para cada clave. Consultar :pep:`589` y :" -"class:`typing.TypedDict`. TypedDict usa solo claves de cadenas de " +"Un tipo de diccionario con tipos para cada clave. Consultar :pep:`589` " +"y :class:`typing.TypedDict`. TypedDict usa solo claves de cadenas de " "caracteres. De forma predeterminada, se requiere que todas las claves estén " "presentes. Especifica \"total=False\" para permitir que las claves sean " "opcionales::" @@ -2565,6 +2774,10 @@ msgid "" " grid_square: str\n" " xy_coordinate: tuple" msgstr "" +"Ubicación de clase (TypedDict, total = Falso):\n" +" lat_long: tupla\n" +" grid_square: cadena\n" +" coordenada_xy: tupla" #: ../Doc/whatsnew/3.8.rst:1327 msgid "" @@ -2581,31 +2794,34 @@ msgid "" "def get_status(port: int) -> Literal['connected', 'disconnected']:\n" " ..." msgstr "" +"def get_status(puerto: int) -> Literal['conectado', 'desconectado']:\n" +" ..." #: ../Doc/whatsnew/3.8.rst:1334 msgid "" -"\"Final\" variables, functions, methods and classes. See :pep:`591`, :class:" -"`typing.Final` and :func:`typing.final`. The final qualifier instructs a " -"static type checker to restrict subclassing, overriding, or reassignment::" +"\"Final\" variables, functions, methods and classes. " +"See :pep:`591`, :class:`typing.Final` and :func:`typing.final`. The final " +"qualifier instructs a static type checker to restrict subclassing, " +"overriding, or reassignment::" msgstr "" -"Variables, funciones, métodos y clases \"finales\". Consultar :pep:`591`, :" -"class:`typing.Final` y :func:`typing.final`. El clasificador final instruye " -"a un validador estático de tipos para restringir la subclasificación, " -"anulación o reasignación::" +"Variables, funciones, métodos y clases \"finales\". " +"Consultar :pep:`591`, :class:`typing.Final` y :func:`typing.final`. El " +"clasificador final instruye a un validador estático de tipos para restringir " +"la subclasificación, anulación o reasignación::" #: ../Doc/whatsnew/3.8.rst:1339 msgid "pi: Final[float] = 3.1415926536" -msgstr "" +msgstr "pi: Final[flotación] = 3.1415926536" #: ../Doc/whatsnew/3.8.rst:1341 msgid "" -"Protocol definitions. See :pep:`544`, :class:`typing.Protocol` and :func:" -"`typing.runtime_checkable`. Simple ABCs like :class:`typing.SupportsInt` " -"are now ``Protocol`` subclasses." +"Protocol definitions. See :pep:`544`, :class:`typing.Protocol` " +"and :func:`typing.runtime_checkable`. Simple ABCs " +"like :class:`typing.SupportsInt` are now ``Protocol`` subclasses." msgstr "" -"Definiciones de protocolo. Consultar :pep:`544`, :class:`typing.Protocol` y :" -"func:`typing.runtime_checkable`. ABCs simples como :class:`typing." -"SupportsInt` ahora son subclases de ``Protocol`` ." +"Definiciones de protocolo. Consultar :pep:`544`, :class:`typing.Protocol` " +"y :func:`typing.runtime_checkable`. ABCs simples " +"como :class:`typing.SupportsInt` ahora son subclases de ``Protocol`` ." #: ../Doc/whatsnew/3.8.rst:1345 msgid "New protocol class :class:`typing.SupportsIndex`." @@ -2647,8 +2863,8 @@ msgstr "unittest" msgid "" "Added :class:`~unittest.mock.AsyncMock` to support an asynchronous version " "of :class:`~unittest.mock.Mock`. Appropriate new assert functions for " -"testing have been added as well. (Contributed by Lisa Roach in :issue:" -"`26467`)." +"testing have been added as well. (Contributed by Lisa Roach " +"in :issue:`26467`)." msgstr "" "Se ha agregado :class:`~unittest.mock.AsyncMock` para admitir una versión " "asincrónica de :class:`~unittest.mock.Mock`. También se han agregado nuevas " @@ -2656,17 +2872,18 @@ msgstr "" "Roach en :issue:`26467`)." #: ../Doc/whatsnew/3.8.rst:1370 -#, fuzzy msgid "" -"Added :func:`~unittest.addModuleCleanup` and :meth:`~unittest.TestCase." -"addClassCleanup` to unittest to support cleanups for :func:`~unittest." -"setUpModule` and :meth:`~unittest.TestCase.setUpClass`. (Contributed by Lisa " -"Roach in :issue:`24412`.)" +"Added :func:`~unittest.addModuleCleanup` " +"and :meth:`~unittest.TestCase.addClassCleanup` to unittest to support " +"cleanups for :func:`~unittest.setUpModule` " +"and :meth:`~unittest.TestCase.setUpClass`. (Contributed by Lisa Roach " +"in :issue:`24412`.)" msgstr "" -"Se ha agregado :func:`~unittest.addModuleCleanup()` y :meth:`~unittest." -"TestCase.addClassCleanup()` a unittest para admitir limpiezas para :func:" -"`~unittest.setUpModule()` y :meth:`~unittest .TestCase.setUpClass()`. " -"(Contribución de Lisa Roach en :issue:`24412`.)" +"Se agregaron :func:`~unittest.addModuleCleanup` " +"y :meth:`~unittest.TestCase.addClassCleanup` a unittest para admitir " +"limpiezas para :func:`~unittest.setUpModule` " +"y :meth:`~unittest.TestCase.setUpClass`. (Aportado por Lisa Roach " +"en :issue:`24412`.)" #: ../Doc/whatsnew/3.8.rst:1376 msgid "" @@ -2674,8 +2891,8 @@ msgid "" "failure. (Contributed by Petter Strandmark in :issue:`35047`.)" msgstr "" "Varias funciones de aserción simulada ahora también imprimen una lista de " -"llamadas reales en caso de fallo. (Contribución de Petter Strandmark en :" -"issue:`35047`.)" +"llamadas reales en caso de fallo. (Contribución de Petter Strandmark " +"en :issue:`35047`.)" #: ../Doc/whatsnew/3.8.rst:1379 msgid "" @@ -2684,8 +2901,9 @@ msgid "" "Svetlov in :issue:`32972`.)" msgstr "" "El módulo :mod:`unittest` ha obtenido soporte para corrutinas que se " -"utilizarán como casos de prueba con :class:`unittest." -"IsolatedAsyncioTestCase`. (Contribución de Andrew Svetlov en :issue:`32972`.)" +"utilizarán como casos de prueba " +"con :class:`unittest.IsolatedAsyncioTestCase`. (Contribución de Andrew " +"Svetlov en :issue:`32972`.)" #: ../Doc/whatsnew/3.8.rst:1383 msgid "Example::" @@ -2712,6 +2930,24 @@ msgid "" "if __name__ == \"__main__\":\n" " unittest.main()" msgstr "" +"importar prueba unitaria\n" +"\n" +"\n" +"clase TestRequest (unittest.IsolatedAsyncioTestCase):\n" +"\n" +" asíncrono def asyncSetUp(yo):\n" +" self.connection = esperar AsyncConnection()\n" +"\n" +" asíncrono def test_get(self):\n" +" respuesta = espera self.connection.get(\"https://ejemplo.com\")\n" +" self.assertEqual(respuesta.status_code, 200)\n" +"\n" +" asíncrono def asyncTearDown(yo):\n" +" espera auto.conexión.cerrar()\n" +"\n" +"\n" +"si __nombre__ == \"__principal__\":\n" +" prueba unitaria.principal()" #: ../Doc/whatsnew/3.8.rst:1406 msgid "venv" @@ -2747,14 +2983,15 @@ msgstr "xml" #: ../Doc/whatsnew/3.8.rst:1424 msgid "" -"As mitigation against DTD and external entity retrieval, the :mod:`xml.dom." -"minidom` and :mod:`xml.sax` modules no longer process external entities by " -"default. (Contributed by Christian Heimes in :issue:`17239`.)" +"As mitigation against DTD and external entity retrieval, " +"the :mod:`xml.dom.minidom` and :mod:`xml.sax` modules no longer process " +"external entities by default. (Contributed by Christian Heimes " +"in :issue:`17239`.)" msgstr "" "Como mitigación contra DTD y recuperación de entidades externas, los " "módulos :mod:`xml.dom.minidom` y :mod:`xml.sax` ya no procesan entidades " -"externas de forma predeterminada. (Contribución de Christian Heimes en :" -"issue:`17239`.)" +"externas de forma predeterminada. (Contribución de Christian Heimes " +"en :issue:`17239`.)" #: ../Doc/whatsnew/3.8.rst:1429 #, python-brace-format @@ -2770,32 +3007,32 @@ msgstr "" "dado. (Contribución de Stefan Behnel en :issue:`28238`.)" #: ../Doc/whatsnew/3.8.rst:1434 -#, fuzzy msgid "" -"The :mod:`xml.etree.ElementTree` module provides a new function :func:`~xml." -"etree.ElementTree.canonicalize` that implements C14N 2.0. (Contributed by " -"Stefan Behnel in :issue:`13611`.)" +"The :mod:`xml.etree.ElementTree` module provides a new " +"function :func:`~xml.etree.ElementTree.canonicalize` that implements C14N " +"2.0. (Contributed by Stefan Behnel in :issue:`13611`.)" msgstr "" -"El módulo :mod:`xml.etree.ElementTree` proporciona una nueva función :func:`–" -"xml.etree.ElementTree.canonicalize()` que implementa C14N 2.0. (Contribución " -"de Stefan Behnel en :issue:`13611`.)" +"El módulo :mod:`xml.etree.ElementTree` proporciona una nueva " +"función :func:`~xml.etree.ElementTree.canonicalize` que implementa C14N 2.0. " +"(Aportado por Stefan Behnel en :issue:`13611`.)" #: ../Doc/whatsnew/3.8.rst:1438 msgid "" "The target object of :class:`xml.etree.ElementTree.XMLParser` can receive " "namespace declaration events through the new callback methods ``start_ns()`` " -"and ``end_ns()``. Additionally, the :class:`xml.etree.ElementTree." -"TreeBuilder` target can be configured to process events about comments and " -"processing instructions to include them in the generated tree. (Contributed " -"by Stefan Behnel in :issue:`36676` and :issue:`36673`.)" +"and ``end_ns()``. Additionally, " +"the :class:`xml.etree.ElementTree.TreeBuilder` target can be configured to " +"process events about comments and processing instructions to include them in " +"the generated tree. (Contributed by Stefan Behnel in :issue:`36676` " +"and :issue:`36673`.)" msgstr "" "El objeto de destino de :class:`xml.etree.ElementTree.XMLParser` puede " "recibir eventos de declaración de espacio de nombres a través de los nuevos " -"métodos de retrollamada ``start_ns()`` y ``end_ns()``. Además, el destino :" -"class:`xml.etree.ElementTree.TreeBuilder` se puede configurar para procesar " -"eventos sobre comentarios e instrucciones de procesamiento para incluirlos " -"en el árbol generado. (Contribución de Stefan Behnel en :issue:`36676` y :" -"issue:`36673`.)" +"métodos de retrollamada ``start_ns()`` y ``end_ns()``. Además, el " +"destino :class:`xml.etree.ElementTree.TreeBuilder` se puede configurar para " +"procesar eventos sobre comentarios e instrucciones de procesamiento para " +"incluirlos en el árbol generado. (Contribución de Stefan Behnel " +"en :issue:`36676` y :issue:`36673`.)" #: ../Doc/whatsnew/3.8.rst:1448 msgid "xmlrpc" @@ -2825,10 +3062,10 @@ msgid "" "in some cases for better performance. Currently, it is only used on macOS " "and Linux (using glibc 2.24 or newer) if all these conditions are met:" msgstr "" -"El módulo :mod:`subprocess` ahora puede usar en ciertos casos la función :" -"func:`os.posix_spawn` para mejorar el rendimiento. Actualmente, solo se usa " -"en macOS y Linux (usando glibc 2.24 o una versión más reciente) y siempre " -"que se cumplan todas estas condiciones:" +"El módulo :mod:`subprocess` ahora puede usar en ciertos casos la " +"función :func:`os.posix_spawn` para mejorar el rendimiento. Actualmente, " +"solo se usa en macOS y Linux (usando glibc 2.24 o una versión más reciente) " +"y siempre que se cumplan todas estas condiciones:" #: ../Doc/whatsnew/3.8.rst:1464 msgid "*close_fds* is false;" @@ -2853,27 +3090,27 @@ msgstr "(Contribución de Joannah Nanjekye y Victor Stinner en :issue:`35537`.)" #: ../Doc/whatsnew/3.8.rst:1471 #, python-format msgid "" -":func:`shutil.copyfile`, :func:`shutil.copy`, :func:`shutil.copy2`, :func:" -"`shutil.copytree` and :func:`shutil.move` use platform-specific \"fast-" -"copy\" syscalls on Linux and macOS in order to copy the file more " -"efficiently. \"fast-copy\" means that the copying operation occurs within " -"the kernel, avoiding the use of userspace buffers in Python as in \"``outfd." -"write(infd.read())``\". On Windows :func:`shutil.copyfile` uses a bigger " -"default buffer size (1 MiB instead of 16 KiB) and a :func:`memoryview`-based " -"variant of :func:`shutil.copyfileobj` is used. The speedup for copying a 512 " -"MiB file within the same partition is about +26% on Linux, +50% on macOS and " +":func:`shutil.copyfile`, :func:`shutil.copy`, :func:`shutil.copy2`, :func:`shutil.copytree` " +"and :func:`shutil.move` use platform-specific \"fast-copy\" syscalls on " +"Linux and macOS in order to copy the file more efficiently. \"fast-copy\" " +"means that the copying operation occurs within the kernel, avoiding the use " +"of userspace buffers in Python as in \"``outfd.write(infd.read())``\". On " +"Windows :func:`shutil.copyfile` uses a bigger default buffer size (1 MiB " +"instead of 16 KiB) and a :func:`memoryview`-based variant " +"of :func:`shutil.copyfileobj` is used. The speedup for copying a 512 MiB " +"file within the same partition is about +26% on Linux, +50% on macOS and " "+40% on Windows. Also, much less CPU cycles are consumed. See :ref:`shutil-" "platform-dependent-efficient-copy-operations` section. (Contributed by " "Giampaolo Rodolà in :issue:`33671`.)" msgstr "" -":func:`shutil.copyfile`, :func:`shutil.copy`, :func:`shutil.copy2`, :func:" -"`shutil.copytree` y :func:`shutil.move` usan llamadas al sistema de \"copia-" -"rápida\" específicas de la plataforma en Linux y macOS, con la finalidad de " -"copiar ficheros más eficientemente. \"copia-rápida\" significa que la " -"operación de copiado tiene lugar en el propio kernel, evitando que Python " -"haga uso de búferes en el espacio de usuario como \"``outfd.write(infd." -"read())``\". En Windows, :func:`shutil.copyfile` usa un tamaño de búfer " -"predeterminado más grande (1 MiB en lugar de 16 KiB) y se usa una variante " +":func:`shutil.copyfile`, :func:`shutil.copy`, :func:`shutil.copy2`, :func:`shutil.copytree` " +"y :func:`shutil.move` usan llamadas al sistema de \"copia-rápida\" " +"específicas de la plataforma en Linux y macOS, con la finalidad de copiar " +"ficheros más eficientemente. \"copia-rápida\" significa que la operación de " +"copiado tiene lugar en el propio kernel, evitando que Python haga uso de " +"búferes en el espacio de usuario como \"``outfd.write(infd.read())``\". En " +"Windows, :func:`shutil.copyfile` usa un tamaño de búfer predeterminado más " +"grande (1 MiB en lugar de 16 KiB) y se usa una variante " "de :func:`shutil.copyfileobj` basada en :func:`memoryview`. La aceleración " "al copiar un archivo de 512 MiB dentro de la misma partición es de " "aproximadamente +26% en Linux, +50% en macOS y +40% en Windows. Además, se " @@ -2892,11 +3129,11 @@ msgid "" "on network filesystems. (Contributed by Giampaolo Rodolà in :issue:`33695`.)" msgstr "" "Ahora :func:`shutil.copytree` usa la función :func:`os.scandir` y todas las " -"funciones de copia que dependen de ella usan el valor en caché de :func:`os." -"stat`. Al copiar un directorio con 8000 archivos, la mejora de velocidad es " -"de +9% en Linux, +20% en Windows y +30% en recursos compartidos de Windows " -"SMB. Además, el número de llamadas al sistema de :func:`os.stat` se reduce " -"en un 38%, lo que hace que :func:`shutil.copytree` sea más rápida " +"funciones de copia que dependen de ella usan el valor en caché " +"de :func:`os.stat`. Al copiar un directorio con 8000 archivos, la mejora de " +"velocidad es de +9% en Linux, +20% en Windows y +30% en recursos compartidos " +"de Windows SMB. Además, el número de llamadas al sistema de :func:`os.stat` " +"se reduce en un 38%, lo que hace que :func:`shutil.copytree` sea más rápida " "especialmente en sistemas de archivos de red. (Contribución de Giampaolo " "Rodolà en :issue:`33695`.)" @@ -2926,8 +3163,8 @@ msgid "" "(Contributed by Wouter Bolsterlee and Tal Einat in :issue:`30977`)" msgstr "" "La clase :class:`uuid.UUID` ahora usa ``__slots__`` para reducir su impacto " -"en la memoria. (Contribución de Wouter Bolsterlee y Tal Einat en :issue:" -"`30977`.)" +"en la memoria. (Contribución de Wouter Bolsterlee y Tal Einat " +"en :issue:`30977`.)" #: ../Doc/whatsnew/3.8.rst:1505 msgid "" @@ -2952,8 +3189,8 @@ msgstr "" "Se han acelerado las búsquedas de campos en :func:`collections.namedtuple`. " "Ahora son más del doble de rápidas, lo que las convierte en la forma más " "rápida de búsqueda de variables de instancia en Python. (Contribución de " -"Raymond Hettinger, Pablo Galindo, Joe Jevnik y Serhiy Storchaka en :issue:" -"`32492`.)" +"Raymond Hettinger, Pablo Galindo, Joe Jevnik y Serhiy Storchaka " +"en :issue:`32492`.)" #: ../Doc/whatsnew/3.8.rst:1516 #, python-format @@ -2979,15 +3216,15 @@ msgstr "" "De ha duplicado la velocidad de escritura de variables de clase. Antes, " "cuando se actualizaba un atributo non-dunder, había una llamada innecesaria " "para actualizar slots. (Contribución de Stefan Behnel, Pablo Galindo " -"Salgado, Raymond Hettinger, Neil Schemenauer y Serhiy Storchaka en :issue:" -"`36012`.)" +"Salgado, Raymond Hettinger, Neil Schemenauer y Serhiy Storchaka " +"en :issue:`36012`.)" #: ../Doc/whatsnew/3.8.rst:1526 msgid "" "Reduced an overhead of converting arguments passed to many builtin functions " "and methods. This sped up calling some simple builtin functions and methods " -"up to 20--50%. (Contributed by Serhiy Storchaka in :issue:`23867`, :issue:" -"`35582` and :issue:`36127`.)" +"up to 20--50%. (Contributed by Serhiy Storchaka " +"in :issue:`23867`, :issue:`35582` and :issue:`36127`.)" msgstr "" "Se ha reducido la sobrecarga de conversión de argumentos pasados a muchas " "funciones y métodos integrados. Esto acelera la llamada a algunas funciones " @@ -2998,8 +3235,8 @@ msgstr "" #, python-format msgid "" "``LOAD_GLOBAL`` instruction now uses new \"per opcode cache\" mechanism. It " -"is about 40% faster now. (Contributed by Yury Selivanov and Inada Naoki in :" -"issue:`26219`.)" +"is about 40% faster now. (Contributed by Yury Selivanov and Inada Naoki " +"in :issue:`26219`.)" msgstr "" "La instrucción ``LOAD_GLOBAL`` ahora utiliza el nuevo mecanismo \"per opcode " "cache\". Ahora es aproximadamente un 40% más rápida. (Contribución de Yury " @@ -3013,8 +3250,8 @@ msgstr "Cambios en la compilación y la API de C" msgid "" "Default :data:`sys.abiflags` became an empty string: the ``m`` flag for " "pymalloc became useless (builds with and without pymalloc are ABI " -"compatible) and so has been removed. (Contributed by Victor Stinner in :" -"issue:`36707`.)" +"compatible) and so has been removed. (Contributed by Victor Stinner " +"in :issue:`36707`.)" msgstr "" "El valor predeterminado para :data:`sys.abiflags` es ahora una cadena vacía: " "el flag ``m`` para pymalloc se ha vuelto innecesario (las compilaciones con " @@ -3120,9 +3357,8 @@ msgid ":c:func:`Py_XINCREF`, :c:func:`Py_XDECREF`" msgstr ":c:func:`Py_XINCREF`, :c:func:`Py_XDECREF`" #: ../Doc/whatsnew/3.8.rst:1576 -#, fuzzy msgid ":c:macro:`!PyObject_INIT`, :c:macro:`!PyObject_INIT_VAR`" -msgstr ":c:func:`PyObject_INIT`, :c:func:`PyObject_INIT_VAR`" +msgstr ":c:func:`!PyObject_INIT`, :c:macro:`!PyObject_INIT_VAR`" #: ../Doc/whatsnew/3.8.rst:1577 msgid "" @@ -3151,12 +3387,12 @@ msgstr "" #: ../Doc/whatsnew/3.8.rst:1587 msgid "" "The result of :c:func:`PyExceptionClass_Name` is now of type ``const char " -"*`` rather of ``char *``. (Contributed by Serhiy Storchaka in :issue:" -"`33818`.)" +"*`` rather of ``char *``. (Contributed by Serhiy Storchaka " +"in :issue:`33818`.)" msgstr "" "El resultado de :c:func:`PyExceptionClass_Name` es ahora de tipo ``const " -"char *`` en vez de ``char *``. (Contribución de Serhiy Storchaka en :issue:" -"`33818`.)" +"char *`` en vez de ``char *``. (Contribución de Serhiy Storchaka " +"en :issue:`33818`.)" #: ../Doc/whatsnew/3.8.rst:1591 msgid "" @@ -3196,39 +3432,42 @@ msgstr "(Contribución de Antoine Pitrou en :issue:`32430`.)" #: ../Doc/whatsnew/3.8.rst:1606 msgid "" -"Functions that convert Python number to C integer like :c:func:" -"`PyLong_AsLong` and argument parsing functions like :c:func:" -"`PyArg_ParseTuple` with integer converting format units like ``'i'`` will " -"now use the :meth:`~object.__index__` special method instead of :meth:" -"`~object.__int__`, if available. The deprecation warning will be emitted " -"for objects with the ``__int__()`` method but without the ``__index__()`` " -"method (like :class:`~decimal.Decimal` and :class:`~fractions.Fraction`). :" -"c:func:`PyNumber_Check` will now return ``1`` for objects implementing " -"``__index__()``. :c:func:`PyNumber_Long`, :c:func:`PyNumber_Float` and :c:" -"func:`PyFloat_AsDouble` also now use the ``__index__()`` method if " -"available. (Contributed by Serhiy Storchaka in :issue:`36048` and :issue:" -"`20092`.)" -msgstr "" -"Las funciones que convierten un número de Python a un entero de C, como :c:" -"func:`PyLong_AsLong`, y las funciones de análisis de argumentos como :c:func:" -"`PyArg_ParseTuple` con unidades de formato de conversión de enteros como " -"``'i'``, ahora usarán el método especial :meth:`~object.__index__` si está " -"disponible, en lugar de :meth:`~object.__int__`. Una advertencia de " -"deprecación se emitirá para aquellos objetos que tengan el método " -"``__int__()`` pero no el método ``__index__()`` (como :class:`~decimal." -"Decimal` y :class:`~fractions.Fraction`). :c:func:`PyNumber_Check` ahora " -"retornará ``1`` para los objetos que implementen ``__index__()``. :c:func:" -"`PyNumber_Long`, :c:func:`PyNumber_Float` y :c:func:`PyFloat_AsDouble` ahora " -"también usan el método ``__index__()`` si está disponible. (Contribución de " -"Serhiy Storchaka en :issue:`36048` y :issue:`20092`.)" +"Functions that convert Python number to C integer " +"like :c:func:`PyLong_AsLong` and argument parsing functions " +"like :c:func:`PyArg_ParseTuple` with integer converting format units like " +"``'i'`` will now use the :meth:`~object.__index__` special method instead " +"of :meth:`~object.__int__`, if available. The deprecation warning will be " +"emitted for objects with the ``__int__()`` method but without the " +"``__index__()`` method (like :class:`~decimal.Decimal` " +"and :class:`~fractions.Fraction`). :c:func:`PyNumber_Check` will now return " +"``1`` for objects implementing " +"``__index__()``. :c:func:`PyNumber_Long`, :c:func:`PyNumber_Float` " +"and :c:func:`PyFloat_AsDouble` also now use the ``__index__()`` method if " +"available. (Contributed by Serhiy Storchaka in :issue:`36048` " +"and :issue:`20092`.)" +msgstr "" +"Las funciones que convierten un número de Python a un entero de C, " +"como :c:func:`PyLong_AsLong`, y las funciones de análisis de argumentos " +"como :c:func:`PyArg_ParseTuple` con unidades de formato de conversión de " +"enteros como ``'i'``, ahora usarán el método " +"especial :meth:`~object.__index__` si está disponible, en lugar " +"de :meth:`~object.__int__`. Una advertencia de deprecación se emitirá para " +"aquellos objetos que tengan el método ``__int__()`` pero no el método " +"``__index__()`` (como :class:`~decimal.Decimal` " +"y :class:`~fractions.Fraction`). :c:func:`PyNumber_Check` ahora retornará " +"``1`` para los objetos que implementen " +"``__index__()``. :c:func:`PyNumber_Long`, :c:func:`PyNumber_Float` " +"y :c:func:`PyFloat_AsDouble` ahora también usan el método ``__index__()`` si " +"está disponible. (Contribución de Serhiy Storchaka en :issue:`36048` " +"y :issue:`20092`.)" #: ../Doc/whatsnew/3.8.rst:1620 msgid "" -"Heap-allocated type objects will now increase their reference count in :c:" -"func:`PyObject_Init` (and its parallel macro ``PyObject_INIT``) instead of " -"in :c:func:`PyType_GenericAlloc`. Types that modify instance allocation or " -"deallocation may need to be adjusted. (Contributed by Eddie Elizondo in :" -"issue:`35810`.)" +"Heap-allocated type objects will now increase their reference count " +"in :c:func:`PyObject_Init` (and its parallel macro ``PyObject_INIT``) " +"instead of in :c:func:`PyType_GenericAlloc`. Types that modify instance " +"allocation or deallocation may need to be adjusted. (Contributed by Eddie " +"Elizondo in :issue:`35810`.)" msgstr "" "Los objetos de tipo asignados al montículo ahora aumentarán su recuento de " "referencias en :c:func:`PyObject_Init` (y en su macro paralela " @@ -3237,23 +3476,23 @@ msgstr "" "instancias. (Contribución de Eddie Elizondo en :issue:`35810`.)" #: ../Doc/whatsnew/3.8.rst:1626 -#, fuzzy msgid "" "The new function :c:func:`!PyCode_NewWithPosOnlyArgs` allows to create code " "objects like :c:func:`!PyCode_New`, but with an extra *posonlyargcount* " "parameter for indicating the number of positional-only arguments. " "(Contributed by Pablo Galindo in :issue:`37221`.)" msgstr "" -"La nueva función :c:func:`PyCode_NewWithPosOnlyArgs` permite crear objetos " -"de código, al igual que :c:func:`PyCode_New`, pero con un parámetro " -"*posonlyargcount* extra, que permite indicar el número de argumentos solo " -"posicionales." +"La nueva función :c:func:`!PyCode_NewWithPosOnlyArgs` permite crear objetos " +"de código como :c:func:`!PyCode_New`, pero con un parámetro " +"*posonlyargcount* adicional para indicar el número de argumentos solo " +"posicionales. (Aportado por Pablo Galindo en :issue:`37221`.)" #: ../Doc/whatsnew/3.8.rst:1631 msgid "" ":c:func:`!Py_SetPath` now sets :data:`sys.executable` to the program full " -"path (:c:func:`Py_GetProgramFullPath`) rather than to the program name (:c:" -"func:`Py_GetProgramName`). (Contributed by Victor Stinner in :issue:`38234`.)" +"path (:c:func:`Py_GetProgramFullPath`) rather than to the program name " +"(:c:func:`Py_GetProgramName`). (Contributed by Victor Stinner " +"in :issue:`38234`.)" msgstr "" ":c:func:`!Py_SetPath` ahora establece :data:`sys.executable` en la ruta " "completa del programa (:c:func:`Py_GetProgramFullPath`), en vez de en el " @@ -3267,8 +3506,8 @@ msgstr "Obsoleto" #: ../Doc/whatsnew/3.8.rst:1640 msgid "" "The distutils ``bdist_wininst`` command is now deprecated, use " -"``bdist_wheel`` (wheel packages) instead. (Contributed by Victor Stinner in :" -"issue:`37481`.)" +"``bdist_wheel`` (wheel packages) instead. (Contributed by Victor Stinner " +"in :issue:`37481`.)" msgstr "" "El comando ``bdist_wininst`` de distutils está ahora obsoleto, usar " "``bdist_wheel`` (paquetes wheel) en su lugar. (Contribución de Victor " @@ -3276,44 +3515,47 @@ msgstr "" #: ../Doc/whatsnew/3.8.rst:1644 msgid "" -"Deprecated methods ``getchildren()`` and ``getiterator()`` in the :mod:`~xml." -"etree.ElementTree` module now emit a :exc:`DeprecationWarning` instead of :" -"exc:`PendingDeprecationWarning`. They will be removed in Python 3.9. " -"(Contributed by Serhiy Storchaka in :issue:`29209`.)" +"Deprecated methods ``getchildren()`` and ``getiterator()`` in " +"the :mod:`~xml.etree.ElementTree` module now emit " +"a :exc:`DeprecationWarning` instead of :exc:`PendingDeprecationWarning`. " +"They will be removed in Python 3.9. (Contributed by Serhiy Storchaka " +"in :issue:`29209`.)" msgstr "" -"Los métodos ``getchildren()`` y ``getiterator()`` del módulo :mod:`~xml." -"etree.ElementTree` ahora emiten una advertencia :exc:`DeprecationWarning`, " -"en lugar de :exc:`PendingDeprecationWarning`. Serán eliminados en Python " -"3.9. (Contribución de Serhiy Storchaka en :issue:`29209`.)" +"Los métodos ``getchildren()`` y ``getiterator()`` del " +"módulo :mod:`~xml.etree.ElementTree` ahora emiten una " +"advertencia :exc:`DeprecationWarning`, en lugar " +"de :exc:`PendingDeprecationWarning`. Serán eliminados en Python 3.9. " +"(Contribución de Serhiy Storchaka en :issue:`29209`.)" #: ../Doc/whatsnew/3.8.rst:1650 msgid "" -"Passing an object that is not an instance of :class:`concurrent.futures." -"ThreadPoolExecutor` to :meth:`loop.set_default_executor() ` is deprecated and will be prohibited in Python 3.9. " -"(Contributed by Elvis Pranskevichus in :issue:`34075`.)" +"Passing an object that is not an instance " +"of :class:`concurrent.futures.ThreadPoolExecutor` " +"to :meth:`loop.set_default_executor() ` " +"is deprecated and will be prohibited in Python 3.9. (Contributed by Elvis " +"Pranskevichus in :issue:`34075`.)" msgstr "" -"Pasar un objeto a :meth:`loop.set_default_executor() ` que no sea una instancia de :class:`concurrent." -"futures.ThreadPoolExecutor` está obsoleto y será prohibido en Python 3.9. " -"(Contribución de Elvis Pranskevichus en :issue:`34075`.)" +"Pasar un objeto a :meth:`loop.set_default_executor() " +"` que no sea una instancia " +"de :class:`concurrent.futures.ThreadPoolExecutor` está obsoleto y será " +"prohibido en Python 3.9. (Contribución de Elvis Pranskevichus " +"en :issue:`34075`.)" #: ../Doc/whatsnew/3.8.rst:1656 -#, fuzzy msgid "" -"The :meth:`~object.__getitem__` methods of :class:`xml.dom.pulldom." -"DOMEventStream`, :class:`wsgiref.util.FileWrapper` and :class:`fileinput." -"FileInput` have been deprecated." +"The :meth:`~object.__getitem__` methods " +"of :class:`xml.dom.pulldom.DOMEventStream`, :class:`wsgiref.util.FileWrapper` " +"and :class:`fileinput.FileInput` have been deprecated." msgstr "" -"Los métodos :meth:`__getitem__` pertenecientes a las clases :class:`xml.dom." -"pulldom.DOMEventStream`, :class:`wsgiref.util.FileWrapper` y :class:" -"`fileinput.FileInput` están obsoletos a partir de ahora." +"Los métodos :meth:`~object.__getitem__` " +"de :class:`xml.dom.pulldom.DOMEventStream`, :class:`wsgiref.util.FileWrapper` " +"y :class:`fileinput.FileInput` han quedado obsoletos." #: ../Doc/whatsnew/3.8.rst:1660 msgid "" "Implementations of these methods have been ignoring their *index* parameter, " -"and returning the next item instead. (Contributed by Berker Peksag in :issue:" -"`9372`.)" +"and returning the next item instead. (Contributed by Berker Peksag " +"in :issue:`9372`.)" msgstr "" "Las implementaciones de estos métodos han estado ignorando su parámetro " "*index* y retornando el siguiente item en su lugar. (Contribución de Berker " @@ -3345,47 +3587,40 @@ msgstr "" msgid "" ":class:`ast.NodeVisitor` methods ``visit_Num()``, ``visit_Str()``, " "``visit_Bytes()``, ``visit_NameConstant()`` and ``visit_Ellipsis()`` are " -"deprecated now and will not be called in future Python versions. Add the :" -"meth:`~ast.NodeVisitor.visit_Constant` method to handle all constant nodes. " -"(Contributed by Serhiy Storchaka in :issue:`36917`.)" +"deprecated now and will not be called in future Python versions. Add " +"the :meth:`~ast.NodeVisitor.visit_Constant` method to handle all constant " +"nodes. (Contributed by Serhiy Storchaka in :issue:`36917`.)" msgstr "" "Los métodos ``visit_Num()``, ``visit_Str()``, ``visit_Bytes()``, " -"``visit_NameConstant()`` y ``visit_Ellipsis()`` de la clase :class:`ast." -"NodeVisitor` están obsoletos ahora y serán invocados en versiones futuras de " -"Python. Agregar el método :meth:`~ast.NodeVisitor.visit_Constant` para " -"manejar todos los nodos constantes. (Contribución de Serhiy Storchaka en :" -"issue:`36917`.)" +"``visit_NameConstant()`` y ``visit_Ellipsis()`` de la " +"clase :class:`ast.NodeVisitor` están obsoletos ahora y serán invocados en " +"versiones futuras de Python. Agregar el " +"método :meth:`~ast.NodeVisitor.visit_Constant` para manejar todos los nodos " +"constantes. (Contribución de Serhiy Storchaka en :issue:`36917`.)" #: ../Doc/whatsnew/3.8.rst:1680 -#, fuzzy msgid "" "The :deco:`!asyncio.coroutine` :term:`decorator` is deprecated and will be " -"removed in version 3.10. Instead of ``@asyncio.coroutine``, use :keyword:" -"`async def` instead. (Contributed by Andrew Svetlov in :issue:`36921`.)" +"removed in version 3.10. Instead of ``@asyncio.coroutine``, " +"use :keyword:`async def` instead. (Contributed by Andrew Svetlov " +"in :issue:`36921`.)" msgstr "" -"El :term:`decorator` :func:`asyncio.coroutine` está obsoleto y será " -"eliminado en Python 3.10. En lugar de ``@asyncio.coroutine``, se debe usar :" -"keyword:`async def`. (Contribución de Andrew Svetlov en :issue:`36921`.)" +"El :deco:`!asyncio.coroutine` :term:`decorator` está obsoleto y se eliminará " +"en la versión 3.10. En lugar de ``@asyncio.coroutine``, " +"utilice :keyword:`async def`. (Aportado por Andrew Svetlov " +"en :issue:`36921`.)" #: ../Doc/whatsnew/3.8.rst:1685 msgid "" "In :mod:`asyncio`, the explicit passing of a *loop* argument has been " -"deprecated and will be removed in version 3.10 for the following: :func:" -"`asyncio.sleep`, :func:`asyncio.gather`, :func:`asyncio.shield`, :func:" -"`asyncio.wait_for`, :func:`asyncio.wait`, :func:`asyncio.as_completed`, :" -"class:`asyncio.Task`, :class:`asyncio.Lock`, :class:`asyncio.Event`, :class:" -"`asyncio.Condition`, :class:`asyncio.Semaphore`, :class:`asyncio." -"BoundedSemaphore`, :class:`asyncio.Queue`, :func:`asyncio." -"create_subprocess_exec`, and :func:`asyncio.create_subprocess_shell`." +"deprecated and will be removed in version 3.10 for the " +"following: :func:`asyncio.sleep`, :func:`asyncio.gather`, :func:`asyncio.shield`, :func:`asyncio.wait_for`, :func:`asyncio.wait`, :func:`asyncio.as_completed`, :class:`asyncio.Task`, :class:`asyncio.Lock`, :class:`asyncio.Event`, :class:`asyncio.Condition`, :class:`asyncio.Semaphore`, :class:`asyncio.BoundedSemaphore`, :class:`asyncio.Queue`, :func:`asyncio.create_subprocess_exec`, " +"and :func:`asyncio.create_subprocess_shell`." msgstr "" "En :mod:`asyncio`, pasar un argumento *loop* de forma explícita está ahora " "obsoleto y será eliminado en Python 3.10 para las siguientes funciones y " -"constructores: :func:`asyncio.sleep`, :func:`asyncio.gather`, :func:`asyncio." -"shield`, :func:`asyncio.wait_for`, :func:`asyncio.wait`, :func:`asyncio." -"as_completed`, :class:`asyncio.Task`, :class:`asyncio.Lock`, :class:`asyncio." -"Event`, :class:`asyncio.Condition`, :class:`asyncio.Semaphore`, :class:" -"`asyncio.BoundedSemaphore`, :class:`asyncio.Queue`, :func:`asyncio." -"create_subprocess_exec` y :func:`asyncio.create_subprocess_shell`." +"constructores: :func:`asyncio.sleep`, :func:`asyncio.gather`, :func:`asyncio.shield`, :func:`asyncio.wait_for`, :func:`asyncio.wait`, :func:`asyncio.as_completed`, :class:`asyncio.Task`, :class:`asyncio.Lock`, :class:`asyncio.Event`, :class:`asyncio.Condition`, :class:`asyncio.Semaphore`, :class:`asyncio.BoundedSemaphore`, :class:`asyncio.Queue`, :func:`asyncio.create_subprocess_exec` " +"y :func:`asyncio.create_subprocess_shell`." #: ../Doc/whatsnew/3.8.rst:1695 msgid "" @@ -3398,66 +3633,64 @@ msgstr "" "en :issue:`34790`.)" #: ../Doc/whatsnew/3.8.rst:1699 -#, fuzzy msgid "" "The following functions and methods are deprecated in the :mod:`gettext` " -"module: :func:`!lgettext`, :func:`!ldgettext`, :func:`!lngettext` and :func:" -"`!ldngettext`. They return encoded bytes, and it's possible that you will " -"get unexpected Unicode-related exceptions if there are encoding problems " -"with the translated strings. It's much better to use alternatives which " -"return Unicode strings in Python 3. These functions have been broken for a " -"long time." -msgstr "" -"Las siguientes funciones y métodos del módulo :mod:`gettext` están obsoletos " -"para: :func:`~gettext.lgettext`, :func:`~gettext.ldgettext`, :func:`~gettext." -"lngettext` y :func:`~gettext.ldngettext`. Retornan bytes codificados y es " -"posible obtener excepciones inesperadas relacionadas con Unicode si hay " -"problemas de codificación con las cadenas traducidas. En Python 3 es mucho " -"mejor usar alternativas que retornen cadenas Unicode. Estas funciones han " -"estado rotas durante mucho tiempo." +"module: :func:`!lgettext`, :func:`!ldgettext`, :func:`!lngettext` " +"and :func:`!ldngettext`. They return encoded bytes, and it's possible that " +"you will get unexpected Unicode-related exceptions if there are encoding " +"problems with the translated strings. It's much better to use alternatives " +"which return Unicode strings in Python 3. These functions have been broken " +"for a long time." +msgstr "" +"Las siguientes funciones y métodos están obsoletos en el " +"módulo :mod:`gettext`: :func:`!lgettext`, :func:`!ldgettext`, :func:`!" +"lngettext` y :func:`!ldngettext`. Devuelven bytes codificados y es posible " +"que obtenga excepciones inesperadas relacionadas con Unicode si hay " +"problemas de codificación con las cadenas traducidas. Es mucho mejor usar " +"alternativas que devuelvan cadenas Unicode en Python 3. Estas funciones han " +"estado inactivas durante mucho tiempo." #: ../Doc/whatsnew/3.8.rst:1707 -#, fuzzy -msgid "" -"Function :func:`!bind_textdomain_codeset`, methods :meth:`!NullTranslations." -"output_charset` and :meth:`!NullTranslations.set_output_charset`, and the " -"*codeset* parameter of functions :func:`~gettext.translation` and :func:" -"`~gettext.install` are also deprecated, since they are only used for the " -"``l*gettext()`` functions. (Contributed by Serhiy Storchaka in :issue:" -"`33710`.)" -msgstr "" -"Función :func:`~gettext.bind_textdomain_codeset`, métodos :meth:`~gettext." -"NullTranslations.output_charset` y :meth:`~gettext.NullTranslations." -"set_output_charset`, y el parámetro *codeset* de las funciones :func:" -"`~gettext .translation` y :func:`~gettext.install` también están en desuso, " -"ya que solo se usan para las funciones ``l*gettext()``. (Contribución de " -"Serhiy Storchaka en :issue:`33710`.)" +msgid "" +"Function :func:`!bind_textdomain_codeset`, methods :meth:`!" +"NullTranslations.output_charset` and :meth:`!" +"NullTranslations.set_output_charset`, and the *codeset* parameter of " +"functions :func:`~gettext.translation` and :func:`~gettext.install` are also " +"deprecated, since they are only used for the ``l*gettext()`` functions. " +"(Contributed by Serhiy Storchaka in :issue:`33710`.)" +msgstr "" +"La función :func:`!bind_textdomain_codeset`, los métodos :meth:`!" +"NullTranslations.output_charset` y :meth:`!" +"NullTranslations.set_output_charset` y el parámetro *codeset* de las " +"funciones :func:`~gettext.translation` y :func:`~gettext.install` también " +"están en desuso, ya que solo se usan para las funciones ``l*gettext()``. " +"(Aportado por Serhiy Storchaka en :issue:`33710`.)" #: ../Doc/whatsnew/3.8.rst:1715 -#, fuzzy msgid "" "The :meth:`!isAlive` method of :class:`threading.Thread` has been " "deprecated. (Contributed by Donghee Na in :issue:`35283`.)" msgstr "" -"El método :meth:`~threading.Thread.isAlive()` de la clase :class:`threading." -"Thread` está ahora obsoleto. (Contribución de Donghee Na en :issue:`35283`.)" +"El método :meth:`!isAlive` de :class:`threading.Thread` ha quedado obsoleto. " +"(Aportado por Donghee Na en :issue:`35283`.)" #: ../Doc/whatsnew/3.8.rst:1719 msgid "" "Many builtin and extension functions that take integer arguments will now " -"emit a deprecation warning for :class:`~decimal.Decimal`\\ s, :class:" -"`~fractions.Fraction`\\ s and any other objects that can be converted to " -"integers only with a loss (e.g. that have the :meth:`~object.__int__` method " -"but do not have the :meth:`~object.__index__` method). In future version " -"they will be errors. (Contributed by Serhiy Storchaka in :issue:`36048`.)" +"emit a deprecation warning for :class:`~decimal.Decimal`\\ " +"s, :class:`~fractions.Fraction`\\ s and any other objects that can be " +"converted to integers only with a loss (e.g. that have " +"the :meth:`~object.__int__` method but do not have " +"the :meth:`~object.__index__` method). In future version they will be " +"errors. (Contributed by Serhiy Storchaka in :issue:`36048`.)" msgstr "" "Muchas funciones incorporadas y de extensión que toman argumentos enteros " -"ahora emitirán una advertencia de deprecación para :class:`~decimal." -"Decimal`\\ s, :class:`~fractions.Fraction`\\ s y cualquier otro objeto que " -"se pueda convertir a enteros solamente con pérdida (por ejemplo, aquellos " -"que tienen el método :meth:`~object .__int__` pero no el método :meth:" -"`~object .__index__`). En una versión futura, esto constituirá un error. " -"(Contribución de Serhiy Storchaka en :issue:`36048`.)" +"ahora emitirán una advertencia de deprecación " +"para :class:`~decimal.Decimal`\\ s, :class:`~fractions.Fraction`\\ s y " +"cualquier otro objeto que se pueda convertir a enteros solamente con pérdida " +"(por ejemplo, aquellos que tienen el método :meth:`~object .__int__` pero no " +"el método :meth:`~object .__index__`). En una versión futura, esto " +"constituirá un error. (Contribución de Serhiy Storchaka en :issue:`36048`.)" #: ../Doc/whatsnew/3.8.rst:1727 msgid "Deprecated passing the following arguments as keyword arguments:" @@ -3466,15 +3699,16 @@ msgstr "" "ahora obsoleto:" #: ../Doc/whatsnew/3.8.rst:1729 -#, fuzzy msgid "" -"*func* in :func:`functools.partialmethod`, :func:`weakref.finalize`, :meth:" -"`profile.Profile.runcall`, :meth:`!cProfile.Profile.runcall`, :meth:`bdb.Bdb." -"runcall`, :meth:`trace.Trace.runfunc` and :func:`curses.wrapper`." +"*func* " +"in :func:`functools.partialmethod`, :func:`weakref.finalize`, :meth:`profile.Profile.runcall`, :meth:`!" +"cProfile.Profile.runcall`, :meth:`bdb.Bdb.runcall`, :meth:`trace.Trace.runfunc` " +"and :func:`curses.wrapper`." msgstr "" -"*func* en :func:`functools.partialmethod`, :func:`weakref.finalize`, :meth:" -"`profile.Profile.runcall`, :meth:`cProfile.Profile.runcall`, :meth:`bdb.Bdb." -"runcall`, :meth:`trace.Trace.runfunc` y :func:`curses.wrapper`." +"*func* " +"en :func:`functools.partialmethod`, :func:`weakref.finalize`, :meth:`profile.Profile.runcall`, :meth:`!" +"cProfile.Profile.runcall`, :meth:`bdb.Bdb.runcall`, :meth:`trace.Trace.runfunc` " +"y :func:`curses.wrapper`." #: ../Doc/whatsnew/3.8.rst:1733 msgid "*function* in :meth:`unittest.TestCase.addCleanup`." @@ -3482,34 +3716,33 @@ msgstr "*function* en :meth:`unittest.TestCase.addCleanup`." #: ../Doc/whatsnew/3.8.rst:1734 msgid "" -"*fn* in the :meth:`~concurrent.futures.Executor.submit` method of :class:" -"`concurrent.futures.ThreadPoolExecutor` and :class:`concurrent.futures." -"ProcessPoolExecutor`." +"*fn* in the :meth:`~concurrent.futures.Executor.submit` method " +"of :class:`concurrent.futures.ThreadPoolExecutor` " +"and :class:`concurrent.futures.ProcessPoolExecutor`." msgstr "" -"*fn* en el método :meth:`~concurrent.futures.Executor.submit` de las clases :" -"class:`concurrent.futures.ThreadPoolExecutor` y :class:`concurrent.futures." -"ProcessPoolExecutor`." +"*fn* en el método :meth:`~concurrent.futures.Executor.submit` de las " +"clases :class:`concurrent.futures.ThreadPoolExecutor` " +"y :class:`concurrent.futures.ProcessPoolExecutor`." #: ../Doc/whatsnew/3.8.rst:1737 -#, fuzzy msgid "" -"*callback* in :meth:`contextlib.ExitStack.callback`, :meth:`!contextlib." -"AsyncExitStack.callback` and :meth:`contextlib.AsyncExitStack." -"push_async_callback`." +"*callback* in :meth:`contextlib.ExitStack.callback`, :meth:`!" +"contextlib.AsyncExitStack.callback` " +"and :meth:`contextlib.AsyncExitStack.push_async_callback`." msgstr "" -"*callback* en :meth:`contextlib.ExitStack.callback`, :meth:`contextlib." -"AsyncExitStack.callback` y :meth:`contextlib.AsyncExitStack." -"push_async_callback`." +"*callback* en :meth:`contextlib.ExitStack.callback`, :meth:`!" +"contextlib.AsyncExitStack.callback` " +"y :meth:`contextlib.AsyncExitStack.push_async_callback`." #: ../Doc/whatsnew/3.8.rst:1740 -#, fuzzy msgid "" -"*c* and *typeid* in the :meth:`!create` method of :class:`!multiprocessing." -"managers.Server` and :class:`!multiprocessing.managers.SharedMemoryServer`." +"*c* and *typeid* in the :meth:`!create` method of :class:`!" +"multiprocessing.managers.Server` and :class:`!" +"multiprocessing.managers.SharedMemoryServer`." msgstr "" -"*c* y *typeid* en el método :meth:`~multiprocessing.managers.Server.create` " -"de las clases :class:`multiprocessing.managers.Server` y :class:" -"`multiprocessing.managers.SharedMemoryServer`." +"*c* y *typeid* en el método :meth:`!create` de :class:`!" +"multiprocessing.managers.Server` y :class:`!" +"multiprocessing.managers.SharedMemoryServer`." #: ../Doc/whatsnew/3.8.rst:1743 msgid "*obj* in :func:`weakref.finalize`." @@ -3533,52 +3766,48 @@ msgid "The following features and APIs have been removed from Python 3.8:" msgstr "Las siguientes características y APIs se han eliminado de Python 3.8:" #: ../Doc/whatsnew/3.8.rst:1755 -#, fuzzy msgid "" "Starting with Python 3.3, importing ABCs from :mod:`collections` was " "deprecated, and importing should be done from :mod:`collections.abc`. Being " "able to import from collections was marked for removal in 3.8, but has been " "delayed to 3.9. (See :gh:`81134`.)" msgstr "" -"A partir de Python 3.3, la importación de ABC desde el módulo :mod:" -"`collections` quedó obsoleta y la importación debe realizarse desde el " -"módulo :mod:`collections.abc`. La posibilidad de importar desde collections " -"se marcó para su eliminación en Python 3.8, pero se ha retrasado a Python " -"3.9. (Consultar :issue:`36952`.)" +"A partir de Python 3.3, la importación de ABC desde :mod:`collections` quedó " +"obsoleta y la importación debe realizarse desde :mod:`collections.abc`. La " +"posibilidad de importar desde colecciones se marcó para su eliminación en " +"3.8, pero se retrasó hasta 3.9. (Ver :gh:`81134`.)" #: ../Doc/whatsnew/3.8.rst:1760 -#, fuzzy msgid "" "The :mod:`!macpath` module, deprecated in Python 3.7, has been removed. " "(Contributed by Victor Stinner in :issue:`35471`.)" msgstr "" -"El módulo :mod:`macpath`, obsoleto desde Python 3.7, ha sido eliminado. " -"(Contribución de Victor Stinner en :issue:`35471`.)" +"Se eliminó el módulo :mod:`!macpath`, obsoleto en Python 3.7. (Aportado por " +"Victor Stinner en :issue:`35471`.)" #: ../Doc/whatsnew/3.8.rst:1763 ../Doc/whatsnew/3.8.rst:1883 -#, fuzzy msgid "" "The function :func:`!platform.popen` has been removed, after having been " "deprecated since Python 3.3: use :func:`os.popen` instead. (Contributed by " "Victor Stinner in :issue:`35345`.)" msgstr "" -"La función :func:`platform.popen` ha sido eliminada, después de haber estado " -"obsoleta desde Python 3.3: usa :func:`os.popen` en su lugar. (Contribución " -"de Victor Stinner en :issue:`35345`.)" +"La función :func:`!platform.popen` se eliminó, después de haber quedado " +"obsoleta desde Python 3.3: use :func:`os.popen` en su lugar. (Aportado por " +"Victor Stinner en :issue:`35345`.)" #: ../Doc/whatsnew/3.8.rst:1767 -#, fuzzy msgid "" "The function :func:`!time.clock` has been removed, after having been " -"deprecated since Python 3.3: use :func:`time.perf_counter` or :func:`time." -"process_time` instead, depending on your requirements, to have well-defined " -"behavior. (Contributed by Matthias Bussonnier in :issue:`36895`.)" +"deprecated since Python 3.3: use :func:`time.perf_counter` " +"or :func:`time.process_time` instead, depending on your requirements, to " +"have well-defined behavior. (Contributed by Matthias Bussonnier " +"in :issue:`36895`.)" msgstr "" -"La función :func:`time.clock` ha sido eliminada, después de haber quedado " -"obsoleta desde Python 3.3: usa :func:`time.perf_counter` o :func:`time." -"process_time` en su lugar, dependiendo de tus requisitos, para tener un " -"comportamiento bien definido. (Contribución de Matthias Bussonnier en :issue:" -"`36895`.)" +"La función :func:`!time.clock` ha sido eliminada, después de haber quedado " +"obsoleta desde Python 3.3: use :func:`time.perf_counter` " +"o :func:`time.process_time` en su lugar, según sus requisitos, para tener un " +"comportamiento bien definido. (Aportado por Matthias Bussonnier " +"en :issue:`36895`.)" #: ../Doc/whatsnew/3.8.rst:1773 msgid "" @@ -3588,20 +3817,18 @@ msgid "" msgstr "" "El script ``pyvenv`` se ha eliminado, en favor de ``python3.8 -m venv``, " "para ayudar a eliminar la confusión sobre a qué intérprete de Python está " -"vinculado el script ``pyvenv``. (Contribución de Brett Cannon en :issue:" -"`25427`.)" +"vinculado el script ``pyvenv``. (Contribución de Brett Cannon " +"en :issue:`25427`.)" #: ../Doc/whatsnew/3.8.rst:1777 -#, fuzzy msgid "" "``parse_qs``, ``parse_qsl``, and ``escape`` are removed from the :mod:`!cgi` " "module. They are deprecated in Python 3.2 or older. They should be imported " "from the ``urllib.parse`` and ``html`` modules instead." msgstr "" -"Las funciones ``parse_qs``, ``parse_qsl`` y ``escape`` se han eliminado del " -"módulo :mod:`cgi`. Estaban obsoletas desde Python 3.2 o versiones " -"anteriores. En su lugar, deberían ser importadas desde los módulos ``urllib." -"parse`` y ``html``." +"``parse_qs``, ``parse_qsl`` y ``escape`` se eliminan del módulo :mod:`!" +"cgi`. Están en desuso en Python 3.2 o versiones anteriores. En su lugar, " +"deberían importarse desde los módulos ``urllib.parse`` y ``html``." #: ../Doc/whatsnew/3.8.rst:1781 msgid "" @@ -3625,16 +3852,18 @@ msgstr "" #: ../Doc/whatsnew/3.8.rst:1789 msgid "" -"Removed the ``doctype()`` method of :class:`~xml.etree.ElementTree." -"XMLParser`. (Contributed by Serhiy Storchaka in :issue:`29209`.)" +"Removed the ``doctype()`` method " +"of :class:`~xml.etree.ElementTree.XMLParser`. (Contributed by Serhiy " +"Storchaka in :issue:`29209`.)" msgstr "" -"Se ha eliminado el método ``doctype()`` de :class:`~xml.etree.ElementTree." -"XMLParser`. (Contribución de Serhiy Storchaka en :issue:`29209`.)" +"Se ha eliminado el método ``doctype()`` " +"de :class:`~xml.etree.ElementTree.XMLParser`. (Contribución de Serhiy " +"Storchaka en :issue:`29209`.)" #: ../Doc/whatsnew/3.8.rst:1792 msgid "" -"\"unicode_internal\" codec is removed. (Contributed by Inada Naoki in :issue:" -"`36297`.)" +"\"unicode_internal\" codec is removed. (Contributed by Inada Naoki " +"in :issue:`36297`.)" msgstr "" "Se ha elimina el códec \"unicode_internal\". (Contribución de Inada Naoki " "en :issue:`36297`.)" @@ -3645,29 +3874,29 @@ msgid "" "exposed to the user. (Contributed by Aviv Palivoda in :issue:`30262`.)" msgstr "" "Los objetos ``Cache`` y ``Statement`` del módulo :mod:`sqlite3` no estarán " -"expuestos al usuario a partir de ahora. (Contribución de Aviv Palivoda en :" -"issue:`30262`.)" +"expuestos al usuario a partir de ahora. (Contribución de Aviv Palivoda " +"en :issue:`30262`.)" #: ../Doc/whatsnew/3.8.rst:1799 msgid "" -"The ``bufsize`` keyword argument of :func:`fileinput.input` and :func:" -"`fileinput.FileInput` which was ignored and deprecated since Python 3.6 has " -"been removed. :issue:`36952` (Contributed by Matthias Bussonnier.)" +"The ``bufsize`` keyword argument of :func:`fileinput.input` " +"and :func:`fileinput.FileInput` which was ignored and deprecated since " +"Python 3.6 has been removed. :issue:`36952` (Contributed by Matthias " +"Bussonnier.)" msgstr "" -"El argumento por palabra clave ``bufsize`` de :func:`fileinput.input` y :" -"func:`fileinput.FileInput`, marcado como obsoleto e ignorado desde Python " +"El argumento por palabra clave ``bufsize`` de :func:`fileinput.input` " +"y :func:`fileinput.FileInput`, marcado como obsoleto e ignorado desde Python " "3.6, ha sido eliminado. :issue:`36952` (Contribución de Matthias Bussonnier.)" #: ../Doc/whatsnew/3.8.rst:1803 -#, fuzzy msgid "" -"The functions :func:`!sys.set_coroutine_wrapper` and :func:`!sys." -"get_coroutine_wrapper` deprecated in Python 3.7 have been removed; :issue:" -"`36933` (Contributed by Matthias Bussonnier.)" +"The functions :func:`!sys.set_coroutine_wrapper` and :func:`!" +"sys.get_coroutine_wrapper` deprecated in Python 3.7 have been " +"removed; :issue:`36933` (Contributed by Matthias Bussonnier.)" msgstr "" -"Las funciones :func:`sys.set_coroutine_wrapper` y :func:`sys." -"get_coroutine_wrapper`, obsoletas desde Python 3.7, han sido eliminadas; :" -"issue:`36933` (Contribución de Matthias Bussonnier.)" +"Se han eliminado las funciones :func:`!sys.set_coroutine_wrapper` y :func:`!" +"sys.get_coroutine_wrapper` obsoletas en Python 3.7; :issue:`36933` " +"(Contribución de Matthias Bussonnier)." #: ../Doc/whatsnew/3.8.rst:1809 msgid "Porting to Python 3.8" @@ -3703,8 +3932,8 @@ msgid "" "(``is`` and ``is not``) are used with certain types of literals (e.g. " "strings, numbers). These can often work by accident in CPython, but are not " "guaranteed by the language spec. The warning advises users to use equality " -"tests (``==`` and ``!=``) instead. (Contributed by Serhiy Storchaka in :" -"issue:`34850`.)" +"tests (``==`` and ``!=``) instead. (Contributed by Serhiy Storchaka " +"in :issue:`34850`.)" msgstr "" "El compilador ahora produce una advertencia :exc:`SyntaxWarning` cuando se " "utilizan comprobaciones de identidad (``is`` e ``is not``) con ciertos tipos " @@ -3729,28 +3958,28 @@ msgstr "" #: ../Doc/whatsnew/3.8.rst:1835 msgid "" -"Removed ``__str__`` implementations from builtin types :class:`bool`, :class:" -"`int`, :class:`float`, :class:`complex` and few classes from the standard " -"library. They now inherit ``__str__()`` from :class:`object`. As result, " -"defining the ``__repr__()`` method in the subclass of these classes will " -"affect their string representation. (Contributed by Serhiy Storchaka in :" -"issue:`36793`.)" +"Removed ``__str__`` implementations from builtin " +"types :class:`bool`, :class:`int`, :class:`float`, :class:`complex` and few " +"classes from the standard library. They now inherit ``__str__()`` " +"from :class:`object`. As result, defining the ``__repr__()`` method in the " +"subclass of these classes will affect their string representation. " +"(Contributed by Serhiy Storchaka in :issue:`36793`.)" msgstr "" "Se ha eliminado las implementaciones de ``__str__`` para los tipos " "incorporados :class:`bool`, :class:`int`, :class:`float`, :class:`complex` y " "algunas clases de la biblioteca estándar. Ahora heredan el método " "``__str__()`` de :class:`object`. Como resultado, definir el método " "``__repr__()`` en una subclase de estas clases afectará a su representación " -"como cadena de caracteres. (Contribución de Serhiy Storchaka en :issue:" -"`36793`.)" +"como cadena de caracteres. (Contribución de Serhiy Storchaka " +"en :issue:`36793`.)" #: ../Doc/whatsnew/3.8.rst:1842 msgid "" "On AIX, :data:`sys.platform` doesn't contain the major version anymore. It " "is always ``'aix'``, instead of ``'aix3'`` .. ``'aix7'``. Since older " "Python versions include the version number, so it is recommended to always " -"use ``sys.platform.startswith('aix')``. (Contributed by M. Felt in :issue:" -"`36588`.)" +"use ``sys.platform.startswith('aix')``. (Contributed by M. Felt " +"in :issue:`36588`.)" msgstr "" "En AIX, el atributo :data:`sys.platform` ya no contiene la versión " "principal. Es decir, siempre es ``'aix'``, en lugar de ``'aix3'`` .. " @@ -3762,18 +3991,20 @@ msgstr "" msgid "" ":c:func:`!PyEval_AcquireLock` and :c:func:`!PyEval_AcquireThread` now " "terminate the current thread if called while the interpreter is finalizing, " -"making them consistent with :c:func:`PyEval_RestoreThread`, :c:func:" -"`Py_END_ALLOW_THREADS`, and :c:func:`PyGILState_Ensure`. If this behavior is " -"not desired, guard the call by checking :c:func:`!_Py_IsFinalizing` or :func:" -"`sys.is_finalizing`. (Contributed by Joannah Nanjekye in :issue:`36475`.)" +"making them consistent " +"with :c:func:`PyEval_RestoreThread`, :c:func:`Py_END_ALLOW_THREADS`, " +"and :c:func:`PyGILState_Ensure`. If this behavior is not desired, guard the " +"call by checking :c:func:`!_Py_IsFinalizing` or :func:`sys.is_finalizing`. " +"(Contributed by Joannah Nanjekye in :issue:`36475`.)" msgstr "" ":c:func:`!PyEval_AcquireLock` y :c:func:`!PyEval_AcquireThread` ahora " "terminan el hilo actual si se llaman mientras el intérprete está " -"finalizando, haciéndolos consistentes con :c:func:`PyEval_RestoreThread`, :c:" -"func:`Py_END_ALLOW_THREADS` y :c:func:`PyGILState_Ensure`. Si no se desea " -"este comportamiento, se tiene que proteger la invocación comprobando :c:func:" -"`!_Py_IsFinalizing` o :c:func:`sys.is_finalizing`. (Contribución de Joannah " -"Nanjekye en :issue:`36475`.)" +"finalizando, haciéndolos consistentes " +"con :c:func:`PyEval_RestoreThread`, :c:func:`Py_END_ALLOW_THREADS` " +"y :c:func:`PyGILState_Ensure`. Si no se desea este comportamiento, se tiene " +"que proteger la invocación comprobando :c:func:`!_Py_IsFinalizing` " +"o :c:func:`sys.is_finalizing`. (Contribución de Joannah Nanjekye " +"en :issue:`36475`.)" #: ../Doc/whatsnew/3.8.rst:1858 ../Doc/whatsnew/3.8.rst:2324 msgid "Changes in the Python API" @@ -3792,30 +4023,29 @@ msgstr "" "en :issue:`37412`.)" #: ../Doc/whatsnew/3.8.rst:1865 -#, fuzzy msgid "" ":class:`subprocess.Popen` can now use :func:`os.posix_spawn` in some cases " "for better performance. On Windows Subsystem for Linux and QEMU User " -"Emulation, the :class:`~subprocess.Popen` constructor using :func:`os." -"posix_spawn` no longer raises an exception on errors like \"missing " -"program\". Instead the child process fails with a non-zero :attr:" -"`~subprocess.Popen.returncode`. (Contributed by Joannah Nanjekye and Victor " -"Stinner in :issue:`35537`.)" +"Emulation, the :class:`~subprocess.Popen` constructor " +"using :func:`os.posix_spawn` no longer raises an exception on errors like " +"\"missing program\". Instead the child process fails with a non-" +"zero :attr:`~subprocess.Popen.returncode`. (Contributed by Joannah Nanjekye " +"and Victor Stinner in :issue:`35537`.)" msgstr "" ":class:`subprocess.Popen` ahora puede usar :func:`os.posix_spawn` en algunos " -"casos para un mejor rendimiento. En el Subsistema de Windows para Linux y en " -"la Emulación de usuario QEMU, el constructor :class:`Popen` que usa :func:" -"`os.posix_spawn` ya no lanza una excepción como \"missing program\" ante " -"errores. En cambio, el proceso hijo falla con un valor :attr:`~Popen." -"returncode` distinto de cero. (Contribución de Joannah Nanjekye y Victor " -"Stinner en :issue:`35537`.)" +"casos para mejorar el rendimiento. En el subsistema de Windows para Linux y " +"la emulación de usuario QEMU, el constructor :class:`~subprocess.Popen` que " +"utiliza :func:`os.posix_spawn` ya no genera una excepción en errores como " +"\"programa faltante\". En cambio, el proceso secundario falla con " +"un :attr:`~subprocess.Popen.returncode` distinto de cero. (Contribución de " +"Joannah Nanjekye y Victor Stinner en :issue:`35537`)." #: ../Doc/whatsnew/3.8.rst:1873 msgid "" "The *preexec_fn* argument of * :class:`subprocess.Popen` is no longer " "compatible with subinterpreters. The use of the parameter in a " -"subinterpreter now raises :exc:`RuntimeError`. (Contributed by Eric Snow in :" -"issue:`34651`, modified by Christian Heimes in :issue:`37951`.)" +"subinterpreter now raises :exc:`RuntimeError`. (Contributed by Eric Snow " +"in :issue:`34651`, modified by Christian Heimes in :issue:`37951`.)" msgstr "" "El argumento *preexec_fn* de :class:`subprocess.Popen` ya no es compatible " "con subintérpretes. El uso del parámetro en un subintérprete ahora lanza una " @@ -3823,13 +4053,12 @@ msgstr "" "modificado por Christian Heimes en :issue:`37951`.)" #: ../Doc/whatsnew/3.8.rst:1879 -#, fuzzy msgid "" "The :meth:`imaplib.IMAP4.logout` method no longer silently ignores arbitrary " "exceptions. (Contributed by Victor Stinner in :issue:`36348`.)" msgstr "" -"El método :meth:`imap.IMAP4.logout` ya no ignora silenciosamente excepciones " -"arbitrarias. (Contribución de Victor Stinner en :issue:`36348`.)" +"El método :meth:`imaplib.IMAP4.logout` ya no ignora silenciosamente " +"excepciones arbitrarias. (Aportado por Victor Stinner en :issue:`36348`.)" #: ../Doc/whatsnew/3.8.rst:1887 msgid "" @@ -3839,98 +4068,103 @@ msgid "" msgstr "" "La función :func:`statistics.mode` ya no lanza una excepción cuando se " "proporcionan datos multimodales. Ahora, en cambio, retorna la primera moda " -"encontrada en los datos de entrada. (Contribución de Raymond Hettinger en :" -"issue:`35892`.)" +"encontrada en los datos de entrada. (Contribución de Raymond Hettinger " +"en :issue:`35892`.)" #: ../Doc/whatsnew/3.8.rst:1892 msgid "" -"The :meth:`~tkinter.ttk.Treeview.selection` method of the :class:`tkinter." -"ttk.Treeview` class no longer takes arguments. Using it with arguments for " -"changing the selection was deprecated in Python 3.6. Use specialized " -"methods like :meth:`~tkinter.ttk.Treeview.selection_set` for changing the " -"selection. (Contributed by Serhiy Storchaka in :issue:`31508`.)" +"The :meth:`~tkinter.ttk.Treeview.selection` method of " +"the :class:`tkinter.ttk.Treeview` class no longer takes arguments. Using it " +"with arguments for changing the selection was deprecated in Python 3.6. Use " +"specialized methods like :meth:`~tkinter.ttk.Treeview.selection_set` for " +"changing the selection. (Contributed by Serhiy Storchaka in :issue:`31508`.)" msgstr "" -"El método :meth:`~tkinter.ttk.Treeview.selection` de la clase :class:" -"`tkinter.ttk.Treeview` ya no acepta argumentos. Usarlo con argumentos para " -"cambiar la selección quedó obsoleto en Python 3.6. Utiliza métodos " -"especializados, como :meth:`~tkinter.ttk.Treeview.selection_set`, para " -"cambiar la selección. (Contribución de Serhiy Storchaka en :issue:`31508`.)" +"El método :meth:`~tkinter.ttk.Treeview.selection` de la " +"clase :class:`tkinter.ttk.Treeview` ya no acepta argumentos. Usarlo con " +"argumentos para cambiar la selección quedó obsoleto en Python 3.6. Utiliza " +"métodos especializados, como :meth:`~tkinter.ttk.Treeview.selection_set`, " +"para cambiar la selección. (Contribución de Serhiy Storchaka " +"en :issue:`31508`.)" #: ../Doc/whatsnew/3.8.rst:1898 -#, fuzzy msgid "" -"The :meth:`~xml.dom.minidom.Node.writexml`, :meth:`~xml.dom.minidom.Node." -"toxml` and :meth:`~xml.dom.minidom.Node.toprettyxml` methods of :mod:`xml." -"dom.minidom` and the :meth:`~xml.etree.ElementTree.ElementTree.write` method " +"The :meth:`~xml.dom.minidom.Node.writexml`, :meth:`~xml.dom.minidom.Node.toxml` " +"and :meth:`~xml.dom.minidom.Node.toprettyxml` methods " +"of :mod:`xml.dom.minidom` and " +"the :meth:`~xml.etree.ElementTree.ElementTree.write` method " "of :mod:`xml.etree.ElementTree` now preserve the attribute order specified " -"by the user. (Contributed by Diego Rojas and Raymond Hettinger in :issue:" -"`34160`.)" +"by the user. (Contributed by Diego Rojas and Raymond Hettinger " +"in :issue:`34160`.)" msgstr "" -"Los métodos :meth:`writexml`, :meth:`toxml` y :meth:`toprettyxml` de :mod:" -"`xml.dom.minidom` y el método :meth:`write` de :mod:`xml.etree`, ahora " -"conservan el orden de los atributos especificado por el usuario. " -"(Contribución de Diego Rojas y Raymond Hettinger en :issue:`34160`.)" +"Los " +"métodos :meth:`~xml.dom.minidom.Node.writexml`, :meth:`~xml.dom.minidom.Node.toxml` " +"y :meth:`~xml.dom.minidom.Node.toprettyxml` de :mod:`xml.dom.minidom` y el " +"método :meth:`~xml.etree.ElementTree.ElementTree.write` " +"de :mod:`xml.etree.ElementTree` ahora conservan el orden de los atributos " +"especificado por el usuario. (Aportado por Diego Rojas y Raymond Hettinger " +"en :issue:`34160`.)" #: ../Doc/whatsnew/3.8.rst:1905 msgid "" -"A :mod:`dbm.dumb` database opened with flags ``'r'`` is now read-only. :func:" -"`dbm.dumb.open` with flags ``'r'`` and ``'w'`` no longer creates a database " -"if it does not exist. (Contributed by Serhiy Storchaka in :issue:`32749`.)" +"A :mod:`dbm.dumb` database opened with flags ``'r'`` is now read-" +"only. :func:`dbm.dumb.open` with flags ``'r'`` and ``'w'`` no longer creates " +"a database if it does not exist. (Contributed by Serhiy Storchaka " +"in :issue:`32749`.)" msgstr "" "Una base de datos :mod:`dbm.dumb` abierta con el flag ``'r'`` ahora es de " "solo lectura. :func:`dbm.dumb.open` con los flags ``'r'`` y ``'w'`` ya no " -"crea una base de datos si no existe. (Contribución de Serhiy Storchaka en :" -"issue:`32749`.)" +"crea una base de datos si no existe. (Contribución de Serhiy Storchaka " +"en :issue:`32749`.)" #: ../Doc/whatsnew/3.8.rst:1910 msgid "" -"The ``doctype()`` method defined in a subclass of :class:`~xml.etree." -"ElementTree.XMLParser` will no longer be called and will emit a :exc:" -"`RuntimeWarning` instead of a :exc:`DeprecationWarning`. Define the :meth:" -"`doctype() ` method on a target " -"for handling an XML doctype declaration. (Contributed by Serhiy Storchaka " -"in :issue:`29209`.)" -msgstr "" -"El método ``doctype()`` definido en una subclase de :class:`~xml.etree." -"ElementTree.XMLParser` ya no será invocado y emitirá una advertencia :exc:" -"`RuntimeWarning` en lugar de :exc:`DeprecationWarning`. Define el método :" -"meth:`doctype() ` en un objetivo " -"para manejar una declaración doctype de XML. (Contribución de Serhiy " -"Storchaka en :issue:`29209`.)" +"The ``doctype()`` method defined in a subclass " +"of :class:`~xml.etree.ElementTree.XMLParser` will no longer be called and " +"will emit a :exc:`RuntimeWarning` instead of a :exc:`DeprecationWarning`. " +"Define the :meth:`doctype() ` " +"method on a target for handling an XML doctype declaration. (Contributed by " +"Serhiy Storchaka in :issue:`29209`.)" +msgstr "" +"El método ``doctype()`` definido en una subclase " +"de :class:`~xml.etree.ElementTree.XMLParser` ya no será invocado y emitirá " +"una advertencia :exc:`RuntimeWarning` en lugar de :exc:`DeprecationWarning`. " +"Define el método :meth:`doctype() " +"` en un objetivo para manejar una " +"declaración doctype de XML. (Contribución de Serhiy Storchaka " +"en :issue:`29209`.)" #: ../Doc/whatsnew/3.8.rst:1917 msgid "" "A :exc:`RuntimeError` is now raised when the custom metaclass doesn't " -"provide the ``__classcell__`` entry in the namespace passed to ``type." -"__new__``. A :exc:`DeprecationWarning` was emitted in Python 3.6--3.7. " -"(Contributed by Serhiy Storchaka in :issue:`23722`.)" +"provide the ``__classcell__`` entry in the namespace passed to " +"``type.__new__``. A :exc:`DeprecationWarning` was emitted in Python " +"3.6--3.7. (Contributed by Serhiy Storchaka in :issue:`23722`.)" msgstr "" "Ahora se lanza una excepción :exc:`RuntimeError` cuando la metaclase " "personalizada no proporciona la entrada ``__classcell__`` en el espacio de " "nombres pasado a ``type.__new__``. En Python 3.6--3.7. se emitía una " -"advertencia :exc:`DeprecationWarning` (Contribución de Serhiy Storchaka en :" -"issue:`23722`.)" +"advertencia :exc:`DeprecationWarning` (Contribución de Serhiy Storchaka " +"en :issue:`23722`.)" #: ../Doc/whatsnew/3.8.rst:1922 -#, fuzzy msgid "" "The :class:`cProfile.Profile ` class can now be used as a " "context manager. (Contributed by Scott Sanderson in :issue:`29235`.)" msgstr "" -"La clase :class:`cProfile.Profile` ahora se puede usar como gestor de " -"contexto. (Contribución de Scott Sanderson en :issue:`29235`.)" +"La clase :class:`cProfile.Profile ` ahora se puede utilizar " +"como administrador de contexto. (Aportado por Scott Sanderson " +"en :issue:`29235`.)" #: ../Doc/whatsnew/3.8.rst:1925 msgid "" -":func:`shutil.copyfile`, :func:`shutil.copy`, :func:`shutil.copy2`, :func:" -"`shutil.copytree` and :func:`shutil.move` use platform-specific \"fast-" -"copy\" syscalls (see :ref:`shutil-platform-dependent-efficient-copy-" -"operations` section)." +":func:`shutil.copyfile`, :func:`shutil.copy`, :func:`shutil.copy2`, :func:`shutil.copytree` " +"and :func:`shutil.move` use platform-specific \"fast-copy\" syscalls " +"(see :ref:`shutil-platform-dependent-efficient-copy-operations` section)." msgstr "" -":func:`shutil.copyfile`, :func:`shutil.copy`, :func:`shutil.copy2`, :func:" -"`shutil.copytree` y :func:`shutil.move` usan llamadas al sistema de \"copia-" -"rápida\" específicas de la plataforma. (Consultar la sección :ref:`shutil-" -"platform-dependent-efficient-copy-operations`)." +":func:`shutil.copyfile`, :func:`shutil.copy`, :func:`shutil.copy2`, :func:`shutil.copytree` " +"y :func:`shutil.move` usan llamadas al sistema de \"copia-rápida\" " +"específicas de la plataforma. (Consultar la sección :ref:`shutil-platform-" +"dependent-efficient-copy-operations`)." #: ../Doc/whatsnew/3.8.rst:1930 msgid "" @@ -3946,8 +4180,8 @@ msgid "" "struct member should be rewritten. (See :issue:`33597`.)" msgstr "" "La estructura ``PyGC_Head`` ha cambiado por completo. Todo código que haga " -"uso de algún miembro de la estructura debe reescribirse. (Consultar :issue:" -"`33597`.)" +"uso de algún miembro de la estructura debe reescribirse. " +"(Consultar :issue:`33597`.)" #: ../Doc/whatsnew/3.8.rst:1936 msgid "" @@ -3961,14 +4195,14 @@ msgid "" "functions to the public API). (See :issue:`35886`.)" msgstr "" "La estructura :c:type:`PyInterpreterState` se ha movido a los archivos de " -"cabeceras \"internos\" (específicamente a Include/internal/pycore_pystate." -"h). Un ``PyInterpreterState`` opaco todavía está disponible como parte de la " -"API pública (y ABI estable). La documentación indica que ninguno de los " -"campos de la estructura es público, por lo que esperamos que nadie los haya " -"estado usando. Sin embargo, si utilizas uno o más de esos campos privados y " -"no tienes otra alternativa, abre una issue BPO. Trabajaremos para ayudarte a " -"adaptarlo (posiblemente incluyendo funciones de acceso a la API pública). " -"(Consultar :issue:`35886`.)" +"cabeceras \"internos\" (específicamente a Include/internal/" +"pycore_pystate.h). Un ``PyInterpreterState`` opaco todavía está disponible " +"como parte de la API pública (y ABI estable). La documentación indica que " +"ninguno de los campos de la estructura es público, por lo que esperamos que " +"nadie los haya estado usando. Sin embargo, si utilizas uno o más de esos " +"campos privados y no tienes otra alternativa, abre una issue BPO. " +"Trabajaremos para ayudarte a adaptarlo (posiblemente incluyendo funciones de " +"acceso a la API pública). (Consultar :issue:`35886`.)" #: ../Doc/whatsnew/3.8.rst:1946 msgid "" @@ -3984,8 +4218,8 @@ msgstr "" "plataformas. Anteriormente, su comportamiento dependía de la plataforma: en " "Windows retornaba un valor distinto de cero en caso de éxito y cero ante un " "error. En Unix se retornaba un valor de cero en caso de éxito y se lanzaba " -"una excepción ante un error. (Contribución de Berker Peksag en :issue:" -"`2122`.)" +"una excepción ante un error. (Contribución de Berker Peksag " +"en :issue:`2122`.)" #: ../Doc/whatsnew/3.8.rst:1953 msgid "" @@ -3993,35 +4227,34 @@ msgid "" "entities by default. (Contributed by Christian Heimes in :issue:`17239`.)" msgstr "" "Los módulos :mod:`xml.dom.minidom` y :mod:`xml.sax` ya no procesan entidades " -"externas de forma predeterminada. (Contribución de Christian Heimes en :" -"issue:`17239`.)" +"externas de forma predeterminada. (Contribución de Christian Heimes " +"en :issue:`17239`.)" #: ../Doc/whatsnew/3.8.rst:1957 -#, fuzzy msgid "" -"Deleting a key from a read-only :mod:`dbm` database (:mod:`dbm.dumb`, :mod:" -"`dbm.gnu` or :mod:`dbm.ndbm`) raises :attr:`!error` (:exc:`dbm.dumb.error`, :" -"exc:`dbm.gnu.error` or :exc:`dbm.ndbm.error`) instead of :exc:`KeyError`. " -"(Contributed by Xiang Zhang in :issue:`33106`.)" +"Deleting a key from a read-only :mod:`dbm` database " +"(:mod:`dbm.dumb`, :mod:`dbm.gnu` or :mod:`dbm.ndbm`) raises :attr:`!error` " +"(:exc:`dbm.dumb.error`, :exc:`dbm.gnu.error` or :exc:`dbm.ndbm.error`) " +"instead of :exc:`KeyError`. (Contributed by Xiang Zhang in :issue:`33106`.)" msgstr "" -"Eliminar una clave de una base de datos :mod:`dbm` de solo lectura (:mod:" -"`dbm.dumb`, :mod:`dbm.gnu` o :mod:`dbm.ndbm`) lanza una excepción :attr:" -"`error` (:exc:`dbm.dumb.error`, :exc:`dbm.gnu.error` o :exc:`dbm.ndbm." -"error`) en lugar de :exc:`KeyError`. (Contribución de Xiang Zhang en :issue:" -"`33106`.)" +"Al eliminar una clave de una base de datos :mod:`dbm` de solo lectura " +"(:mod:`dbm.dumb`, :mod:`dbm.gnu` o :mod:`dbm.ndbm`), se genera :attr:`!" +"error` (:exc:`dbm.dumb.error`, :exc:`dbm.gnu.error` o :exc:`dbm.ndbm.error`) " +"en lugar de :exc:`KeyError`. (Aportado por Xiang Zhang en :issue:`33106`.)" #: ../Doc/whatsnew/3.8.rst:1962 msgid "" -"Simplified AST for literals. All constants will be represented as :class:" -"`ast.Constant` instances. Instantiating old classes ``Num``, ``Str``, " -"``Bytes``, ``NameConstant`` and ``Ellipsis`` will return an instance of " -"``Constant``. (Contributed by Serhiy Storchaka in :issue:`32892`.)" +"Simplified AST for literals. All constants will be represented " +"as :class:`ast.Constant` instances. Instantiating old classes ``Num``, " +"``Str``, ``Bytes``, ``NameConstant`` and ``Ellipsis`` will return an " +"instance of ``Constant``. (Contributed by Serhiy Storchaka " +"in :issue:`32892`.)" msgstr "" "AST simplificado para literales. Todas las constantes se representarán como " "instancias de :class:`ast.Constant`. La instanciación de las antiguas clases " "``Num``, ``Str``, ``Bytes``, ``NameConstant`` y ``Ellipsis`` retornará ahora " -"una instancia de ``Constant``. (Contribución de Serhiy Storchaka en :issue:" -"`32892`.)" +"una instancia de ``Constant``. (Contribución de Serhiy Storchaka " +"en :issue:`32892`.)" #: ../Doc/whatsnew/3.8.rst:1978 msgid "" @@ -4054,29 +4287,30 @@ msgstr "" msgid "" "DLL dependencies for extension modules and DLLs loaded with :mod:`ctypes` on " "Windows are now resolved more securely. Only the system paths, the directory " -"containing the DLL or PYD file, and directories added with :func:`~os." -"add_dll_directory` are searched for load-time dependencies. Specifically, :" -"envvar:`PATH` and the current working directory are no longer used, and " -"modifications to these will no longer have any effect on normal DLL " -"resolution. If your application relies on these mechanisms, you should check " -"for :func:`~os.add_dll_directory` and if it exists, use it to add your DLLs " -"directory while loading your library. Note that Windows 7 users will need to " -"ensure that Windows Update KB2533623 has been installed (this is also " -"verified by the installer). (Contributed by Steve Dower in :issue:`36085`.)" -msgstr "" -"Las dependencias de DLLs para módulos de extensión y DLLs cargadas con :mod:" -"`ctypes` en Windows ahora se resuelven de forma más segura. Solo las rutas " -"del sistema, el directorio que contiene el archivo DLL o PYD y los " +"containing the DLL or PYD file, and directories added " +"with :func:`~os.add_dll_directory` are searched for load-time dependencies. " +"Specifically, :envvar:`PATH` and the current working directory are no longer " +"used, and modifications to these will no longer have any effect on normal " +"DLL resolution. If your application relies on these mechanisms, you should " +"check for :func:`~os.add_dll_directory` and if it exists, use it to add your " +"DLLs directory while loading your library. Note that Windows 7 users will " +"need to ensure that Windows Update KB2533623 has been installed (this is " +"also verified by the installer). (Contributed by Steve Dower " +"in :issue:`36085`.)" +msgstr "" +"Las dependencias de DLLs para módulos de extensión y DLLs cargadas " +"con :mod:`ctypes` en Windows ahora se resuelven de forma más segura. Solo " +"las rutas del sistema, el directorio que contiene el archivo DLL o PYD y los " "directorios agregados mediante :func:`~os.add_dll_directory` se buscan para " "las dependencias en tiempo de carga. Específicamente, :envvar:`PATH` y el " "directorio de trabajo actual ya no se utilizan, y las modificaciones de " "estos ya no tendrán ningún efecto en la resolución normal de la DLL. Si tu " -"aplicación se basa en estos mecanismos, debes buscar :func:`~os." -"add_dll_directory` y, si existe, utilizarlo para agregar tu directorio DLL " -"mientras carga tu biblioteca. Ten en cuenta que los usuarios de Windows 7 " -"deberán asegurarse de que se haya instalado Windows Update KB2533623 (esto " -"también lo verifica el instalador). (Contribución de Steve Dower en :issue:" -"`36085`.)" +"aplicación se basa en estos mecanismos, debes " +"buscar :func:`~os.add_dll_directory` y, si existe, utilizarlo para agregar " +"tu directorio DLL mientras carga tu biblioteca. Ten en cuenta que los " +"usuarios de Windows 7 deberán asegurarse de que se haya instalado Windows " +"Update KB2533623 (esto también lo verifica el instalador). (Contribución de " +"Steve Dower en :issue:`36085`.)" #: ../Doc/whatsnew/3.8.rst:2004 msgid "" @@ -4159,36 +4393,37 @@ msgstr "" #: ../Doc/whatsnew/3.8.rst:2040 msgid "" -"Use of ``#`` variants of formats in parsing or building value (e.g. :c:func:" -"`PyArg_ParseTuple`, :c:func:`Py_BuildValue`, :c:func:" -"`PyObject_CallFunction`, etc.) without ``PY_SSIZE_T_CLEAN`` defined raises " -"``DeprecationWarning`` now. It will be removed in 3.10 or 4.0. Read :ref:" -"`arg-parsing` for detail. (Contributed by Inada Naoki in :issue:`36381`.)" +"Use of ``#`` variants of formats in parsing or building value " +"(e.g. :c:func:`PyArg_ParseTuple`, :c:func:`Py_BuildValue`, :c:func:`PyObject_CallFunction`, " +"etc.) without ``PY_SSIZE_T_CLEAN`` defined raises ``DeprecationWarning`` " +"now. It will be removed in 3.10 or 4.0. Read :ref:`arg-parsing` for detail. " +"(Contributed by Inada Naoki in :issue:`36381`.)" msgstr "" "El uso de variantes de formato ``#`` en el análisis o la construcción de " -"valores (por ejemplo: :c:func:`PyArg_ParseTuple`, :c:func:`Py_BuildValue`, :" -"c:func:`PyObject_CallFunction`, etc.) sin ``PY_SSIZE_T_CLEAN`` definido " -"ahora lanza una advertencia ``DeprecationWarning``. Se eliminará en Python " -"3.10 ó 4.0. Consultar :ref:`arg-parsing` para más detalles. (Contribución de " -"Inada Naoki en :issue:`36381`.)" +"valores (por " +"ejemplo: :c:func:`PyArg_ParseTuple`, :c:func:`Py_BuildValue`, :c:func:`PyObject_CallFunction`, " +"etc.) sin ``PY_SSIZE_T_CLEAN`` definido ahora lanza una advertencia " +"``DeprecationWarning``. Se eliminará en Python 3.10 ó 4.0. " +"Consultar :ref:`arg-parsing` para más detalles. (Contribución de Inada Naoki " +"en :issue:`36381`.)" #: ../Doc/whatsnew/3.8.rst:2046 -#, fuzzy -msgid "" -"Instances of heap-allocated types (such as those created with :c:func:" -"`PyType_FromSpec`) hold a reference to their type object. Increasing the " -"reference count of these type objects has been moved from :c:func:" -"`PyType_GenericAlloc` to the more low-level functions, :c:func:" -"`PyObject_Init` and :c:macro:`!PyObject_INIT`. This makes types created " -"through :c:func:`PyType_FromSpec` behave like other classes in managed code." -msgstr "" -"Las instancias de tipos asignados al montón (como los creados con :c:func:" -"`PyType_FromSpec`) contienen una referencia a su objeto de tipo. El aumento " -"del recuento de referencias de estos objetos de tipo se ha movido de :c:func:" -"`PyType_GenericAlloc` a las funciones de más bajo nivel, :c:func:" -"`PyObject_Init` y :c:func:`PyObject_INIT`. Esto hace que los tipos creados " -"mediante :c:func:`PyType_FromSpec` se comporten como otras clases en el " -"código gestionado." +msgid "" +"Instances of heap-allocated types (such as those created " +"with :c:func:`PyType_FromSpec`) hold a reference to their type object. " +"Increasing the reference count of these type objects has been moved " +"from :c:func:`PyType_GenericAlloc` to the more low-level " +"functions, :c:func:`PyObject_Init` and :c:macro:`!PyObject_INIT`. This makes " +"types created through :c:func:`PyType_FromSpec` behave like other classes in " +"managed code." +msgstr "" +"Las instancias de tipos asignados al montón (como las creadas " +"con :c:func:`PyType_FromSpec`) contienen una referencia a su tipo de objeto. " +"El aumento del recuento de referencias de este tipo de objetos se ha movido " +"de :c:func:`PyType_GenericAlloc` a las funciones de nivel más " +"bajo, :c:func:`PyObject_Init` y :c:macro:`!PyObject_INIT`. Esto hace que los " +"tipos creados mediante :c:func:`PyType_FromSpec` se comporten como otras " +"clases en código administrado." #: ../Doc/whatsnew/3.8.rst:2054 msgid ":ref:`Statically allocated types ` are not affected." @@ -4216,19 +4451,18 @@ msgstr "" "cambios:" #: ../Doc/whatsnew/3.8.rst:2065 -#, fuzzy msgid "" "Remove :c:macro:`Py_INCREF` on the type object after allocating an instance " -"- if any. This may happen after calling :c:macro:`PyObject_New`, :c:macro:" -"`PyObject_NewVar`, :c:func:`PyObject_GC_New`, :c:func:`PyObject_GC_NewVar`, " -"or any other custom allocator that uses :c:func:`PyObject_Init` or :c:macro:" -"`!PyObject_INIT`." +"- if any. This may happen after " +"calling :c:macro:`PyObject_New`, :c:macro:`PyObject_NewVar`, :c:func:`PyObject_GC_New`, :c:func:`PyObject_GC_NewVar`, " +"or any other custom allocator that uses :c:func:`PyObject_Init` " +"or :c:macro:`!PyObject_INIT`." msgstr "" -"Elimina :c:macro:`Py_INCREF` en el objeto de tipo después de asignar una " -"instancia, si la hubiera. Esto puede suceder después de invocar a :c:macro:" -"`PyObject_New`, :c:func:`PyObject_NewVar`, :c:func:`PyObject_GC_New`, :c:" -"func:`PyObject_GC_NewVar`, o cualquier otro asignador personalizado que use :" -"c:func:`PyObject_Init` o :c:func:`PyObject_INIT`." +"Elimine :c:macro:`Py_INCREF` en el tipo de objeto después de asignar una " +"instancia, si corresponde. Esto puede suceder después de llamar " +"a :c:macro:`PyObject_New`, :c:macro:`PyObject_NewVar`, :c:func:`PyObject_GC_New`, :c:func:`PyObject_GC_NewVar` " +"o cualquier otro asignador personalizado que use :c:func:`PyObject_Init` " +"o :c:macro:`!PyObject_INIT`." #: ../Doc/whatsnew/3.8.rst:2072 ../Doc/whatsnew/3.8.rst:2091 #: ../Doc/whatsnew/3.8.rst:2110 @@ -4250,6 +4484,18 @@ msgid "" " return foo;\n" "}" msgstr "" +"estático foo_struct *\n" +"foo_new(PyObject *tipo) {\n" +" foo_struct *foo = PyObject_GC_New(foo_struct, (PyTypeObject *) tipo);\n" +" si (foo == NULO)\n" +" devolver NULO;\n" +"#si PY_VERSION_HEX < 0x03080000\n" +" // Solución alternativa para el problema 35810 de Python; ya no es " +"necesario en Python 3.8\n" +" PY_INCREF(tipo)\n" +"#endif\n" +" devolver foo;\n" +"}" #: ../Doc/whatsnew/3.8.rst:2088 msgid "" @@ -4272,6 +4518,15 @@ msgid "" "#endif\n" "}" msgstr "" +"vacío estático\n" +"foo_dealloc(foo_struct *instance) {\n" +" PyObject *type = Py_TYPE(instancia);\n" +" PyObject_GC_Del(instancia);\n" +"#si PY_VERSION_HEX >= 0x03080000\n" +" // Esto no era necesario antes de Python 3.8 (problema de Python 35810)\n" +" Py_DECREF(tipo);\n" +"#endif\n" +"}" #: ../Doc/whatsnew/3.8.rst:2105 msgid "(Contributed by Eddie Elizondo in :issue:`35810`.)" @@ -4287,7 +4542,7 @@ msgstr "" #: ../Doc/whatsnew/3.8.rst:2112 msgid "Py_DEPRECATED(3.8) PyAPI_FUNC(int) Py_OldFunction(void);" -msgstr "" +msgstr "Py_DEPRECATED(3.8) PyAPI_FUNC(int) Py_OldFunction(void);" #: ../Doc/whatsnew/3.8.rst:2116 msgid "(Contributed by Zackery Spytz in :issue:`33407`.)" @@ -4298,17 +4553,18 @@ msgid "" "The interpreter does not pretend to support binary compatibility of " "extension types across feature releases, anymore. A :c:type:`PyTypeObject` " "exported by a third-party extension module is supposed to have all the slots " -"expected in the current Python version, including :c:member:`~PyTypeObject." -"tp_finalize` (:c:macro:`Py_TPFLAGS_HAVE_FINALIZE` is not checked anymore " -"before reading :c:member:`~PyTypeObject.tp_finalize`)." +"expected in the current Python version, " +"including :c:member:`~PyTypeObject.tp_finalize` " +"(:c:macro:`Py_TPFLAGS_HAVE_FINALIZE` is not checked anymore before " +"reading :c:member:`~PyTypeObject.tp_finalize`)." msgstr "" "El intérprete ya no pretende dar suporte nunca más a la compatibilidad " -"binaria de tipos de extensión entre versiones de características. Un :c:type:" -"`PyTypeObject` exportado por un módulo de extensión de terceros se supone " -"que tiene todas las ranuras esperadas por la versión actual de Python, " -"incluyendo :c:member:`~PyTypeObject.tp_finalize` (:c:macro:" -"`Py_TPFLAGS_HAVE_FINALIZE` ya no se verifica antes de leer :c:member:" -"`~PyTypeObject.tp_finalize`)." +"binaria de tipos de extensión entre versiones de características. " +"Un :c:type:`PyTypeObject` exportado por un módulo de extensión de terceros " +"se supone que tiene todas las ranuras esperadas por la versión actual de " +"Python, incluyendo :c:member:`~PyTypeObject.tp_finalize` " +"(:c:macro:`Py_TPFLAGS_HAVE_FINALIZE` ya no se verifica antes de " +"leer :c:member:`~PyTypeObject.tp_finalize`)." #: ../Doc/whatsnew/3.8.rst:2125 msgid "(Contributed by Antoine Pitrou in :issue:`32388`.)" @@ -4342,20 +4598,23 @@ msgid "" "gendef - python38.dll > tmp.def\n" "dlltool --dllname python38.dll --def tmp.def --output-lib libpython38.a" msgstr "" +"gendef - python38.dll > tmp.def\n" +"dlltool --dllname python38.dll --def tmp.def --output-lib libpython38.a" #: ../Doc/whatsnew/3.8.rst:2140 msgid "" "The location of an installed :file:`pythonXY.dll` will depend on the " -"installation options and the version and language of Windows. See :ref:" -"`using-on-windows` for more information. The resulting library should be " -"placed in the same directory as :file:`pythonXY.lib`, which is generally " -"the :file:`libs` directory under your Python installation." +"installation options and the version and language of Windows. " +"See :ref:`using-on-windows` for more information. The resulting library " +"should be placed in the same directory as :file:`pythonXY.lib`, which is " +"generally the :file:`libs` directory under your Python installation." msgstr "" "La ubicación de un archivo :file:`pythonXY.dll` instalado dependerá de las " -"opciones de instalación y de la versión y el idioma de Windows. Consultar :" -"ref:`using-on-windows` para obtener más información. La biblioteca " -"resultante debe colocarse en el mismo directorio que :file:`pythonXY.lib`, " -"que generalmente es el directorio :file:`libs` en tu instalación de Python." +"opciones de instalación y de la versión y el idioma de Windows. " +"Consultar :ref:`using-on-windows` para obtener más información. La " +"biblioteca resultante debe colocarse en el mismo directorio " +"que :file:`pythonXY.lib`, que generalmente es el directorio :file:`libs` en " +"tu instalación de Python." #: ../Doc/whatsnew/3.8.rst:2146 msgid "(Contributed by Steve Dower in :issue:`37351`.)" @@ -4378,7 +4637,6 @@ msgstr "" "de limpieza para :keyword:`break`, :keyword:`continue` y :keyword:`return`." #: ../Doc/whatsnew/3.8.rst:2158 -#, fuzzy msgid "" "Removed opcodes :opcode:`!BREAK_LOOP`, :opcode:`!CONTINUE_LOOP`, :opcode:`!" "SETUP_LOOP` and :opcode:`!SETUP_EXCEPT`. Added new opcodes :opcode:`!" @@ -4386,20 +4644,19 @@ msgid "" "POP_FINALLY`. Changed the behavior of :opcode:`!END_FINALLY` and :opcode:`!" "WITH_CLEANUP_START`." msgstr "" -"Eliminados los códigos de operación :opcode:`BREAK_LOOP`, :opcode:" -"`CONTINUE_LOOP`, :opcode:`SETUP_LOOP` y :opcode:`SETUP_EXCEPT`. Agregados " -"los nuevos códigos de operación :opcode:`ROT_FOUR`, :opcode:" -"`BEGIN_FINALLY`, :opcode:`CALL_FINALLY` y :opcode:`POP_FINALLY`. Modificados " -"los códigos de operación :opcode:`END_FINALLY` y :opcode:" -"`WITH_CLEANUP_START`." +"Se eliminaron los códigos de operación :opcode:`!BREAK_LOOP`, :opcode:`!" +"CONTINUE_LOOP`, :opcode:`!SETUP_LOOP` y :opcode:`!SETUP_EXCEPT`. Se " +"agregaron nuevos códigos de operación :opcode:`!ROT_FOUR`, :opcode:`!" +"BEGIN_FINALLY`, :opcode:`!CALL_FINALLY` y :opcode:`!POP_FINALLY`. Cambió el " +"comportamiento de :opcode:`!END_FINALLY` y :opcode:`!WITH_CLEANUP_START`." #: ../Doc/whatsnew/3.8.rst:2164 msgid "" -"(Contributed by Mark Shannon, Antoine Pitrou and Serhiy Storchaka in :issue:" -"`17611`.)" +"(Contributed by Mark Shannon, Antoine Pitrou and Serhiy Storchaka " +"in :issue:`17611`.)" msgstr "" -"(Contribución de Mark Shannon, Antoine Pitrou y Serhiy Storchaka en :issue:" -"`17611`.)" +"(Contribución de Mark Shannon, Antoine Pitrou y Serhiy Storchaka " +"en :issue:`17611`.)" #: ../Doc/whatsnew/3.8.rst:2167 msgid "" @@ -4408,8 +4665,9 @@ msgid "" "Storchaka in :issue:`33041`.)" msgstr "" "Agregado el código de operación :opcode:`END_ASYNC_FOR` para manejar " -"excepciones lanzadas mientras se espera al siguiente elemento en un ciclo :" -"keyword:`async for`. (Contribución de Serhiy Storchaka en :issue:`33041`.)" +"excepciones lanzadas mientras se espera al siguiente elemento en un " +"ciclo :keyword:`async for`. (Contribución de Serhiy Storchaka " +"en :issue:`33041`.)" #: ../Doc/whatsnew/3.8.rst:2171 msgid "" @@ -4519,6 +4777,48 @@ msgid "" " loop_overhead 0.3 0.5 0.6 0.4 0.3 " "0.3" msgstr "" +"Versión de Python 3.3 3.4 3.5 3.6 3.7 3.8\n" +"-------------- --- --- --- --- --- ---\n" +"\n" +"Acceso de lectura de variables y atributos:\n" +" lectura_local 4,0 7,1 7,1 5,4 5,1 3,9\n" +" lectura_no local 5,3 7,1 8,1 5,8 5,4 4,4\n" +" lectura_global 13,3 15,5 19,0 14,3 13,6 7,6\n" +" lectura_integrada 20,0 21,1 21,6 18,5 19,0 7,5\n" +" read_classvar_from_class 20,5 25,6 26,5 20,7 19,5 18,4\n" +" read_classvar_from_instance 18,5 22,8 23,5 18,8 17,1 16,4\n" +" read_instancevar 26,8 32,4 33,1 28,0 26,3 25,4\n" +" read_instancevar_slots 23,7 27,8 31,3 20,8 20,8 20,2\n" +" read_namedtuple 68,5 73,8 57,5 45,0 46,8 18,4\n" +" método_encuadernado 29,8 37,6 37,9 29,6 26,9 27,7\n" +"\n" +"Acceso de escritura de variables y atributos:\n" +" escribir_local 4,6 8,7 9,3 5,5 5,3 4,3\n" +" escritura_no local 7,3 10,5 11,1 5,6 5,5 4,7\n" +" escribir_global 15,9 19,7 21,2 18,0 18,0 15,8\n" +" write_classvar 81,9 92,9 96,0 104,6 102,1 39,2\n" +" write_instancevar 36,4 44,6 45,8 40,0 38,9 35,5\n" +" write_instancevar_slots 28,7 35,6 36,1 27,3 26,6 25,7\n" +"\n" +"Acceso de lectura a la estructura de datos:\n" +" lista_lectura 19,2 24,2 24,5 20,8 20,8 19,0\n" +" lectura_deque 19,9 24,7 25,5 20,2 20,6 19,8\n" +" lectura_dict 19,7 24,3 25,7 22,3 23,0 21,0\n" +" read_strdict 17,9 22,6 24,3 19,5 21,2 18,9\n" +"\n" +"Acceso de escritura a la estructura de datos:\n" +" lista_escritura 21,2 27,1 28,5 22,5 21,6 20,0\n" +" escribir_deque 23,8 28,7 30,1 22,7 21,8 23,5\n" +" escribir_dict 25,9 31,4 33,3 29,3 29,2 24,7\n" +" escribir_strdict 22,9 28,4 29,9 27,5 25,2 23,1\n" +"\n" +"Operaciones de pila (o cola):\n" +" lista_append_pop 144,2 93,4 112,7 75,4 74,2 50,8\n" +" deque_append_pop 30,4 43,5 57,0 49,4 49,2 42,5\n" +" deque_append_popleft 30,8 43,7 57,3 49,7 49,7 42,8\n" +"\n" +"Bucle de tiempo:\n" +" bucle_overhead 0,3 0,5 0,6 0,4 0,3 0,3" #: ../Doc/whatsnew/3.8.rst:2231 msgid "" @@ -4531,8 +4831,8 @@ msgstr "" "Las evaluaciones de rendimiento se realizaron en un `procesador Intel® Core™ " "i7-4960HQ `_ ejecutando las " -"compilaciones de 64-bits para macOS disponibles en `python.org `_. El script de evaluación de rendimiento " +"compilaciones de 64-bits para macOS disponibles en `python.org `_. El script de evaluación de rendimiento " "muestra los tiempos en nanosegundos." #: ../Doc/whatsnew/3.8.rst:2240 @@ -4541,12 +4841,12 @@ msgstr "Cambios notables en Python 3.8.1" #: ../Doc/whatsnew/3.8.rst:2242 msgid "" -"Due to significant security concerns, the *reuse_address* parameter of :meth:" -"`asyncio.loop.create_datagram_endpoint` is no longer supported. This is " -"because of the behavior of the socket option ``SO_REUSEADDR`` in UDP. For " -"more details, see the documentation for ``loop.create_datagram_endpoint()``. " -"(Contributed by Kyle Stanley, Antoine Pitrou, and Yury Selivanov in :issue:" -"`37228`.)" +"Due to significant security concerns, the *reuse_address* parameter " +"of :meth:`asyncio.loop.create_datagram_endpoint` is no longer supported. " +"This is because of the behavior of the socket option ``SO_REUSEADDR`` in " +"UDP. For more details, see the documentation for " +"``loop.create_datagram_endpoint()``. (Contributed by Kyle Stanley, Antoine " +"Pitrou, and Yury Selivanov in :issue:`37228`.)" msgstr "" "Debido a importantes preocupaciones de seguridad, el parámetro " "*reuse_address* de :meth:`asyncio.loop.create_datagram_endpoint` ya no está " @@ -4556,9 +4856,8 @@ msgstr "" "Pitrou y Yury Selivanov en :issue:`37228`.)" #: ../Doc/whatsnew/3.8.rst:2250 -#, fuzzy msgid "Notable changes in Python 3.8.2" -msgstr "Cambios notables en Python 3.8.1" +msgstr "Cambios notables en Python 3.8.2" #: ../Doc/whatsnew/3.8.rst:2252 msgid "" @@ -4566,11 +4865,14 @@ msgid "" "The argument types are now str and List[str] again. (Contributed by Manuel " "Barkhau and Giampaolo Rodola in :gh:`83571`.)" msgstr "" +"Se corrigió una regresión con la devolución de llamada ``ignore`` " +"de :func:`shutil.copytree`. Los tipos de argumentos ahora son str y " +"List[str] nuevamente. (Aportado por Manuel Barkhau y Giampaolo Rodola " +"en :gh:`83571`.)" #: ../Doc/whatsnew/3.8.rst:2257 -#, fuzzy msgid "Notable changes in Python 3.8.3" -msgstr "Cambios notables en Python 3.8.8" +msgstr "Cambios notables en Python 3.8.3" #: ../Doc/whatsnew/3.8.rst:2259 msgid "" @@ -4579,37 +4881,41 @@ msgid "" "``PyCF_ALLOW_TOP_LEVEL_AWAIT`` was clashing with ``CO_FUTURE_DIVISION``. " "(Contributed by Batuhan Taskaya in :gh:`83743`)" msgstr "" +"Los valores constantes de indicadores futuros en el módulo :mod:`__future__` " +"se actualizan para evitar colisiones con indicadores del compilador. " +"Anteriormente, ``PyCF_ALLOW_TOP_LEVEL_AWAIT`` chocaba con " +"``CO_FUTURE_DIVISION``. (Aportado por Batuhan Taskaya en :gh:`83743`)" #: ../Doc/whatsnew/3.8.rst:2265 msgid "Notable changes in Python 3.8.8" msgstr "Cambios notables en Python 3.8.8" #: ../Doc/whatsnew/3.8.rst:2267 -#, fuzzy msgid "" "Earlier Python versions allowed using both ``;`` and ``&`` as query " -"parameter separators in :func:`urllib.parse.parse_qs` and :func:`urllib." -"parse.parse_qsl`. Due to security concerns, and to conform with newer W3C " -"recommendations, this has been changed to allow only a single separator key, " -"with ``&`` as the default. This change also affects :func:`!cgi.parse` and :" -"func:`!cgi.parse_multipart` as they use the affected functions internally. " -"For more details, please see their respective documentation. (Contributed by " -"Adam Goldschmidt, Senthil Kumaran and Ken Jin in :issue:`42967`.)" -msgstr "" -"Las versiones anteriores de Python permitían usar tanto ``;`` como ``&`` " -"como separadores de parámetros de consulta en :func:`urllib.parse.parse_qs` " -"y :func:`urllib.parse.parse_qsl`. Debido a problemas de seguridad y para " -"cumplir con las recomendaciones más recientes del W3C, esto se ha cambiado " -"para permitir solo una clave separadora, con ``&`` como valor " -"predeterminado. Este cambio también afecta a :func:`cgi.parse` y :func:`cgi." -"parse_multipart` ya que utilizan las funciones afectadas internamente. Para " -"obtener más detalles, consulte su documentación respectiva. (Contribuido por " -"Adam Goldschmidt, Senthil Kumaran y Ken Jin en :issue:`42967`.)" +"parameter separators in :func:`urllib.parse.parse_qs` " +"and :func:`urllib.parse.parse_qsl`. Due to security concerns, and to " +"conform with newer W3C recommendations, this has been changed to allow only " +"a single separator key, with ``&`` as the default. This change also " +"affects :func:`!cgi.parse` and :func:`!cgi.parse_multipart` as they use the " +"affected functions internally. For more details, please see their respective " +"documentation. (Contributed by Adam Goldschmidt, Senthil Kumaran and Ken Jin " +"in :issue:`42967`.)" +msgstr "" +"Las versiones anteriores de Python permitían usar ``;`` y ``&`` como " +"separadores de parámetros de consulta en :func:`urllib.parse.parse_qs` " +"y :func:`urllib.parse.parse_qsl`. Debido a preocupaciones de seguridad y " +"para cumplir con las recomendaciones más recientes del W3C, esto se ha " +"cambiado para permitir solo una única clave separadora, con ``&`` como valor " +"predeterminado. Este cambio también afecta a :func:`!cgi.parse` y :func:`!" +"cgi.parse_multipart` ya que utilizan las funciones afectadas internamente. " +"Para obtener más detalles, consulte su documentación respectiva. " +"(Contribución de Adam Goldschmidt, Senthil Kumaran y Ken Jin " +"en :issue:`42967`)." #: ../Doc/whatsnew/3.8.rst:2278 -#, fuzzy msgid "Notable changes in Python 3.8.9" -msgstr "Cambios notables en Python 3.8.8" +msgstr "Cambios notables en Python 3.8.9" #: ../Doc/whatsnew/3.8.rst:2280 msgid "" @@ -4619,15 +4925,20 @@ msgid "" "old behavior, set a ``trust_server_pasv_ipv4_address`` attribute on your FTP " "instance to ``True``. (See :gh:`87451`)" msgstr "" +"Una solución de seguridad altera el comportamiento de :class:`ftplib.FTP` " +"para no confiar en la dirección IPv4 enviada desde el servidor remoto al " +"configurar un canal de datos pasivo. En su lugar, reutilizamos la dirección " +"IP del servidor ftp. Para código inusual que requiera el comportamiento " +"anterior, establezca un atributo ``trust_server_pasv_ipv4_address`` en su " +"instancia FTP en ``True``. (Ver :gh:`87451`)" #: ../Doc/whatsnew/3.8.rst:2287 ../Doc/whatsnew/3.8.rst:2307 -#, fuzzy msgid "Notable changes in Python 3.8.10" -msgstr "Cambios notables en Python 3.8.1" +msgstr "Cambios notables en Python 3.8.10" #: ../Doc/whatsnew/3.8.rst:2290 msgid "macOS 11.0 (Big Sur) and Apple Silicon Mac support" -msgstr "" +msgstr "Compatibilidad con macOS 11.0 (Big Sur) y Apple Silicon Mac" #: ../Doc/whatsnew/3.8.rst:2292 msgid "" @@ -4641,27 +4952,49 @@ msgid "" "3.9; to support a range of macOS versions, continue to target for and build " "on the oldest version in the range." msgstr "" +"A partir de la versión 3.8.10, Python ahora admite la compilación y " +"ejecución en macOS 11 (Big Sur) y en Apple Silicon Macs (basadas en la " +"arquitectura ``ARM64``). Ahora está disponible una nueva variante de " +"compilación universal, ``universal2``, que admite de forma nativa ``ARM64`` " +"y ``Intel 64`` en un conjunto de ejecutables. Tenga en cuenta que la " +"compatibilidad con \"vínculos débiles\", la creación de binarios destinados " +"a versiones más nuevas de macOS que también se ejecutarán correctamente en " +"versiones anteriores probando en tiempo de ejecución las funciones " +"faltantes, no se incluye en este backport de Python 3.9; Para admitir una " +"variedad de versiones de macOS, continúe buscando y desarrollando la versión " +"más antigua del rango." #: ../Doc/whatsnew/3.8.rst:2302 msgid "" -"(Originally contributed by Ronald Oussoren and Lawrence D'Anna in :gh:" -"`85272`, with fixes by FX Coudert and Eli Rykoff, and backported to 3.8 by " -"Maxime Bélanger and Ned Deily)" +"(Originally contributed by Ronald Oussoren and Lawrence D'Anna " +"in :gh:`85272`, with fixes by FX Coudert and Eli Rykoff, and backported to " +"3.8 by Maxime Bélanger and Ned Deily)" msgstr "" +"(Contribuido originalmente por Ronald Oussoren y Lawrence D'Anna " +"en :gh:`85272`, con correcciones de FX Coudert y Eli Rykoff, y adaptado a " +"3.8 por Maxime Bélanger y Ned Deily)" #: ../Doc/whatsnew/3.8.rst:2310 msgid "urllib.parse" -msgstr "" +msgstr "urllib.parse" #: ../Doc/whatsnew/3.8.rst:2312 msgid "" "The presence of newline or tab characters in parts of a URL allows for some " -"forms of attacks. Following the WHATWG specification that updates :rfc:" -"`3986`, ASCII newline ``\\n``, ``\\r`` and tab ``\\t`` characters are " -"stripped from the URL by the parser in :mod:`urllib.parse` preventing such " -"attacks. The removal characters are controlled by a new module level " -"variable ``urllib.parse._UNSAFE_URL_BYTES_TO_REMOVE``. (See :issue:`43882`)" -msgstr "" +"forms of attacks. Following the WHATWG specification that " +"updates :rfc:`3986`, ASCII newline ``\\n``, ``\\r`` and tab ``\\t`` " +"characters are stripped from the URL by the parser in :mod:`urllib.parse` " +"preventing such attacks. The removal characters are controlled by a new " +"module level variable ``urllib.parse._UNSAFE_URL_BYTES_TO_REMOVE``. " +"(See :issue:`43882`)" +msgstr "" +"La presencia de caracteres de nueva línea o tabulación en partes de una URL " +"permite algunas formas de ataques. Siguiendo la especificación WHATWG que " +"actualiza :rfc:`3986`, el analizador en :mod:`urllib.parse` elimina de la " +"URL los caracteres de nueva línea ASCII ``\\n``, ``\\r`` y tab ``\\t`` para " +"evitar tales ataques. Los caracteres de eliminación están controlados por " +"una nueva variable de nivel de módulo " +"``urllib.parse._UNSAFE_URL_BYTES_TO_REMOVE``. (Ver :issue:`43882`)" #: ../Doc/whatsnew/3.8.rst:2321 msgid "Notable changes in Python 3.8.12" @@ -4680,8 +5013,8 @@ msgstr "" "la izquierda en las cadenas de direcciones IPv4. Los ceros iniciales son " "ambiguos y algunas bibliotecas los interpretan como notación octal. Por " "ejemplo, la función heredada :func:`socket.inet_aton` trata los ceros " -"iniciales como notación octal. La implementación glibc del :func:`~socket." -"inet_pton` moderno no acepta ceros a la izquierda." +"iniciales como notación octal. La implementación glibc " +"del :func:`~socket.inet_pton` moderno no acepta ceros a la izquierda." #: ../Doc/whatsnew/3.8.rst:2333 msgid "" @@ -4692,9 +5025,8 @@ msgstr "" "actualizado a 3.8 por Achraf Merzouki)." #: ../Doc/whatsnew/3.8.rst:2337 -#, fuzzy msgid "Notable security feature in 3.8.14" -msgstr "Cambios notables en Python 3.8.1" +msgstr "Cambios notables en Python 3.8.14" #: ../Doc/whatsnew/3.8.rst:2339 msgid "" @@ -4708,11 +5040,20 @@ msgid "" "limitation ` documentation. The default limit is 4300 " "digits in string form." msgstr "" +"La conversión entre :class:`int` y :class:`str` en bases distintas de 2 " +"(binario), 4, 8 (octal), 16 (hexadecimal) o 32, como la base 10 (decimal), " +"ahora genera un :exc:`ValueError` si el número de dígitos en forma de cadena " +"está por encima de un límite para evitar posibles ataques de denegación de " +"servicio debido a la complejidad algorítmica. Esta es una mitigación " +"para :cve:`2020-10735`. Este límite se puede configurar o deshabilitar " +"mediante una variable de entorno, un indicador de línea de comando o las " +"API :mod:`sys`. Consulte la documentación de :ref:`integer string conversion " +"length limitation `. El límite predeterminado es 4300 " +"dígitos en forma de cadena." #: ../Doc/whatsnew/3.8.rst:2350 -#, fuzzy msgid "Notable changes in 3.8.17" -msgstr "Cambios notables en Python 3.8.1" +msgstr "Cambios notables en Python 3.8.17" #: ../Doc/whatsnew/3.8.rst:2355 msgid "" @@ -4724,3 +5065,11 @@ msgid "" "Python 3.14, the default will switch to ``'data'``. (Contributed by Petr " "Viktorin in :pep:`706`.)" msgstr "" +"Los métodos de extracción en :mod:`tarfile` y :func:`shutil.unpack_archive` " +"tienen un nuevo argumento, *filter*, que permite limitar funciones tar que " +"puedan resultar sorprendentes o peligrosas, como la creación de archivos " +"fuera del directorio de destino. Consulte :ref:`tarfile-extraction-filter` " +"para obtener más detalles. En Python 3.12, el uso sin el argumento *filter* " +"mostrará un :exc:`DeprecationWarning`. En Python 3.14, el valor " +"predeterminado cambiará a ``'data'``. (Aportado por Petr Viktorin " +"en :pep:`706`.)"