diff --git a/dictionaries/whatsnew_3.1.txt b/dictionaries/whatsnew_3.1.txt
index 416977a667..4afcdf27e5 100644
--- a/dictionaries/whatsnew_3.1.txt
+++ b/dictionaries/whatsnew_3.1.txt
@@ -8,6 +8,7 @@ Armin
Belopolsky
Bob
Brandl
+Camelot
Chu
Coghlan
Dalcrin
@@ -15,6 +16,7 @@ Derek
Diederich
Eby
Forgeot
+Gallahad
Georg
Guilherme
Ippolito
@@ -34,13 +36,36 @@ Roger
Ronacher
Ross
Serwy
+Sir
TestResult
Vajda
Vassalotti
+addHandler
+banana
+cbuiltins
could
+critical
+dept
+desc
+execute
for
found
+getLogger
+gimzo
+gizmo
handlers
icc
+lp
+mylog
+nL
+nRp
+naL
+natp
+nestablecer
+np
pickler
+region
+rename
+row
+skipUnless
ttk
diff --git a/whatsnew/3.1.po b/whatsnew/3.1.po
index be5dca7951..91a6faffe7 100644
--- a/whatsnew/3.1.po
+++ b/whatsnew/3.1.po
@@ -13,12 +13,12 @@ msgstr ""
"POT-Creation-Date: 2024-11-21 16:38-0300\n"
"PO-Revision-Date: 2020-10-22 15:48+0200\n"
"Last-Translator: \n"
-"Language: es\n"
"Language-Team: python-doc-es\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"Language: es\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"Generated-By: Babel 2.16.0\n"
#: ../Doc/whatsnew/3.1.rst:3
@@ -47,16 +47,16 @@ msgstr "PEP 372: Diccionarios ordenados"
#: ../Doc/whatsnew/3.1.rst:56
msgid ""
-"Regular Python dictionaries iterate over key/value pairs in arbitrary order. "
-"Over the years, a number of authors have written alternative implementations "
-"that remember the order that the keys were originally inserted. Based on "
-"the experiences from those implementations, a new :class:`collections."
-"OrderedDict` class has been introduced."
+"Regular Python dictionaries iterate over key/value pairs in arbitrary order."
+" Over the years, a number of authors have written alternative "
+"implementations that remember the order that the keys were originally "
+"inserted. Based on the experiences from those implementations, a new "
+":class:`collections.OrderedDict` class has been introduced."
msgstr ""
"Los diccionarios de Python normales iteran sobre los pares clave/valor en "
"orden arbitrario. A través de los años, varios autores han escrito "
-"implementaciones alternativas que recuerdan el orden en el que se insertaron "
-"originalmente las claves. Basándose en las experiencias de esas "
+"implementaciones alternativas que recuerdan el orden en el que se insertaron"
+" originalmente las claves. Basándose en las experiencias de esas "
"implementaciones, una nueva clase :class:`collections.OrderedDict` ha sido "
"introducida."
@@ -68,10 +68,10 @@ msgid ""
"original insertion position is left unchanged. Deleting an entry and "
"reinserting it will move it to the end."
msgstr ""
-"La API de OrderedDict es sustancialmente la misma que la de los diccionarios "
-"normales, pero iterará sobre las claves y los valores en un orden "
-"garantizado, dependiendo de cuándo se insertó una clave por primera vez. Si "
-"una nueva entrada sobrescribe una entrada existente, la posición de "
+"La API de OrderedDict es sustancialmente la misma que la de los diccionarios"
+" normales, pero iterará sobre las claves y los valores en un orden "
+"garantizado, dependiendo de cuándo se insertó una clave por primera vez. Si"
+" una nueva entrada sobrescribe una entrada existente, la posición de "
"inserción original se deja sin cambios. Eliminar una entrada y volver a "
"insertarla la moverá hasta el final."
@@ -89,13 +89,14 @@ msgid ""
msgstr ""
"La biblioteca estándar ahora admite el uso de diccionarios ordenados en "
"varios módulos. El módulo :mod:`configparser` los usa por defecto. Esto "
-"permite leer, modificar y volver a escribir los archivos de configuración en "
-"su orden original. El método *_asdict()* para :func:`collections.namedtuple` "
-"ahora devuelve un diccionario ordenado con los valores que aparecen en el "
-"mismo orden que los índices de tupla subyacentes. El módulo :mod:`json` se "
-"está construyendo con un *object_pairs_hook* para permitir que el "
-"decodificador construya OrderedDicts. También se agregó soporte para "
-"herramientas de terceros como `PyYAML `_."
+"permite leer, modificar y volver a escribir los archivos de configuración en"
+" su orden original. El método *_asdict()* para "
+":func:`collections.namedtuple` ahora devuelve un diccionario ordenado con "
+"los valores que aparecen en el mismo orden que los índices de tupla "
+"subyacentes. El módulo :mod:`json` se está construyendo con un "
+"*object_pairs_hook* para permitir que el decodificador construya "
+"OrderedDicts. También se agregó soporte para herramientas de terceros como "
+"`PyYAML `_."
#: ../Doc/whatsnew/3.1.rst:80
msgid ":pep:`372` - Ordered Dictionaries"
@@ -103,17 +104,19 @@ msgstr ":pep:`372` - Diccionarios ordenados"
#: ../Doc/whatsnew/3.1.rst:80
msgid ""
-"PEP written by Armin Ronacher and Raymond Hettinger. Implementation written "
-"by Raymond Hettinger."
+"PEP written by Armin Ronacher and Raymond Hettinger. Implementation written"
+" by Raymond Hettinger."
msgstr ""
"PEP escrito por Armin Ronacher y Raymond Hettinger. Implementación escrita "
"por Raymond Hettinger."
#: ../Doc/whatsnew/3.1.rst:83
msgid ""
-"Since an ordered dictionary remembers its insertion order, it can be used in "
-"conjunction with sorting to make a sorted dictionary::"
+"Since an ordered dictionary remembers its insertion order, it can be used in"
+" conjunction with sorting to make a sorted dictionary::"
msgstr ""
+"Dado que un diccionario ordenado recuerda su orden de inserción, se puede "
+"utilizar junto con la ordenación para crear un diccionario ordenado:"
#: ../Doc/whatsnew/3.1.rst:86
msgid ""
@@ -132,6 +135,20 @@ msgid ""
">>> OrderedDict(sorted(d.items(), key=lambda t: len(t[0])))\n"
"OrderedDict([('pear', 1), ('apple', 4), ('orange', 2), ('banana', 3)])"
msgstr ""
+">>> # diccionario regular sin clasificar\n"
+">>> d = {'banana': 3, 'manzana':4, 'pera': 1, 'naranja': 2}\n"
+"\n"
+">>> # diccionario ordenado por clave\n"
+">>> OrderedDict(sorted(d.items(), key=lambda t: t[0]))\n"
+"OrderedDict([('manzana', 4), ('banana', 3), ('naranja', 2), ('pera', 1)])\n"
+"\n"
+">>> # diccionario ordenado por valor\n"
+">>> OrderedDict(sorted(d.items(), key=lambda t: t[1]))\n"
+"OrderedDict([('pera', 1), ('naranja', 2), ('banana', 3), ('manzana', 4)])\n"
+"\n"
+">>> # diccionario ordenado por longitud de la clave cadena\n"
+">>> OrderedDict(sorted(d.items(), key=lambda t: len(t[0])))\n"
+"OrderedDict([('pera', 1), ('manzana', 4), ('naranja', 2), ('banana', 3)])"
#: ../Doc/whatsnew/3.1.rst:101
msgid ""
@@ -139,6 +156,9 @@ msgid ""
"deleted. But when new keys are added, the keys are appended to the end and "
"the sort is not maintained."
msgstr ""
+"Los nuevos diccionarios ordenados mantienen su orden de clasificación cuando"
+" se eliminan entradas, pero cuando se agregan nuevas claves, estas se "
+"agregan al final y no se mantiene el orden."
#: ../Doc/whatsnew/3.1.rst:107
msgid "PEP 378: Format Specifier for Thousands Separator"
@@ -146,14 +166,14 @@ msgstr "PEP 378: Especificador de formato para el separador de miles"
#: ../Doc/whatsnew/3.1.rst:109
msgid ""
-"The built-in :func:`format` function and the :meth:`str.format` method use a "
-"mini-language that now includes a simple, non-locale aware way to format a "
+"The built-in :func:`format` function and the :meth:`str.format` method use a"
+" mini-language that now includes a simple, non-locale aware way to format a "
"number with a thousands separator. That provides a way to humanize a "
"program's output, improving its professional appearance and readability::"
msgstr ""
-"La función incorporada :func:`format` y el método :meth:`str.format` usan un "
-"mini-lenguaje que ahora incluye una forma simple, que no tiene en cuenta la "
-"configuración regional, de formatear un número con un separador de miles. "
+"La función incorporada :func:`format` y el método :meth:`str.format` usan un"
+" mini-lenguaje que ahora incluye una forma simple, que no tiene en cuenta la"
+" configuración regional, de formatear un número con un separador de miles. "
"Eso proporciona una manera de humanizar la salida de un programa, mejorando "
"su apariencia profesional y legibilidad::"
@@ -168,26 +188,34 @@ msgid ""
">>> format(Decimal('1234567.89'), ',f')\n"
"'1,234,567.89'"
msgstr ""
+">>> formato(1234567, ',d')\n"
+"'1,234,567'\n"
+">>> formato(1234567.89, ',.2f')\n"
+"'1,234,567.89'\n"
+">>> formato(12345.6 + 8901234.12j, ',f')\n"
+"'12,345.600000+8,901,234.120000j'\n"
+">>> formato(Decimal('1234567.89'), ',f')\n"
+"'1,234,567.89'"
#: ../Doc/whatsnew/3.1.rst:123
msgid ""
-"The supported types are :class:`int`, :class:`float`, :class:`complex` and :"
-"class:`decimal.Decimal`."
+"The supported types are :class:`int`, :class:`float`, :class:`complex` and "
+":class:`decimal.Decimal`."
msgstr ""
-"Los tipos soportados son :class:`int`, :class:`float`, :class:`complex` y :"
-"class:`decimal.Decimal`."
+"Los tipos soportados son :class:`int`, :class:`float`, :class:`complex` y "
+":class:`decimal.Decimal`."
#: ../Doc/whatsnew/3.1.rst:126
msgid ""
"Discussions are underway about how to specify alternative separators like "
-"dots, spaces, apostrophes, or underscores. Locale-aware applications should "
-"use the existing *n* format specifier which already has some support for "
+"dots, spaces, apostrophes, or underscores. Locale-aware applications should"
+" use the existing *n* format specifier which already has some support for "
"thousands separators."
msgstr ""
"Se está discutiendo cómo especificar separadores alternativos como puntos, "
"espacios, apóstrofos o guiones bajos. Las aplicaciones que reconocen la "
-"configuración regional deben usar el especificador de formato *n* existente, "
-"que ya es compatible con el separadores de miles."
+"configuración regional deben usar el especificador de formato *n* existente,"
+" que ya es compatible con el separadores de miles."
#: ../Doc/whatsnew/3.1.rst:134
msgid ":pep:`378` - Format Specifier for Thousands Separator"
@@ -212,16 +240,16 @@ msgstr "Algunos cambios pequeños en el núcleo del lenguaje Python son:"
#: ../Doc/whatsnew/3.1.rst:143
msgid ""
"Directories and zip archives containing a :file:`__main__.py` file can now "
-"be executed directly by passing their name to the interpreter. The directory/"
-"zipfile is automatically inserted as the first entry in sys.path. "
-"(Suggestion and initial patch by Andy Chu; revised patch by Phillip J. Eby "
-"and Nick Coghlan; :issue:`1739468`.)"
+"be executed directly by passing their name to the interpreter. The "
+"directory/zipfile is automatically inserted as the first entry in sys.path."
+" (Suggestion and initial patch by Andy Chu; revised patch by Phillip J. Eby"
+" and Nick Coghlan; :issue:`1739468`.)"
msgstr ""
"Los directorios y archivos zip que contienen un archivo :file:`__main__.py` "
-"pueden ahora ser ejecutados directamente pasando su nombre al intérprete. El "
-"directorio/archivo zip es automáticamente insertado como la primera entrada "
-"en sys.path. (Sugerencia y parche inicial por Andy Chu; parche revisado por "
-"Phillip J. Eby y Nick Coghlan; :issue:`1739468`.)"
+"pueden ahora ser ejecutados directamente pasando su nombre al intérprete. El"
+" directorio/archivo zip es automáticamente insertado como la primera entrada"
+" en sys.path. (Sugerencia y parche inicial por Andy Chu; parche revisado "
+"por Phillip J. Eby y Nick Coghlan; :issue:`1739468`.)"
#: ../Doc/whatsnew/3.1.rst:149
msgid ""
@@ -244,14 +272,24 @@ msgid ""
">>> (n+1).bit_length()\n"
"124"
msgstr ""
+">>> n = 37\n"
+">>> bin(37)\n"
+"'0b100101'\n"
+">>> n.bit_length()\n"
+"6\n"
+">>> n = 2**123-1\n"
+">>> n.bit_length()\n"
+"123\n"
+">>> (n+1).bit_length()\n"
+"124"
#: ../Doc/whatsnew/3.1.rst:163
msgid ""
"(Contributed by Fredrik Johansson, Victor Stinner, Raymond Hettinger, and "
"Mark Dickinson; :issue:`3439`.)"
msgstr ""
-"(Contribución de Fredrik Johansson, Victor Stinner, Raymond Hettinger y Mark "
-"Dickinson; :issue:`3439`.)"
+"(Contribución de Fredrik Johansson, Victor Stinner, Raymond Hettinger y Mark"
+" Dickinson; :issue:`3439`.)"
#: ../Doc/whatsnew/3.1.rst:166
msgid ""
@@ -265,11 +303,13 @@ msgid ""
">>> 'Sir {} of {}'.format('Gallahad', 'Camelot')\n"
"'Sir Gallahad of Camelot'"
msgstr ""
+">>> 'Señor {} de {}'.format('Gallahad', 'Camelot')\n"
+"'Sir Gallahad de Camelot'"
#: ../Doc/whatsnew/3.1.rst:172
msgid ""
-"Formerly, the string would have required numbered fields such as: ``'Sir {0} "
-"of {1}'``."
+"Formerly, the string would have required numbered fields such as: ``'Sir {0}"
+" of {1}'``."
msgstr ""
"Anteriormente, la cadena requería campos numerados como: ``'Sir {0} of "
"{1}'``."
@@ -279,21 +319,20 @@ msgid "(Contributed by Eric Smith; :issue:`5237`.)"
msgstr "(Contribución de Eric Smith; :issue:`5237`.)"
#: ../Doc/whatsnew/3.1.rst:177
-#, fuzzy
msgid ""
"The :func:`!string.maketrans` function is deprecated and is replaced by new "
"static methods, :meth:`bytes.maketrans` and :meth:`bytearray.maketrans`. "
-"This change solves the confusion around which types were supported by the :"
-"mod:`string` module. Now, :class:`str`, :class:`bytes`, and :class:"
-"`bytearray` each have their own **maketrans** and **translate** methods with "
-"intermediate translation tables of the appropriate type."
-msgstr ""
-"La función :func:`string.maketrans` está en desuso y se reemplaza por nuevos "
-"métodos estáticos, :meth:`bytes.maketrans` y :meth:`bytearray.maketrans`. "
-"Este cambio resuelve la confusión en torno a los tipos que fueron soportados "
-"por el módulo :mod:`string`. Ahora, :class:`str`, :class:`bytes` y :class:"
-"`bytearray` tienen sus propios métodos **maketrans** y **translate** con "
-"tablas de traducción intermedias del tipo adecuado."
+"This change solves the confusion around which types were supported by the "
+":mod:`string` module. Now, :class:`str`, :class:`bytes`, and "
+":class:`bytearray` each have their own **maketrans** and **translate** "
+"methods with intermediate translation tables of the appropriate type."
+msgstr ""
+"La función :func:`!string.maketrans` ha quedado obsoleta y se ha reemplazado"
+" por nuevos métodos estáticos, :meth:`bytes.maketrans` y "
+":meth:`bytearray.maketrans`. Este cambio resuelve la confusión sobre qué "
+"tipos eran compatibles con el módulo :mod:`string`. Ahora, :class:`str`, "
+":class:`bytes` y :class:`bytearray` tienen sus propios métodos **maketrans**"
+" y **translate** con tablas de traducción intermedias del tipo adecuado."
#: ../Doc/whatsnew/3.1.rst:184
msgid "(Contributed by Georg Brandl; :issue:`5675`.)"
@@ -304,8 +343,8 @@ msgid ""
"The syntax of the :keyword:`with` statement now allows multiple context "
"managers in a single statement::"
msgstr ""
-"La sintaxis de la sentencia :keyword:`with` ahora permite múltiples gestores "
-"de contexto en una sola declaración::"
+"La sintaxis de la sentencia :keyword:`with` ahora permite múltiples gestores"
+" de contexto en una sola declaración::"
#: ../Doc/whatsnew/3.1.rst:189
msgid ""
@@ -314,14 +353,17 @@ msgid ""
"... if '' in line:\n"
"... outfile.write(line)"
msgstr ""
+">>> con open('mylog.txt') como archivo de entrada, open('a.out', 'w') como archivo de salida:\n"
+"... para línea en archivo de entrada:\n"
+"... si '' está en línea:\n"
+"... archivo de salida.write(línea)"
#: ../Doc/whatsnew/3.1.rst:194
-#, fuzzy
msgid ""
"With the new syntax, the :func:`!contextlib.nested` function is no longer "
"needed and is now deprecated."
msgstr ""
-"Con la nueva sintaxis, la función :func:`contextlib.nested` ya no es "
+"Con la nueva sintaxis, la función :func:`!contextlib.nested` ya no es "
"necesaria y ahora está obsoleta."
#: ../Doc/whatsnew/3.1.rst:197
@@ -345,25 +387,25 @@ msgid ""
">>> round(1123, -2)\n"
"1100"
msgstr ""
+">>> redondear(1123, -2)\n"
+"1100"
#: ../Doc/whatsnew/3.1.rst:206
msgid "(Contributed by Mark Dickinson; :issue:`4707`.)"
msgstr "(Contribución de Mark Dickinson; :issue:`4707`.)"
#: ../Doc/whatsnew/3.1.rst:208
-#, fuzzy
msgid ""
"Python now uses David Gay's algorithm for finding the shortest floating-"
"point representation that doesn't change its value. This should help "
"mitigate some of the confusion surrounding binary floating-point numbers."
msgstr ""
"Python ahora utiliza el algoritmo de David Gay para encontrar la "
-"representación de coma flotante más corta que no cambia su valor. Esto "
-"debería ayudar a mitigar parte de la confusión que rodea a los números de "
-"coma flotante binarios."
+"representación de punto flotante más corta que no cambia su valor. Esto "
+"debería ayudar a mitigar parte de la confusión que rodea a los números "
+"binarios de punto flotante."
#: ../Doc/whatsnew/3.1.rst:213
-#, fuzzy
msgid ""
"The significance is easily seen with a number like ``1.1`` which does not "
"have an exact equivalent in binary floating point. Since there is no exact "
@@ -373,34 +415,33 @@ msgid ""
"nearest value was and still is used in subsequent floating-point "
"calculations."
msgstr ""
-"La importancia se ve fácilmente con un número como ``1.1``, que no tiene un "
-"equivalente exacto en coma flotante binaria. Puesto que no hay un "
+"La importancia se aprecia fácilmente con un número como ``1.1``, que no "
+"tiene un equivalente exacto en coma flotante binaria. Como no hay un "
"equivalente exacto, una expresión como ``float('1.1')`` se evalúa como el "
"valor representable más cercano, que es ``0x1.199999999999ap+0`` en "
"hexadecimal o ``1.100000000000000088817841970012523233890533447265625`` en "
-"decimal. Ese valor más cercano fue y todavía es utilizado en los cálculos de "
-"coma flotante posteriores."
+"decimal. Ese valor más cercano se utilizó y todavía se utiliza en cálculos "
+"de coma flotante posteriores."
#: ../Doc/whatsnew/3.1.rst:221
-#, fuzzy
msgid ""
"What is new is how the number gets displayed. Formerly, Python used a "
"simple approach. The value of ``repr(1.1)`` was computed as ``format(1.1, "
"'.17g')`` which evaluated to ``'1.1000000000000001'``. The advantage of "
"using 17 digits was that it relied on IEEE-754 guarantees to assure that "
"``eval(repr(1.1))`` would round-trip exactly to its original value. The "
-"disadvantage is that many people found the output to be confusing (mistaking "
-"intrinsic limitations of binary floating-point representation as being a "
+"disadvantage is that many people found the output to be confusing (mistaking"
+" intrinsic limitations of binary floating-point representation as being a "
"problem with Python itself)."
msgstr ""
-"La novedad es cómo se muestra el número. Anteriormente, Python usaba un "
-"enfoque simple. El valor de ``repr(1.1)`` se calculaba como ``format(1.1, "
-"'.17g')`` que era evaluado como ``'1.1000000000000001'``. La ventaja de "
-"utilizar 17 dígitos era que se basaba en las garantías de IEEE-754 para "
-"asegurar que ``eval(repr(1.1))`` se volviera a redondear exactamente a su "
-"valor original. La desventaja es que muchas personas encontraban el "
-"resultado confuso (confundiendo las limitaciones intrínsecas de la "
-"representación de coma flotante binaria con un problema con Python en sí)."
+"Lo nuevo es cómo se muestra el número. Anteriormente, Python utilizaba un "
+"enfoque simple. El valor de ``repr(1.1)`` se calculaba como ``format(1.1, "
+"'.17g')``, que se evaluaba como ``'1.1000000000000001'``. La ventaja de "
+"utilizar 17 dígitos era que dependía de las garantías IEEE-754 para asegurar"
+" que ``eval(repr(1.1))`` regresaría exactamente a su valor original. La "
+"desventaja es que muchas personas encontraron que el resultado era confuso "
+"(confundiendo las limitaciones intrínsecas de la representación binaria de "
+"punto flotante con un problema del propio Python)."
#: ../Doc/whatsnew/3.1.rst:230
msgid ""
@@ -411,8 +452,8 @@ msgid ""
msgstr ""
"El nuevo algoritmo para ``repr(1.1)`` es más inteligente y retorna "
"``'1.1'``. Efectivamente, busca todas las representaciones de cadenas "
-"equivalentes (las que se almacenan con el mismo valor flotante subyacente) y "
-"retorna la representación más corta."
+"equivalentes (las que se almacenan con el mismo valor flotante subyacente) y"
+" retorna la representación más corta."
#: ../Doc/whatsnew/3.1.rst:235
msgid ""
@@ -421,12 +462,11 @@ msgid ""
"``1.1 + 2.2 != 3.3`` even though the representations may suggest otherwise."
msgstr ""
"El nuevo algoritmo tiende a emitir representaciones más limpias cuando es "
-"posible, pero esto no cambia los valores subyacentes. Por lo tanto, todavía "
-"se da el caso ``1.1 + 2.2 != 3.3``, aún cuando las representaciones puedan "
+"posible, pero esto no cambia los valores subyacentes. Por lo tanto, todavía"
+" se da el caso ``1.1 + 2.2 != 3.3``, aún cuando las representaciones puedan "
"sugerir lo contrario."
#: ../Doc/whatsnew/3.1.rst:239
-#, fuzzy
msgid ""
"The new algorithm depends on certain features in the underlying floating-"
"point implementation. If the required features are not found, the old "
@@ -434,10 +474,10 @@ msgid ""
"cross-platform portability by using the old algorithm."
msgstr ""
"El nuevo algoritmo depende de ciertas características de la implementación "
-"de coma flotante subyacente. Si no se encuentran las características "
-"necesarias, el algoritmo antiguo seguirá utilizándose. Además, los "
-"protocolos de pickle de texto aseguran la portabilidad multiplataforma "
-"mediante el algoritmo antiguo."
+"de punto flotante subyacente. Si no se encuentran las características "
+"requeridas, se seguirá utilizando el algoritmo antiguo. Además, los "
+"protocolos de pickle de texto garantizan la portabilidad entre plataformas "
+"mediante el uso del algoritmo antiguo."
#: ../Doc/whatsnew/3.1.rst:244
msgid "(Contributed by Eric Smith and Mark Dickinson; :issue:`1580`)"
@@ -449,8 +489,8 @@ msgstr "Módulos nuevos, mejorados y obsoletos"
#: ../Doc/whatsnew/3.1.rst:249
msgid ""
-"Added a :class:`collections.Counter` class to support convenient counting of "
-"unique items in a sequence or iterable::"
+"Added a :class:`collections.Counter` class to support convenient counting of"
+" unique items in a sequence or iterable::"
msgstr ""
"Se ha añadido una clase :class:`collections.Counter` para admitir el "
"recuento conveniente de elementos únicos en una secuencia o una iteración::"
@@ -460,6 +500,8 @@ msgid ""
">>> Counter(['red', 'blue', 'red', 'green', 'blue', 'blue'])\n"
"Counter({'blue': 3, 'red': 2, 'green': 1})"
msgstr ""
+">>> Contador(['rojo', 'azul', 'rojo', 'verde', 'azul', 'azul'])\n"
+"Contador({'azul': 3, 'rojo': 2, 'verde': 1})"
#: ../Doc/whatsnew/3.1.rst:255
msgid "(Contributed by Raymond Hettinger; :issue:`1696199`.)"
@@ -471,8 +513,8 @@ msgid ""
"set. The basic idea of ttk is to separate, to the extent possible, the code "
"implementing a widget's behavior from the code implementing its appearance."
msgstr ""
-"Se ha añadido un nuevo módulo :mod:`tkinter.ttk` para acceder al conjunto de "
-"widgets temáticos de Tk. La idea básica de ttk es separar, dentro de lo "
+"Se ha añadido un nuevo módulo :mod:`tkinter.ttk` para acceder al conjunto de"
+" widgets temáticos de Tk. La idea básica de ttk es separar, dentro de lo "
"posible, el código que implementa el comportamiento de un widget del código "
"que implementa su apariencia."
@@ -494,6 +536,9 @@ msgid ""
">>> with gzip.GzipFile(filename, \"wb\") as f:\n"
"... f.write(b\"xxx\")"
msgstr ""
+">>> # Cerrar automáticamente el archivo después de escribir\n"
+">>> con gzip.GzipFile(filename, \"wb\") como f:\n"
+"... f.write(b\"xxx\")"
#: ../Doc/whatsnew/3.1.rst:270
msgid "(Contributed by Antoine Pitrou.)"
@@ -501,9 +546,9 @@ msgstr "(Contribución de Antoine Pitrou.)"
#: ../Doc/whatsnew/3.1.rst:272
msgid ""
-"The :mod:`decimal` module now supports methods for creating a decimal object "
-"from a binary :class:`float`. The conversion is exact but can sometimes be "
-"surprising::"
+"The :mod:`decimal` module now supports methods for creating a decimal object"
+" from a binary :class:`float`. The conversion is exact but can sometimes be"
+" surprising::"
msgstr ""
"El módulo :mod:`decimal` ahora admite métodos para crear un objeto decimal "
"de un :class:`float` binario. La conversión es exacta pero puede ser a "
@@ -514,6 +559,8 @@ msgid ""
">>> Decimal.from_float(1.1)\n"
"Decimal('1.100000000000000088817841970012523233890533447265625')"
msgstr ""
+">>> Decimal.from_float(1.1)\n"
+"Decimal('1.100000000000000088817841970012523233890533447265625')"
#: ../Doc/whatsnew/3.1.rst:279
msgid ""
@@ -531,21 +578,21 @@ msgstr "(Contribución de Raymond Hettinger y Mark Dickinson.)"
#: ../Doc/whatsnew/3.1.rst:285
msgid ""
-"The :mod:`itertools` module grew two new functions. The :func:`itertools."
-"combinations_with_replacement` function is one of four for generating "
-"combinatorics including permutations and Cartesian products. The :func:"
-"`itertools.compress` function mimics its namesake from APL. Also, the "
-"existing :func:`itertools.count` function now has an optional *step* "
-"argument and can accept any type of counting sequence including :class:"
-"`fractions.Fraction` and :class:`decimal.Decimal`::"
+"The :mod:`itertools` module grew two new functions. The "
+":func:`itertools.combinations_with_replacement` function is one of four for "
+"generating combinatorics including permutations and Cartesian products. The"
+" :func:`itertools.compress` function mimics its namesake from APL. Also, "
+"the existing :func:`itertools.count` function now has an optional *step* "
+"argument and can accept any type of counting sequence including "
+":class:`fractions.Fraction` and :class:`decimal.Decimal`::"
msgstr ""
-"El módulo :mod:`itertools` desarrolló dos nuevas funciones. La función :"
-"func:`itertools.combinations_with_replacement` es una de las cuatro para "
+"El módulo :mod:`itertools` desarrolló dos nuevas funciones. La función "
+":func:`itertools.combinations_with_replacement` es una de las cuatro para "
"generar combinatorias que incluyen permutaciones y productos cartesianos. "
"La función :func:`itertools.compress` imita su homónimo de APL. Además, la "
"función existente :func:`itertools.count` tiene ahora un argumento *step* "
-"opcional y puede aceptar cualquier tipo de secuencia de conteo, incluyendo :"
-"class:`fractions.Fraction` y :class:`decimal.Decimal`::"
+"opcional y puede aceptar cualquier tipo de secuencia de conteo, incluyendo "
+":class:`fractions.Fraction` y :class:`decimal.Decimal`::"
#: ../Doc/whatsnew/3.1.rst:294
msgid ""
@@ -559,6 +606,15 @@ msgid ""
">>> [next(c), next(c), next(c), next(c)]\n"
"[Fraction(1, 2), Fraction(2, 3), Fraction(5, 6), Fraction(1, 1)]"
msgstr ""
+">>> [p+q para p,q en combinaciones_con_reemplazo('LOVE', 2)]\n"
+"['LL', 'LO', 'LV', 'LE', 'OO', 'OV', 'OE', 'VV', 'VE', 'EE']\n"
+"\n"
+">>> lista(comprimir(datos=rango(10), selectores=[0,0,1,1,0,1,0,1,0,0]))\n"
+"[2, 3, 5, 7]\n"
+"\n"
+">>> c = conteo(inicio=Fracción(1,2), paso=Fracción(1,6))\n"
+">>> [siguiente(c), siguiente(c), siguiente(c), siguiente(c)]\n"
+"[Fracción(1, 2), Fracción(2, 3), Fracción(5, 6), Fracción(1, 1)]"
#: ../Doc/whatsnew/3.1.rst:304
msgid "(Contributed by Raymond Hettinger.)"
@@ -567,15 +623,15 @@ msgstr "(Contribución de Raymond Hettinger.)"
#: ../Doc/whatsnew/3.1.rst:306
msgid ""
":func:`collections.namedtuple` now supports a keyword argument *rename* "
-"which lets invalid fieldnames be automatically converted to positional names "
-"in the form _0, _1, etc. This is useful when the field names are being "
+"which lets invalid fieldnames be automatically converted to positional names"
+" in the form _0, _1, etc. This is useful when the field names are being "
"created by an external source such as a CSV header, SQL field list, or user "
"input::"
msgstr ""
":func:`collections.namedtuple` ahora admite un argumento de palabra clave "
"*rename* que permite que los campos de nombre inválidos se conviertan "
-"automáticamente en nombres posicionados de la forma _0, _1, etc. Esto es de "
-"utilidad cuando los nombres del campo están siendo creados por una fuente "
+"automáticamente en nombres posicionados de la forma _0, _1, etc. Esto es de"
+" utilidad cuando los nombres del campo están siendo creados por una fuente "
"externa como un encabezado CSV, una lista de campos SQL, o la entrada del "
"usuario::"
@@ -592,6 +648,16 @@ msgid ""
" UserQuery(region='North', dept='Accounting', _2=37),\n"
" UserQuery(region='West', dept='Sales', _2=419)]"
msgstr ""
+">>> consulta = entrada()\n"
+"SELECT región, departamento, count(*) FROM main GROUPBY region, dept\n"
+"\n"
+">>> cursor.execute(query)\n"
+">>> query_fields = [desc[0] for desc in cursor.description]\n"
+">>> UserQuery = namedtuple('UserQuery', query_fields, rename=True)\n"
+">>> pprint.pprint([UserQuery(*row) para la fila en el cursor])\n"
+"[UserQuery(región='Sur', departamento='Envíos', _2=185),\n"
+"UserQuery(región='Norte', departamento='Contabilidad', _2=37),\n"
+"UserQuery(región='Oeste', departamento='Ventas', _2=419)]"
#: ../Doc/whatsnew/3.1.rst:323
msgid "(Contributed by Raymond Hettinger; :issue:`1818`.)"
@@ -611,22 +677,25 @@ msgstr "(Contribución de Gregory Smith.)"
#: ../Doc/whatsnew/3.1.rst:330
msgid ""
-"The :mod:`logging` module now implements a simple :class:`logging."
-"NullHandler` class for applications that are not using logging but are "
-"calling library code that does. Setting-up a null handler will suppress "
-"spurious warnings such as \"No handlers could be found for logger foo\"::"
-msgstr ""
-"El módulo :mod:`logging` ahora implementa una clase simple :class:`logging."
-"NullHandler` para aplicaciones que no utilizan el registro pero llaman al "
-"código de una biblioteca que si lo hace. La configuración de un controlador "
-"nulo suprimirá las advertencias falsas como \"No handlers could be found for "
+"The :mod:`logging` module now implements a simple "
+":class:`logging.NullHandler` class for applications that are not using "
+"logging but are calling library code that does. Setting-up a null handler "
+"will suppress spurious warnings such as \"No handlers could be found for "
"logger foo\"::"
+msgstr ""
+"El módulo :mod:`logging` ahora implementa una clase simple "
+":class:`logging.NullHandler` para aplicaciones que no utilizan el registro "
+"pero llaman al código de una biblioteca que si lo hace. La configuración de"
+" un controlador nulo suprimirá las advertencias falsas como \"No handlers "
+"could be found for logger foo\"::"
#: ../Doc/whatsnew/3.1.rst:335
msgid ""
">>> h = logging.NullHandler()\n"
">>> logging.getLogger(\"foo\").addHandler(h)"
msgstr ""
+">>> h = registro.NullHandler()\n"
+">>> registro.getLogger(\"foo\").addHandler(h)"
#: ../Doc/whatsnew/3.1.rst:338
msgid "(Contributed by Vinay Sajip; :issue:`4384`)."
@@ -648,11 +717,12 @@ msgstr "(Contribución de Andi Vajda; :issue:`4195`.)"
#: ../Doc/whatsnew/3.1.rst:346
msgid ""
-"The :mod:`pdb` module can now access and display source code loaded via :mod:"
-"`zipimport` (or any other conformant :pep:`302` loader)."
+"The :mod:`pdb` module can now access and display source code loaded via "
+":mod:`zipimport` (or any other conformant :pep:`302` loader)."
msgstr ""
"El módulo :mod:`pdb` puede ahora acceder y mostrar el código fuente cargado "
-"a través de :mod:`zipimport` (o cualquier otro cargador conforme :pep:`302`)."
+"a través de :mod:`zipimport` (o cualquier otro cargador conforme "
+":pep:`302`)."
#: ../Doc/whatsnew/3.1.rst:349
msgid "(Contributed by Alexander Belopolsky; :issue:`4201`.)"
@@ -686,13 +756,13 @@ msgstr "(Contribución de David Laban; :issue:`4739`.)"
#: ../Doc/whatsnew/3.1.rst:361
msgid ""
-"The :mod:`unittest` module now supports skipping individual tests or classes "
-"of tests. And it supports marking a test as an expected failure, a test that "
-"is known to be broken, but shouldn't be counted as a failure on a "
+"The :mod:`unittest` module now supports skipping individual tests or classes"
+" of tests. And it supports marking a test as an expected failure, a test "
+"that is known to be broken, but shouldn't be counted as a failure on a "
"TestResult::"
msgstr ""
-"El módulo :mod:`unittest` ahora admite saltear pruebas individuales o clases "
-"de pruebas. Y admite marcar una prueba como una falla esperada, una prueba "
+"El módulo :mod:`unittest` ahora admite saltear pruebas individuales o clases"
+" de pruebas. Y admite marcar una prueba como una falla esperada, una prueba "
"que se sabe que está rota, pero que no debe contarse como una falla en un "
"TestResult::"
@@ -700,8 +770,7 @@ msgstr ""
msgid ""
"class TestGizmo(unittest.TestCase):\n"
"\n"
-" @unittest.skipUnless(sys.platform.startswith(\"win\"), \"requires "
-"Windows\")\n"
+" @unittest.skipUnless(sys.platform.startswith(\"win\"), \"requires Windows\")\n"
" def test_gizmo_on_windows(self):\n"
" ...\n"
"\n"
@@ -709,6 +778,15 @@ msgid ""
" def test_gimzo_without_required_library(self):\n"
" ..."
msgstr ""
+"clase TestGizmo(unittest.TestCase):\n"
+"\n"
+"@unittest.skipUnless(sys.platform.startswith(\"win\"), \"requiere Windows\")\n"
+"def test_gizmo_on_windows(self):\n"
+"...\n"
+"\n"
+"@unittest.expectedFailure\n"
+"def test_gimzo_without_required_library(self):\n"
+"..."
#: ../Doc/whatsnew/3.1.rst:376
msgid ""
@@ -724,57 +802,67 @@ msgid ""
" with self.assertRaises(ZeroDivisionError):\n"
" x / 0"
msgstr ""
+"def test_division_by_zero(self):\n"
+"con self.assertRaises(ZeroDivisionError):\n"
+"x / 0"
#: ../Doc/whatsnew/3.1.rst:383
-#, fuzzy
-msgid ""
-"In addition, several new assertion methods were added including :meth:"
-"`~unittest.TestCase.assertSetEqual`, :meth:`~unittest.TestCase."
-"assertDictEqual`, :meth:`!assertDictContainsSubset`, :meth:`~unittest."
-"TestCase.assertListEqual`, :meth:`~unittest.TestCase.assertTupleEqual`, :"
-"meth:`~unittest.TestCase.assertSequenceEqual`, :meth:`assertRaisesRegexp() "
-"`, :meth:`~unittest.TestCase."
-"assertIsNone`, and :meth:`~unittest.TestCase.assertIsNotNone`."
-msgstr ""
-"Además, se agregaron varios métodos de aserción nuevos, incluyendo :func:"
-"`assertSetEqual`, :func:`assertDictEqual`, :func:"
-"`assertDictContainsSubset`, :func:`assertListEqual`, :func:"
-"`assertTupleEqual`, :func:`assertSequenceEqual`, :func:"
-"`assertRaisesRegexp`, :func:`assertIsNone`, y :func:`assertIsNotNone`."
+msgid ""
+"In addition, several new assertion methods were added including "
+":meth:`~unittest.TestCase.assertSetEqual`, "
+":meth:`~unittest.TestCase.assertDictEqual`, "
+":meth:`!assertDictContainsSubset`, "
+":meth:`~unittest.TestCase.assertListEqual`, "
+":meth:`~unittest.TestCase.assertTupleEqual`, "
+":meth:`~unittest.TestCase.assertSequenceEqual`, :meth:`assertRaisesRegexp() "
+"`, "
+":meth:`~unittest.TestCase.assertIsNone`, and "
+":meth:`~unittest.TestCase.assertIsNotNone`."
+msgstr ""
+"Además, se agregaron varios métodos de afirmación nuevos, incluidos "
+":meth:`~unittest.TestCase.assertSetEqual`, "
+":meth:`~unittest.TestCase.assertDictEqual`, "
+":meth:`!assertDictContainsSubset`, "
+":meth:`~unittest.TestCase.assertListEqual`, "
+":meth:`~unittest.TestCase.assertTupleEqual`, "
+":meth:`~unittest.TestCase.assertSequenceEqual`, :meth:`assertRaisesRegexp() "
+"`, "
+":meth:`~unittest.TestCase.assertIsNone` y "
+":meth:`~unittest.TestCase.assertIsNotNone`."
#: ../Doc/whatsnew/3.1.rst:394
msgid "(Contributed by Benjamin Peterson and Antoine Pitrou.)"
msgstr "(Contribución de Benjamin Peterson y Antoine Pitrou.)"
#: ../Doc/whatsnew/3.1.rst:396
-#, fuzzy
msgid ""
-"The :mod:`io` module has three new constants for the :meth:`~io.IOBase.seek` "
-"method: :data:`~os.SEEK_SET`, :data:`~os.SEEK_CUR`, and :data:`~os.SEEK_END`."
+"The :mod:`io` module has three new constants for the :meth:`~io.IOBase.seek`"
+" method: :data:`~os.SEEK_SET`, :data:`~os.SEEK_CUR`, and "
+":data:`~os.SEEK_END`."
msgstr ""
-"El módulo :mod:`io` tiene tres nuevas constantes para el método :meth:"
-"`seek`: :data:`SEEK_SET`, :data:`SEEK_CUR` y :data:`SEEK_END`."
+"El módulo :mod:`io` tiene tres nuevas constantes para el método "
+":meth:`~io.IOBase.seek`: :data:`~os.SEEK_SET`, :data:`~os.SEEK_CUR` y "
+":data:`~os.SEEK_END`."
#: ../Doc/whatsnew/3.1.rst:399
-#, fuzzy
msgid "The :data:`sys.version_info` tuple is now a named tuple::"
-msgstr "La tupla :attr:`sys.version_info` es ahora una tupla nombrada::"
+msgstr "La tupla :data:`sys.version_info` ahora es una tupla con nombre:"
#: ../Doc/whatsnew/3.1.rst:401
msgid ""
">>> sys.version_info\n"
"sys.version_info(major=3, minor=1, micro=0, releaselevel='alpha', serial=2)"
msgstr ""
+">>> sys.version_info\n"
+"sys.version_info(mayor=3, menor=1, micro=0, nivel de versión='alfa', serial=2)"
#: ../Doc/whatsnew/3.1.rst:404
msgid "(Contributed by Ross Light; :issue:`4285`.)"
msgstr "(Contribución de Ross Light; :issue:`4285`.)"
#: ../Doc/whatsnew/3.1.rst:406
-#, fuzzy
msgid "The :mod:`!nntplib` and :mod:`imaplib` modules now support IPv6."
-msgstr ""
-"Los módulos :mod:`nntplib` y :mod:`imaplib` ahora tienen soporte de IPv6."
+msgstr "Los módulos :mod:`!nntplib` y :mod:`imaplib` ahora admiten IPv6."
#: ../Doc/whatsnew/3.1.rst:408
msgid "(Contributed by Derek Morr; :issue:`1655` and :issue:`1664`.)"
@@ -789,16 +877,16 @@ msgid ""
"Python 3. This change confounded efforts to share data between different "
"versions of Python. But now when protocol 2 or lower is selected, the "
"pickler will automatically use the old Python 2 names for both loading and "
-"dumping. This remapping is turned-on by default but can be disabled with the "
-"*fix_imports* option::"
+"dumping. This remapping is turned-on by default but can be disabled with the"
+" *fix_imports* option::"
msgstr ""
"El módulo :mod:`pickle` ha sido adaptado para una mejor interoperabilidad "
-"con 2.x cuando es usado con un protocolo 2 o menor. La reorganización de la "
-"biblioteca estándar cambió la referencia formal para varios objetos. Por "
+"con 2.x cuando es usado con un protocolo 2 o menor. La reorganización de la"
+" biblioteca estándar cambió la referencia formal para varios objetos. Por "
"ejemplo, ``__builtin__.set`` en Python 2 es llamado ``builtins.set`` en "
"Python 3. Este cambio confundió los esfuerzos de compartir datos entre "
-"diferentes versiones de Python. Pero ahora cuando el protocolo 2 o menor es "
-"seleccionado, el pickler va a usar automáticamente los nombres antiguos de "
+"diferentes versiones de Python. Pero ahora cuando el protocolo 2 o menor es"
+" seleccionado, el pickler va a usar automáticamente los nombres antiguos de "
"Python 2 tanto para carga como para volcado. Esta reasignación es activada "
"de manera predeterminada pero puede ser desactivada con la opción "
"*fix_imports*::"
@@ -811,14 +899,19 @@ msgid ""
">>> pickle.dumps(s, protocol=0, fix_imports=False)\n"
"b'cbuiltins\\nset\\np0\\n((lp1\\nL1L\\naL2L\\naL3L\\natp2\\nRp3\\n.'"
msgstr ""
+">>> s = {1, 2, 3}\n"
+">>> pickle.dumps(s, protocolo=0)\n"
+"b'c__builtin__\\nestablecer\\np0\\n((lp1\\nL1L\\naL2L\\naL3L\\natp2\\nRp3\\n.'\n"
+">>> pickle.dumps(s, protocolo=0, fix_imports=False)\n"
+"b'cbuiltins\\nestablecer\\np0\\n((lp1\\nL1L\\naL2L\\naL3L\\natp2\\nRp3\\n.'"
#: ../Doc/whatsnew/3.1.rst:426
msgid ""
-"An unfortunate but unavoidable side-effect of this change is that protocol 2 "
-"pickles produced by Python 3.1 won't be readable with Python 3.0. The latest "
-"pickle protocol, protocol 3, should be used when migrating data between "
-"Python 3.x implementations, as it doesn't attempt to remain compatible with "
-"Python 2.x."
+"An unfortunate but unavoidable side-effect of this change is that protocol 2"
+" pickles produced by Python 3.1 won't be readable with Python 3.0. The "
+"latest pickle protocol, protocol 3, should be used when migrating data "
+"between Python 3.x implementations, as it doesn't attempt to remain "
+"compatible with Python 2.x."
msgstr ""
"Un efecto secundario, desafortunado pero inevitable, de este cambio es que "
"los pickles del protocolo 2 producidos con Python 3.1 no serán legibles con "
@@ -834,17 +927,17 @@ msgstr ""
#: ../Doc/whatsnew/3.1.rst:434
msgid ""
-"A new module, :mod:`importlib` was added. It provides a complete, portable, "
-"pure Python reference implementation of the :keyword:`import` statement and "
-"its counterpart, the :func:`__import__` function. It represents a "
+"A new module, :mod:`importlib` was added. It provides a complete, portable,"
+" pure Python reference implementation of the :keyword:`import` statement and"
+" its counterpart, the :func:`__import__` function. It represents a "
"substantial step forward in documenting and defining the actions that take "
"place during imports."
msgstr ""
"Se agregó un nuevo módulo, :mod:`importlib`. Proporciona una implementación "
-"de referencia de Python completa, portátil y pura de la instrucción :keyword:"
-"`import` y su contraparte, la función :func:`__import__` . Representa un "
-"avance sustancial en la documentación y definición de las acciones que "
-"tienen lugar durante las importaciones."
+"de referencia de Python completa, portátil y pura de la instrucción "
+":keyword:`import` y su contraparte, la función :func:`__import__` . "
+"Representa un avance sustancial en la documentación y definición de las "
+"acciones que tienen lugar durante las importaciones."
#: ../Doc/whatsnew/3.1.rst:440
msgid "(Contributed by Brett Cannon.)"
@@ -860,8 +953,8 @@ msgstr "Se han agregado importantes mejoras de rendimiento:"
#: ../Doc/whatsnew/3.1.rst:447
msgid ""
-"The new I/O library (as defined in :pep:`3116`) was mostly written in Python "
-"and quickly proved to be a problematic bottleneck in Python 3.0. In Python "
+"The new I/O library (as defined in :pep:`3116`) was mostly written in Python"
+" and quickly proved to be a problematic bottleneck in Python 3.0. In Python "
"3.1, the I/O library has been entirely rewritten in C and is 2 to 20 times "
"faster depending on the task at hand. The pure Python version is still "
"available for experimentation purposes through the ``_pyio`` module."
@@ -881,8 +974,8 @@ msgstr "(Contribución de Amaury Forgeot d'Arc y Antoine Pitrou.)"
msgid ""
"Added a heuristic so that tuples and dicts containing only untrackable "
"objects are not tracked by the garbage collector. This can reduce the size "
-"of collections and therefore the garbage collection overhead on long-running "
-"programs, depending on their particular use of datatypes."
+"of collections and therefore the garbage collection overhead on long-running"
+" programs, depending on their particular use of datatypes."
msgstr ""
"Se ha añadido una heurística para que el recolector de basura no realice el "
"seguimiento de tuplas y diccionarios que contengan solo objetos no "
@@ -897,23 +990,23 @@ msgstr "(Contribución de Antoine Pitrou, :issue:`4688`.)"
#: ../Doc/whatsnew/3.1.rst:463
msgid ""
"Enabling a configure option named ``--with-computed-gotos`` on compilers "
-"that support it (notably: gcc, SunPro, icc), the bytecode evaluation loop is "
-"compiled with a new dispatch mechanism which gives speedups of up to 20%, "
+"that support it (notably: gcc, SunPro, icc), the bytecode evaluation loop is"
+" compiled with a new dispatch mechanism which gives speedups of up to 20%, "
"depending on the system, the compiler, and the benchmark."
msgstr ""
-"Habilitando una opción de configuración llamada ``--with-computed-gotos`` en "
-"compiladores que la admiten (en particular: gcc, SunPro, icc), el ciclo de "
+"Habilitando una opción de configuración llamada ``--with-computed-gotos`` en"
+" compiladores que la admiten (en particular: gcc, SunPro, icc), el ciclo de "
"evaluación del bytecode se compila con un nuevo mecanismo de despacho que "
"proporciona aceleraciones de hasta un 20% , dependiendo del sistema, del "
"compilador y del punto de referencia."
#: ../Doc/whatsnew/3.1.rst:469
msgid ""
-"(Contributed by Antoine Pitrou along with a number of other participants, :"
-"issue:`4753`)."
+"(Contributed by Antoine Pitrou along with a number of other participants, "
+":issue:`4753`)."
msgstr ""
-"(Contribución de Antoine Pitrou junto con varios otros participantes, :issue:"
-"`4753`)."
+"(Contribución de Antoine Pitrou junto con varios otros participantes, "
+":issue:`4753`)."
#: ../Doc/whatsnew/3.1.rst:472
msgid ""
@@ -931,16 +1024,16 @@ msgstr ""
#: ../Doc/whatsnew/3.1.rst:477
msgid ""
"The :mod:`json` module now has a C extension to substantially improve its "
-"performance. In addition, the API was modified so that json works only "
-"with :class:`str`, not with :class:`bytes`. That change makes the module "
-"closely match the `JSON specification `_ which is defined "
-"in terms of Unicode."
+"performance. In addition, the API was modified so that json works only with"
+" :class:`str`, not with :class:`bytes`. That change makes the module "
+"closely match the `JSON specification `_ which is defined"
+" in terms of Unicode."
msgstr ""
"El módulo :mod:`json` ahora tiene una extensión C para mejorar "
"sustancialmente su rendimiento. Además, se modificó la API para que json "
"funcione solo con :class:`str`, no con :class:`bytes`. Ese cambio hace que "
-"el módulo coincida estrechamente con el `JSON specification `_ que se define en términos de Unicode."
+"el módulo coincida estrechamente con el `JSON specification "
+"`_ que se define en términos de Unicode."
#: ../Doc/whatsnew/3.1.rst:483
msgid ""
@@ -955,8 +1048,8 @@ msgid ""
"Unpickling now interns the attribute names of pickled objects. This saves "
"memory and allows pickles to be smaller."
msgstr ""
-"La deserialización (*unpickling*) ahora interna los nombres de los atributos "
-"de los objetos serializados (*pickled*). Esto ahorra memoria y permite que "
+"La deserialización (*unpickling*) ahora interna los nombres de los atributos"
+" de los objetos serializados (*pickled*). Esto ahorra memoria y permite que "
"los pickles sean más pequeños."
#: ../Doc/whatsnew/3.1.rst:489
@@ -993,24 +1086,23 @@ msgid ""
"Integers are now stored internally either in base ``2**15`` or in base "
"``2**30``, the base being determined at build time. Previously, they were "
"always stored in base ``2**15``. Using base ``2**30`` gives significant "
-"performance improvements on 64-bit machines, but benchmark results on 32-bit "
-"machines have been mixed. Therefore, the default is to use base ``2**30`` "
-"on 64-bit machines and base ``2**15`` on 32-bit machines; on Unix, there's a "
-"new configure option ``--enable-big-digits`` that can be used to override "
+"performance improvements on 64-bit machines, but benchmark results on 32-bit"
+" machines have been mixed. Therefore, the default is to use base ``2**30`` "
+"on 64-bit machines and base ``2**15`` on 32-bit machines; on Unix, there's a"
+" new configure option ``--enable-big-digits`` that can be used to override "
"this default."
msgstr ""
"Los enteros ahora se almacenan internamente en base 2**15 o en base 2**30, "
"la base se determina en el momento de la construcción. Anteriormente, "
"siempre se almacenaban en base 2**15. El uso de base 2**30 ofrece mejoras "
-"significativas en el rendimiento en máquinas de 64 bits, pero los resultados "
-"de las pruebas comparativas en máquinas de 32 bits han sido diversos. Por lo "
-"tanto, el valor predeterminado es usar base 2**30 en máquinas de 64 bits y "
-"base 2**15 en máquinas de 32 bits; en Unix, hay una nueva opción de "
+"significativas en el rendimiento en máquinas de 64 bits, pero los resultados"
+" de las pruebas comparativas en máquinas de 32 bits han sido diversos. Por "
+"lo tanto, el valor predeterminado es usar base 2**30 en máquinas de 64 bits "
+"y base 2**15 en máquinas de 32 bits; en Unix, hay una nueva opción de "
"configuración ``--enable-big-digits`` que puede ser usada para sobre "
"escribir este valor predeterminado."
#: ../Doc/whatsnew/3.1.rst:513
-#, fuzzy
msgid ""
"Apart from the performance improvements this change should be invisible to "
"end users, with one exception: for testing and debugging purposes there's a "
@@ -1018,11 +1110,11 @@ msgid ""
"format, giving the number of bits per digit and the size in bytes of the C "
"type used to store each digit::"
msgstr ""
-"Aparte de las mejoras de rendimiento, este cambio debería ser invisible para "
-"los usuarios finales, con una excepción: para propósitos de prueba y "
-"depuración, hay un nuevo :attr:`sys.int_info` que proporciona información "
-"sobre el formato interno, dando el número de bits por dígito y el tamaño en "
-"bytes del tipo C utilizado para almacenar cada dígito::"
+"Aparte de las mejoras de rendimiento, este cambio debería ser invisible para"
+" los usuarios finales, con una excepción: para fines de prueba y depuración "
+"hay un nuevo :data:`sys.int_info` que proporciona información sobre el "
+"formato interno, dando el número de bits por dígito y el tamaño en bytes del"
+" tipo C utilizado para almacenar cada dígito:"
#: ../Doc/whatsnew/3.1.rst:519
msgid ""
@@ -1030,6 +1122,9 @@ msgid ""
">>> sys.int_info\n"
"sys.int_info(bits_per_digit=30, sizeof_digit=4)"
msgstr ""
+">>> import sys\n"
+">>> sys.int_info\n"
+"sys.int_info(bits_per_digit=30, sizeof_digit=4)"
#: ../Doc/whatsnew/3.1.rst:523
msgid "(Contributed by Mark Dickinson; :issue:`4258`.)"
@@ -1041,54 +1136,51 @@ msgid ""
"*pylong* by raising :exc:`OverflowError` instead of :exc:`TypeError`."
msgstr ""
"La función :c:func:`PyLong_AsUnsignedLongLong()` es ahora capaz de manejar "
-"un *pylong* negativo lanzando una excepción :exc:`OverflowError` en lugar "
-"de :exc:`TypeError`."
+"un *pylong* negativo lanzando una excepción :exc:`OverflowError` en lugar de"
+" :exc:`TypeError`."
#: ../Doc/whatsnew/3.1.rst:528
msgid "(Contributed by Mark Dickinson and Lisandro Dalcrin; :issue:`5175`.)"
msgstr "(Contribución de Mark Dickinson y Lisandro Dalcrin; :issue:`5175`.)"
#: ../Doc/whatsnew/3.1.rst:530
-#, fuzzy
msgid ""
"Deprecated :c:func:`!PyNumber_Int`. Use :c:func:`PyNumber_Long` instead."
msgstr ""
-":c:func:`PyNumber_Int` está ahora obsoleto. Utilice :c:func:`PyNumber_Long` "
-"en su lugar."
+":c:func:`!PyNumber_Int` está ahora obsoleto. Utilice "
+":c:func:`PyNumber_Long` en su lugar."
#: ../Doc/whatsnew/3.1.rst:532
msgid "(Contributed by Mark Dickinson; :issue:`4910`.)"
msgstr "(Contribución de Mark Dickinson; :issue:`4910`.)"
#: ../Doc/whatsnew/3.1.rst:534
-#, fuzzy
msgid ""
"Added a new :c:func:`PyOS_string_to_double` function to replace the "
-"deprecated functions :c:func:`!PyOS_ascii_strtod` and :c:func:`!"
-"PyOS_ascii_atof`."
+"deprecated functions :c:func:`!PyOS_ascii_strtod` and "
+":c:func:`!PyOS_ascii_atof`."
msgstr ""
-"Se agrega una nueva función :c:func:`PyOS_string_to_double` para reemplazar "
-"las funciones obsoletas :c:func:`PyOS_ascii_strtod` y :c:func:"
-"`PyOS_ascii_atof`."
+"Se agregó una nueva función :c:func:`PyOS_string_to_double` para reemplazar "
+"las funciones obsoletas :c:func:`!PyOS_ascii_strtod` y "
+":c:func:`!PyOS_ascii_atof`."
#: ../Doc/whatsnew/3.1.rst:537
msgid "(Contributed by Mark Dickinson; :issue:`5914`.)"
msgstr "(Contribución de Mark Dickinson; :issue:`5914`.)"
#: ../Doc/whatsnew/3.1.rst:539
-#, fuzzy
msgid ""
-"Added :c:type:`PyCapsule` as a replacement for the :c:type:`!PyCObject` API. "
-"The principal difference is that the new type has a well defined interface "
+"Added :c:type:`PyCapsule` as a replacement for the :c:type:`!PyCObject` API."
+" The principal difference is that the new type has a well defined interface "
"for passing typing safety information and a less complicated signature for "
"calling a destructor. The old type had a problematic API and is now "
"deprecated."
msgstr ""
-"Se agrega :c:type:`PyCapsule` como un reemplazo para la API :c:type:"
-"`PyCObject`. La principal diferencia es que el nuevo tipo tiene una interfaz "
-"bien definida para pasar información de seguridad de escritura y una firma "
-"menos complicada para llamar a un destructor. El tipo anterior tenía una API "
-"problemática y ahora está obsoleta."
+"Se agregó :c:type:`PyCapsule` como reemplazo de la API :c:type:`!PyCObject`."
+" La principal diferencia es que el nuevo tipo tiene una interfaz bien "
+"definida para pasar información de seguridad de tipado y una firma menos "
+"complicada para llamar a un destructor. El tipo anterior tenía una API "
+"problemática y ahora está obsoleto."
#: ../Doc/whatsnew/3.1.rst:545
msgid "(Contributed by Larry Hastings; :issue:`5630`.)"
@@ -1107,13 +1199,12 @@ msgstr ""
"correcciones de errores que pueden requerir cambios en su código:"
#: ../Doc/whatsnew/3.1.rst:553
-#, fuzzy
msgid ""
"The new floating-point string representations can break existing doctests. "
"For example::"
msgstr ""
-"Las nuevas representaciones de cadenas de coma flotante pueden romper las "
-"pruebas de documentación existentes. Por ejemplo::"
+"Las nuevas representaciones de cadenas de punto flotante pueden romper las "
+"pruebas de documentación existentes. Por ejemplo:"
#: ../Doc/whatsnew/3.1.rst:556
msgid ""
@@ -1137,6 +1228,25 @@ msgid ""
" 2.718281828459045\n"
"**********************************************************************"
msgstr ""
+"def e():\n"
+" '''Compute the base of natural logarithms.\n"
+"\n"
+" >>> e()\n"
+" 2.7182818284590451\n"
+"\n"
+" '''\n"
+" return sum(1/math.factorial(x) for x in reversed(range(30)))\n"
+"\n"
+"doctest.testmod()\n"
+"\n"
+"**********************************************************************\n"
+"Failed example:\n"
+" e()\n"
+"Expected:\n"
+" 2.7182818284590451\n"
+"Got:\n"
+" 2.718281828459045\n"
+"**********************************************************************"
#: ../Doc/whatsnew/3.1.rst:576
msgid ""