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 "" pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy