From 47a0974e22c2ad4f2a7c121355e7734d9f91733e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cristi=C3=A1n=20Maureira-Fredes?= Date: Sat, 23 Nov 2024 23:06:12 +0100 Subject: [PATCH] Translate whatsnew/2.3 Closes #3189 --- dictionaries/whatsnew_2.3.txt | 44 + whatsnew/2.3.po | 1436 +++++++++++++++++++++------------ 2 files changed, 948 insertions(+), 532 deletions(-) diff --git a/dictionaries/whatsnew_2.3.txt b/dictionaries/whatsnew_2.3.txt index f0aec1eacd..6791433c0f 100644 --- a/dictionaries/whatsnew_2.3.txt +++ b/dictionaries/whatsnew_2.3.txt @@ -10,10 +10,12 @@ Connor Craig Dalke Daniels +Dec Denis Detlef Drake Dörwald +Fr Francesco Fraser Geert @@ -51,6 +53,7 @@ Martelli Martin Martins Mick +Mon Montanaro Moore Neal @@ -69,6 +72,7 @@ Palkovsky Pedroni Piers Programming +Quixote Reifschneider Ricciardi Richie @@ -78,31 +82,59 @@ Samuele Simionato Simon Skip +Sn Subsequent Suzi Suzuki Tishler +Topic Travis Trent Walter Ward +We Wells What Wilson +abcd benchmark +cad +calc chooses chosen +classifiers +cmp configurarla +critical +days +delitem deserializadas desescalado dev +distutil empaquetarlo enumerate +fill frame +getLogger +hasattr +heappop +heappush idna +importer +inorder +intersection +issubset +issuperset +jwzthreading +keylist +kw llamables longer +mp +nombrearchivo operations +popitem population ports pystone @@ -112,9 +144,21 @@ reelaborado reescríbalas reformateada replacing +samp +sample +sampmodule +setitem sobreescrituras +strip than +timer topológica +union +unzip +valuelist +wantobjects works xmlrpclib +xrange +zfill Åstrand diff --git a/whatsnew/2.3.po b/whatsnew/2.3.po index cd9563133b..b25f19c660 100644 --- a/whatsnew/2.3.po +++ b/whatsnew/2.3.po @@ -13,12 +13,12 @@ msgstr "" "POT-Creation-Date: 2024-11-21 16:38-0300\n" "PO-Revision-Date: 2021-09-25 10:30+0100\n" "Last-Translator: Claudia Millan \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/2.3.rst:3 @@ -102,7 +102,6 @@ msgid "PEP 218: A Standard Set Datatype" msgstr "PEP 218: Un tipo de datos de conjunto estándar" #: ../Doc/whatsnew/2.3.rst:43 -#, fuzzy msgid "" "The new :mod:`!sets` module contains an implementation of a set datatype. " "The :class:`Set` class is for mutable sets, sets that can have members added " @@ -111,13 +110,13 @@ msgid "" "dictionary keys. Sets are built on top of dictionaries, so the elements " "within a set must be hashable." msgstr "" -"El nuevo módulo :mod:`sets` contiene una implementación de un tipo de datos " -"de conjuntos. La clase :class:`Set` es para conjuntos mutables, conjuntos a " -"los que se les pueden añadir y eliminar miembros. La clase :class:" -"`ImmutableSet` es para los conjuntos que no pueden ser modificados, y las " -"instancias de :class:`ImmutableSet` pueden por lo tanto ser utilizadas como " -"claves de diccionario. Los conjuntos se construyen sobre diccionarios, por " -"lo que los elementos de un conjunto deben ser hashables." +"El nuevo módulo :mod:`!sets` contiene una implementación de un tipo de datos " +"de conjunto. La clase :class:`Set` es para conjuntos mutables, conjuntos a " +"los que se les pueden agregar y quitar miembros. La clase :class:`!" +"ImmutableSet` es para conjuntos que no se pueden modificar y, por lo tanto, " +"las instancias de :class:`!ImmutableSet` se pueden usar como claves de " +"diccionario. Los conjuntos se construyen sobre diccionarios, por lo que los " +"elementos dentro de un conjunto deben ser codificables." #: ../Doc/whatsnew/2.3.rst:50 msgid "Here's a simple example::" @@ -139,9 +138,21 @@ msgid "" "Set([1, 2, 5])\n" ">>>" msgstr "" +">>> importar conjuntos\n" +">>> S = conjuntos.Set([1,2,3])\n" +">>> S\n" +"Set([1, 2, 3])\n" +">>> 1 en S\n" +"Verdadero\n" +">>> 0 en S\n" +"Falso\n" +">>> S.add(5)\n" +">>> S.remove(3)\n" +">>> S\n" +"Set([1, 2, 5])\n" +">>>" #: ../Doc/whatsnew/2.3.rst:66 -#, fuzzy msgid "" "The union and intersection of sets can be computed with the :meth:" "`~frozenset.union` and :meth:`~frozenset.intersection` methods; an " @@ -149,11 +160,11 @@ msgid "" "sets also have in-place versions of these methods, :meth:`!union_update` " "and :meth:`~frozenset.intersection_update`. ::" msgstr "" -"La unión y la intersección de los conjuntos pueden calcularse con los " -"métodos :meth:`union` y :meth:`intersection`; una notación alternativa " -"utiliza los operadores bitácora ``&`` y ``|``. Los conjuntos mutables " -"también tienen versiones in situ de estos métodos, :meth:`union_update` y :" -"meth:`intersection_update`. ::" +"La unión e intersección de conjuntos se puede calcular con los métodos :meth:" +"`~frozenset.union` y :meth:`~frozenset.intersection`; una notación " +"alternativa utiliza los operadores bit a bit ``&`` y ``|``. Los conjuntos " +"mutables también tienen versiones de estos métodos, :meth:`!union_update` y :" +"meth:`~frozenset.intersection_update`. ::" #: ../Doc/whatsnew/2.3.rst:71 msgid "" @@ -172,9 +183,22 @@ msgid "" "Set([1, 2, 3, 4, 5, 6])\n" ">>>" msgstr "" +">>> S1 = conjuntos.Set([1,2,3])\n" +">>> S2 = conjuntos.Set([4,5,6])\n" +">>> S1.union(S2)\n" +"Set([1, 2, 3, 4, 5, 6])\n" +">>> S1 | S2 # Notación alternativa\n" +"Set([1, 2, 3, 4, 5, 6])\n" +">>> S1.intersection(S2)\n" +"Set([])\n" +">>> S1 y S2 # Notación alternativa\n" +"Set([])\n" +">>> S1.union_update(S2)\n" +">>> S1\n" +"Set([1, 2, 3, 4, 5, 6])\n" +">>>" #: ../Doc/whatsnew/2.3.rst:86 -#, fuzzy msgid "" "It's also possible to take the symmetric difference of two sets. This is " "the set of all elements in the union that aren't in the intersection. " @@ -183,12 +207,12 @@ msgid "" "notation (``^``), and an in-place version with the ungainly name :meth:" "`~frozenset.symmetric_difference_update`. ::" msgstr "" -"También es posible tomar la diferencia simétrica de dos conjuntos. Este es " -"el conjunto de todos los elementos de la unión que no están en la " -"intersección. Otra forma de decirlo es que la diferencia simétrica contiene " -"todos los elementos que están exactamente en un conjunto. De nuevo, existe " -"una notación alternativa (``^``), y una versión in-place con el poco " -"agraciado nombre :meth:`symmetric_difference_update`. ::" +"También es posible tomar la diferencia simétrica de dos conjuntos. Este es " +"el conjunto de todos los elementos en la unión que no están en la " +"intersección. Otra forma de decirlo es que la diferencia simétrica contiene " +"todos los elementos que están exactamente en un conjunto. Nuevamente, existe " +"una notación alternativa (``^``) y una versión en el lugar con el extraño " +"nombre :meth:`~frozenset.symmetric_difference_update`. ::" #: ../Doc/whatsnew/2.3.rst:92 msgid "" @@ -200,15 +224,21 @@ msgid "" "Set([1, 2, 5, 6])\n" ">>>" msgstr "" +">>> S1 = conjuntos.Conjunto([1,2,3,4])\n" +">>> S2 = conjuntos.Conjunto([3,4,5,6])\n" +">>> S1.diferencia_simétrica(S2)\n" +"Conjunto([1, 2, 5, 6])\n" +">>> S1 ^ S2\n" +"Conjunto([1, 2, 5, 6])\n" +">>>" #: ../Doc/whatsnew/2.3.rst:100 -#, fuzzy msgid "" "There are also :meth:`!issubset` and :meth:`!issuperset` methods for " "checking whether one set is a subset or superset of another::" msgstr "" -"También hay métodos :meth:`issubset` y :meth:`issuperset` para comprobar si " -"un conjunto es subconjunto o superconjunto de otro::" +"También existen los métodos :meth:`!issubset` y :meth:`!issuperset` para " +"comprobar si un conjunto es un subconjunto o superconjunto de otro:" #: ../Doc/whatsnew/2.3.rst:103 msgid "" @@ -222,6 +252,15 @@ msgid "" "True\n" ">>>" msgstr "" +">>> S1 = conjuntos.Set([1,2,3])\n" +">>> S2 = conjuntos.Set([2,3])\n" +">>> S2.issubset(S1)\n" +"Verdadero\n" +">>> S1.issubset(S2)\n" +"Falso\n" +">>> S1.issuperset(S2)\n" +"Verdadero\n" +">>>" #: ../Doc/whatsnew/2.3.rst:117 msgid ":pep:`218` - Adding a Built-In Set Object Type" @@ -291,6 +330,9 @@ msgid "" " for i in range(N):\n" " yield i" msgstr "" +"def generate_ints(N):\n" +"para i en rango(N):\n" +"rendimiento i" #: ../Doc/whatsnew/2.3.rst:151 msgid "" @@ -334,9 +376,8 @@ msgstr "" "entre :keyword:`!yield` y las excepciones)" #: ../Doc/whatsnew/2.3.rst:169 -#, fuzzy msgid "Here's a sample usage of the :func:`!generate_ints` generator::" -msgstr "Este es un ejemplo de uso del generador :func:`generate_ints`::" +msgstr "Este es un ejemplo de uso del generador :func:`!generate_ints`::" #: ../Doc/whatsnew/2.3.rst:171 msgid "" @@ -355,6 +396,20 @@ msgid "" " File \"stdin\", line 2, in generate_ints\n" "StopIteration" msgstr "" +">>> gen = generate_ints(3)\n" +">>> gen\n" +"\n" +">>> gen.next()\n" +"0\n" +">>> gen.next()\n" +"1\n" +">>> gen.next()\n" +"2\n" +">>> gen.next()\n" +"Traceback (última llamada más reciente):\n" +"Archivo \"stdin\", línea 1, en ?\n" +"Archivo \"stdin\", línea 2, en generate_ints\n" +"StopIteration" #: ../Doc/whatsnew/2.3.rst:186 msgid "" @@ -415,6 +470,14 @@ msgid "" " for x in inorder(t.right):\n" " yield x" msgstr "" +"# Un generador recursivo que genera hojas de árboles en orden.\n" +"def inorder(t):\n" +"if t:\n" +"for x in inorder(t.left):\n" +"yield x\n" +"yield t.label\n" +"for x in inorder(t.right):\n" +"yield x" #: ../Doc/whatsnew/2.3.rst:215 msgid "" @@ -451,9 +514,10 @@ msgid "" "sentence := \"Store it in the neighboring harbor\"\n" "if (i := find(\"or\", sentence)) > 5 then write(i)" msgstr "" +"oración := \"Guardarlo en el puerto vecino\"\n" +"si (i := find(\"o\", oración)) > 5 entonces write(i)" #: ../Doc/whatsnew/2.3.rst:230 -#, fuzzy msgid "" "In Icon the :func:`!find` function returns the indexes at which the " "substring \"or\" is found: 3, 23, 33. In the :keyword:`if` statement, ``i`` " @@ -462,11 +526,11 @@ msgid "" "5, so the comparison now succeeds, and the code prints the value 23 to the " "screen." msgstr "" -"En Icon la función :func:`find` retorna los índices en los que se encuentra " -"la subcadena \"o\": 3, 23, 33. En la expresión :keyword:`if`, a ``i`` se le " -"asigna primero un valor de 3, pero 3 es menor que 5, por lo que la " -"comparación falla, e Icon la reintenta con el segundo valor de 23. 23 es " -"mayor que 5, por lo que la comparación ahora tiene éxito, y el código " +"En Icon, la función :func:`!find` devuelve los índices en los que se " +"encuentra la subcadena \"o\": 3, 23, 33. En la declaración :keyword:`if`, a " +"``i`` primero se le asigna un valor de 3, pero 3 es menor que 5, por lo que " +"la comparación falla y Icon la vuelve a intentar con el segundo valor de 23. " +"23 es mayor que 5, por lo que la comparación ahora tiene éxito y el código " "imprime el valor 23 en la pantalla." #: ../Doc/whatsnew/2.3.rst:236 @@ -522,6 +586,8 @@ msgid "" "#!/usr/bin/env python\n" "# -*- coding: UTF-8 -*-" msgstr "" +"#!/usr/bin/env python\n" +"# -*- coding: UTF-8 -*-" #: ../Doc/whatsnew/2.3.rst:267 msgid "" @@ -598,6 +664,22 @@ msgid "" "'/tmp/example.zip/jwzthreading.py'\n" ">>>" msgstr "" +"amk@nyman:~/src/python$ unzip -l /tmp/example.zip\n" +"Archivo: /tmp/example.zip\n" +"Longitud Fecha Hora Nombre\n" +"-------- ---- ---- ----\n" +"8467 11-26-02 22:30 jwzthreading.py\n" +"-------- -------\n" +"8467 1 archivo\n" +"amk@nyman:~/src/python$ ./python\n" +"Python 2.3 (#1, 1 de agosto de 2003, 19:54:32)\n" +">>> import sys\n" +">>> sys.path.insert(0, '/tmp/example.zip') # Agregar archivo .zip al " +"principio de la ruta\n" +">>> import jwzthreading\n" +">>> jwzthreading.__file__\n" +"'/tmp/ejemplo.zip/jwzthreading.py'\n" +">>>" #: ../Doc/whatsnew/2.3.rst:314 msgid "" @@ -660,7 +742,6 @@ msgstr "" "nombres de archivo sean inaccesibles." #: ../Doc/whatsnew/2.3.rst:344 -#, fuzzy msgid "" "Python now allows using arbitrary Unicode strings (within the limitations of " "the file system) for all functions that expect file names, most notably the :" @@ -668,12 +749,12 @@ msgid "" "listdir`, Python now returns a list of Unicode strings. A new function, :" "func:`!os.getcwdu`, returns the current directory as a Unicode string." msgstr "" -"Python permite ahora utilizar cadenas Unicode arbitrarias (dentro de las " +"Python ahora permite el uso de cadenas Unicode arbitrarias (dentro de las " "limitaciones del sistema de archivos) para todas las funciones que esperan " -"nombres de archivos, sobre todo la función incorporada :func:`open`. Si se " -"pasa una cadena Unicode a :func:`os.listdir`, Python retorna ahora una lista " -"de cadenas Unicode. Una nueva función, :func:`os.getcwdu`, retorna el " -"directorio actual como una cadena Unicode." +"nombres de archivos, en particular la función incorporada :func:`open`. Si " +"se pasa una cadena Unicode a :func:`os.listdir`, Python ahora devuelve una " +"lista de cadenas Unicode. Una nueva función, :func:`!os.getcwdu`, devuelve " +"el directorio actual como una cadena Unicode." #: ../Doc/whatsnew/2.3.rst:350 msgid "" @@ -738,7 +819,6 @@ msgstr "" "carro más una nueva línea." #: ../Doc/whatsnew/2.3.rst:384 -#, fuzzy msgid "" "Python's file objects can now support end of line conventions other than the " "one followed by the platform on which Python is running. Opening a file with " @@ -747,26 +827,24 @@ msgid "" "translated to a ``'\\n'`` in the strings returned by the various file " "methods such as :meth:`!read` and :meth:`!readline`." msgstr "" -"Los objetos de archivo de Python pueden ahora soportar convenciones de fin " -"de línea distintas de la que sigue la plataforma en la que se ejecuta " -"Python. Al abrir un archivo con el modo ``'U`` o ``'rU`` se abrirá un " -"archivo para su lectura en modo :term:`universal newlines`. Las tres " -"convenciones de final de línea se traducirán a un ``'\\n'`` en las cadenas " -"retornadas por los distintos métodos de archivo como :meth:`read` y :meth:" -"`readline`." +"Los objetos de archivo de Python ahora pueden admitir convenciones de fin de " +"línea distintas a la que sigue la plataforma en la que se ejecuta Python. Al " +"abrir un archivo con el modo ``'U'`` o ``'rU'``, se abrirá un archivo para " +"leer en modo :term:`universal newlines`. Las tres convenciones de fin de " +"línea se traducirán a ``'\\n'`` en las cadenas devueltas por los distintos " +"métodos de archivo, como :meth:`!read` y :meth:`!readline`." #: ../Doc/whatsnew/2.3.rst:391 -#, fuzzy msgid "" "Universal newline support is also used when importing modules and when " "executing a file with the :func:`!execfile` function. This means that " "Python modules can be shared between all three operating systems without " "needing to convert the line-endings." msgstr "" -"El soporte universal de nuevas líneas también se utiliza al importar módulos " -"y al ejecutar un archivo con la función :func:`execfile`. Esto significa " -"que los módulos de Python pueden ser compartidos entre los tres sistemas " -"operativos sin necesidad de convertir los finales de línea." +"También se utiliza la compatibilidad universal con saltos de línea al " +"importar módulos y al ejecutar un archivo con la función :func:`!execfile`. " +"Esto significa que los módulos de Python se pueden compartir entre los tres " +"sistemas operativos sin necesidad de convertir los finales de línea." #: ../Doc/whatsnew/2.3.rst:396 msgid "" @@ -815,6 +893,10 @@ msgid "" " # ... compute some result based on item ...\n" " L[i] = result" msgstr "" +"para i en rango(len(L)):\n" +"item = L[i]\n" +"# ... calcular algún resultado basado en el elemento ...\n" +"L[i] = resultado" #: ../Doc/whatsnew/2.3.rst:426 msgid "This can be rewritten using :func:`enumerate` as::" @@ -826,6 +908,9 @@ msgid "" " # ... compute some result based on item ...\n" " L[i] = result" msgstr "" +"para i, elemento en enumerate(L):\n" +"# ... calcular algún resultado basado en el elemento ...\n" +"L[i] = resultado" #: ../Doc/whatsnew/2.3.rst:435 msgid ":pep:`279` - The enumerate() built-in function" @@ -861,7 +946,6 @@ msgstr "" "también es posible escribir tus propias clases de manejadores." #: ../Doc/whatsnew/2.3.rst:453 -#, fuzzy msgid "" "The :class:`~logging.Logger` class is the primary class. Most application " "code will deal with one or more :class:`~logging.Logger` objects, each one " @@ -875,18 +959,19 @@ msgid "" "records logged to ``server.auth`` and ``server.network``. There's also a " "root :class:`~logging.Logger` that's the parent of all other loggers." msgstr "" -"La clase :class:`Logger` es la clase principal. La mayoría del código de la " -"aplicación tratará con uno o más objetos :class:`Logger`, cada uno utilizado " -"por un subsistema particular de la aplicación. Cada :class:`Logger` se " -"identifica con un nombre, y los nombres se organizan en una jerarquía " -"utilizando ``.`` como separador de componentes. Por ejemplo, puedes tener " -"instancias de :class:`Logger` llamadas ``servidor``, ``servidor.auth`` y " -"``servidor.network``. Estas dos últimas instancias están por debajo de " -"``servidor`` en la jerarquía. Esto significa que si aumentas la verbosidad " -"de ``servidor`` o diriges los mensajes de ``servidor`` a un gestor " -"diferente, los cambios también se aplicarán a los registros de ``servidor." -"auth`` y ``servidor.network``. También hay un :class:`Logger` raíz que es el " -"padre de todos los demás loggers." +"La clase :class:`~logging.Logger` es la clase principal. La mayoría del " +"código de la aplicación se ocupará de uno o más objetos :class:`~logging." +"Logger`, cada uno de ellos utilizado por un subsistema particular de la " +"aplicación. Cada :class:`~logging.Logger` se identifica con un nombre, y los " +"nombres se organizan en una jerarquía utilizando ``.`` como separador de " +"componentes. Por ejemplo, puede tener instancias :class:`~logging.Logger` " +"denominadas ``server``, ``server.auth`` y ``server.network``. Las dos " +"últimas instancias están por debajo de ``server`` en la jerarquía. Esto " +"significa que si aumenta el nivel de detalle de ``server`` o dirige los " +"mensajes ``server`` a un controlador diferente, los cambios también se " +"aplicarán a los registros registrados en ``server.auth`` y ``server." +"network``. También hay un :class:`~logging.Logger` raíz que es el padre de " +"todos los demás registradores." #: ../Doc/whatsnew/2.3.rst:464 msgid "" @@ -907,6 +992,14 @@ msgid "" "logging.error('Error occurred')\n" "logging.critical('Critical error -- shutting down')" msgstr "" +"import logging\n" +"\n" +"logging.debug('Información de depuración')\n" +"logging.info('Mensaje informativo')\n" +"logging.warning('Advertencia: no se encontró el archivo de configuración " +"%s', 'server.conf')\n" +"logging.error('Se produjo un error')\n" +"logging.critical('Error crítico: apagando el sistema')" #: ../Doc/whatsnew/2.3.rst:475 ../Doc/whatsnew/2.3.rst:500 msgid "This produces the following output::" @@ -918,44 +1011,45 @@ msgid "" "ERROR:root:Error occurred\n" "CRITICAL:root:Critical error -- shutting down" msgstr "" +"ADVERTENCIA:root:Advertencia:no se encontró el archivo de configuración " +"server.conf\n" +"ERROR:root:Se produjo un error\n" +"CRÍTICO:root:Error crítico: se está apagando" #: ../Doc/whatsnew/2.3.rst:481 -#, fuzzy msgid "" "In the default configuration, informational and debugging messages are " "suppressed and the output is sent to standard error. You can enable the " "display of informational and debugging messages by calling the :meth:" "`~logging.Logger.setLevel` method on the root logger." msgstr "" -"En la configuración por defecto, los mensajes informativos y de depuración " -"se suprimen y la salida se envía al error estándar. Puede habilitar la " +"En la configuración predeterminada, se suprimen los mensajes informativos y " +"de depuración y la salida se envía al error estándar. Puede habilitar la " "visualización de mensajes informativos y de depuración llamando al método :" -"meth:`setLevel` del registrador raíz." +"meth:`~logging.Logger.setLevel` en el registrador raíz." #: ../Doc/whatsnew/2.3.rst:486 -#, fuzzy msgid "" "Notice the :func:`~logging.warning` call's use of string formatting " "operators; all of the functions for logging messages take the arguments " "``(msg, arg1, arg2, ...)`` and log the string resulting from ``msg % (arg1, " "arg2, ...)``." msgstr "" -"Observe que la llamada :func:`warning` utiliza operadores de formato de " -"cadena; todas las funciones para el registro de mensajes toman los " +"Observe el uso de operadores de formato de cadena en la llamada :func:" +"`~logging.warning`; todas las funciones para registrar mensajes toman los " "argumentos ``(msg, arg1, arg2, ...)`` y registran la cadena resultante de " "``msg % (arg1, arg2, ...)``." #: ../Doc/whatsnew/2.3.rst:490 -#, fuzzy msgid "" "There's also an :func:`~logging.exception` function that records the most " "recent traceback. Any of the other functions will also record the traceback " "if you specify a true value for the keyword argument *exc_info*. ::" msgstr "" -"También hay una función :func:`exception` que registra el rastro más " -"reciente. Cualquiera de las otras funciones también registrará el rastro si " -"se especifica un valor verdadero para el argumento de la palabra clave " -"*exc_info*. ::" +"También hay una función :func:`~logging.exception` que registra el " +"seguimiento más reciente. Cualquiera de las otras funciones también " +"registrará el seguimiento si especifica un valor verdadero para el argumento " +"de palabra clave *exc_info*. ::" #: ../Doc/whatsnew/2.3.rst:494 msgid "" @@ -965,6 +1059,11 @@ msgid "" "\n" "f()" msgstr "" +"def f():\n" +"try: 1/0\n" +"except: logging.exception('Problema registrado')\n" +"\n" +"f()" #: ../Doc/whatsnew/2.3.rst:502 msgid "" @@ -974,6 +1073,11 @@ msgid "" " 1/0\n" "ZeroDivisionError: integer division or modulo by zero" msgstr "" +"ERROR:root:Problema registrado\n" +"Traceback (última llamada más reciente):\n" +"Archivo \"t.py\", línea 6, en f\n" +"1/0\n" +"ZeroDivisionError: división entera o módulo por cero" #: ../Doc/whatsnew/2.3.rst:508 msgid "" @@ -997,22 +1101,26 @@ msgid "" "log.critical('Disk full')\n" " ..." msgstr "" +"log = logging.getLogger('servidor')\n" +"...\n" +"log.info('Escuchando en el puerto %i', puerto)\n" +"...\n" +"log.critical('Disco lleno')\n" +"..." #: ../Doc/whatsnew/2.3.rst:519 -#, fuzzy msgid "" "Log records are usually propagated up the hierarchy, so a message logged to " "``server.auth`` is also seen by ``server`` and ``root``, but a :class:" "`~logging.Logger` can prevent this by setting its :attr:`~logging.Logger." "propagate` attribute to :const:`False`." msgstr "" -"Los registros se suelen propagar hacia arriba en la jerarquía, por lo que un " -"mensaje registrado en ``servidor.auth`` también es visto por ``servidor`` y " -"``root``, pero un :class:`Logger` puede evitar esto estableciendo su " -"atributo :attr:`propagate` a :const:`False`." +"Los registros normalmente se propagan hacia arriba en la jerarquía, por lo " +"que un mensaje registrado en ``server.auth`` también es visto por ``server`` " +"y ``root``, pero un :class:`~logging.Logger` puede evitar esto configurando " +"su atributo :attr:`~logging.Logger.propagate` en :const:`False`." #: ../Doc/whatsnew/2.3.rst:523 -#, fuzzy msgid "" "There are more classes provided by the :mod:`logging` package that can be " "customized. When a :class:`~logging.Logger` instance is told to log a " @@ -1025,16 +1133,16 @@ msgid "" "class. All of these classes can be replaced by your own specially written " "classes." msgstr "" -"Hay más clases proporcionadas por el paquete :mod:`logging` que se pueden " -"personalizar. Cuando se le indica a una instancia :class:`Logger` que " -"registre un mensaje, crea una instancia :class:`LogRecord` que se envía a " -"cualquier cantidad de instancias :class:`Handler` diferentes. Los " -"registradores y los controladores también pueden tener una lista adjunta de " -"filtros, y cada filtro puede hacer que se ignore el :class:`LogRecord` o " -"puede modificar el registro antes de pasarlo. Cuando finalmente se emiten, " -"las instancias :class:`LogRecord` se convierten en texto mediante una clase :" -"class:`Formatter`. Todas estas clases pueden ser reemplazadas por sus " -"propias clases especialmente escritas." +"El paquete :mod:`logging` proporciona más clases que se pueden personalizar. " +"Cuando se le indica a una instancia :class:`~logging.Logger` que registre un " +"mensaje, crea una instancia :class:`~logging.LogRecord` que se envía a " +"cualquier cantidad de instancias :class:`~logging.Handler` diferentes. Los " +"registradores y controladores también pueden tener una lista adjunta de " +"filtros, y cada filtro puede hacer que se ignore el :class:`~logging." +"LogRecord` o puede modificar el registro antes de pasarlo. Cuando finalmente " +"se generan, las instancias :class:`~logging.LogRecord` se convierten en " +"texto mediante una clase :class:`~logging.Formatter`. Todas estas clases se " +"pueden reemplazar por sus propias clases especialmente escritas." #: ../Doc/whatsnew/2.3.rst:533 msgid "" @@ -1063,7 +1171,6 @@ msgid "PEP 285: A Boolean Type" msgstr "PEP 285: Un tipo booleano" #: ../Doc/whatsnew/2.3.rst:552 -#, fuzzy msgid "" "A Boolean type was added to Python 2.3. Two new constants were added to " "the :mod:`!__builtin__` module, :const:`True` and :const:`False`. (:const:" @@ -1071,11 +1178,11 @@ msgid "" "2.2.1, but the 2.2.1 versions are simply set to integer values of 1 and 0 " "and aren't a different type.)" msgstr "" -"Se ha añadido un tipo booleano a Python 2.3. Se añadieron dos nuevas " -"constantes al módulo :mod:`__builtin__`, :const:`True` y :const:`False`. " -"(Las constantes :const:`True` y :const:`False` se añadieron a los módulos " -"incorporados en Python 2.2.1, pero las versiones de 2.2.1 se ajustan " -"simplemente a valores enteros de 1 y 0 y no son un tipo diferente)" +"Se agregó un tipo booleano a Python 2.3. Se agregaron dos nuevas constantes " +"al módulo :mod:`!__builtin__`, :const:`True` y :const:`False`. (Las " +"constantes :const:`True` y :const:`False` se agregaron a las funciones " +"integradas en Python 2.2.1, pero las versiones 2.2.1 simplemente se " +"configuran en valores enteros de 1 y 0 y no son de un tipo diferente)." #: ../Doc/whatsnew/2.3.rst:558 msgid "" @@ -1098,6 +1205,14 @@ msgid "" ">>> bool( (1,) )\n" "True" msgstr "" +">>> bool(1)\n" +"Verdadero\n" +">>> bool(0)\n" +"Falso\n" +">>> bool([])\n" +"Falso\n" +">>> bool( (1,) )\n" +"Verdadero" #: ../Doc/whatsnew/2.3.rst:570 msgid "" @@ -1117,6 +1232,13 @@ msgid "" ">>> isinstance(obj, tuple)\n" "False" msgstr "" +">>> obj = []\n" +">>> hasattr(obj, 'append')\n" +"Verdadero\n" +">>> isinstance(obj, lista)\n" +"Verdadero\n" +">>> isinstance(obj, tupla)\n" +"Falso" #: ../Doc/whatsnew/2.3.rst:581 msgid "" @@ -1167,6 +1289,14 @@ msgid "" ">>> True * 75\n" "75" msgstr "" +">>> Verdadero + 1\n" +"2\n" +">>> Falso + 1\n" +"1\n" +">>> Falso * 75\n" +"0\n" +">>> True * 75\n" +"75" #: ../Doc/whatsnew/2.3.rst:605 msgid "" @@ -1279,17 +1409,16 @@ msgstr "" "está disponible en https://pypi.org." #: ../Doc/whatsnew/2.3.rst:664 -#, fuzzy msgid "" "To make the catalog a bit more useful, a new optional *classifiers* keyword " "argument has been added to the Distutils :func:`!setup` function. A list of " "`Trove `_-style strings can be supplied to help " "classify the software." msgstr "" -"Para hacer el catálogo un poco más útil, se ha añadido un nuevo argumento " -"opcional de palabra clave *clasificadores* a la función Distutils :func:" -"`setup`. Se puede suministrar una lista de cadenas de estilo `Trove `_ para ayudar a clasificar el software." +"Para que el catálogo sea un poco más útil, se ha añadido un nuevo argumento " +"de palabra clave opcional *classifiers* a la función :func:`!setup` de " +"Distutils. Se puede proporcionar una lista de cadenas de estilo `Trove " +"`_ para ayudar a clasificar el software." #: ../Doc/whatsnew/2.3.rst:669 msgid "" @@ -1317,6 +1446,21 @@ msgid "" "\n" "core.setup(**kw)" msgstr "" +"from distutils import core\n" +"kw = {'name': \"Quixote\",\n" +" 'version': \"0.5.1\",\n" +" 'description': \"A highly Pythonic Web application framework\",\n" +" # ...\n" +" }\n" +"\n" +"if (hasattr(core, 'setup_keywords') and\n" +" 'classifiers' in core.setup_keywords):\n" +" kw['classifiers'] = \\\n" +" ['Topic :: Internet :: WWW/HTTP :: Dynamic Content',\n" +" 'Environment :: No Input/Output (Daemon)',\n" +" 'Intended Audience :: Developers'],\n" +"\n" +"core.setup(**kw)" #: ../Doc/whatsnew/2.3.rst:688 msgid "" @@ -1339,7 +1483,6 @@ msgid "PEP 302: New Import Hooks" msgstr "PEP 302: Nuevos ganchos de importación" #: ../Doc/whatsnew/2.3.rst:705 -#, fuzzy msgid "" "While it's been possible to write custom import hooks ever since the :mod:`!" "ihooks` module was introduced in Python 1.3, no one has ever been really " @@ -1348,23 +1491,22 @@ msgid "" "and :mod:`!iu` modules, but none of them has ever gained much acceptance, " "and none of them were easily usable from C code." msgstr "" -"Aunque ha sido posible escribir ganchos de importación personalizados desde " -"que se introdujo el módulo :mod:`ihooks` en Python 1.3, nadie ha estado " -"nunca realmente contento con él porque escribir nuevos ganchos de " -"importación es difícil y complicado. Se han propuesto varias alternativas, " -"como los módulos :mod:`imputil` y :mod:`iu`, pero ninguno de ellos ha tenido " -"mucha aceptación, y ninguno era fácilmente utilizable desde el código C." +"Si bien ha sido posible escribir ganchos de importación personalizados desde " +"que se introdujo el módulo :mod:`!ihooks` en Python 1.3, nadie ha estado " +"realmente satisfecho con ello porque escribir nuevos ganchos de importación " +"es difícil y complicado. Se han propuesto varias alternativas, como los " +"módulos :mod:`!imputil` y :mod:`!iu`, pero ninguna de ellas ha tenido mucha " +"aceptación y ninguna de ellas se podía usar fácilmente desde el código C." #: ../Doc/whatsnew/2.3.rst:712 -#, fuzzy msgid "" ":pep:`302` borrows ideas from its predecessors, especially from Gordon " "McMillan's :mod:`!iu` module. Three new items are added to the :mod:`sys` " "module:" msgstr "" ":pep:`302` toma prestadas ideas de sus predecesores, especialmente del " -"módulo :mod:`iu` de Gordon McMillan. Se añaden tres nuevos elementos al " -"módulo :mod:`sys`:" +"módulo :mod:`!iu` de Gordon McMillan. Se han añadido tres elementos nuevos " +"al módulo :mod:`sys`:" #: ../Doc/whatsnew/2.3.rst:716 msgid "" @@ -1445,6 +1587,24 @@ msgid "" "# Not found!\n" "raise ImportError" msgstr "" +"para mp en sys.meta_path:\n" +"loader = mp(fullname)\n" +"si loader no es None:\n" +" = loader.load_module(fullname)\n" +"\n" +"para path en sys.path:\n" +"para hook en sys.path_hooks:\n" +"try:\n" +"importer = hook(path)\n" +"except ImportError:\n" +"# ImportError, así que prueba los otros ganchos de path\n" +"pass\n" +"de lo contrario:\n" +"loader = importer.find_module(fullname)\n" +" = loader.load_module(fullname)\n" +"\n" +"# ¡No encontrado!\n" +"raise ImportError" #: ../Doc/whatsnew/2.3.rst:760 msgid ":pep:`302` - New Import Hooks" @@ -1477,7 +1637,7 @@ msgstr "" #: ../Doc/whatsnew/2.3.rst:776 msgid "Costs,150,200,3.95" -msgstr "" +msgstr "Costos,150,200,3.95" #: ../Doc/whatsnew/2.3.rst:778 msgid "" @@ -1491,6 +1651,7 @@ msgstr "" #: ../Doc/whatsnew/2.3.rst:781 msgid "\"Costs\",150,200,3.95,\"Includes taxes, shipping, and sundry items\"" msgstr "" +"\"Costos\",150,200,3.95,\"Incluye impuestos, envío y artículos varios\"" #: ../Doc/whatsnew/2.3.rst:783 msgid "" @@ -1509,17 +1670,22 @@ msgid "" "for line in reader:\n" " print line" msgstr "" +"importar csv\n" +"\n" +"entrada = open('archivo_datos', 'rb')\n" +"lector = csv.reader(entrada)\n" +"para línea en lector:\n" +"imprimir línea" #: ../Doc/whatsnew/2.3.rst:793 -#, fuzzy msgid "" "The :func:`~csv.reader` function takes a number of different options. The " "field separator isn't limited to the comma and can be changed to any " "character, and so can the quoting and line-ending characters." msgstr "" -"La función :func:`reader` admite varias opciones. El separador de campos no " -"se limita a la coma y puede cambiarse por cualquier carácter, al igual que " -"las comillas y el final de línea." +"La función :func:`~csv.reader` acepta varias opciones diferentes. El " +"separador de campo no se limita a la coma y se puede cambiar por cualquier " +"carácter, al igual que los caracteres de comillas y de fin de línea." #: ../Doc/whatsnew/2.3.rst:797 msgid "" @@ -1551,7 +1717,6 @@ msgid "PEP 307: Pickle Enhancements" msgstr "PEP 307: Mejoras en Pickle" #: ../Doc/whatsnew/2.3.rst:817 -#, fuzzy msgid "" "The :mod:`pickle` and :mod:`!cPickle` modules received some attention during " "the 2.3 development cycle. In 2.2, new-style classes could be pickled " @@ -1559,12 +1724,12 @@ msgid "" "quotes a trivial example where a new-style class results in a pickled string " "three times longer than that for a classic class." msgstr "" -"Los módulos :mod:`pickle` y :mod:`cPickle` recibieron cierta atención " -"durante el ciclo de desarrollo de la 2.3. En 2.2, las clases de estilo " -"nuevo podían ser desempaquetadas sin dificultad, pero no se desempaquetaba " -"de forma muy compacta; :pep:`307` cita un ejemplo trivial en el que una " -"clase de estilo nuevo da lugar a una cadena desempaquetada tres veces más " -"larga que la de una clase clásica." +"Los módulos :mod:`pickle` y :mod:`!cPickle` recibieron cierta atención " +"durante el ciclo de desarrollo 2.3. En 2.2, las clases de nuevo estilo " +"podían ser encurtidas sin dificultad, pero no de forma muy compacta; :pep:" +"`307` cita un ejemplo trivial en el que una clase de nuevo estilo da como " +"resultado una cadena encurtida tres veces más larga que la de una clase " +"clásica." #: ../Doc/whatsnew/2.3.rst:823 msgid "" @@ -1584,7 +1749,6 @@ msgstr "" "seleccionar el protocolo más elegante disponible." #: ../Doc/whatsnew/2.3.rst:830 -#, fuzzy msgid "" "Unpickling is no longer considered a safe operation. 2.2's :mod:`pickle` " "provided hooks for trying to prevent unsafe classes from being unpickled " @@ -1592,15 +1756,14 @@ msgid "" "this code was ever audited and therefore it's all been ripped out in 2.3. " "You should not unpickle untrusted data in any version of Python." msgstr "" -"El unpickling ya no se considera una operación segura. El :mod:`pickle` de " -"la versión 2.2 proporcionaba ganchos para tratar de evitar que las clases no " -"seguras fueran deserializadas (específicamente, un atributo :attr:" -"`__safe_for_unpickling__`), pero nada de este código fue nunca auditado y " -"por lo tanto todo ha sido eliminado en la versión 2.3. No se debe " -"deserializar datos no confiables en ninguna versión de Python." +"El desempaquetado ya no se considera una operación segura. :mod:`pickle` de " +"la versión 2.2 proporcionaba ganchos para intentar evitar que se " +"desempaquetaran clases no seguras (específicamente, un atributo :attr:`!" +"__safe_for_unpickling__`), pero ninguno de este código fue auditado y, por " +"lo tanto, todo se eliminó en la versión 2.3. No debe desempaquetar datos no " +"confiables en ninguna versión de Python." #: ../Doc/whatsnew/2.3.rst:836 -#, fuzzy msgid "" "To reduce the pickling overhead for new-style classes, a new interface for " "customizing pickling was added using three special methods: :meth:`~object." @@ -1608,11 +1771,11 @@ msgid "" "__getnewargs__`. Consult :pep:`307` for the full semantics of these " "methods." msgstr "" -"Para reducir la sobrecarga de pickling de las clases de estilo nuevo, se ha " -"añadido una nueva interfaz para personalizar el pickling mediante tres " -"métodos especiales: :meth:`__getstate__`, :meth:`__setstate__`, y :meth:" -"`__getnewargs__`. Consulte :pep:`307` para conocer la semántica completa de " -"estos métodos." +"Para reducir la sobrecarga de decapado para las clases de estilo nuevo, se " +"agregó una nueva interfaz para personalizar el decapado mediante tres " +"métodos especiales: :meth:`~object.__getstate__`, :meth:`~object." +"__setstate__` y :meth:`~object.__getnewargs__`. Consulte :pep:`307` para " +"conocer la semántica completa de estos métodos." #: ../Doc/whatsnew/2.3.rst:841 msgid "" @@ -1672,6 +1835,9 @@ msgid "" ">>> L[::2]\n" "[0, 2, 4, 6, 8]" msgstr "" +">>> L = rango(10)\n" +">>> L[::2]\n" +"[0, 2, 4, 6, 8]" #: ../Doc/whatsnew/2.3.rst:875 msgid "" @@ -1685,6 +1851,8 @@ msgid "" ">>> L[::-1]\n" "[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]" msgstr "" +">>> L[::-1]\n" +"[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]" #: ../Doc/whatsnew/2.3.rst:880 msgid "This also works for tuples, arrays, and strings::" @@ -1698,6 +1866,11 @@ msgid "" ">>> s[::-1]\n" "'dcba'" msgstr "" +">>> s='abcd'\n" +">>> s[::2]\n" +"'ac'\n" +">>> s[::-1]\n" +"'dcba'" #: ../Doc/whatsnew/2.3.rst:888 msgid "" @@ -1720,6 +1893,12 @@ msgid "" ">>> a\n" "[0, 4, 5, 6]" msgstr "" +">>> a = rango(3)\n" +">>> a\n" +"[0, 1, 2]\n" +">>> a[1:3] = [4, 5, 6]\n" +">>> a\n" +"[0, 4, 5, 6]" #: ../Doc/whatsnew/2.3.rst:900 msgid "" @@ -1746,6 +1925,19 @@ msgid "" " File \"\", line 1, in ?\n" "ValueError: attempt to assign sequence of size 3 to extended slice of size 2" msgstr "" +">>> a = range(4)\n" +">>> a\n" +"[0, 1, 2, 3]\n" +">>> a[::2]\n" +"[0, 2]\n" +">>> a[::2] = [0, -1]\n" +">>> a\n" +"[0, 1, -1, 3]\n" +">>> a[::2] = [0,1,2]\n" +"Traceback (última llamada más reciente):\n" +"Archivo \"\", línea 1, en ?\n" +"ValueError: intento de asignar una secuencia de tamaño 3 a una porción " +"extendida de tamaño 2" #: ../Doc/whatsnew/2.3.rst:917 msgid "Deletion is more straightforward::" @@ -1762,21 +1954,30 @@ msgid "" ">>> a\n" "[1, 3]" msgstr "" +">>> a = rango(4)\n" +">>> a\n" +"[0, 1, 2, 3]\n" +">>> a[::2]\n" +"[0, 2]\n" +">>> del a[::2]\n" +">>> a\n" +"[1, 3]" #: ../Doc/whatsnew/2.3.rst:928 -#, fuzzy msgid "" "One can also now pass slice objects to the :meth:`~object.__getitem__` " "methods of the built-in sequences::" msgstr "" -"Ahora también se pueden pasar objetos slice a los métodos :meth:" -"`__getitem__` de las secuencias incorporadas::" +"Ahora también se pueden pasar objetos de corte a los métodos :meth:`~object." +"__getitem__` de las secuencias integradas:" #: ../Doc/whatsnew/2.3.rst:931 msgid "" ">>> range(10).__getitem__(slice(0, 5, 2))\n" "[0, 2, 4]" msgstr "" +">>> rango(10).__getitem__(sección(0, 5, 2))\n" +"[0, 2, 4]" #: ../Doc/whatsnew/2.3.rst:934 msgid "Or use slice objects directly in subscripts::" @@ -1787,9 +1988,10 @@ msgid "" ">>> range(10)[slice(0, 5, 2)]\n" "[0, 2, 4]" msgstr "" +">>> rango(10)[segmento(0, 5, 2)]\n" +"[0, 2, 4]" #: ../Doc/whatsnew/2.3.rst:939 -#, fuzzy msgid "" "To simplify implementing sequences that support extended slicing, slice " "objects now have a method ``indices(length)`` which, given the length of a " @@ -1799,13 +2001,13 @@ msgid "" "innocuous phrase hides a welter of confusing details!). The method is " "intended to be used like this::" msgstr "" -"Para simplificar la implementación de secuencias que soportan el corte " -"extendido, los objetos slice tienen ahora un método ``indices(length)`` que, " -"dada la longitud de una secuencia, retorna una tupla ``(start, stop, step)`` " -"que puede pasarse directamente a :func:`range`. :meth:`indices` maneja los " -"índices omitidos y los que están fuera de los límites de una manera " -"consistente con los slices regulares (¡y esta frase inocua esconde un montón " -"de detalles confusos!). El método está pensado para ser utilizado así::" +"Para simplificar la implementación de secuencias que admiten cortes " +"extendidos, los objetos de corte ahora tienen un método ``indices(length)`` " +"que, dada la longitud de una secuencia, devuelve una tupla ``(start, stop, " +"step)`` que se puede pasar directamente a :func:`range`. :meth:`!indices` " +"maneja los índices omitidos y fuera de límites de una manera consistente con " +"los cortes regulares (¡y esta frase inocua esconde una maraña de detalles " +"confusos!). El método está pensado para usarse de esta manera:" #: ../Doc/whatsnew/2.3.rst:946 msgid "" @@ -1820,6 +2022,16 @@ msgid "" " else:\n" " return self.calc_item(i)" msgstr "" +"class FakeSeq:\n" +" ...\n" +" def calc_item(self, i):\n" +" ...\n" +" def __getitem__(self, item):\n" +" if isinstance(item, slice):\n" +" indices = item.indices(len(self))\n" +" return FakeSeq([self.calc_item(i) for i in range(*indices)])\n" +" else:\n" +" return self.calc_item(i)" #: ../Doc/whatsnew/2.3.rst:957 msgid "" @@ -1959,6 +2171,22 @@ msgid "" "{}\n" ">>>" msgstr "" +">>> d = {1:2}\n" +">>> d\n" +"{1: 2}\n" +">>> d.pop(4)\n" +"Traceback (última llamada más reciente):\n" +"Archivo \"stdin\", línea 1, en ?\n" +"KeyError: 4\n" +">>> d.pop(1)\n" +"2\n" +">>> d.pop(1)\n" +"Traceback (última llamada más reciente):\n" +"Archivo \"stdin\", línea 1, en ?\n" +"KeyError: 'pop(): el diccionario está vacío'\n" +">>> d\n" +"{}\n" +">>>" #: ../Doc/whatsnew/2.3.rst:1025 msgid "" @@ -1988,6 +2216,8 @@ msgid "" ">>> dict(red=1, blue=2, green=3, black=4)\n" "{'blue': 2, 'black': 4, 'green': 3, 'red': 1}" msgstr "" +">>> dict(rojo=1, azul=2, verde=3, negro=4)\n" +"{'azul': 2, 'negro': 4, 'verde': 3, 'rojo': 1}" #: ../Doc/whatsnew/2.3.rst:1037 msgid "(Contributed by Just van Rossum.)" @@ -2006,7 +2236,6 @@ msgstr "" "ejecute ninguna aserción." #: ../Doc/whatsnew/2.3.rst:1044 -#, fuzzy msgid "" "Most type objects are now callable, so you can use them to create new " "objects such as functions, classes, and modules. (This means that the :mod:" @@ -2014,12 +2243,12 @@ msgid "" "now use the type objects available in the :mod:`types` module.) For example, " "you can create a new module object with the following code:" msgstr "" -"La mayoría de los objetos de tipo son ahora invocables, por lo que puedes " -"usarlos para crear nuevos objetos como funciones, clases y módulos. (Esto " -"significa que el módulo :mod:`new` puede quedar obsoleto en una futura " -"versión de Python, porque ahora puedes utilizar los objetos de tipo " -"disponibles en el módulo :mod:`types`) Por ejemplo, puede crear un nuevo " -"objeto de módulo con el siguiente código:" +"La mayoría de los objetos de tipo ahora se pueden llamar, por lo que puede " +"usarlos para crear nuevos objetos, como funciones, clases y módulos. (Esto " +"significa que el módulo :mod:`!new` puede quedar obsoleto en una versión " +"futura de Python, porque ahora puede usar los objetos de tipo disponibles en " +"el módulo :mod:`types`). Por ejemplo, puede crear un nuevo objeto de módulo " +"con el siguiente código:" #: ../Doc/whatsnew/2.3.rst:1052 msgid "" @@ -2030,6 +2259,12 @@ msgid "" ">>> m.__doc__\n" "'docstring'" msgstr "" +">>> tipos de importación\n" +">>> m = tipos.ModuleType('abc','docstring')\n" +">>> m\n" +"\n" +">>> m.__doc__\n" +"'docstring'" #: ../Doc/whatsnew/2.3.rst:1059 msgid "" @@ -2068,7 +2303,6 @@ msgstr "" "podría convertirse en una palabra clave." #: ../Doc/whatsnew/2.3.rst:1072 -#, fuzzy msgid "" "The :meth:`!xreadlines` method of file objects, introduced in Python 2.1, is " "no longer necessary because files now behave as their own iterator. :meth:`!" @@ -2078,18 +2312,17 @@ msgid "" "encoding used by the file; Unicode strings written to the file will be " "automatically converted to bytes using the given encoding." msgstr "" -"El método :meth:`xreadlines` de los objetos archivo, introducido en Python " -"2.1, ya no es necesario porque los archivos se comportan ahora como su " -"propio iterador. :meth:`xreadlines` se introdujo originalmente como una " -"forma más rápida de recorrer todas las líneas de un archivo, pero ahora se " -"puede escribir simplemente ``for line in file_obj``. Los objetos archivo " -"también tienen un nuevo atributo :attr:`encoding` de sólo lectura que " +"El método :meth:`!xreadlines` de los objetos de archivo, introducido en " +"Python 2.1, ya no es necesario porque los archivos ahora se comportan como " +"su propio iterador. :meth:`!xreadlines` se introdujo originalmente como una " +"forma más rápida de recorrer todas las líneas de un archivo, pero ahora " +"puedes escribir simplemente ``for line in file_obj``. Los objetos de archivo " +"también tienen un nuevo atributo :attr:`!encoding` de solo lectura que " "proporciona la codificación utilizada por el archivo; las cadenas Unicode " "escritas en el archivo se convertirán automáticamente a bytes utilizando la " "codificación dada." #: ../Doc/whatsnew/2.3.rst:1080 -#, fuzzy msgid "" "The method resolution order used by new-style classes has changed, though " "you'll only notice the difference if you have a really complicated " @@ -2103,22 +2336,20 @@ msgid "" "pipermail/python-dev/2002-October/029035.html. Samuele Pedroni first pointed " "out the problem and also implemented the fix by coding the C3 algorithm." msgstr "" -"El orden de resolución de métodos utilizado por las clases de estilo nuevo " -"ha cambiado, aunque solo notará la diferencia si tiene una jerarquía de " +"El orden de resolución de métodos utilizado por las clases de nuevo estilo " +"ha cambiado, aunque solo notarás la diferencia si tienes una jerarquía de " "herencia realmente complicada. Las clases clásicas no se ven afectadas por " -"este cambio. Python 2.2 originalmente usó un tipo topológico de los " -"ancestros de una clase, pero 2.3 ahora usa el algoritmo C3 como se describe " -"en el documento `\"A Monotonic Superclass Linearization for Dylan\" `_. Para comprender " -"la motivación de este cambio, lea el artículo `\"Python 2.3 Method " -"Resolution Order\" `_ de " -"Michele Simionato, o lea el hilo en python-dev que comienza con el mensaje " -"en https://mail.python.org/pipermail/python-dev/2002-October/029035.html . " -"Samuele Pedroni fue el primero en señalar el problema y también implementó " -"la solución codificando el algoritmo C3." +"este cambio. Python 2.2 originalmente usaba una clasificación topológica de " +"los ancestros de una clase, pero 2.3 ahora usa el algoritmo C3 como se " +"describe en el artículo `\"A Monotonic Superclass Linearization for Dylan\" " +"`_. Para " +"entender la motivación de este cambio, lee el artículo :ref:`python_2.3_mro` " +"de Michele Simionato, o lee el hilo en python-dev que comienza con el " +"mensaje en https://mail.python.org/pipermail/python-dev/2002-October/029035." +"html. Samuele Pedroni fue el primero en señalar el problema y también " +"implementó la solución codificando el algoritmo C3." #: ../Doc/whatsnew/2.3.rst:1093 -#, fuzzy msgid "" "Python runs multithreaded programs by switching between threads after " "executing N bytecodes. The default value for N has been increased from 10 " @@ -2128,16 +2359,16 @@ msgid "" "number using ``sys.setcheckinterval(N)``. The limit can be retrieved with " "the new :func:`!sys.getcheckinterval` function." msgstr "" -"Python ejecuta programas multihilo cambiando entre hilos después de ejecutar " -"N bytecodes. El valor por defecto de N se ha incrementado de 10 a 100 " -"bytecodes, acelerando las aplicaciones de un solo hilo al reducir la " -"sobrecarga de cambio. Algunas aplicaciones multihilo pueden sufrir un " -"tiempo de respuesta más lento, pero eso se arregla fácilmente estableciendo " -"el límite a un número menor usando ``sys.setcheckinterval(N)``. El límite " -"puede recuperarse con la nueva función :func:`sys.getcheckinterval`." +"Python ejecuta programas multiproceso alternando entre subprocesos después " +"de ejecutar N bytecodes. El valor predeterminado de N se ha incrementado de " +"10 a 100 bytecodes, lo que acelera las aplicaciones de un solo subproceso al " +"reducir la sobrecarga de conmutación. Algunas aplicaciones multiproceso " +"pueden sufrir un tiempo de respuesta más lento, pero eso se soluciona " +"fácilmente estableciendo el límite en un número menor utilizando ``sys." +"setcheckinterval(N)``. El límite se puede recuperar con la nueva función :" +"func:`!sys.getcheckinterval`." #: ../Doc/whatsnew/2.3.rst:1101 -#, fuzzy msgid "" "One minor but far-reaching change is that the names of extension types " "defined by the modules included with Python now contain the module and a " @@ -2146,9 +2377,8 @@ msgid "" msgstr "" "Un cambio menor pero de gran alcance es que los nombres de los tipos de " "extensión definidos por los módulos incluidos con Python ahora contienen el " -"módulo y un ``.'`` delante del nombre del tipo. Por ejemplo, en Python 2.2, " -"si creabas un socket e imprimías su :attr:`__class__`, obtendrías esta " -"salida::" +"módulo y un ``'.'`` delante del nombre del tipo. Por ejemplo, en Python 2.2, " +"si creaba un socket e imprimía su :attr:`!__class__`, obtenía este resultado:" #: ../Doc/whatsnew/2.3.rst:1106 msgid "" @@ -2156,6 +2386,9 @@ msgid "" ">>> s.__class__\n" "" msgstr "" +">>> s = socket.socket()\n" +">>> s.__class__\n" +"" #: ../Doc/whatsnew/2.3.rst:1110 msgid "In 2.3, you get this::" @@ -2166,9 +2399,10 @@ msgid "" ">>> s.__class__\n" "" msgstr "" +">>> s.__class__\n" +"" #: ../Doc/whatsnew/2.3.rst:1115 -#, fuzzy msgid "" "One of the noted incompatibilities between old- and new-style classes has " "been removed: you can now assign to the :attr:`~type.__name__` and :attr:" @@ -2177,12 +2411,12 @@ msgid "" "of those relating to assigning to an instance's :attr:`~object.__class__` " "attribute." msgstr "" -"Se ha eliminado una de las incompatibilidades señaladas entre las clases de " -"estilo antiguo y las de estilo nuevo: ahora se pueden asignar a los " -"atributos :attr:`~definición.__name__` y :attr:`~clase.__bases__` de las " -"clases de estilo nuevo. Hay algunas restricciones sobre lo que se puede " -"asignar a :attr:`~class.__bases__` en la línea de las relacionadas con la " -"asignación al atributo :attr:`~instance.__class__` de una instancia." +"Se ha eliminado una de las incompatibilidades observadas entre las clases de " +"estilo antiguo y nuevo: ahora se pueden asignar atributos :attr:`~type." +"__name__` y :attr:`~type.__bases__` a las clases de estilo nuevo. Existen " +"algunas restricciones sobre lo que se puede asignar a :attr:`!__bases__` " +"similares a las relacionadas con la asignación al atributo :attr:`~object." +"__class__` de una instancia." #: ../Doc/whatsnew/2.3.rst:1125 msgid "String Changes" @@ -2212,27 +2446,31 @@ msgid "" ">>> '' in 'abcd'\n" "True" msgstr "" +">>> 'ab' en 'abcd'\n" +"Verdadero\n" +">>> 'ad' en 'abcd'\n" +"Falso\n" +">>> '' en 'abcd'\n" +"Verdadero" #: ../Doc/whatsnew/2.3.rst:1140 -#, fuzzy msgid "" "Note that this doesn't tell you where the substring starts; if you need that " "information, use the :meth:`~str.find` string method." msgstr "" "Tenga en cuenta que esto no le dice dónde empieza la subcadena; si necesita " -"esa información, utilice el método :meth:`find` string." +"esa información, utilice el método :meth:`~str.find` string." #: ../Doc/whatsnew/2.3.rst:1143 -#, fuzzy msgid "" "The :meth:`~str.strip`, :meth:`~str.lstrip`, and :meth:`~str.rstrip` string " "methods now have an optional argument for specifying the characters to " "strip. The default is still to remove all whitespace characters::" msgstr "" -"Los métodos de cadena :meth:`strip`, :meth:`lstrip` y :meth:`rstrip` tienen " -"ahora un argumento opcional para especificar los caracteres a eliminar. El " -"valor por defecto sigue siendo eliminar todos los caracteres de espacio en " -"blanco::" +"Los métodos de cadena :meth:`~str.strip`, :meth:`~str.lstrip` y :meth:`~str." +"rstrip` ahora tienen un argumento opcional para especificar los caracteres " +"que se eliminarán. El valor predeterminado sigue siendo eliminar todos los " +"caracteres de espacio en blanco:" #: ../Doc/whatsnew/2.3.rst:1147 msgid "" @@ -2246,32 +2484,40 @@ msgid "" "u'\\u4001abc'\n" ">>>" msgstr "" +">>> ' abc '.strip()\n" +"'abc'\n" +">>> '><><><>'.strip('<>')\n" +"'abc'\n" +">>> '><><><>\\n'.strip('<>')\n" +"'abc<><><>\\n'\n" +">>> u'\\u4000\\u4001abc\\u4000'.strip(u'\\u4000')\n" +"u'\\u4001abc'\n" +">>>" #: ../Doc/whatsnew/2.3.rst:1157 msgid "(Suggested by Simon Brunning and implemented by Walter Dörwald.)" msgstr "(Sugerido por Simon Brunning y aplicado por Walter Dörwald)" #: ../Doc/whatsnew/2.3.rst:1159 -#, fuzzy msgid "" "The :meth:`~str.startswith` and :meth:`~str.endswith` string methods now " "accept negative numbers for the *start* and *end* parameters." msgstr "" -"Los métodos de cadena :meth:`startswith` y :meth:`endswith` ahora aceptan " -"números negativos para los parámetros *start* y *end*." +"Los métodos de cadena :meth:`~str.startswith` y :meth:`~str.endswith` ahora " +"aceptan números negativos para los parámetros *start* y *end*." #: ../Doc/whatsnew/2.3.rst:1162 -#, fuzzy msgid "" "Another new string method is :meth:`~str.zfill`, originally a function in " "the :mod:`string` module. :meth:`~str.zfill` pads a numeric string with " "zeros on the left until it's the specified width. Note that the ``%`` " "operator is still more flexible and powerful than :meth:`~str.zfill`. ::" msgstr "" -"Otro nuevo método de cadena es :meth:`zfill`, originalmente una función del " -"módulo :mod:`string`. :meth:`zfill` rellena una cadena numérica con ceros a " -"la izquierda hasta que tenga el ancho especificado. Tenga en cuenta que el " -"operador ``%`` sigue siendo más flexible y potente que :meth:`zfill`. ::" +"Otro nuevo método de cadena es :meth:`~str.zfill`, originalmente una función " +"del módulo :mod:`string`. :meth:`~str.zfill` rellena una cadena numérica con " +"ceros a la izquierda hasta que alcanza el ancho especificado. Tenga en " +"cuenta que el operador ``%`` sigue siendo más flexible y potente que :meth:" +"`~str.zfill`. ::" #: ../Doc/whatsnew/2.3.rst:1167 msgid "" @@ -2282,24 +2528,29 @@ msgid "" ">>> 'goofy'.zfill(6)\n" "'0goofy'" msgstr "" +">>> '45'.zfill(4)\n" +"'0045'\n" +">>> '12345'.zfill(4)\n" +"'12345'\n" +">>> 'tonto'.zfill(6)\n" +"'0tonto'" #: ../Doc/whatsnew/2.3.rst:1174 msgid "(Contributed by Walter Dörwald.)" msgstr "(Contribución de Walter Dörwald.)" #: ../Doc/whatsnew/2.3.rst:1176 -#, fuzzy msgid "" "A new type object, :class:`!basestring`, has been added. Both 8-bit strings " "and Unicode strings inherit from this type, so ``isinstance(obj, " "basestring)`` will return :const:`True` for either kind of string. It's a " "completely abstract type, so you can't create :class:`!basestring` instances." msgstr "" -"Se ha añadido un nuevo tipo de objeto, :class:`basestring`. Tanto las " +"Se ha añadido un nuevo tipo de objeto, :class:`!basestring`. Tanto las " "cadenas de 8 bits como las cadenas Unicode heredan de este tipo, por lo que " -"``isinstance(obj, basestring)`` retornará :const:`True` para cualquier tipo " -"de cadena. Es un tipo completamente abstracto, por lo que no se pueden " -"crear instancias de :class:`basestring`." +"``isinstance(obj, basestring)`` devolverá :const:`True` para cualquier tipo " +"de cadena. Es un tipo completamente abstracto, por lo que no se pueden crear " +"instancias de :class:`!basestring`." #: ../Doc/whatsnew/2.3.rst:1181 msgid "" @@ -2324,17 +2575,15 @@ msgstr "" "rápida; ¡ahora son más rápidas que las clases clásicas!" #: ../Doc/whatsnew/2.3.rst:1194 -#, fuzzy msgid "" "The :meth:`~list.sort` method of list objects has been extensively rewritten " "by Tim Peters, and the implementation is significantly faster." msgstr "" -"El método :meth:`sort` de los objetos de la lista ha sido ampliamente " -"reescrito por Tim Peters, y la implementación es significativamente más " +"El método :meth:`~list.sort` de objetos de lista ha sido reescrito " +"ampliamente por Tim Peters, y la implementación es significativamente más " "rápida." #: ../Doc/whatsnew/2.3.rst:1197 -#, fuzzy msgid "" "Multiplication of large long integers is now much faster thanks to an " "implementation of Karatsuba multiplication, an algorithm that scales better " @@ -2342,11 +2591,11 @@ msgid "" "algorithm. (Original patch by Christopher A. Craig, and significantly " "reworked by Tim Peters.)" msgstr "" -"La multiplicación de enteros largos es ahora mucho más rápida gracias a una " -"implementación de la multiplicación Karatsuba, un algoritmo que escala mejor " -"que el O(n\\*n) requerido para el algoritmo de multiplicación de la escuela " -"primaria. (Parche original de Christopher A. Craig, y reelaborado " -"significativamente por Tim Peters)" +"La multiplicación de números enteros grandes es ahora mucho más rápida " +"gracias a una implementación de la multiplicación Karatsuba, un algoritmo " +"que escala mejor que el *O*\\ (*n*\\ :sup:`2`) requerido para el algoritmo " +"de multiplicación de nivel primario. (Parche original de Christopher A. " +"Craig y reelaborado significativamente por Tim Peters)." #: ../Doc/whatsnew/2.3.rst:1202 msgid "" @@ -2360,15 +2609,14 @@ msgstr "" "larga. (Eliminado por Michael Hudson)" #: ../Doc/whatsnew/2.3.rst:1206 -#, fuzzy msgid "" ":func:`!xrange` objects now have their own iterator, making ``for i in " "xrange(n)`` slightly faster than ``for i in range(n)``. (Patch by Raymond " "Hettinger.)" msgstr "" -"Los objetos :func:`xrange` tienen ahora su propio iterador, haciendo que " -"``for i in xrange(n)`` sea ligeramente más rápido que ``for i in " -"range(n)``. (Parche de Raymond Hettinger)" +"Los objetos :func:`!xrange` ahora tienen su propio iterador, lo que hace que " +"``for i in xrange(n)`` sea ligeramente más rápido que ``for i in range(n)``. " +"(Parche de Raymond Hettinger)." #: ../Doc/whatsnew/2.3.rst:1210 msgid "" @@ -2424,19 +2672,17 @@ msgstr "" "(Contribución de Jason Orendorff)" #: ../Doc/whatsnew/2.3.rst:1233 -#, fuzzy msgid "" "The :mod:`!bsddb` module has been replaced by version 4.1.6 of the `PyBSDDB " "`_ package, providing a more complete " "interface to the transactional features of the BerkeleyDB library." msgstr "" -"El módulo :mod:`bsddb` ha sido reemplazado por la versión 4.1.6 del paquete " -"`PyBSDDB `_, lo que proporciona una " -"interfaz más completa para las funciones transaccionales de la biblioteca " +"El módulo :mod:`!bsddb` ha sido reemplazado por la versión 4.1.6 del paquete " +"`PyBSDDB `_, proporcionando una interfaz " +"más completa para las características transaccionales de la biblioteca " "BerkeleyDB." #: ../Doc/whatsnew/2.3.rst:1237 -#, fuzzy msgid "" "The old version of the module has been renamed to :mod:`!bsddb185` and is " "no longer built automatically; you'll have to edit :file:`Modules/Setup` to " @@ -2451,19 +2697,19 @@ msgid "" "importing it as :mod:`!bsddb3`, you will have to change your ``import`` " "statements to import it as :mod:`!bsddb`." msgstr "" -"La antigua versión del módulo ha sido renombrada como :mod:`bsddb185` y ya " -"no se construye automáticamente; tendrás que editar :file:`Modules/Setup` " -"para activarlo. Ten en cuenta que el nuevo paquete :mod:`bsddb` está " -"pensado para ser compatible con el módulo antiguo, así que asegúrate de " -"enviar errores si descubres alguna incompatibilidad. Al actualizar a Python " -"2.3, si el nuevo intérprete se compila con una nueva versión de la " -"biblioteca BerkeleyDB subyacente, es casi seguro que tendrá que convertir " -"sus archivos de base de datos a la nueva versión. Puede hacerlo fácilmente " +"La versión anterior del módulo ha cambiado de nombre a :mod:`!bsddb185` y ya " +"no se compila automáticamente; deberá editar :file:`Modules/Setup` para " +"habilitarlo. Tenga en cuenta que el nuevo paquete :mod:`!bsddb` está pensado " +"para ser compatible con el módulo anterior, así que asegúrese de informar de " +"los errores si descubre alguna incompatibilidad. Al actualizar a Python 2.3, " +"si el nuevo intérprete se compila con una nueva versión de la biblioteca " +"BerkeleyDB subyacente, es casi seguro que tendrá que convertir los archivos " +"de su base de datos a la nueva versión. Puede hacerlo con bastante facilidad " "con los nuevos scripts :file:`db2pickle.py` y :file:`pickle2db.py` que " -"encontrará en el directorio :file:`Tools/scripts` de la distribución. Si ya " -"ha estado utilizando el paquete PyBSDDB e importándolo como :mod:`bsddb3`, " -"tendrá que cambiar sus sentencias ``import`` para importarlo como :mod:" -"`bsddb`." +"encontrará en el directorio :file:`Tools/scripts` de la distribución. Si ya " +"ha estado usando el paquete PyBSDDB y lo ha importado como :mod:`!bsddb3`, " +"tendrá que cambiar sus declaraciones ``import`` para importarlo como :mod:`!" +"bsddb`." #: ../Doc/whatsnew/2.3.rst:1249 msgid "" @@ -2486,7 +2732,6 @@ msgstr "" "detalles." #: ../Doc/whatsnew/2.3.rst:1256 -#, fuzzy msgid "" "The Distutils :class:`!Extension` class now supports an extra constructor " "argument named *depends* for listing additional source files that an " @@ -2495,12 +2740,13 @@ msgid "" "includes the header file :file:`sample.h`, you would create the :class:`!" "Extension` object like this::" msgstr "" -"La clase Distutils :class:`Extension` soporta ahora un argumento constructor " -"extra llamado *depends* para listar archivos fuente adicionales de los que " -"depende una extensión. Esto permite a Distutils recompilar el módulo si se " -"modifica alguno de los archivos de dependencia. Por ejemplo, si :file:" -"`sampmodule.c` incluye el fichero de cabecera :file:`sample.h`, se crearía " -"el objeto :class:`Extension` así::" +"La clase :class:`!Extension` de Distutils ahora admite un argumento de " +"constructor adicional llamado *depends* para enumerar archivos de origen " +"adicionales de los que depende una extensión. Esto permite que Distutils " +"vuelva a compilar el módulo si se modifica alguno de los archivos de " +"dependencia. Por ejemplo, si :file:`sampmodule.c` incluye el archivo de " +"encabezado :file:`sample.h`, crearía el objeto :class:`!Extension` de la " +"siguiente manera:" #: ../Doc/whatsnew/2.3.rst:1263 msgid "" @@ -2508,6 +2754,9 @@ msgid "" " sources=[\"sampmodule.c\"],\n" " depends=[\"sample.h\"])" msgstr "" +"ext = Extensión(\"samp\",\n" +"fuentes=[\"sampmodule.c\"],\n" +"depende=[\"sample.h\"])" #: ../Doc/whatsnew/2.3.rst:1267 msgid "" @@ -2518,30 +2767,29 @@ msgstr "" "(Contribución de Jeremy Hylton)" #: ../Doc/whatsnew/2.3.rst:1270 -#, fuzzy msgid "" "Other minor changes to Distutils: it now checks for the :envvar:`CC`, :" "envvar:`CFLAGS`, :envvar:`!CPP`, :envvar:`LDFLAGS`, and :envvar:`CPPFLAGS` " "environment variables, using them to override the settings in Python's " "configuration (contributed by Robert Weber)." msgstr "" -"Otros cambios menores en Distutils: ahora comprueba las variables de " -"entorno :envvar:`CC`, :envvar:`CFLAGS`, :envvar:`CPP`, :envvar:`LDFLAGS` y :" -"envvar:`CPPFLAGS`, utilizándolas para anular los ajustes de la configuración " -"de Python (contribución de Robert Weber)." +"Otros cambios menores en Distutils: ahora verifica las variables de entorno :" +"envvar:`CC`, :envvar:`CFLAGS`, :envvar:`!CPP`, :envvar:`LDFLAGS` y :envvar:" +"`CPPFLAGS`, usándolas para anular las configuraciones en la configuración de " +"Python (contribuido por Robert Weber)." #: ../Doc/whatsnew/2.3.rst:1275 -#, fuzzy msgid "" "Previously the :mod:`doctest` module would only search the docstrings of " "public methods and functions for test cases, but it now also examines " "private ones as well. The :func:`~doctest.DocTestSuite` function creates a :" "class:`unittest.TestSuite` object from a set of :mod:`doctest` tests." msgstr "" -"Anteriormente el módulo :mod:`doctest` sólo buscaba casos de prueba en los " -"docstrings de los métodos y funciones públicos, pero ahora también examina " -"los privados. La función :func:`DocTestSuite` crea un objeto :class:" -"`unittest.TestSuite` a partir de un conjunto de pruebas :mod:`doctest`." +"Anteriormente, el módulo :mod:`doctest` solo buscaba casos de prueba en las " +"cadenas de documentación de métodos y funciones públicos, pero ahora también " +"examina los casos de prueba privados. La función :func:`~doctest." +"DocTestSuite` crea un objeto :class:`unittest.TestSuite` a partir de un " +"conjunto de pruebas :mod:`doctest`." #: ../Doc/whatsnew/2.3.rst:1280 msgid "" @@ -2552,7 +2800,6 @@ msgstr "" "objetos referenciados por *object*." #: ../Doc/whatsnew/2.3.rst:1283 -#, fuzzy msgid "" "The :mod:`getopt` module gained a new function, :func:`~getopt.gnu_getopt`, " "that supports the same arguments as the existing :func:`~getopt.getopt` " @@ -2561,13 +2808,13 @@ msgid "" "encountered, but in GNU-style mode processing continues, meaning that " "options and arguments can be mixed. For example::" msgstr "" -"El módulo :mod:`getopt` ha ganado una nueva función, :func:`gnu_getopt`, que " -"admite los mismos argumentos que la función :func:`getopt` existente, pero " -"utiliza el modo de exploración al estilo GNU. La función :func:`getopt` " -"existente deja de procesar las opciones tan pronto como se encuentra un " -"argumento que no es una opción, pero en el modo GNU el procesamiento " -"continúa, lo que significa que las opciones y los argumentos pueden " -"mezclarse. Por ejemplo::" +"El módulo :mod:`getopt` obtuvo una nueva función, :func:`~getopt." +"gnu_getopt`, que admite los mismos argumentos que la función :func:`~getopt." +"getopt` existente, pero utiliza el modo de escaneo de estilo GNU. El módulo :" +"func:`~getopt.getopt` existente deja de procesar opciones tan pronto como se " +"encuentra un argumento que no es una opción, pero en el modo de estilo GNU " +"el procesamiento continúa, lo que significa que se pueden mezclar opciones y " +"argumentos. Por ejemplo:" #: ../Doc/whatsnew/2.3.rst:1289 msgid "" @@ -2576,6 +2823,10 @@ msgid "" ">>> getopt.gnu_getopt(['-f', 'filename', 'output', '-v'], 'f:v')\n" "([('-f', 'filename'), ('-v', '')], ['output'])" msgstr "" +">>> getopt.getopt(['-f', 'nombrearchivo', 'salida', '-v'], 'f:v')\n" +"([('-f', 'nombrearchivo')], ['salida', '-v'])\n" +">>> getopt.gnu_getopt(['-f', 'nombrearchivo', 'salida', '-v'], 'f:v')\n" +"([('-f', 'nombrearchivo'), ('-v', '')], ['salida'])" #: ../Doc/whatsnew/2.3.rst:1294 msgid "(Contributed by Peter Åstrand.)" @@ -2596,13 +2847,16 @@ msgid "" ">>> g.gr_name, g.gr_gid\n" "('amk', 500)" msgstr "" +">>> importar grp\n" +">>> g = grp.getgrnam('amk')\n" +">>> g.gr_name, g.gr_gid\n" +"('amk', 500)" #: ../Doc/whatsnew/2.3.rst:1304 msgid "The :mod:`gzip` module can now handle files exceeding 2 GiB." msgstr "El módulo :mod:`gzip` ahora puede manejar archivos de más de 2 GiB." #: ../Doc/whatsnew/2.3.rst:1306 -#, fuzzy msgid "" "The new :mod:`heapq` module contains an implementation of a heap queue " "algorithm. A heap is an array-like data structure that keeps items in a " @@ -2614,26 +2868,26 @@ msgid "" "structure.)" msgstr "" "El nuevo módulo :mod:`heapq` contiene una implementación de un algoritmo de " -"colas de montón. Un montón es una estructura de datos similar a un array " -"que mantiene los elementos en un orden parcialmente ordenado de forma que, " +"cola de montón. Un montón es una estructura de datos similar a una matriz " +"que mantiene los elementos en un orden parcialmente ordenado de modo que, " "para cada índice *k*, ``heap[k] <= heap[2*k+1]`` y ``heap[k] <= " -"heap[2*k+2]``. Esto hace que sea rápido eliminar el elemento más pequeño, y " -"la inserción de un nuevo elemento manteniendo la propiedad del montón es " -"*O(lg n)*. (Véase https://xlinux.nist.gov/dads//HTML/priorityque.html para " -"más información sobre la estructura de datos de la cola de prioridad)" +"heap[2*k+2]``, se elimina rápidamente el elemento más pequeño y se inserta " +"un elemento nuevo mientras se mantiene la propiedad de montón *O*\\ (log " +"*n*). (Consulte https://xlinux.nist.gov/dads//HTML/priorityque.html para " +"obtener más información sobre la estructura de datos de la cola de " +"prioridad)." #: ../Doc/whatsnew/2.3.rst:1314 -#, fuzzy msgid "" "The :mod:`heapq` module provides :func:`~heapq.heappush` and :func:`~heapq." "heappop` functions for adding and removing items while maintaining the heap " "property on top of some other mutable Python sequence type. Here's an " "example that uses a Python list::" msgstr "" -"El módulo :mod:`heapq` proporciona las funciones :func:`heappush` y :func:" -"`heappop` para añadir y eliminar elementos manteniendo la propiedad del " -"montón sobre algún otro tipo de secuencia mutable de Python. Aquí hay un " -"ejemplo que utiliza una lista de Python::" +"El módulo :mod:`heapq` proporciona las funciones :func:`~heapq.heappush` y :" +"func:`~heapq.heappop` para agregar y eliminar elementos mientras se mantiene " +"la propiedad de montón sobre algún otro tipo de secuencia mutable de Python. " +"Aquí hay un ejemplo que utiliza una lista de Python:" #: ../Doc/whatsnew/2.3.rst:1318 msgid "" @@ -2651,6 +2905,19 @@ msgid "" ">>> heap\n" "[5, 7, 11]" msgstr "" +">>> import heapq\n" +">>> montón = []\n" +">>> para el elemento en [3, 7, 5, 11, 1]:\n" +"... heapq.heappush(montón, elemento)\n" +"...\n" +">>> montón\n" +"[1, 3, 5, 11, 7]\n" +">>> heapq.heappop(montón)\n" +"1\n" +">>> heapq.heappop(montón)\n" +"3\n" +">>> montón\n" +"[5, 7, 11]" #: ../Doc/whatsnew/2.3.rst:1332 msgid "(Contributed by Kevin O'Connor.)" @@ -2681,7 +2948,6 @@ msgstr "" "Lauder y Tino Lange.)" #: ../Doc/whatsnew/2.3.rst:1343 -#, fuzzy msgid "" "The :mod:`itertools` contains a number of useful functions for use with " "iterators, inspired by various functions provided by the ML and Haskell " @@ -2692,14 +2958,14 @@ msgid "" "package's reference documentation for details. (Contributed by Raymond " "Hettinger.)" msgstr "" -"El :mod:`itertools` contiene una serie de funciones útiles para usar con " -"iteradores, inspiradas en varias funciones proporcionadas por los lenguajes " -"ML y Haskell. Por ejemplo, ``itertools.ifilter(predicate, iterator)`` " -"devuelve todos los elementos del iterador para los que la función :func:" -"`predicate` devuelve :const:`True` y ``itertools.repeat(obj, N)`` devuelve " -"``obj`` *N* veces. Hay una serie de otras funciones en el módulo; consulte " -"la documentación de referencia del paquete para obtener más detalles. " -"(Contribuido por Raymond Hettinger.)" +":mod:`itertools` contiene varias funciones útiles para usar con iteradores, " +"inspiradas en varias funciones proporcionadas por los lenguajes ML y " +"Haskell. Por ejemplo, ``itertools.ifilter(predicate, iterator)`` devuelve " +"todos los elementos del iterador para los que la función :func:`!predicate` " +"devuelve :const:`True`, y ``itertools.repeat(obj, N)`` devuelve ``obj`` *N* " +"veces. Hay varias otras funciones en el módulo; consulte la documentación de " +"referencia del paquete para obtener más detalles. (Contribuido por Raymond " +"Hettinger)." #: ../Doc/whatsnew/2.3.rst:1352 msgid "" @@ -2720,7 +2986,6 @@ msgstr "" "Hettinger.)" #: ../Doc/whatsnew/2.3.rst:1359 -#, fuzzy msgid "" "Several new POSIX functions (:func:`!getpgid`, :func:`!killpg`, :func:`!" "lchown`, :func:`!loadavg`, :func:`!major`, :func:`!makedev`, :func:`!minor`, " @@ -2728,26 +2993,24 @@ msgid "" "the :mod:`os` module. (Contributed by Gustavo Niemeyer, Geert Jansen, and " "Denis S. Otkidach.)" msgstr "" -"Se agregaron varias funciones POSIX nuevas (:func:`getpgid`, :func:" -"`killpg`, :func:`lchown`, :func:`loadavg`, :func:`major`, :func:`makedev`, :" -"func:`minor` y :func:`mknod`) al módulo :mod:`posix` que subyace al módulo :" -"mod:`os`. (Contribuido por Gustavo Niemeyer, Geert Jansen y Denis S. " -"Otkidach.)" +"Se agregaron varias funciones POSIX nuevas (:func:`!getpgid`, :func:`!" +"killpg`, :func:`!lchown`, :func:`!loadavg`, :func:`!major`, :func:`!" +"makedev`, :func:`!minor` y :func:`!mknod`) al módulo :mod:`posix` que sirve " +"de base al módulo :mod:`os`. (Contribución de Gustavo Niemeyer, Geert Jansen " +"y Denis S. Otkidach)." #: ../Doc/whatsnew/2.3.rst:1365 -#, fuzzy msgid "" "In the :mod:`os` module, the :func:`!\\*stat` family of functions can now " "report fractions of a second in a timestamp. Such time stamps are " "represented as floats, similar to the value returned by :func:`time.time`." msgstr "" -"En el módulo :mod:`os`, la familia de funciones :func:`\\*stat` ahora puede " -"informar fracciones de segundo en una marca de tiempo. Estas marcas de " -"tiempo se representan como flotantes, similar al valor devuelto por :func:" -"`time.time`." +"En el módulo :mod:`os`, la familia de funciones :func:`!\\*stat` ahora puede " +"informar fracciones de segundo en una marca de tiempo. Dichas marcas de " +"tiempo se representan como números flotantes, similares al valor devuelto " +"por :func:`time.time`." #: ../Doc/whatsnew/2.3.rst:1369 -#, fuzzy msgid "" "During testing, it was found that some applications will break if time " "stamps are floats. For compatibility, when using the tuple interface of " @@ -2756,14 +3019,14 @@ msgid "" "stamps are still represented as integers, unless :func:`!os." "stat_float_times` is invoked to enable float return values::" msgstr "" -"Durante las pruebas, se descubrió que algunas aplicaciones se romperán si " -"las marcas de tiempo son flotantes. Por compatibilidad, cuando se utiliza la " -"interfaz de tupla de las marcas de tiempo :class:`stat_result` se " -"representarán como números enteros. Cuando se utilizan campos con nombre " -"(una característica introducida por primera vez en Python 2.2), las marcas " -"de tiempo todavía se representan como números enteros, a menos que se " -"invoque :func:`os.stat_float_times` para habilitar los valores de retorno " -"flotantes:" +"Durante las pruebas, se descubrió que algunas aplicaciones fallan si las " +"marcas de tiempo son números de punto flotante. Por cuestiones de " +"compatibilidad, al usar la interfaz de tupla de :class:`~os.stat_result`, " +"las marcas de tiempo se representarán como números enteros. Al usar campos " +"con nombre (una característica introducida por primera vez en Python 2.2), " +"las marcas de tiempo aún se representan como números enteros, a menos que se " +"invoque :func:`!os.stat_float_times` para habilitar los valores de retorno " +"de punto flotante:" #: ../Doc/whatsnew/2.3.rst:1376 msgid "" @@ -2773,6 +3036,11 @@ msgid "" ">>> os.stat(\"/tmp\").st_mtime\n" "1034791200.6335014" msgstr "" +">>> os.stat(\"/tmp\").st_mtime\n" +"1034791200\n" +">>> os.stat_float_times(Verdadero)\n" +">>> os.stat(\"/tmp\").st_mtime\n" +"1034791200.6335014" #: ../Doc/whatsnew/2.3.rst:1382 msgid "In Python 2.4, the default will change to always returning floats." @@ -2781,18 +3049,17 @@ msgstr "" "flotantes." #: ../Doc/whatsnew/2.3.rst:1384 -#, fuzzy msgid "" "Application developers should enable this feature only if all their " "libraries work properly when confronted with floating-point time stamps, or " "if they use the tuple API. If used, the feature should be activated on an " "application level instead of trying to enable it on a per-use basis." msgstr "" -"Los desarrolladores de aplicaciones deben habilitar esta función solo si " +"Los desarrolladores de aplicaciones deberían habilitar esta función solo si " "todas sus bibliotecas funcionan correctamente cuando se enfrentan a marcas " -"de tiempo de punto flotante o si utilizan la API de tuplas. Si se usa, la " -"función debe activarse a nivel de aplicación en lugar de intentar " -"habilitarla por uso." +"de tiempo de punto flotante o si utilizan la API de tuplas. Si se utiliza, " +"la función debería activarse a nivel de aplicación en lugar de intentar " +"habilitarla según el uso." #: ../Doc/whatsnew/2.3.rst:1389 msgid "" @@ -2807,7 +3074,6 @@ msgstr "" "siguiente sección para obtener más detalles." #: ../Doc/whatsnew/2.3.rst:1394 -#, fuzzy msgid "" "The old and never-documented :mod:`!linuxaudiodev` module has been " "deprecated, and a new version named :mod:`!ossaudiodev` has been added. The " @@ -2815,12 +3081,12 @@ msgid "" "other than Linux, and the interface has also been tidied and brought up to " "date in various ways. (Contributed by Greg Ward and Nicholas FitzRoy-Dale.)" msgstr "" -"El módulo :mod:`linuxaudiodev` antiguo y nunca documentado ha quedado " -"obsoleto y se ha agregado una nueva versión denominada :mod:`ossaudiodev`. " -"Se cambió el nombre del módulo porque los controladores de sonido OSS se " -"pueden usar en plataformas distintas de Linux, y la interfaz también se ha " -"arreglado y actualizado de varias maneras. (Contribuido por Greg Ward y " -"Nicholas FitzRoy-Dale.)" +"El antiguo módulo :mod:`!linuxaudiodev`, que nunca se documentó, ha quedado " +"obsoleto y se ha añadido una nueva versión denominada :mod:`!ossaudiodev`. " +"El módulo ha cambiado de nombre porque los controladores de sonido OSS se " +"pueden utilizar en plataformas distintas a Linux y la interfaz también se ha " +"ordenado y actualizado de varias maneras. (Contribución de Greg Ward y " +"Nicholas FitzRoy-Dale)." #: ../Doc/whatsnew/2.3.rst:1400 msgid "" @@ -2836,7 +3102,6 @@ msgstr "" "(Contribución de Marc-André Lemburg.)" #: ../Doc/whatsnew/2.3.rst:1405 -#, fuzzy msgid "" "The parser objects provided by the :mod:`pyexpat ` module " "can now optionally buffer character data, resulting in fewer calls to your " @@ -2844,15 +3109,14 @@ msgid "" "object's :attr:`~xml.parsers.expat.xmlparser.buffer_text` attribute to :" "const:`True` will enable buffering." msgstr "" -"Los objetos del analizador proporcionados por el módulo :mod:`pyexpat` ahora " -"pueden almacenar opcionalmente datos de caracteres, lo que resulta en menos " -"llamadas al controlador de datos de caracteres y, por lo tanto, un " -"rendimiento más rápido. La configuración del atributo :attr:`buffer_text` " -"del objeto del analizador en :const:`True` habilitará el almacenamiento en " -"búfer." +"Los objetos del analizador proporcionados por el módulo :mod:`pyexpat ` ahora pueden almacenar en búfer datos de caracteres de " +"manera opcional, lo que genera menos llamadas al controlador de datos de " +"caracteres y, por lo tanto, un rendimiento más rápido. Si se configura el " +"atributo :attr:`~xml.parsers.expat.xmlparser.buffer_text` del objeto del " +"analizador en :const:`True`, se habilitará el almacenamiento en búfer." #: ../Doc/whatsnew/2.3.rst:1410 -#, fuzzy msgid "" "The ``sample(population, k)`` function was added to the :mod:`random` " "module. *population* is a sequence or :class:`!xrange` object containing " @@ -2860,11 +3124,11 @@ msgid "" "elements from the population without replacing chosen elements. *k* can be " "any value up to ``len(population)``. For example::" msgstr "" -"La función ``sample(population, k)`` se agregó al módulo :mod:`random`. " -"*population* es una secuencia o un objeto :class:`xrange` que contiene los " -"elementos de la población, and :func:`sample` elije *k* elementos de la " -"población sin reemplazar los elementos escogidos. *k* puede tener cualquier " -"valor hasta ``len(population)``. Por ejemplo::" +"Se agregó la función ``sample(population, k)`` al módulo :mod:`random`. " +"*population* es una secuencia o un objeto :class:`!xrange` que contiene los " +"elementos de una población y :func:`~random.sample` elige elementos *k* de " +"la población sin reemplazar los elementos elegidos. *k* puede ser cualquier " +"valor hasta ``len(population)``. Por ejemplo:" #: ../Doc/whatsnew/2.3.rst:1416 msgid "" @@ -2885,6 +3149,22 @@ msgid "" "10000\n" "[3407, 3805, 1505, 7023, 2401, 2267, 9733, 3151, 8083, 9195]" msgstr "" +">>> days = ['Mo', 'Tu', 'We', 'Th', 'Fr', 'St', 'Sn']\n" +">>> random.sample(days, 3) # Elige 3 elementos\n" +"['St', 'Sn', 'Th']\n" +">>> random.sample(days, 7) # Elige 7 elementos\n" +"['Tu', 'Th', 'Mo', 'We', 'St', 'Fr', 'Sn']\n" +">>> random.sample(days, 7) # Elige 7 nuevamente\n" +"['We', 'Mo', 'Sn', 'Fr', 'Tu', 'St', 'Th']\n" +">>> random.sample(days, 8) # No se pueden elegir ocho\n" +"Traceback (última llamada más reciente):\n" +"Archivo \"\", línea 1, en ?\n" +"Archivo \"random.py\", línea 414, en ejemplo\n" +"genera ValueError, \"muestra mayor que la población\"\n" +"ValueError: muestra mayor que la población\n" +">>> random.sample(xrange(1,10000,2), 10) # Elige diez números impares " +"menores a 10000\n" +"[3407, 3805, 1505, 7023, 2401, 2267, 9733, 3151, 8083, 9195]" #: ../Doc/whatsnew/2.3.rst:1432 msgid "" @@ -2900,17 +3180,16 @@ msgid "(All changes contributed by Raymond Hettinger.)" msgstr "(Parches aportados por Raymond Hettinger)" #: ../Doc/whatsnew/2.3.rst:1438 -#, fuzzy msgid "" "The :mod:`readline` module also gained a number of new functions: :func:" "`~readline.get_history_item`, :func:`~readline.get_current_history_length`, " "and :func:`~readline.redisplay`." msgstr "" -"El módulo :mod:`readline` también obtuvo varias funciones nuevas: :func:" -"`get_history_item`, :func:`get_current_history_length` y :func:`redisplay`." +"El módulo :mod:`readline` también obtuvo una serie de nuevas funciones: :" +"func:`~readline.get_history_item`, :func:`~readline." +"get_current_history_length` y :func:`~readline.redisplay`." #: ../Doc/whatsnew/2.3.rst:1442 -#, fuzzy msgid "" "The :mod:`!rexec` and :mod:`!Bastion` modules have been declared dead, and " "attempts to import them will fail with a :exc:`RuntimeError`. New-style " @@ -2919,34 +3198,33 @@ msgid "" "them or time to do so. If you have applications using :mod:`!rexec`, " "rewrite them to use something else." msgstr "" -"Los módulos :mod:`rexec` y :mod:`Bastion` se han declarado muertos y los " +"Los módulos :mod:`!rexec` y :mod:`!Bastion` se han declarado inactivos y los " "intentos de importarlos fallarán con un :exc:`RuntimeError`. Las clases de " -"nuevo estilo brindan nuevas formas de salir del entorno de ejecución " -"restringido proporcionado por :mod:`rexec`, y nadie tiene interés en " -"arreglarlas o el tiempo para hacerlo. Si tiene aplicaciones que usan :mod:" -"`rexec`, vuelva a escribirlas para usar otra cosa." +"nuevo estilo proporcionan nuevas formas de salir del entorno de ejecución " +"restringido que ofrece :mod:`!rexec` y nadie tiene interés en arreglarlas ni " +"tiempo para hacerlo. Si tiene aplicaciones que utilizan :mod:`!rexec`, " +"reescríbalas para utilizar algo diferente." #: ../Doc/whatsnew/2.3.rst:1448 -#, fuzzy msgid "" "(Sticking with Python 2.2 or 2.1 will not make your applications any safer " "because there are known bugs in the :mod:`!rexec` module in those versions. " "To repeat: if you're using :mod:`!rexec`, stop using it immediately.)" msgstr "" -"(Seguir con Python 2.2 o 2.1 no hará que sus aplicaciones sean más seguras " -"porque hay errores conocidos en el módulo :mod:`rexec` en esas versiones. " -"Para repetir: si está usando :mod:`rexec`, deje de usarlo inmediatamente)." +"(Seguir usando Python 2.2 o 2.1 no hará que sus aplicaciones sean más " +"seguras porque hay errores conocidos en el módulo :mod:`!rexec` en esas " +"versiones. Para repetir: si está usando :mod:`!rexec`, deje de usarlo " +"inmediatamente)." #: ../Doc/whatsnew/2.3.rst:1452 -#, fuzzy msgid "" "The :mod:`!rotor` module has been deprecated because the algorithm it uses " "for encryption is not believed to be secure. If you need encryption, use " "one of the several AES Python modules that are available separately." msgstr "" -"El módulo :mod:`rotor` ha quedado obsoleto porque no se cree que el " -"algoritmo que utiliza para el cifrado sea seguro. Si necesita cifrado, use " -"uno de los varios módulos AES Python que están disponibles por separado." +"El módulo :mod:`!rotor` ha quedado obsoleto porque se cree que el algoritmo " +"que utiliza para el cifrado no es seguro. Si necesita cifrado, utilice uno " +"de los diversos módulos AES de Python que están disponibles por separado." #: ../Doc/whatsnew/2.3.rst:1456 msgid "" @@ -3002,15 +3280,14 @@ msgstr "" "Secure Sockets Layer (SSL)." #: ../Doc/whatsnew/2.3.rst:1477 -#, fuzzy msgid "" "The value of the C :c:macro:`!PYTHON_API_VERSION` macro is now exposed at " "the Python level as ``sys.api_version``. The current exception can be " "cleared by calling the new :func:`!sys.exc_clear` function." msgstr "" -"El valor de la macro C :c:macro:`PYTHON_API_VERSION` ahora se expone en el " +"El valor de la macro C :c:macro:`!PYTHON_API_VERSION` ahora se expone en el " "nivel de Python como ``sys.api_version``. La excepción actual se puede " -"borrar llamando a la nueva función :func:`sys.exc_clear`." +"eliminar llamando a la nueva función :func:`!sys.exc_clear`." #: ../Doc/whatsnew/2.3.rst:1481 msgid "" @@ -3021,7 +3298,6 @@ msgstr "" "\\ -format archivos de almacenamiento. (Contribución de Lars Gustäbel.)" #: ../Doc/whatsnew/2.3.rst:1484 -#, fuzzy msgid "" "The new :mod:`textwrap` module contains functions for wrapping strings " "containing paragraphs of text. The ``wrap(text, width)`` function takes a " @@ -3031,13 +3307,13 @@ msgid "" "you can guess, :func:`~textwrap.fill` is built on top of :func:`~textwrap." "wrap`. For example::" msgstr "" -"El nuevo módulo :mod:`textwrap` contiene funciones para envolver cadenas que " -"contienen párrafos de texto. La función ``wrap(text, width)`` toma una " -"cadena y devuelve una lista que contiene el texto dividido en líneas de no " -"más del ancho elegido. La función ``fill(text, width)`` devuelve una sola " -"cadena, reformateada para que quepa en líneas que no superen el ancho " -"elegido. (Como puede adivinar, :func:`fill` está construido sobre :func:" -"`wrap`. Por ejemplo:" +"El nuevo módulo :mod:`textwrap` contiene funciones para encapsular cadenas " +"que contienen párrafos de texto. La función ``wrap(text, width)`` toma una " +"cadena y devuelve una lista que contiene el texto dividido en líneas de un " +"ancho no mayor que el elegido. La función ``fill(text, width)`` devuelve una " +"sola cadena, reformateada para que quepa en líneas de un ancho no mayor que " +"el elegido. (Como puede adivinar, :func:`~textwrap.fill` está construido " +"sobre :func:`~textwrap.wrap`. Por ejemplo:" #: ../Doc/whatsnew/2.3.rst:1491 msgid "" @@ -3056,9 +3332,21 @@ msgid "" "it will come: the readiness is all.\n" ">>>" msgstr "" +">>> import textwrap\n" +">>> párrafo = \"Ni un ápice, desafiamos el augurio: ... más texto ...\"\n" +">>> textwrap.wrap(párrafo, 60)\n" +"[\"Ni un ápice, desafiamos el augurio: hay una providencia especial en\",\n" +"\"la caída de un gorrión. Si es ahora, no está por venir; si\",\n" +"...]\n" +">>> print textwrap.fill(párrafo, 35)\n" +"Ni un ápice, desafiamos el augurio: hay\n" +"una providencia especial en la caída de\n" +"un gorrión. Si es ahora, no está por venir; si no está por venir,\n" +"será ahora; si no es ahora, aún\n" +"vendrá: la preparación lo es todo.\n" +">>>" #: ../Doc/whatsnew/2.3.rst:1506 -#, fuzzy msgid "" "The module also contains a :class:`~textwrap.TextWrapper` class that " "actually implements the text wrapping strategy. Both the :class:`~textwrap." @@ -3067,15 +3355,14 @@ msgid "" "the formatting; consult the module's documentation for details. (Contributed " "by Greg Ward.)" msgstr "" -"El módulo también contiene una clase :class:`TextWrapper` que realmente " -"implementa la estrategia de envoltura de texto. Tanto la clase :class:" -"`TextWrapper` como las funciones :func:`wrap` y :func:`fill` admiten varios " -"argumentos de palabras clave adicionales para ajustar el formato; consulte " -"la documentación del módulo para obtener más detalles. (Contribuido por Greg " -"Ward.)" +"El módulo también contiene una clase :class:`~textwrap.TextWrapper` que " +"implementa la estrategia de ajuste de texto. Tanto la clase :class:" +"`~textwrap.TextWrapper` como las funciones :func:`~textwrap.wrap` y :func:" +"`~textwrap.fill` admiten una serie de argumentos de palabras clave " +"adicionales para ajustar el formato; consulte la documentación del módulo " +"para obtener más detalles. (Contribuido por Greg Ward)." #: ../Doc/whatsnew/2.3.rst:1512 -#, fuzzy msgid "" "The :mod:`!thread` and :mod:`threading` modules now have companion modules, :" "mod:`!dummy_thread` and :mod:`!dummy_threading`, that provide a do-nothing " @@ -3084,13 +3371,13 @@ msgid "" "modules (ones that *don't* rely on threads to run) by putting the following " "code at the top::" msgstr "" -"Los módulos :mod:`thread` y :mod:`threading` ahora tienen módulos " -"complementarios, :mod:`dummy_thread` y :mod:`dummy_threading`, que " -"proporcionan una implementación sin acción de la interfaz del módulo :mod:" -"`thread` para plataformas donde no se admiten subprocesos. La intención es " -"simplificar los módulos compatibles con subprocesos (aquellos en los que " -"*don't* depende de los subprocesos para ejecutarse) colocando el siguiente " -"código en la parte superior:" +"Los módulos :mod:`!thread` y :mod:`threading` ahora tienen módulos " +"complementarios, :mod:`!dummy_thread` y :mod:`!dummy_threading`, que " +"proporcionan una implementación sin hacer nada de la interfaz del módulo :" +"mod:`!thread` para plataformas donde no se admiten subprocesos. La intención " +"es simplificar los módulos que admiten subprocesos (aquellos que dependen de " +"subprocesos para ejecutarse) colocando el siguiente código en la parte " +"superior:" #: ../Doc/whatsnew/2.3.rst:1519 msgid "" @@ -3099,9 +3386,12 @@ msgid "" "except ImportError:\n" " import dummy_threading as _threading" msgstr "" +"Intente:\n" +"importar subprocesos como _threading\n" +"excepto ImportError:\n" +"importar dummy_threading como _threading" #: ../Doc/whatsnew/2.3.rst:1524 -#, fuzzy msgid "" "In this example, :mod:`!_threading` is used as the module name to make it " "clear that the module being used is not necessarily the actual :mod:" @@ -3111,17 +3401,16 @@ msgid "" "magically make multithreaded code run without threads; code that waits for " "another thread to return or to do something will simply hang forever." msgstr "" -"En este ejemplo, :mod:`_threading` se usa como el nombre del módulo para " -"dejar en claro que el módulo que se está usando no es necesariamente el " -"módulo :mod:`threading`. El código puede llamar funciones y usar clases en :" -"mod:`_threading`, ya sea que se admitan subprocesos o no, evitando una " -"declaración :keyword:`if` y haciendo que el código sea un poco más claro. " -"Este módulo no hará mágicamente que el código multiproceso se ejecute sin " -"subprocesos; el código que espera a que vuelva otro hilo o que haga algo " -"simplemente se colgará para siempre." +"En este ejemplo, se utiliza :mod:`!_threading` como nombre del módulo para " +"dejar claro que el módulo que se utiliza no es necesariamente el módulo :mod:" +"`threading` real. El código puede llamar a funciones y usar clases en :mod:`!" +"_threading` independientemente de si se admiten subprocesos o no, lo que " +"evita una declaración :keyword:`if` y hace que el código sea un poco más " +"claro. Este módulo no hará que el código multiproceso se ejecute mágicamente " +"sin subprocesos; el código que espera a que otro subproceso regrese o haga " +"algo simplemente se bloqueará para siempre." #: ../Doc/whatsnew/2.3.rst:1532 -#, fuzzy msgid "" "The :mod:`time` module's :func:`~time.strptime` function has long been an " "annoyance because it uses the platform C library's :func:`~time.strptime` " @@ -3129,15 +3418,14 @@ msgid "" "Cannon contributed a portable implementation that's written in pure Python " "and should behave identically on all platforms." msgstr "" -"La función :func:`strptime` del módulo :mod:`time` ha sido durante mucho " -"tiempo una molestia porque utiliza la implementación :func:`strptime` de la " -"biblioteca de la plataforma C, y las diferentes plataformas a veces tienen " -"errores extraños. Brett Cannon contribuyó con una implementación portátil " -"que está escrita en Python puro y debería comportarse de manera idéntica en " -"todas las plataformas." +"La función :func:`~time.strptime` del módulo :mod:`time` ha sido una " +"molestia durante mucho tiempo porque utiliza la implementación :func:`~time." +"strptime` de la biblioteca de la plataforma C, y a veces las diferentes " +"plataformas tienen errores extraños. Brett Cannon contribuyó con una " +"implementación portátil que está escrita en Python puro y debería " +"comportarse de manera idéntica en todas las plataformas." #: ../Doc/whatsnew/2.3.rst:1538 -#, fuzzy msgid "" "The new :mod:`timeit` module helps measure how long snippets of Python code " "take to execute. The :file:`timeit.py` file can be run directly from the " @@ -3146,12 +3434,13 @@ msgid "" "faster to convert an 8-bit string to Unicode by appending an empty Unicode " "string to it or by using the :func:`!unicode` function::" msgstr "" -"El nuevo módulo :mod:`timeit` ayuda a medir cuánto tardan en ejecutarse los " +"El nuevo módulo :mod:`timeit` ayuda a medir cuánto tardan en ejecutarse " "fragmentos de código Python. El archivo :file:`timeit.py` se puede ejecutar " -"directamente desde la línea de comando, o la clase :class:`Timer` del módulo " -"se puede importar y usar directamente. Aquí hay un breve ejemplo que " -"determina si es más rápido convertir una cadena de 8 bits a Unicode " -"agregando una cadena Unicode vacía o usando la función :func:`unicode`:" +"directamente desde la línea de comandos, o se puede importar y utilizar " +"directamente la clase :class:`~timeit.Timer` del módulo. A continuación, se " +"incluye un breve ejemplo que determina si es más rápido convertir una cadena " +"de 8 bits a Unicode añadiéndole una cadena Unicode vacía o utilizando la " +"función :func:`!unicode`:" #: ../Doc/whatsnew/2.3.rst:1545 msgid "" @@ -3168,18 +3457,28 @@ msgid "" "# [0.36831796169281006, 0.37441694736480713, 0.35304892063140869]\n" "# [0.17574405670166016, 0.18193507194519043, 0.17565798759460449]" msgstr "" +"import timeit\n" +"\n" +"timer1 = timeit.Timer('unicode(\"abc\")')\n" +"timer2 = timeit.Timer('\"abc\" + u\"\"')\n" +"\n" +"# Ejecutar tres pruebas\n" +"print timer1.repeat(repeat=3, number=100000)\n" +"print timer2.repeat(repeat=3, number=100000)\n" +"\n" +"# En mi computadora portátil, esto genera:\n" +"# [0.36831796169281006, 0.37441694736480713, 0.35304892063140869]\n" +"# [0.17574405670166016, 0.18193507194519043, 0.17565798759460449]" #: ../Doc/whatsnew/2.3.rst:1558 -#, fuzzy msgid "" "The :mod:`!Tix` module has received various bug fixes and updates for the " "current version of the Tix package." msgstr "" -"El módulo :mod:`Tix` ha recibido varias correcciones de errores y " +"El módulo :mod:`!Tix` ha recibido varias correcciones de errores y " "actualizaciones para la versión actual del paquete Tix." #: ../Doc/whatsnew/2.3.rst:1561 -#, fuzzy msgid "" "The :mod:`!Tkinter` module now works with a thread-enabled version of Tcl. " "Tcl's threading model requires that widgets only be accessed from the thread " @@ -3193,21 +3492,20 @@ msgid "" "December/031107.html for a more detailed explanation of this change. " "(Implemented by Martin von Löwis.)" msgstr "" -"El módulo :mod:`Tkinter` ahora funciona con una versión de Tcl habilitada " +"El módulo :mod:`!Tkinter` ahora funciona con una versión de Tcl habilitada " "para subprocesos. El modelo de subprocesos de Tcl requiere que solo se " "acceda a los widgets desde el subproceso en el que se crearon; los accesos " -"desde otro hilo pueden hacer que Tcl entre en pánico. Para ciertas " -"interfaces Tcl, :mod:`Tkinter` ahora evitará esto automáticamente cuando se " -"acceda a un widget desde un subproceso diferente al ordenar un comando, " -"pasarlo al subproceso correcto y esperar los resultados. Otras interfaces no " -"se pueden manejar automáticamente, pero :mod:`Tkinter` ahora lanzará una " -"excepción en dicho acceso para que al menos pueda averiguar sobre el " -"problema. Consulte https://mail.python.org/pipermail/python-dev/2002-" -"December/031107.html para obtener una explicación más detallada de este " -"cambio. (Implementado por Martin von Löwis.)" +"desde otro subproceso pueden hacer que Tcl entre en pánico. Para ciertas " +"interfaces de Tcl, :mod:`!Tkinter` ahora evitará esto automáticamente cuando " +"se acceda a un widget desde un subproceso diferente mediante la ordenación " +"de un comando, pasándolo al subproceso correcto y esperando los resultados. " +"Otras interfaces no se pueden manejar automáticamente, pero :mod:`!Tkinter` " +"ahora generará una excepción en dicho acceso para que al menos pueda " +"averiguar sobre el problema. Consulte https://mail.python.org/pipermail/" +"python-dev/2002-December/031107.html para obtener una explicación más " +"detallada de este cambio. (Implementado por Martin von Löwis)." #: ../Doc/whatsnew/2.3.rst:1572 -#, fuzzy msgid "" "Calling Tcl methods through :mod:`!_tkinter` no longer returns only " "strings. Instead, if Tcl returns other objects those objects are converted " @@ -3216,43 +3514,43 @@ msgid "" "be controlled through the :meth:`!wantobjects` method of :class:`!tkapp` " "objects." msgstr "" -"Llamar a métodos Tcl a través del objeto :mod:`_tkinter` ya no retorna solo " -"cadena de caracteres.En vez, si Tcl retorna otros objetos esos objetos son " -"convertidos a su equivalente en Python,si uno existe, o envueltos en una " -"clase :class:`_tkinter. Tcl_Obj` si no existe un equivalente de Python. Este " -"comportamiento se puede controlar mediante el método :meth:`wantobjects` de " -"objetos :class:`tkapp`." +"La llamada a métodos Tcl a través de :mod:`!_tkinter` ya no devuelve solo " +"cadenas. En cambio, si Tcl devuelve otros objetos, esos objetos se " +"convierten en su equivalente de Python, si existe uno, o se encapsulan con " +"un objeto :class:`!_tkinter.Tcl_Obj` si no existe un equivalente de Python. " +"Este comportamiento se puede controlar a través del método :meth:`!" +"wantobjects` de los objetos :class:`!tkapp`." #: ../Doc/whatsnew/2.3.rst:1578 -#, fuzzy msgid "" "When using :mod:`!_tkinter` through the :mod:`!Tkinter` module (as most " "Tkinter applications will), this feature is always activated. It should not " "cause compatibility problems, since Tkinter would always convert string " "results to Python types where possible." msgstr "" -"Cuando se usa :mod:`_tkinter` a través del módulo :mod:`Tkinter` (como lo " -"harán la mayoría de las aplicaciones de Tkinter), esta función siempre está " +"Al utilizar :mod:`!_tkinter` a través del módulo :mod:`!Tkinter` (como lo " +"hacen la mayoría de las aplicaciones de Tkinter), esta función siempre está " "activada. No debería causar problemas de compatibilidad, ya que Tkinter " "siempre convertiría los resultados de cadenas a tipos de Python cuando fuera " "posible." #: ../Doc/whatsnew/2.3.rst:1583 -#, fuzzy msgid "" "If any incompatibilities are found, the old behavior can be restored by " "setting the :attr:`!wantobjects` variable in the :mod:`!Tkinter` module to " "false before creating the first :class:`!tkapp` object. ::" msgstr "" "Si se encuentran incompatibilidades, se puede restaurar el comportamiento " -"anterior estableciendo la variable :attr:`wantobjects` en el módulo :mod:" -"`Tkinter` en falso antes de crear el primer objeto :class:`tkapp`. ::" +"anterior configurando la variable :attr:`!wantobjects` en el módulo :mod:`!" +"Tkinter` como falsa antes de crear el primer objeto :class:`!tkapp`. ::" #: ../Doc/whatsnew/2.3.rst:1587 msgid "" "import Tkinter\n" "Tkinter.wantobjects = 0" msgstr "" +"importar Tkinter\n" +"Tkinter.wantobjects = 0" #: ../Doc/whatsnew/2.3.rst:1590 msgid "Any breakage caused by this change should be reported as a bug." @@ -3260,7 +3558,6 @@ msgstr "" "Cualquier rotura causada por este cambio debe notificarse como un error." #: ../Doc/whatsnew/2.3.rst:1592 -#, fuzzy msgid "" "The :mod:`!UserDict` module has a new :class:`!DictMixin` class which " "defines all dictionary methods for classes that already have a minimum " @@ -3268,22 +3565,22 @@ msgid "" "substitutable for dictionaries, such as the classes in the :mod:`shelve` " "module." msgstr "" -"El módulo :mod:`UserDict` tiene una nueva clase :class:`DictMixin` que " +"El módulo :mod:`!UserDict` tiene una nueva clase :class:`!DictMixin` que " "define todos los métodos de diccionario para las clases que ya tienen una " -"interfaz de mapeo mínima. Esto simplifica enormemente las clases de " -"escritura que deben ser sustituibles por diccionarios, como las clases del " -"módulo :mod:`shelve`." +"interfaz de mapeo mínima. Esto simplifica enormemente la escritura de clases " +"que deben ser sustituibles por diccionarios, como las clases del módulo :mod:" +"`shelve`." #: ../Doc/whatsnew/2.3.rst:1598 -#, fuzzy msgid "" "Adding the mix-in as a superclass provides the full dictionary interface " "whenever the class defines :meth:`~object.__getitem__`, :meth:`~object." "__setitem__`, :meth:`~object.__delitem__`, and :meth:`!keys`. For example::" msgstr "" -"Agregar la combinación como una superclase proporciona la interfaz de " -"diccionario completa siempre que la clase define :meth:`__getitem__`, :meth:" -"`__setitem__`, :meth:`__delitem__` y :meth:`keys`. Por ejemplo::" +"Al agregar la combinación como superclase, se obtiene la interfaz de " +"diccionario completa siempre que la clase defina :meth:`~object." +"__getitem__`, :meth:`~object.__setitem__`, :meth:`~object.__delitem__` y :" +"meth:`!keys`. Por ejemplo:" #: ../Doc/whatsnew/2.3.rst:1602 msgid "" @@ -3324,26 +3621,60 @@ msgid "" " 'iterkeys', 'itervalues', 'keylist', 'keys', 'pop', 'popitem',\n" " 'setdefault', 'update', 'valuelist', 'values']" msgstr "" +">>> import UserDict\n" +">>> class SeqDict(UserDict.DictMixin):\n" +"... \"\"\"Similar a un diccionario implementado con listas.\"\"\"\n" +"... def __init__(self):\n" +"... self.keylist = []\n" +"... self.valuelist = []\n" +"... def __getitem__(self, key):\n" +"... try:\n" +"... i = self.keylist.index(key)\n" +"... except ValueError:\n" +"... raise KeyError\n" +"... return self.valuelist[i]\n" +"... def __setitem__(self, key, value):\n" +"... try:\n" +"... i = self.keylist.index(key)\n" +"... self.valuelist[i] = value\n" +"... except ValueError:\n" +"... self.keylist.append(key)\n" +"... self.valuelist.append(value)\n" +"... def __delitem__(self, key):\n" +"... try:\n" +"... i = self.keylist.index(key)\n" +"... except ValueError:\n" +"... raise KeyError\n" +"... self.keylist.pop(i)\n" +"... self.valuelist.pop(i)\n" +"... def keys(self):\n" +"... return list(self.keylist)\n" +"...\n" +">>> s = SeqDict()\n" +">>> dir(s) # Verificar que se implementen otros métodos de diccionario\n" +"['__cmp__', '__contains__', '__delitem__', '__doc__', '__getitem__',\n" +"'__init__', '__iter__', '__len__', '__module__', '__repr__',\n" +"'__setitem__', 'clear', 'get', 'has_key', 'items', 'iteritems',\n" +"'iterkeys', 'itervalues', 'keylist', 'keys', 'pop', 'popitem',\n" +"'setdefault', 'update', 'valuelist', 'valores']" #: ../Doc/whatsnew/2.3.rst:1639 msgid "(Contributed by Raymond Hettinger.)" msgstr "(Parches aportados por Raymond Hettinger)" #: ../Doc/whatsnew/2.3.rst:1641 -#, fuzzy msgid "" "The DOM implementation in :mod:`xml.dom.minidom` can now generate XML output " "in a particular encoding by providing an optional encoding argument to the :" "meth:`~xml.dom.minidom.Node.toxml` and :meth:`~xml.dom.minidom.Node." "toprettyxml` methods of DOM nodes." msgstr "" -"La implementación DOM en :mod:`xml.dom.minidom` ahora puede generar salida " -"XML en una codificación particular proporcionando un argumento de " -"codificación opcional a los métodos :meth:`toxml` y :meth:`toprettyxml` de " -"los nodos DOM." +"La implementación de DOM en :mod:`xml.dom.minidom` ahora puede generar " +"salida XML en una codificación particular al proporcionar un argumento de " +"codificación opcional a los métodos :meth:`~xml.dom.minidom.Node.toxml` y :" +"meth:`~xml.dom.minidom.Node.toprettyxml` de los nodos DOM." #: ../Doc/whatsnew/2.3.rst:1645 -#, fuzzy msgid "" "The :mod:`!xmlrpclib` module now supports an XML-RPC extension for handling " "nil data values such as Python's ``None``. Nil values are always supported " @@ -3351,14 +3682,13 @@ msgid "" "``None``, you must supply a true value for the *allow_none* parameter when " "creating a :class:`!Marshaller` instance." msgstr "" -"El módulo :mod:`xmlrpclib` ahora admite una extensión XML-RPC para manejar " -"valores de datos nulos como ``None`` de Python. Los valores nulos siempre se " -"admiten al desagrupar una respuesta XML-RPC. Para generar solicitudes que " +"El módulo :mod:`!xmlrpclib` ahora admite una extensión XML-RPC para manejar " +"valores de datos nulos, como ``None`` de Python. Los valores nulos siempre " +"se admiten al desagrupar una respuesta XML-RPC. Para generar solicitudes que " "contengan ``None``, debe proporcionar un valor verdadero para el parámetro " -"*allow_none* al crear una instancia :class:`Marshaller`." +"*allow_none* al crear una instancia :class:`!Marshaller`." #: ../Doc/whatsnew/2.3.rst:1651 -#, fuzzy msgid "" "The new :mod:`!DocXMLRPCServer` module allows writing self-documenting XML-" "RPC servers. Run it in demo mode (as a program) to see it in action. " @@ -3366,11 +3696,11 @@ msgid "" "documentation; pointing xmlrpclib to the server allows invoking the actual " "methods. (Contributed by Brian Quinlan.)" msgstr "" -"El nuevo módulo :mod:`DocXMLRPCServer` permite escribir servidores XML-RPC " -"autodocumentados. Ejecútelo en modo de demostración (como un programa) para " -"verlo en acción. Al apuntar el navegador web al servidor RPC se produce una " -"documentación de estilo pydoc; apuntar xmlrpclib al servidor permite invocar " -"los métodos reales. (Contribuido por Brian Quinlan.)" +"El nuevo módulo :mod:`!DocXMLRPCServer` permite escribir servidores XML-RPC " +"autodocumentados. Ejecútelo en modo de demostración (como programa) para " +"verlo en acción. Al apuntar el navegador web al servidor RPC se genera " +"documentación de estilo pydoc; al apuntar xmlrpclib al servidor se pueden " +"invocar los métodos reales. (Contribuido por Brian Quinlan.)" #: ../Doc/whatsnew/2.3.rst:1657 msgid "" @@ -3388,9 +3718,10 @@ msgid "" ">{}>{}> u\"www.Alliancefrançaise.nu\".encode(\"idna\")\n" "'www.xn--alliancefranaise-npb.nu'" msgstr "" +">{}>{}> u\"www.Alliancefrançaise.nu\".encode(\"idna\")\n" +"'www.xn--alliancefranaise-npb.nu'" #: ../Doc/whatsnew/2.3.rst:1664 -#, fuzzy msgid "" "The :mod:`socket` module has also been extended to transparently convert " "Unicode hostnames to the ACE version before passing them to the C library. " @@ -3402,11 +3733,12 @@ msgid "" msgstr "" "El módulo :mod:`socket` también se ha ampliado para convertir de forma " "transparente los nombres de host Unicode a la versión ACE antes de pasarlos " -"a la biblioteca C. Los módulos que tratan con nombres de host como :mod:" -"`httplib` y :mod:`ftplib`) también admiten nombres de host Unicode; :mod:" -"`httplib` también envía encabezados HTTP ``Host`` utilizando la versión ACE " -"del nombre de dominio. :mod:`urllib` admite URL Unicode con nombres de host " -"que no sean ASCII siempre que la parte ``path`` de la URL sea solo ASCII." +"a la biblioteca C. Los módulos que se ocupan de los nombres de host, como :" +"mod:`!httplib` y :mod:`ftplib`, también admiten nombres de host Unicode; :" +"mod:`!httplib` también envía encabezados HTTP ``Host`` utilizando la versión " +"ACE del nombre de dominio. :mod:`urllib` admite URL Unicode con nombres de " +"host que no sean ASCII siempre que la parte ``path`` de la URL sea solo " +"ASCII." #: ../Doc/whatsnew/2.3.rst:1672 msgid "" @@ -3432,7 +3764,6 @@ msgstr "" "representación del tiempo." #: ../Doc/whatsnew/2.3.rst:1685 -#, fuzzy msgid "" "The three primary types are: :class:`~datetime.date`, representing a day, " "month, and year; :class:`~datetime.time`, consisting of hour, minute, and " @@ -3442,16 +3773,15 @@ msgid "" "points in time, and time zone logic is implemented by classes inheriting " "from the abstract :class:`~datetime.tzinfo` class." msgstr "" -"Los tres tipos principales son: :class:`date`, que representa un día, mes y " -"año; :class:`~datetime.time`, que consta de hora, minuto y segundo; y :class:" -"`~datetime.datetime`, que contiene todos los atributos de :class:`date` y :" -"class:`~datetime.time`. También hay una clase :class:`timedelta` que " -"representa las diferencias entre dos puntos en el tiempo, y la lógica de la " -"zona horaria se implementa mediante clases que heredan de la clase :class:" -"`tzinfo` abstracta." +"Los tres tipos principales son: :class:`~datetime.date`, que representa un " +"día, un mes y un año; :class:`~datetime.time`, que consta de horas, minutos " +"y segundos; y :class:`~datetime.datetime`, que contiene todos los atributos " +"de :class:`~datetime.date` y :class:`~datetime.time`. También existe una " +"clase :class:`~datetime.timedelta` que representa las diferencias entre dos " +"puntos en el tiempo, y la lógica de la zona horaria se implementa mediante " +"clases que heredan de la clase abstracta :class:`~datetime.tzinfo`." #: ../Doc/whatsnew/2.3.rst:1692 -#, fuzzy msgid "" "You can create instances of :class:`~datetime.date` and :class:`~datetime." "time` by either supplying keyword arguments to the appropriate constructor, " @@ -3459,11 +3789,11 @@ msgid "" "number of class methods. For example, the :meth:`~datetime.date.today` " "class method returns the current local date." msgstr "" -"Puede crear instancias de :class:`date` y :class:`~datetime.time` " -"proporcionando argumentos de palabras clave al constructor apropiado, p. Ej. " -"``datetime.date(year=1972, month=10, day=15)``, o utilizando uno de varios " -"métodos de clase. Por ejemplo, el método de clase :meth:`date.today` " -"devuelve la fecha local actual." +"Puede crear instancias de :class:`~datetime.date` y :class:`~datetime.time` " +"proporcionando argumentos de palabras clave al constructor adecuado, por " +"ejemplo, ``datetime.date(year=1972, month=10, day=15)``, o utilizando uno de " +"los diversos métodos de clase. Por ejemplo, el método de clase :meth:" +"`~datetime.date.today` devuelve la fecha local actual." #: ../Doc/whatsnew/2.3.rst:1698 msgid "" @@ -3486,17 +3816,24 @@ msgid "" ">>> now.strftime('%Y %d %b')\n" "'2002 30 Dec'" msgstr "" +">>> import datetime\n" +">>> now = datetime.datetime.now()\n" +">>> now.isoformat()\n" +"'2002-12-30T21:27:03.994956'\n" +">>> now.ctime() # Solo disponible en fecha, datetime\n" +"'Mon Dec 30 21:27:03 2002'\n" +">>> now.strftime('%Y %d %b')\n" +"'2002 30 Dec'" #: ../Doc/whatsnew/2.3.rst:1710 -#, fuzzy msgid "" "The :meth:`~datetime.datetime.replace` method allows modifying one or more " "fields of a :class:`~datetime.date` or :class:`~datetime.datetime` " "instance, returning a new instance::" msgstr "" -"El método :meth:`replace` permite modificar uno o más campos de una " -"instancia :class:`date` o :class:`~datetime.datetime`, devolviendo una nueva " -"instancia:" +"El método :meth:`~datetime.datetime.replace` permite modificar uno o más " +"campos de una instancia :class:`~datetime.date` o :class:`~datetime." +"datetime`, devolviendo una nueva instancia::" #: ../Doc/whatsnew/2.3.rst:1713 msgid "" @@ -3507,9 +3844,14 @@ msgid "" "datetime.datetime(2001, 12, 30, 12, 15, 38, 827738)\n" ">>>" msgstr "" +">>> d = datetime.datetime.now()\n" +">>> d\n" +"datetime.datetime(2002, 12, 30, 22, 15, 38, 827738)\n" +">>> d.replace(año=2001, hora = 12)\n" +"datetime.datetime(2001, 12, 30, 12, 15, 38, 827738)\n" +">>>" #: ../Doc/whatsnew/2.3.rst:1720 -#, fuzzy msgid "" "Instances can be compared, hashed, and converted to strings (the result is " "the same as that of :meth:`~datetime.datetime.isoformat`). :class:" @@ -3519,12 +3861,13 @@ msgid "" "parsing strings and getting back a :class:`~datetime.date` or :class:" "`~datetime.datetime`." msgstr "" -"Las instancias se pueden comparar, aplicar hash y convertir en cadenas (el " -"resultado es el mismo que el de :meth:`isoformat`). Las instancias de :class:" -"`date` y :class:`~datetime.datetime` se pueden restar entre sí y agregarse a " -"las instancias de :class:`timedelta`. La mayor característica que falta es " -"que no hay soporte de biblioteca estándar para analizar cadenas y recuperar " -"un :class:`date` o :class:`~datetime.datetime`." +"Las instancias se pueden comparar, codificar y convertir en cadenas (el " +"resultado es el mismo que el de :meth:`~datetime.datetime.isoformat`). Las " +"instancias :class:`~datetime.date` y :class:`~datetime.datetime` se pueden " +"restar entre sí y agregar a las instancias :class:`~datetime.timedelta`. La " +"característica que falta más es que no hay compatibilidad con la biblioteca " +"estándar para analizar cadenas y obtener un :class:`~datetime.date` o :class:" +"`~datetime.datetime`." #: ../Doc/whatsnew/2.3.rst:1727 msgid "" @@ -3554,13 +3897,12 @@ msgstr "" "opciones." #: ../Doc/whatsnew/2.3.rst:1742 -#, fuzzy msgid "" "You start by creating an instance of :class:`~optparse.OptionParser` and " "telling it what your program's options are. ::" msgstr "" -"Empiece creando una instancia de :class:`OptionParser` y diciéndole cuáles " -"son las opciones de su programa. ::" +"Comienza creando una instancia de :class:`~optparse.OptionParser` y " +"diciéndole cuáles son las opciones de tu programa. ::" #: ../Doc/whatsnew/2.3.rst:1745 msgid "" @@ -3575,15 +3917,24 @@ msgid "" " action='store', type='int', dest='length',\n" " help='set maximum length of output')" msgstr "" +"import sys\n" +"from optparse import OptionParser\n" +"\n" +"op = OptionParser()\n" +"op.add_option('-i', '--input',\n" +"action='store', type='string', dest='input',\n" +"help='establecer nombre de archivo de entrada')\n" +"op.add_option('-l', '--length',\n" +"action='store', type='int', dest='length',\n" +"help='establecer longitud máxima de salida')" #: ../Doc/whatsnew/2.3.rst:1756 -#, fuzzy msgid "" "Parsing a command line is then done by calling the :meth:`~optparse." "OptionParser.parse_args` method. ::" msgstr "" "Luego, el análisis de una línea de comando se realiza llamando al método :" -"meth:`parse_args`. ::" +"meth:`~optparse.OptionParser.parse_args`. ::" #: ../Doc/whatsnew/2.3.rst:1758 msgid "" @@ -3591,6 +3942,9 @@ msgid "" "print options\n" "print args" msgstr "" +"opciones, args = op.parse_args(sys.argv[1:])\n" +"imprimir opciones\n" +"imprimir argumentos" #: ../Doc/whatsnew/2.3.rst:1762 msgid "" @@ -3619,6 +3973,13 @@ msgid "" "[]\n" "$" msgstr "" +"$ ./python opt.py -i data arg1\n" +"\n" +"['arg1']\n" +"$ ./python opt.py --input=data --length=4\n" +"\n" +"[]\n" +"$" #: ../Doc/whatsnew/2.3.rst:1778 msgid "The help message is automatically generated for you:" @@ -3637,6 +3998,16 @@ msgid "" " set maximum length of output\n" "$" msgstr "" +"$ ./python opt.py --help\n" +"uso: opt.py [opciones]\n" +"\n" +"opciones:\n" +"-h, --help muestra este mensaje de ayuda y sale\n" +"-iINPUT, --input=INPUT\n" +"establece el nombre del archivo de entrada\n" +"-lLENGTH, --length=LENGTH\n" +"establece la longitud máxima de salida\n" +"$" #: ../Doc/whatsnew/2.3.rst:1793 msgid "See the module's documentation for more details." @@ -3948,7 +4319,6 @@ msgstr "" "instalación local de Expat." #: ../Doc/whatsnew/2.3.rst:1927 -#, fuzzy msgid "" "If you dynamically allocate type objects in your extension, you should be " "aware of a change in the rules relating to the :attr:`~type.__module__` and :" @@ -3958,20 +4328,19 @@ msgid "" "the desired effect. For more detail, read the API reference documentation " "or the source." msgstr "" -"Si asigna dinámicamente objetos de tipo en su extensión, debe tener en " -"cuenta un cambio en las reglas relacionadas con los atributos :attr:" -"`__module__` y :attr:`~definition.__name__`. En resumen, querrá asegurarse " -"de que el diccionario del tipo contenga una clave ``'__module__'``; hacer " -"que el nombre del módulo sea la parte del nombre del tipo que conduce al " -"período final ya no tendrá el efecto deseado. Para obtener más detalles, lea " -"la documentación de referencia de la API o la fuente." +"Si asigna objetos de tipo de forma dinámica en su extensión, debe tener en " +"cuenta un cambio en las reglas relacionadas con los atributos :attr:`~type." +"__module__` y :attr:`~type.__name__`. En resumen, deberá asegurarse de que " +"el diccionario del tipo contenga una clave ``'__module__'``; hacer que el " +"nombre del módulo sea la parte del nombre del tipo que precede al punto " +"final ya no tendrá el efecto deseado. Para obtener más detalles, lea la " +"documentación de referencia de la API o el código fuente." #: ../Doc/whatsnew/2.3.rst:1938 msgid "Port-Specific Changes" msgstr "Cambios específicos del puerto" #: ../Doc/whatsnew/2.3.rst:1940 -#, fuzzy msgid "" "Support for a port to IBM's OS/2 using the EMX runtime environment was " "merged into the main Python source tree. EMX is a POSIX emulation layer " @@ -3983,16 +4352,17 @@ msgid "" "part of the integration of the EMX port into CVS. (Contributed by Andrew " "MacIntyre.)" msgstr "" -"El soporte para un puerto para OS / 2 de IBM utilizando el entorno de " -"ejecución EMX se fusionó en el árbol de fuentes principal de Python. EMX es " -"una capa de emulación POSIX sobre las API del sistema OS / 2. El puerto de " -"Python para EMX intenta admitir toda la capacidad similar a POSIX expuesta " -"por el tiempo de ejecución de EMX y, en su mayoría, tiene éxito; :func:" -"`fork` y :func:`fcntl` están restringidos por las limitaciones de la capa de " -"emulación subyacente. El puerto estándar OS / 2, que utiliza el compilador " -"Visual Age de IBM, también obtuvo soporte para la semántica de importación " -"que distingue entre mayúsculas y minúsculas como parte de la integración del " -"puerto EMX en CVS. (Contribuido por Andrew MacIntyre.)" +"El soporte para un puerto para el sistema operativo IBM OS/2 que utiliza el " +"entorno de ejecución EMX se fusionó con el árbol de código fuente principal " +"de Python. EMX es una capa de emulación POSIX sobre las API del sistema " +"OS/2. El puerto de Python para EMX intenta soportar toda la capacidad " +"similar a POSIX expuesta por el entorno de ejecución EMX y, en su mayoría, " +"lo logra; :func:`!fork` y :func:`fcntl` están restringidos por las " +"limitaciones de la capa de emulación subyacente. El puerto estándar para " +"OS/2, que utiliza el compilador Visual Age de IBM, también obtuvo soporte " +"para semánticas de importación que distinguen entre mayúsculas y minúsculas " +"como parte de la integración del puerto EMX en CVS. (Contribuido por Andrew " +"MacIntyre.)" #: ../Doc/whatsnew/2.3.rst:1949 msgid "" @@ -4112,31 +4482,29 @@ msgstr "" "aparte de una ligera aceleración cuando Python se ejecuta sin :option:`-O`." #: ../Doc/whatsnew/2.3.rst:2001 -#, fuzzy msgid "" "C extensions that access the :attr:`~frame.f_lineno` field of frame objects " "should instead call ``PyCode_Addr2Line(f->f_code, f->f_lasti)``. This will " "have the added effect of making the code work as desired under \"python -O\" " "in earlier versions of Python." msgstr "" -"Las extensiones C que acceden al campo :attr:`f_lineno` de objetos de marco " -"deben llamar a ``PyCode_Addr2Line(f->f_code, f->f_lasti)``. Esto tendrá el " -"efecto adicional de hacer que el código funcione como se desea en \"python -" -"O\" en versiones anteriores de Python." +"Las extensiones de C que acceden al campo :attr:`~frame.f_lineno` de los " +"objetos de marco deberían llamar a ``PyCode_Addr2Line(f->f_code, f-" +">f_lasti)``. Esto tendrá el efecto adicional de hacer que el código funcione " +"como se desea con \"python -O\" en versiones anteriores de Python." #: ../Doc/whatsnew/2.3.rst:2006 -#, fuzzy msgid "" "A nifty new feature is that trace functions can now assign to the :attr:" "`~frame.f_lineno` attribute of frame objects, changing the line that will be " "executed next. A ``jump`` command has been added to the :mod:`pdb` debugger " "taking advantage of this new feature. (Implemented by Richie Hindle.)" msgstr "" -"Una característica nueva e ingeniosa es que las funciones de seguimiento " -"ahora se pueden asignar al atributo :attr:`f_lineno` de los objetos de " -"marco, cambiando la línea que se ejecutará a continuación. Se ha agregado un " -"comando ``jump`` al depurador :mod:`pdb` aprovechando esta nueva " -"característica. (Implementado por Richie Hindle.)" +"Una característica nueva y elegante es que las funciones de seguimiento " +"ahora pueden asignarse al atributo :attr:`~frame.f_lineno` de los objetos de " +"marco, lo que cambia la línea que se ejecutará a continuación. Se ha " +"agregado un comando ``jump`` al depurador :mod:`pdb` que aprovecha esta " +"nueva característica. (Implementado por Richie Hindle)." #: ../Doc/whatsnew/2.3.rst:2015 msgid "Porting to Python 2.3" @@ -4189,17 +4557,16 @@ msgstr "" "`section-encodings` para obtener más información." #: ../Doc/whatsnew/2.3.rst:2034 -#, fuzzy msgid "" "Calling Tcl methods through :mod:`!_tkinter` no longer returns only " "strings. Instead, if Tcl returns other objects those objects are converted " "to their Python equivalent, if one exists, or wrapped with a :class:`!" "_tkinter.Tcl_Obj` object if no Python equivalent exists." msgstr "" -"Llamar a métodos Tcl a través del objeto :mod:`_tkinter` ya no retornan solo " -"cadenas de caracteres.En vez, si Tcl retorna otros objetos esos objetos son " -"convertidos a su equivalente en Python, si uno existe, o está envuelto con " -"un :class:`_tkinter.Tcl_Obj` si no existe un equivalente de Python." +"La llamada a métodos Tcl a través de :mod:`!_tkinter` ya no devuelve solo " +"cadenas. En cambio, si Tcl devuelve otros objetos, esos objetos se " +"convierten en su equivalente de Python, si existe uno, o se encapsulan con " +"un objeto :class:`!_tkinter.Tcl_Obj` si no existe un equivalente de Python." #: ../Doc/whatsnew/2.3.rst:2039 msgid "" @@ -4234,7 +4601,6 @@ msgid "You can no longer disable assertions by assigning to ``__debug__``." msgstr "Ya no puede deshabilitar las aserciones asignando a ``__debug__``." #: ../Doc/whatsnew/2.3.rst:2052 -#, fuzzy msgid "" "The Distutils :func:`!setup` function has gained various new keyword " "arguments such as *depends*. Old versions of the Distutils will abort if " @@ -4242,12 +4608,12 @@ msgid "" "new :func:`!get_distutil_options` function in your :file:`setup.py` and only " "uses the new keywords with a version of the Distutils that supports them::" msgstr "" -"La función Distutils :func:`setup` ha ganado varios argumentos de palabras " -"clave nuevas, como *depends*. Las versiones antiguas de Distutils se " -"abortarán si se pasan palabras clave desconocidas. Una solución es verificar " -"la presencia de la nueva función :func:`get_distutil_options` en su :file:" -"`setup.py` y solo usa las nuevas palabras clave con una versión de Distutils " -"que las admita:" +"La función :func:`!setup` de Distutils ha obtenido varios argumentos de " +"palabras clave nuevos, como *depends*. Las versiones anteriores de Distutils " +"se interrumpirán si se les pasan palabras clave desconocidas. Una solución " +"es comprobar la presencia de la nueva función :func:`!get_distutil_options` " +"en su :file:`setup.py` y utilizar las nuevas palabras clave solo con una " +"versión de Distutils que las admita:" #: ../Doc/whatsnew/2.3.rst:2058 msgid "" @@ -4258,6 +4624,12 @@ msgid "" " kw['depends'] = ['foo.h']\n" "ext = Extension(**kw)" msgstr "" +"from distutils import core\n" +"\n" +"kw = {'sources': 'foo.c', ...}\n" +"if hasattr(core, 'get_distutil_options'):\n" +" kw['depends'] = ['foo.h']\n" +"ext = Extension(**kw)" #: ../Doc/whatsnew/2.3.rst:2065 msgid ""