diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 0ec9648d0f..f970c8bc1b 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -1,6 +1,6 @@ repos: - repo: https://github.com/JulienPalard/powrap - rev: main + rev: v0.4.0 hooks: - id: powrap - repo: local @@ -11,7 +11,7 @@ repos: language: python # This one requires package ``hunspell-es_es`` in Archlinux - repo: https://github.com/AFPy/pospell - rev: v1.0.11 + rev: v1.0.12 hooks: - id: pospell args: ['--personal-dict', 'dict.txt', '--language', 'es_ES', '--language', 'es_AR'] diff --git a/dictionaries/library_idle.txt b/dictionaries/library_idle.txt index 7d9915a469..5c6cf1d691 100644 --- a/dictionaries/library_idle.txt +++ b/dictionaries/library_idle.txt @@ -1 +1,2 @@ -zzdummy \ No newline at end of file +zzdummy +indenta \ No newline at end of file diff --git a/dictionaries/library_importlib.txt b/dictionaries/library_importlib.txt new file mode 100644 index 0000000000..6229c1eaa8 --- /dev/null +++ b/dictionaries/library_importlib.txt @@ -0,0 +1,15 @@ +desactualizada +determinísticos +recompilado +reejecutado +reimportación +reusando +ubicadores +think +correlacionen +fullname +reusando +reejecutado +recompilado +back +Traversable diff --git a/dictionaries/library_os.txt b/dictionaries/library_os.txt index c8e718ba32..08f036ea71 100644 --- a/dictionaries/library_os.txt +++ b/dictionaries/library_os.txt @@ -39,4 +39,5 @@ initgroups putenv spawn execv -group \ No newline at end of file +group +merge \ No newline at end of file diff --git a/dictionaries/library_socket.txt b/dictionaries/library_socket.txt index 03486e34f5..db8333c293 100644 --- a/dictionaries/library_socket.txt +++ b/dictionaries/library_socket.txt @@ -24,3 +24,4 @@ Sechrest Leffler WinSock Winsock +Samuel diff --git a/dictionaries/library_zoneinfo.txt b/dictionaries/library_zoneinfo.txt new file mode 100644 index 0000000000..2e6716455d --- /dev/null +++ b/dictionaries/library_zoneinfo.txt @@ -0,0 +1,10 @@ +tzdata +diferent +despickeados +datetimes +Tokyo +Repository +serializándolo +magic +deserializados +recalcula \ No newline at end of file diff --git a/dictionaries/whatsnew_2.3.txt b/dictionaries/whatsnew_2.3.txt index 2116c7051e..c10acf94e0 100644 --- a/dictionaries/whatsnew_2.3.txt +++ b/dictionaries/whatsnew_2.3.txt @@ -1,41 +1,110 @@ +Oberkirch Age +Altis Bauer Brunning Chermside Chris +Christopher +Cliff +Connor +Craig Dalke Daniels +Denis Detlef Drake +Dörwald Francesco Fraser +Geert Gerber +Getopt +Gilfix Hans +Hetland Hindle +Hisao +Hodgson Hudson Hurd +Hylton +Icon Jansen Jeff +Jeremy +Jones Jr +Karatsuba Kelly +Labs Lalo Lambert +Lange +Language Lannert +Lauder Löwis +Magnus +Malley +Marangozov +Martelli Martin Martins +Mick +Montanaro +Moore Neal Netzer +Nicholas Niemeyer Norwitz Nowak +Ondrej +Optik +Orendorff +Otkidach +Overview +Palkovsky +Pedroni +Piers +Programming Reifschneider Ricciardi Richie +Robert Roman +Samuele +Simionato Simon +Skip Suzi +Suzuki Tishler Travis +Trent +Walter +Ward +Wells +What +Wilson +benchmark +deserializadas +desescalado +dev +empaquetarlo +enumerate frame +idna +llamables ports +pystone +reanudables +recompilara +reelaborado +reescríbalas +reformateada +sobreescrituras +topológica +xmlrpclib +Åstrand diff --git a/dictionaries/whatsnew_2.5.txt b/dictionaries/whatsnew_2.5.txt new file mode 100644 index 0000000000..5034b1dcc2 --- /dev/null +++ b/dictionaries/whatsnew_2.5.txt @@ -0,0 +1,75 @@ +Alan +Antti +Bell +Biondi +Bjorn +Blais +Bland +Broytmann +Chang +Coroutines +Coverity +Dooms +Dörwald +Ehresman +Evan +Games +Grosse +Grégoire +Harris +Holger +Hotshot +Hye +Iain +Immisch +Installer +Johnson +Jones +Kaiser +Kiendl +Krekel +Kurt +Louko +Lowe +Lynn +Netlink +Oleg +Optik +Pedroni +Pettenò +Philippe +Prevent +Pryor +Ralf +Reikiavik +Rigo +Robert +Rovner +Samuele +Schroeder +Shik +Spoerri +Sugalski +Summer +Tillenius +Walter +Wd +Weikart +asignadoras +autodetectada +contextlib +coroutines +direccionar +elinks +hook +maildir +netlink +obmalloc +pybench +reelaborado +reutilizándolo +sprint +sprints +ssize +tripleta +wsgiref diff --git a/dictionaries/whatsnew_2.6.txt b/dictionaries/whatsnew_2.6.txt new file mode 100644 index 0000000000..2b8b23cf25 --- /dev/null +++ b/dictionaries/whatsnew_2.6.txt @@ -0,0 +1,114 @@ +reubicadas +Bland +contextlib +Neal +Norwitz +rediseño +Stellenbosch +xxx +Talin +Verdone +Doerwald +Tony +Lownds +Banks +duck +typing +renderiza +Talin +Aranguren +prefijándolos +Patrick +Maupin +Guile +subclasa +Austin +Bengt +Richter +Javascript +Rigo +Jacobs +sprint +Need +Barnes +Fiori +Nubis +ulps +Arvin +Schnell +Fabian +Kreutz +sobrescritura +Brouwers +Lenton +Petrosyan +Levinson +Horcicka +var +Rocky +opcodes +Achim +Gaedke +Shawn +Ligocki +Wladmir +Laan +Ralf +Schmitt +Engine +Lorenz +Quack +Ralf +Schmitt +Taylor +Leif +Hedstrom +Fenner +Bertogli +Pomraning +Werneck +Remahl +Schuppenies +Damien +Miller +Dustin +Mitchell +Dwayne +Bailey +callables +Erik +Demaine +Gregor +Lingl +reimplementaba +Parente +Alan +Summer +Ralf +Schmitt +Riku +Lindblad +Alan +Graham +Horler +Borzenkov +Notation +simplejson +serializándolos +Remahl +Janssen +Duncan +Grisby +make +patchcheck +make +opt +var +Floris +Ralph +Corderoy +Johnson +Lambacher +Michlmayr +Warner +Brown diff --git a/dictionaries/whatsnew_3.5.txt b/dictionaries/whatsnew_3.5.txt index 15d8da4da5..03379d1ac2 100644 --- a/dictionaries/whatsnew_3.5.txt +++ b/dictionaries/whatsnew_3.5.txt @@ -136,3 +136,4 @@ Yaari Yann Zachary Ziadé +Lucas diff --git a/library/idle.po b/library/idle.po index 44aee18bb3..4e423e3e80 100644 --- a/library/idle.po +++ b/library/idle.po @@ -11,15 +11,16 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-03-19 11:16+0100\n" -"PO-Revision-Date: 2020-06-29 09:15-0500\n" -"Last-Translator: \n" +"PO-Revision-Date: 2021-10-09 07:58+0200\n" +"Last-Translator: Diego Cristóbal Herreros\n" "Language: es\n" "Language-Team: python-doc-es\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.8.0\n" +"X-Generator: Poedit 3.0\n" #: ../Doc/library/idle.rst:4 msgid "IDLE" @@ -1124,6 +1125,16 @@ msgid "" "`Escape`, :kbd:`Enter`, and double :kbd:`Tab` keys or clicks outside the " "box. A double click within the box selects and closes." msgstr "" +"Cuando se solicitan y están disponibles, se suministran complementos para " +"los nombres de los módulos, los atributos de las clases o las funciones, o " +"los nombres de los archivos. Cada método de solicitud muestra un cuadro " +"para completar con los nombres existentes. (Para cualquier cuadro, cambie " +"el nombre que se está completando y el elemento resaltado en el cuadro " +"escribiendo y borrando caracteres; pulsando las teclas :kbd:`Up`, :kbd:" +"`Down`, :kbd:`PageUp`, :kbd:`PageDown`, :kbd:`Home`, y :kbd:`End`; y con un " +"solo clic dentro del cuadro. Cierra la caja con las teclas :kbd:`Escape`, :" +"kbd:`Enter` y doble :kbd:`Tab` o con clics fuera de la caja. Un doble clic " +"dentro de la caja selecciona y cierra." #: ../Doc/library/idle.rst:488 msgid "" @@ -1136,6 +1147,16 @@ msgid "" "one can specify a drive first.) Move into subdirectories by typing a " "directory name and a separator." msgstr "" +"Una forma de abrir una caja es escribir un carácter clave y esperar un " +"intervalo predefinido. Este intervalo es por defecto de 2 segundos; se " +"puede modificar en el diálogo de configuración. (Para evitar las ventanas " +"emergentes automáticas, establezca el retardo a un número grande de " +"milisegundos, como 100000000). Para nombres de módulos importados o " +"atributos de clases o funciones, escriba '.'. Para nombres de archivos en el " +"directorio raíz, escriba :data:`os.sep` o :data:`os.altsep` inmediatamente " +"después de una comilla de apertura. (En Windows, se puede especificar una " +"unidad de disco primero.) Muévase a los subdirectorios escribiendo un nombre " +"de directorio y un separador." #: ../Doc/library/idle.rst:498 msgid "" @@ -1147,6 +1168,14 @@ msgid "" "after a quote completes filenames in the current directory instead of a root " "directory." msgstr "" +"En lugar de esperar, o después de cerrar una caja, abra una caja de " +"finalización inmediatamente con Mostrar finalizaciones en el menú Edición. " +"La tecla rápida por defecto es :kbd:`C-espacio`. Si se teclea un prefijo " +"para el nombre deseado antes de abrir el cuadro, la primera coincidencia o " +"casi coincidencia se hace visible. El resultado es el mismo que si se " +"introduce un prefijo después de mostrar la caja. Mostrar las terminaciones " +"después de una cita completa de los nombres de archivo en el directorio " +"actual en lugar de un directorio raíz." #: ../Doc/library/idle.rst:506 msgid "" @@ -1155,6 +1184,10 @@ msgid "" "match to the prefix, that match is immediately added to the editor text " "without opening a box." msgstr "" +"Pulsar :kbd:`Tab` después de un prefijo suele tener el mismo efecto que el " +"de mostrar las terminaciones. (Sin prefijo, se indenta.) Sin embargo, si " +"sólo hay una coincidencia con el prefijo, esa coincidencia se añade " +"inmediatamente al texto del editor sin abrir una caja." #: ../Doc/library/idle.rst:511 msgid "" @@ -1162,6 +1195,10 @@ msgid "" "of a string and without a preceding '.' opens a box with keywords, builtin " "names, and available module-level names." msgstr "" +"Al invocar 'Mostrar las terminaciones', o al pulsar :kbd:`Tab` después de un " +"prefijo, fuera de una cadena y sin un '.' precedente, se abre un cuadro con " +"las palabras clave, los nombres incorporados y los nombres disponibles a " +"nivel de módulo." #: ../Doc/library/idle.rst:515 msgid "" @@ -1170,6 +1207,11 @@ msgid "" "thereafter. This is especially useful after adding imports at the top of a " "file. This also increases possible attribute completions." msgstr "" +"Cuando se edita el código en un editor (a diferencia de Shell), aumentar los " +"nombres disponibles a nivel de módulo mediante la ejecución de su código y " +"no reiniciar el Shell después. Esto es especialmente útil después de añadir " +"importaciones en la parte superior de un archivo. Esto también aumenta las " +"posibles terminaciones de atributos." #: ../Doc/library/idle.rst:521 msgid "" @@ -1177,6 +1219,10 @@ msgid "" "not included in '__all__'. The hidden names can be accessed by typing '_' " "after '.', either before or after the box is opened." msgstr "" +"Los cuadros de finalización excluyen inicialmente los nombres que empiezan " +"por '_' o, en el caso de los módulos, no incluidos en '__all__'. Se puede " +"acceder a los nombres ocultos escribiendo '_' después de '.', ya sea antes o " +"después de abrir la caja." #: ../Doc/library/idle.rst:528 msgid "Calltips" @@ -1207,6 +1253,12 @@ msgid "" "indicates that the preceding or following arguments are passed by position " "or name (keyword) only. Details are subject to change." msgstr "" +"La sugerencia de llamada consiste en la firma de la función y el docstring " +"hasta la primera línea en blanco de este último o la quinta línea no en " +"blanco. (Algunas funciones incorporadas carecen de una firma accesible.) Un " +"'/' o '*' en la firma indica que los argumentos anteriores o posteriores se " +"pasan sólo por posición o por nombre (palabra clave). Los detalles están " +"sujetos a cambios." #: ../Doc/library/idle.rst:543 msgid "" @@ -1214,6 +1266,10 @@ msgid "" "imported into the user process, including those imported by Idle itself, and " "which definitions have been run, all since the last restart." msgstr "" +"En Shell, las funciones accesibles dependen de los módulos que se hayan " +"importado en el proceso del usuario, incluidos los importados por el propio " +"Idle, y de las definiciones que se hayan ejecutado, todo ello desde el " +"último reinicio." #: ../Doc/library/idle.rst:547 #, fuzzy @@ -1614,6 +1670,14 @@ msgid "" "single string. Both format strings and :meth:`str.join` can help combine " "fields and lines." msgstr "" +"El envío de la salida de impresión de un proceso a un widget de texto en " +"otro es más lento que la impresión a un terminal del sistema en el mismo " +"proceso. Esto tiene el mayor efecto cuando se imprimen múltiples argumentos, " +"ya que la cadena de cada argumento, cada separador y la nueva línea se " +"envían por separado. Para el desarrollo, esto no suele ser un problema, pero " +"si uno quiere imprimir más rápido en IDLE, formatea y une todo lo que quiere " +"mostrar junto y luego imprime una sola cadena. Tanto las cadenas de formato " +"como :meth:`str.join` pueden ayudar a combinar campos y líneas." #: ../Doc/library/idle.rst:738 msgid "" diff --git a/library/importlib.po b/library/importlib.po index 3f28590624..ac758e6d78 100644 --- a/library/importlib.po +++ b/library/importlib.po @@ -6,31 +6,33 @@ # Check https://github.com/python/python-docs-es/blob/3.8/TRANSLATORS to # get the list of volunteers # -#, fuzzy msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-03-19 11:16+0100\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" +"PO-Revision-Date: 2021-08-07 00:10+0200\n" "Language-Team: python-doc-es\n" "MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" +"Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.8.0\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"Last-Translator: Cristián Maureira-Fredes \n" +"Language: es\n" +"X-Generator: Poedit 3.0\n" #: ../Doc/library/importlib.rst:2 msgid ":mod:`!importlib` --- The implementation of :keyword:`!import`" -msgstr "" +msgstr ":mod:`!importlib` --- La implementación de :keyword:`!import`" #: ../Doc/library/importlib.rst:12 msgid "**Source code:** :source:`Lib/importlib/__init__.py`" -msgstr "" +msgstr "**Código fuente:** :source:`Lib/importlib/__init__.py`" #: ../Doc/library/importlib.rst:17 msgid "Introduction" -msgstr "" +msgstr "Introducción" #: ../Doc/library/importlib.rst:19 msgid "" @@ -41,6 +43,13 @@ msgid "" "Python interpreter. This also provides an implementation which is easier to " "comprehend than one implemented in a programming language other than Python." msgstr "" +"El propósito del paquete :mod:`importlib` es doble. Uno es proveer la " +"implementación de la declaración de :keyword:`import`, (y así, por " +"extensión, el método :func:`__import__` ) en el código fuente de Python. " +"Esto provee una implementación de la :keyword:`!import` la cual es " +"compatible con cualquier interprete de Python. También provee una " +"implementación que es más fácil de comprender que otras implementaciones, en " +"lenguajes diferentes a Python." #: ../Doc/library/importlib.rst:26 msgid "" @@ -49,19 +58,25 @@ msgid "" "(known generically as an :term:`importer`) to participate in the import " "process." msgstr "" +"Dos, los componentes incluidos para implementar :keyword:`import` están " +"expuestos en este paquete para que sea más fácil para los usuarios crear sus " +"propios objetos (conocidos de forma genérica como :term:`importer`) para " +"participar en el proceso de importación." #: ../Doc/library/importlib.rst:33 msgid ":ref:`import`" -msgstr "" +msgstr ":ref:`import`" #: ../Doc/library/importlib.rst:33 msgid "The language reference for the :keyword:`import` statement." -msgstr "" +msgstr "La referencia en el lenguaje para la declaración de :keyword:`import`." #: ../Doc/library/importlib.rst:38 msgid "" "`Packages specification `__" msgstr "" +"`Especificaciones de paquetes `__" #: ../Doc/library/importlib.rst:36 msgid "" @@ -69,124 +84,131 @@ msgid "" "writing of this document (e.g. redirecting based on ``None`` in :data:`sys." "modules`)." msgstr "" +"Especificaciones originales de los paquetes. Algunas semánticas han cambiado " +"desde que este documento fue escrito (ejemplo, redirección de acuerdo a " +"``None`` en :data:`sys.modules`)." #: ../Doc/library/importlib.rst:41 msgid "The :func:`.__import__` function" -msgstr "" +msgstr "La función :func:`.__import__`" #: ../Doc/library/importlib.rst:41 msgid "The :keyword:`import` statement is syntactic sugar for this function." msgstr "" +"La declaración de :keyword:`import` es una decoración sintáctica para esta " +"función." #: ../Doc/library/importlib.rst:44 msgid ":pep:`235`" -msgstr "" +msgstr ":pep:`235`" #: ../Doc/library/importlib.rst:44 msgid "Import on Case-Insensitive Platforms" -msgstr "" +msgstr "Importar en sistemas que no distinguen entre mayúsculas y minúsculas" #: ../Doc/library/importlib.rst:47 msgid ":pep:`263`" -msgstr "" +msgstr ":pep:`263`" #: ../Doc/library/importlib.rst:47 msgid "Defining Python Source Code Encodings" -msgstr "" +msgstr "Definiendo las codificaciones del código fuente de Python" #: ../Doc/library/importlib.rst:50 msgid ":pep:`302`" -msgstr "" +msgstr ":pep:`302`" #: ../Doc/library/importlib.rst:50 msgid "New Import Hooks" -msgstr "" +msgstr "Nuevos ganchos de importación" #: ../Doc/library/importlib.rst:53 msgid ":pep:`328`" -msgstr "" +msgstr "pep:`328`" #: ../Doc/library/importlib.rst:53 msgid "Imports: Multi-Line and Absolute/Relative" -msgstr "" +msgstr "Importaciones: Multilíneas, y absolutos/relativos" #: ../Doc/library/importlib.rst:56 msgid ":pep:`366`" -msgstr "" +msgstr ":pep:`366`" #: ../Doc/library/importlib.rst:56 msgid "Main module explicit relative imports" -msgstr "" +msgstr "Importaciones relativas, explicitas, del módulo principal" #: ../Doc/library/importlib.rst:59 msgid ":pep:`420`" -msgstr "" +msgstr ":pep:`420`" #: ../Doc/library/importlib.rst:59 msgid "Implicit namespace packages" -msgstr "" +msgstr "Paquetes implícitos en el espacio de nombres" #: ../Doc/library/importlib.rst:62 msgid ":pep:`451`" -msgstr "" +msgstr ":pep:`451`" #: ../Doc/library/importlib.rst:62 msgid "A ModuleSpec Type for the Import System" -msgstr "" +msgstr "Un tipo de ModuleSpec para el sistema de importación" #: ../Doc/library/importlib.rst:65 msgid ":pep:`488`" -msgstr "" +msgstr ":pep:`488`" #: ../Doc/library/importlib.rst:65 msgid "Elimination of PYO files" -msgstr "" +msgstr "Eliminación de archivos PYO" #: ../Doc/library/importlib.rst:68 msgid ":pep:`489`" -msgstr "" +msgstr ":pep:`489`" #: ../Doc/library/importlib.rst:68 msgid "Multi-phase extension module initialization" -msgstr "" +msgstr "Inicialización de extensión de módulo en múltiples fases" #: ../Doc/library/importlib.rst:71 msgid ":pep:`552`" -msgstr "" +msgstr ":pep:`552`" #: ../Doc/library/importlib.rst:71 msgid "Deterministic pycs" -msgstr "" +msgstr "Pycs determinísticos" #: ../Doc/library/importlib.rst:74 msgid ":pep:`3120`" -msgstr "" +msgstr ":pep:`3120`" #: ../Doc/library/importlib.rst:74 msgid "Using UTF-8 as the Default Source Encoding" -msgstr "" +msgstr "Usando UTF-8 como la codificación fuente por defecto" #: ../Doc/library/importlib.rst:76 msgid ":pep:`3147`" -msgstr "" +msgstr ":pep:`3147`" #: ../Doc/library/importlib.rst:77 msgid "PYC Repository Directories" -msgstr "" +msgstr "Repositorio de directorios PYC" #: ../Doc/library/importlib.rst:81 msgid "Functions" -msgstr "" +msgstr "Funciones" #: ../Doc/library/importlib.rst:85 msgid "An implementation of the built-in :func:`__import__` function." -msgstr "" +msgstr "Una implementación de la función :func:`__import__` incorporada." #: ../Doc/library/importlib.rst:88 msgid "" "Programmatic importing of modules should use :func:`import_module` instead " "of this function." msgstr "" +"La importación programática los módulos debe usar :func:`import_module` en " +"lugar de esta función." #: ../Doc/library/importlib.rst:93 msgid "" @@ -197,6 +219,12 @@ msgid "" "package name (e.g. ``import_module('..mod', 'pkg.subpkg')`` will import " "``pkg.mod``)." msgstr "" +"Importar un módulo. El argumento llamado *name* especifica qué módulo " +"importar en términos absolutos o relativos (ejemplo, puede ser ``pkg.mod`` o " +"``..mod``). Si el nombre fuera especificado en términos relativos, entonces " +"el argumento llamado *package* debe ser igual al nombre del paquete que será " +"el ancla para resolver el nombre del paquete (ejemplo ``import_module('.." +"mod', 'pkg.subpkg')`` importará ``pkg.mod``)." #: ../Doc/library/importlib.rst:101 msgid "" @@ -207,6 +235,13 @@ msgid "" "specified package or module (e.g. ``pkg.mod``), while :func:`__import__` " "returns the top-level package or module (e.g. ``pkg``)." msgstr "" +"La función :func:`import_module` actúa como un envoltorio simplificador " +"alrededor de :func:`importlib.__import__`. Esto quiere decir que las " +"semánticas de la función son derivadas de :func:`importlib.__import__`. La " +"diferencia más importante entre las dos funciones es que :func:" +"`import_module` retorna el paquete especificado o el módulo (ejemplo ``pkg." +"mod``), mientras que :func:`__import__` retorna el paquete o módulo del " +"nivel superior (ejemplo ``pkg``)." #: ../Doc/library/importlib.rst:108 msgid "" @@ -215,10 +250,14 @@ msgid "" "need to call :func:`invalidate_caches` in order for the new module to be " "noticed by the import system." msgstr "" +"Si está importando dinámicamente un módulo que se creó desde que el " +"intérprete comenzó la ejecución (por ejemplo, creó un archivo fuente de " +"Python), es posible que deba llamar a :func:`invalidate_caches` para que el " +"nuevo módulo sea detectado por el sistema de importación." #: ../Doc/library/importlib.rst:113 msgid "Parent packages are automatically imported." -msgstr "" +msgstr "Paquetes padres son importados automáticamente." #: ../Doc/library/importlib.rst:118 msgid "" @@ -228,6 +267,12 @@ msgid "" "exc:`ValueError` is raised). Otherwise a search using :attr:`sys.meta_path` " "is done. ``None`` is returned if no loader is found." msgstr "" +"Encuentra el cargador de un módulo, opcionalmente con el especificado en " +"*path*.Si el módulo esta en :attr:`sys.modules`, entonces retorna el `sys." +"modules[name].__loader__`` (a menos que el cargador sea ``None`` o no haya " +"uno especificado, en tal caso se eleva un :exc:`ValueError`).Si no se " +"encuentra ahí, se hace una búsqueda usando :attr:`sys.meta_path`. Se retorna " +"``None`` si no se encuentra un cargador." #: ../Doc/library/importlib.rst:124 msgid "" @@ -236,16 +281,22 @@ msgid "" "will need to import all parent packages of the submodule and use the correct " "argument to *path*." msgstr "" +"Un nombre con puntos no tiene sus ascendientes importados implícitamente, ya " +"que eso requeriría cargarlo y eso podría no ser deseado. Para importar un " +"sub-módulo correctamente debes importar todos los paquetes ascendientes del " +"sub-módulo y pase el argumento correcto a *path*." #: ../Doc/library/importlib.rst:131 msgid "" "If ``__loader__`` is not set, raise :exc:`ValueError`, just like when the " "attribute is set to ``None``." msgstr "" +"Si el ``__loader__`` no está configurado, eleva un :exc:`ValueError`, igual " +"a si el atributo fuera ``None``." #: ../Doc/library/importlib.rst:135 msgid "Use :func:`importlib.util.find_spec` instead." -msgstr "" +msgstr "Utilice :func:`importlib.util.find_spec` en su lugar." #: ../Doc/library/importlib.rst:140 msgid "" @@ -255,6 +306,12 @@ msgid "" "created/installed while your program is running to guarantee all finders " "will notice the new module's existence." msgstr "" +"Invalide los cache internos de ubicadores encontrados en :data:`sys." +"meta_path`.Si un buscador implementa ``invalidate_caches()`` entonces será " +"llamado para realizar la invalidación.Esta función debe ser llamada si " +"cualquier módulo ha sido creado/instalado mientras tu programa esta siendo " +"ejecutado para garantizar que todos los buscadores noten la existencia del " +"nuevo módulo." #: ../Doc/library/importlib.rst:150 msgid "" @@ -265,10 +322,16 @@ msgid "" "return value is the module object (which can be different if re-importing " "causes a different object to be placed in :data:`sys.modules`)." msgstr "" +"Recarga un *modulo* previamente importado. El argumento debe ser un objeto " +"módulo, por lo que debe haber sido importado exitosamente. Esto es útil " +"cuando has editado el código fuente de un archivo usando un editor externo y " +"deseas probar la nueva versión sin abandonar el interprete de Python. El " +"valor retornado es el objeto módulo (que puede ser diferente si la " +"reimportación crea un nuevo objeto en :data:`sys.modules`)." #: ../Doc/library/importlib.rst:157 msgid "When :func:`reload` is executed:" -msgstr "" +msgstr "Cuando :func:`reload` es ejecutada:" #: ../Doc/library/importlib.rst:159 msgid "" @@ -278,18 +341,27 @@ msgid "" "module. The ``init`` function of extension modules is not called a second " "time." msgstr "" +"El código de un módulo de Python es recompilado y el código del módulo " +"reejecutado, definiendo un nuevo conjunto de objetos que son asignados a los " +"nombres de los módulos en el diccionario, reusando el :term:`loader` que " +"originalmente carga los módulos. El método ``init`` de los módulos de " +"extension no es llamado de nuevo." #: ../Doc/library/importlib.rst:165 msgid "" "As with all other objects in Python the old objects are only reclaimed after " "their reference counts drop to zero." msgstr "" +"Al igual que con todos los demás objetos en Python, los objetos antiguos " +"solo se recuperan después de que sus recuentos de referencias caen a cero." #: ../Doc/library/importlib.rst:168 msgid "" "The names in the module namespace are updated to point to any new or changed " "objects." msgstr "" +"Los nombres en el espacio de nombres del módulo se actualizan para señalar " +"cualquier objeto nuevo o modificado." #: ../Doc/library/importlib.rst:171 msgid "" @@ -297,10 +369,14 @@ msgid "" "are not rebound to refer to the new objects and must be updated in each " "namespace where they occur if that is desired." msgstr "" +"Otras referencias a los objetos antiguos (como los nombres externos al " +"módulo) no se vuelven a vincular para hacer referencia a los nuevos objetos " +"y deben actualizarse en cada espacio de nombres donde se produzcan si se " +"desea." #: ../Doc/library/importlib.rst:175 msgid "There are a number of other caveats:" -msgstr "" +msgstr "Hay una serie de otras advertencias:" #: ../Doc/library/importlib.rst:177 msgid "" @@ -313,6 +389,14 @@ msgid "" "statement it can test for the table's presence and skip its initialization " "if desired::" msgstr "" +"Cuando se vuelve a cargar un módulo, se conserva su diccionario (que " +"contiene las variables globales del módulo). Las redefiniciones de nombres " +"anularán las antiguas definiciones, por lo que generalmente esto no es un " +"problema. Si la nueva versión de un módulo no define un nombre que fue " +"definido por la versión anterior, la definición anterior permanece. Esta " +"característica se puede utilizar en beneficio del módulo si mantiene una " +"tabla global o caché de objetos --- con una declaración :keyword:`try` puede " +"probar la presencia de la tabla y omitir su inicialización si lo desea:" #: ../Doc/library/importlib.rst:191 msgid "" @@ -322,6 +406,11 @@ msgid "" "designed to be initialized more than once, and may fail in arbitrary ways " "when reloaded." msgstr "" +"Por lo general, no es muy útil recargar módulos integrados o cargados " +"dinámicamente. No se recomienda recargar :mod:`sys`, :mod:`__main__`, :mod:" +"`builtins` y otros módulos clave. En muchos casos, los módulos de extensión " +"no están diseñados para inicializarse más de una vez y pueden fallar de " +"manera arbitraria cuando se vuelven a cargar." #: ../Doc/library/importlib.rst:197 msgid "" @@ -331,6 +420,11 @@ msgid "" "execute the :keyword:`!from` statement, another is to use :keyword:`!import` " "and qualified names (*module.name*) instead." msgstr "" +"Si un módulo importa objetos de otro módulo usando :keyword:`from` ... :" +"keyword:`import` ..., al llamar a :func:`reload` para el otro módulo no " +"redefine los objetos importados de él --- una forma de evitar esto es volver " +"a ejecutar la instrucción :keyword:`!from`, otra es usar :keyword:`!import` " +"y nombres calificados (*module.name*) en su lugar." #: ../Doc/library/importlib.rst:203 msgid "" @@ -339,20 +433,28 @@ msgid "" "--- they continue to use the old class definition. The same is true for " "derived classes." msgstr "" +"Si un módulo crea instancias de una clase, volver a cargar el módulo que " +"define la clase no afecta las definiciones de método de las instancias --- " +"continúan usando la definición de clase anterior. Lo mismo ocurre con las " +"clases derivadas." #: ../Doc/library/importlib.rst:209 msgid "" ":exc:`ModuleNotFoundError` is raised when the module being reloaded lacks a :" "class:`ModuleSpec`." msgstr "" +":exc:`ModuleNotFoundError` se lanza cuando el módulo que se está recargando " +"carece de :class:`ModuleSpec`." #: ../Doc/library/importlib.rst:215 msgid ":mod:`importlib.abc` -- Abstract base classes related to import" msgstr "" +":mod:`importlib.abc` -- Clases base abstractas relacionadas con la " +"importación" #: ../Doc/library/importlib.rst:220 msgid "**Source code:** :source:`Lib/importlib/abc.py`" -msgstr "" +msgstr "**Código fuente:** :source:`Lib/importlib/abc.py`" #: ../Doc/library/importlib.rst:225 msgid "" @@ -360,18 +462,23 @@ msgid "" "classes used by :keyword:`import`. Some subclasses of the core abstract base " "classes are also provided to help in implementing the core ABCs." msgstr "" +"El módulo :mod:`importlib.abc` contiene todas las clases base abstractas " +"principales utilizadas por :keyword:`import`. También se proporcionan " +"algunas subclases de las clases base abstractas centrales para ayudar a " +"implementar los ABC centrales." #: ../Doc/library/importlib.rst:229 msgid "ABC hierarchy::" -msgstr "" +msgstr "Jerarquía ABC::" #: ../Doc/library/importlib.rst:245 msgid "An abstract base class representing a :term:`finder`." -msgstr "" +msgstr "Una clase base abstracta que representa :term:`finder`." #: ../Doc/library/importlib.rst:247 msgid "Use :class:`MetaPathFinder` or :class:`PathEntryFinder` instead." msgstr "" +"Utilice :class:`MetaPathFinder` o :class:`PathEntryFinder` en su lugar." #: ../Doc/library/importlib.rst:252 msgid "" @@ -379,17 +486,25 @@ msgid "" "Originally specified in :pep:`302`, this method was meant for use in :data:" "`sys.meta_path` and in the path-based import subsystem." msgstr "" +"Un método abstracto para encontrar un :term:`loader` para el módulo " +"especificado. Originalmente especificado en :pep:`302`, este método estaba " +"destinado a ser utilizado en :data:`sys.meta_path` y en el subsistema de " +"importación basado en rutas." #: ../Doc/library/importlib.rst:256 msgid "" "Returns ``None`` when called instead of raising :exc:`NotImplementedError`." msgstr "" +"Retorna ``None`` cuando se llama en lugar de generar :exc:" +"`NotImplementedError`." #: ../Doc/library/importlib.rst:263 msgid "" "An abstract base class representing a :term:`meta path finder`. For " "compatibility, this is a subclass of :class:`Finder`." msgstr "" +"Una clase base abstracta que representa un :term:`meta path finder`. Por " +"compatibilidad, esta es una subclase de :class:`Finder`." #: ../Doc/library/importlib.rst:270 msgid "" @@ -402,6 +517,15 @@ msgid "" "return. :func:`importlib.util.spec_from_loader` may be useful for " "implementing concrete ``MetaPathFinders``." msgstr "" +"Un método abstracto para encontrar un :term:`spec ` para el " +"módulo especificado. Si se trata de una importación de nivel superior, el " +"*path* será ``None``. De lo contrario, esta es una búsqueda de un subpaquete " +"o módulo y *path* será el valor de :attr:`__path__` del paquete principal. " +"Si no se puede encontrar una especificación, se retorna ``None``. Cuando se " +"pasa, ``target`` es un objeto de módulo que el buscador puede usar para " +"hacer una suposición más informada sobre qué especificación retornar. :func:" +"`importlib.util.spec_from_loader` puede ser útil para implementar " +"``MetaPathFinders`` concretos." #: ../Doc/library/importlib.rst:284 msgid "" @@ -411,23 +535,33 @@ msgid "" "`__path__` from the parent package. If a loader cannot be found, ``None`` is " "returned." msgstr "" +"Un método heredado para encontrar un :term:`loader` para el módulo " +"especificado. Si se trata de una importación de nivel superior, el *path* " +"será ``None``. De lo contrario, esta es una búsqueda de un subpaquete o " +"módulo y *path* será el valor de :attr:`__path__` del paquete principal. Si " +"no se puede encontrar un cargador, se retorna ``None``." #: ../Doc/library/importlib.rst:290 msgid "" "If :meth:`find_spec` is defined, backwards-compatible functionality is " "provided." msgstr "" +"Si se define :meth:`find_spec`, se proporciona una funcionalidad compatible " +"con versiones anteriores." #: ../Doc/library/importlib.rst:293 msgid "" "Returns ``None`` when called instead of raising :exc:`NotImplementedError`. " "Can use :meth:`find_spec` to provide functionality." msgstr "" +"Retorna ``None`` cuando se llama en lugar de generar :exc:" +"`NotImplementedError`. Puede usar :meth:`find_spec` para proporcionar " +"funcionalidad." #: ../Doc/library/importlib.rst:298 ../Doc/library/importlib.rst:352 #: ../Doc/library/importlib.rst:360 ../Doc/library/importlib.rst:1120 msgid "Use :meth:`find_spec` instead." -msgstr "" +msgstr "Use :meth:`find_spec` en su lugar." #: ../Doc/library/importlib.rst:303 msgid "" @@ -435,10 +569,14 @@ msgid "" "used by the finder. Used by :func:`importlib.invalidate_caches` when " "invalidating the caches of all finders on :data:`sys.meta_path`." msgstr "" +"Un método opcional que, cuando se llama, debería invalidar cualquier caché " +"interno utilizado por el buscador. Utilizado por :func:`importlib." +"invalidate_caches` al invalidar los cachés de todos los buscadores en :data:" +"`sys.meta_path`." #: ../Doc/library/importlib.rst:307 msgid "Returns ``None`` when called instead of ``NotImplemented``." -msgstr "" +msgstr "Retorna ``None`` cuando se llama en lugar de ``NotImplemented``." #: ../Doc/library/importlib.rst:313 msgid "" @@ -448,6 +586,11 @@ msgid "" "`PathFinder`. This ABC is a subclass of :class:`Finder` for compatibility " "reasons only." msgstr "" +"Una clase base abstracta que representa un :term:`path entry finder`. Aunque " +"tiene algunas similitudes con :class:`MetaPathFinder`, ``PathEntryFinder`` " +"está diseñado para usarse solo dentro del subsistema de importación basado " +"en rutas proporcionado por :class:`PathFinder`. Este ABC es una subclase de :" +"class:`Finder` solo por razones de compatibilidad." #: ../Doc/library/importlib.rst:323 msgid "" @@ -459,6 +602,13 @@ msgid "" "func:`importlib.util.spec_from_loader` may be useful for implementing " "concrete ``PathEntryFinders``." msgstr "" +"Un método abstracto para encontrar un :term:`spec ` para el " +"módulo especificado. El buscador buscará el módulo solo dentro del :term:" +"`path entry` a la que está asignado. Si no se puede encontrar una " +"especificación, se retorna ``None``. Cuando se pasa, ``target`` es un objeto " +"de módulo que el buscador puede usar para hacer una suposición más informada " +"sobre qué especificación retornar. :func:`importlib.util.spec_from_loader` " +"puede ser útil para implementar ``PathEntryFinders`` concretos." #: ../Doc/library/importlib.rst:335 msgid "" @@ -472,24 +622,41 @@ msgid "" "list then no loader or location for a namespace package were found (i.e. " "failure to find anything for the module)." msgstr "" +"Un método heredado para encontrar un :term:`loader` para el módulo " +"especificado. Retorna una tupla de 2 de ``(loader, portion)`` donde " +"``portion`` es una secuencia de ubicaciones del sistema de archivos que " +"contribuyen a parte de un paquete de espacio de nombres. El cargador puede " +"ser ``None`` mientras se especifica ``portion`` para indicar la contribución " +"de las ubicaciones del sistema de archivos a un paquete de espacio de " +"nombres. Se puede usar una lista vacía para ``portion`` para indicar que el " +"cargador no es parte de un paquete de espacio de nombres. Si ``loader`` es " +"``None`` y ``portion`` es la lista vacía, entonces no se encontró ningún " +"cargador o ubicación para un paquete de espacio de nombres (es decir, no se " +"pudo encontrar nada para el módulo)." #: ../Doc/library/importlib.rst:345 msgid "" "If :meth:`find_spec` is defined then backwards-compatible functionality is " "provided." msgstr "" +"Si se define :meth:`find_spec`, se proporciona una funcionalidad compatible " +"con versiones anteriores." #: ../Doc/library/importlib.rst:348 msgid "" "Returns ``(None, [])`` instead of raising :exc:`NotImplementedError`. Uses :" "meth:`find_spec` when available to provide functionality." msgstr "" +"Retorna ``(None, [])`` en lugar de lanzar :exc:`NotImplementedError`. Usa :" +"meth:`find_spec` cuando está disponible para proporcionar funcionalidad." #: ../Doc/library/importlib.rst:357 msgid "" "A concrete implementation of :meth:`Finder.find_module` which is equivalent " "to ``self.find_loader(fullname)[0]``." msgstr "" +"Una implementación concreta de :meth:`Finder.find_module` que es equivalente " +"a ``self.find_loader(fullname)[0]``." #: ../Doc/library/importlib.rst:365 msgid "" @@ -497,12 +664,17 @@ msgid "" "used by the finder. Used by :meth:`PathFinder.invalidate_caches` when " "invalidating the caches of all cached finders." msgstr "" +"Un método opcional que, cuando se llama, debería invalidar cualquier caché " +"interno utilizado por el buscador. Usado por :meth:`PathFinder." +"invalidate_caches` al invalidar las cachés de todos los buscadores en caché." #: ../Doc/library/importlib.rst:372 msgid "" "An abstract base class for a :term:`loader`. See :pep:`302` for the exact " "definition for a loader." msgstr "" +"Una clase base abstracta para un :term:`loader`. Consulte :pep:`302` para " +"obtener la definición exacta de cargador." #: ../Doc/library/importlib.rst:375 ../Doc/library/importlib.rst:857 msgid "" @@ -510,10 +682,13 @@ msgid "" "``get_resource_reader(fullname)`` method as specified by :class:`importlib." "abc.ResourceReader`." msgstr "" +"Los cargadores que deseen admitir la lectura de recursos deben implementar " +"un método ``get_resource_reader(fullname)`` según lo especificado por :class:" +"`importlib.abc.ResourceReader`." #: ../Doc/library/importlib.rst:379 msgid "Introduced the optional ``get_resource_reader()`` method." -msgstr "" +msgstr "Introdujo el método opcional ``get_resource_reader()``." #: ../Doc/library/importlib.rst:384 msgid "" @@ -521,12 +696,17 @@ msgid "" "This method may return ``None``, indicating that default module creation " "semantics should take place." msgstr "" +"Un método que retorna el objeto de módulo que se utilizará al importar un " +"módulo. Este método puede retornar ``None``, lo que indica que se debe " +"llevar a cabo la semántica de creación de módulos predeterminada." #: ../Doc/library/importlib.rst:390 msgid "" "Starting in Python 3.6, this method will not be optional when :meth:" "`exec_module` is defined." msgstr "" +"A partir de Python 3.6, este método no será opcional cuando se defina :meth:" +"`exec_module`." #: ../Doc/library/importlib.rst:396 msgid "" @@ -535,16 +715,22 @@ msgid "" "when ``exec_module()`` is called. When this method exists, :meth:`~importlib." "abc.Loader.create_module` must be defined." msgstr "" +"Un método abstracto que ejecuta el módulo en su propio espacio de nombres " +"cuando se importa o se vuelve a cargar un módulo. El módulo ya debería estar " +"inicializado cuando se llama a ``exec_module()``. Cuando existe este método, " +"se debe definir :meth:`~importlib.abc.Loader.create_module`." #: ../Doc/library/importlib.rst:403 msgid ":meth:`~importlib.abc.Loader.create_module` must also be defined." -msgstr "" +msgstr ":meth:`~importlib.abc.Loader.create_module` también debe definirse." #: ../Doc/library/importlib.rst:408 msgid "" "A legacy method for loading a module. If the module cannot be loaded, :exc:" "`ImportError` is raised, otherwise the loaded module is returned." msgstr "" +"Un método heredado para cargar un módulo. Si el módulo no se puede cargar, " +"se lanza :exc:`ImportError`; de lo contrario, se retorna el módulo cargado." #: ../Doc/library/importlib.rst:412 msgid "" @@ -556,53 +742,69 @@ msgid "" "already in :data:`sys.modules` before the loader began execution should be " "left alone (see :func:`importlib.util.module_for_loader`)." msgstr "" +"Si el módulo solicitado ya existe en :data:`sys.modules`, ese módulo debe " +"usarse y recargarse. De lo contrario, el cargador debe crear un nuevo módulo " +"e insertarlo en :data:`sys.modules` antes de que comience la carga, para " +"evitar la recursividad de la importación. Si el cargador insertó un módulo y " +"la carga falla, el cargador debe eliminarlo de :data:`sys.modules`; los " +"módulos que ya están en :data:`sys.modules` antes de que el cargador " +"comenzara a ejecutarse deben dejarse en paz (ver :func:`importlib.util." +"module_for_loader`)." #: ../Doc/library/importlib.rst:421 msgid "" "The loader should set several attributes on the module. (Note that some of " "these attributes can change when a module is reloaded):" msgstr "" +"El cargador debe establecer varios atributos en el módulo. (Tenga en cuenta " +"que algunos de estos atributos pueden cambiar cuando se recarga un módulo):" #: ../Doc/library/importlib.rst:426 msgid ":attr:`__name__`" -msgstr "" +msgstr ":attr:`__name__`" #: ../Doc/library/importlib.rst:426 msgid "The name of the module." -msgstr "" +msgstr "El nombre del módulo." #: ../Doc/library/importlib.rst:430 msgid ":attr:`__file__`" -msgstr "" +msgstr ":attr:`__file__`" #: ../Doc/library/importlib.rst:429 msgid "" "The path to where the module data is stored (not set for built-in modules)." msgstr "" +"La ruta hacia donde se almacenan los datos del módulo (no configurada para " +"módulos integrados)." #: ../Doc/library/importlib.rst:434 msgid ":attr:`__cached__`" -msgstr "" +msgstr ":attr:`__cached__`" #: ../Doc/library/importlib.rst:433 msgid "" "The path to where a compiled version of the module is/should be stored (not " "set when the attribute would be inappropriate)." msgstr "" +"La ruta a la que se debe almacenar una versión compilada del módulo (no se " +"establece cuando el atributo sería inapropiado)." #: ../Doc/library/importlib.rst:438 msgid ":attr:`__path__`" -msgstr "" +msgstr ":attr:`__path__`" #: ../Doc/library/importlib.rst:437 msgid "" "A list of strings specifying the search path within a package. This " "attribute is not set on modules." msgstr "" +"Una lista de cadenas de caracteres que especifican la ruta de búsqueda " +"dentro de un paquete. Este atributo no se establece en módulos." #: ../Doc/library/importlib.rst:445 msgid ":attr:`__package__`" -msgstr "" +msgstr ":attr:`__package__`" #: ../Doc/library/importlib.rst:441 msgid "" @@ -611,28 +813,40 @@ msgid "" "the same as :attr:`__name__`. The :func:`importlib.util.module_for_loader` " "decorator can handle the details for :attr:`__package__`." msgstr "" +"El nombre completo del paquete bajo el cual se cargó el módulo como " +"submódulo (o la cadena de caracteres vacía para los módulos de nivel " +"superior). Para los paquetes, es lo mismo que :attr:`__name__`. El " +"decorador :func:`importlib.util.module_for_loader` puede manejar los " +"detalles de :attr:`__package__`." #: ../Doc/library/importlib.rst:450 msgid ":attr:`__loader__`" -msgstr "" +msgstr ":attr:`__loader__`" #: ../Doc/library/importlib.rst:448 msgid "" "The loader used to load the module. The :func:`importlib.util." "module_for_loader` decorator can handle the details for :attr:`__package__`." msgstr "" +"El cargador utilizado para cargar el módulo. El decorador :func:`importlib." +"util.module_for_loader` puede manejar los detalles de :attr:`__package__`." #: ../Doc/library/importlib.rst:452 msgid "" "When :meth:`exec_module` is available then backwards-compatible " "functionality is provided." msgstr "" +"Cuando :meth:`exec_module` está disponible, se proporciona una funcionalidad " +"compatible con versiones anteriores." #: ../Doc/library/importlib.rst:455 msgid "" "Raise :exc:`ImportError` when called instead of :exc:`NotImplementedError`. " "Functionality provided when :meth:`exec_module` is available." msgstr "" +"Lanza :exc:`ImportError` cuando se llama en lugar de :exc:" +"`NotImplementedError`. Funcionalidad proporcionada cuando :meth:" +"`exec_module` está disponible." #: ../Doc/library/importlib.rst:460 msgid "" @@ -641,6 +855,10 @@ msgid "" "The import machinery takes care of all the other responsibilities of " "load_module() when exec_module() is implemented." msgstr "" +"La API recomendada para cargar un módulo es :meth:`exec_module` (y :meth:" +"`create_module`). Los cargadores deberían implementarlo en lugar de " +"load_module(). La maquinaria de importación se encarga de todas las demás " +"responsabilidades de load_module() cuando se implementa exec_module()." #: ../Doc/library/importlib.rst:469 msgid "" @@ -648,23 +866,28 @@ msgid "" "module's repr, as a string. The module type's default repr() will use the " "result of this method as appropriate." msgstr "" +"Un método heredado que, cuando se implementa, calcula y retorna la repr del " +"módulo dado, como una cadena. El repr() predeterminado del tipo de módulo " +"utilizará el resultado de este método según corresponda." #: ../Doc/library/importlib.rst:475 msgid "Made optional instead of an abstractmethod." -msgstr "" +msgstr "Hecho opcional en vez de un método abstracto (*abstractmethod*)" #: ../Doc/library/importlib.rst:478 msgid "The import machinery now takes care of this automatically." -msgstr "" +msgstr "La maquinaria de importación ahora se encarga de esto automáticamente." #: ../Doc/library/importlib.rst:484 msgid "*Superseded by TraversableReader*" -msgstr "" +msgstr "*Reemplazada por TraversableReader*" #: ../Doc/library/importlib.rst:486 msgid "" "An :term:`abstract base class` to provide the ability to read *resources*." msgstr "" +"Un :term:`abstract base class` para proporcionar la capacidad de leer " +"*resources*." #: ../Doc/library/importlib.rst:489 msgid "" @@ -675,6 +898,13 @@ msgid "" "does not matter if the package and its data file(s) are stored in a e.g. zip " "file versus on the file system." msgstr "" +"Desde la perspectiva de este ABC, un *resource* es un artefacto binario que " +"se envía dentro de un paquete. Por lo general, esto es algo así como un " +"archivo de datos que se encuentra junto al archivo ``__init__.py`` del " +"paquete. El propósito de esta clase es ayudar a abstraer el acceso a dichos " +"archivos de datos de modo que no importe si el paquete y sus archivos de " +"datos se almacenan en un, por ejemplo, zip en comparación con el sistema de " +"archivos." #: ../Doc/library/importlib.rst:497 msgid "" @@ -687,6 +917,16 @@ msgid "" "class are expected to directly correlate to a specific package (instead of " "potentially representing multiple packages or a module)." msgstr "" +"Para cualquiera de los métodos de esta clase, se espera que un argumento " +"*resource* sea un :term:`path-like object` que representa conceptualmente " +"solo un nombre de archivo. Esto significa que no se deben incluir rutas de " +"subdirectorio en el argumento *resource*. Esto se debe a que la ubicación " +"del paquete para el que está ubicado el lector actúa como el \"directorio\". " +"Por lo tanto, la metáfora de los directorios y los nombres de los archivos " +"son los paquetes y los recursos, respectivamente. Esta es también la razón " +"por la que se espera que las instancias de esta clase se correlacionen " +"directamente con un paquete específico (en lugar de representar " +"potencialmente varios paquetes o un módulo)." #: ../Doc/library/importlib.rst:508 msgid "" @@ -696,32 +936,45 @@ msgid "" "not a package, this method should return :const:`None`. An object compatible " "with this ABC should only be returned when the specified module is a package." msgstr "" +"Se espera que los cargadores que deseen admitir la lectura de recursos " +"proporcionen un método llamado ``get_resource_reader(fullname)`` que retorna " +"un objeto que implementa la interfaz de este ABC. Si el módulo especificado " +"por fullname no es un paquete, este método debería devolver :const:`None`. " +"Un objeto compatible con este ABC solo debe retornarse cuando el módulo " +"especificado es un paquete." #: ../Doc/library/importlib.rst:519 msgid "" "Returns an opened, :term:`file-like object` for binary reading of the " "*resource*." msgstr "" +"Retorna un, :term:`file-like object` abierto para la lectura binaria del " +"*resource*." #: ../Doc/library/importlib.rst:522 msgid "If the resource cannot be found, :exc:`FileNotFoundError` is raised." msgstr "" +"Si no se puede encontrar el recurso, se lanza :exc:`FileNotFoundError`." #: ../Doc/library/importlib.rst:527 msgid "Returns the file system path to the *resource*." -msgstr "" +msgstr "Retorna la ruta del sistema de archivos al *resource*." #: ../Doc/library/importlib.rst:529 msgid "" "If the resource does not concretely exist on the file system, raise :exc:" "`FileNotFoundError`." msgstr "" +"Si el recurso no existe concretamente en el sistema de archivos, lanza :exc:" +"`FileNotFoundError`." #: ../Doc/library/importlib.rst:534 msgid "" "Returns ``True`` if the named *name* is considered a resource. :exc:" "`FileNotFoundError` is raised if *name* does not exist." msgstr "" +"Retorna ``True`` si el *name* nombrado se considera un recurso. :exc:" +"`FileNotFoundError` se lanza si *name* no existe." #: ../Doc/library/importlib.rst:539 msgid "" @@ -730,6 +983,10 @@ msgid "" "actual resources, e.g. it is acceptable to return names for which :meth:" "`is_resource` would be false." msgstr "" +"Retorna un :term:`iterable` de cadenas de caracteres sobre el contenido del " +"paquete. Tenga en cuenta que no es necesario que todos los nombres " +"retornados por el iterador sean recursos reales, por ejemplo, es aceptable " +"retornar nombres para los que :meth:`is_resource` sería falso." #: ../Doc/library/importlib.rst:545 msgid "" @@ -739,22 +996,33 @@ msgid "" "is allowed so that when it is known that the package and resources are " "stored on the file system then those subdirectory names can be used directly." msgstr "" +"Al permitir que se retornen nombres que no son de recursos es para permitir " +"situaciones en las que se conoce a priori cómo se almacenan un paquete y sus " +"recursos y los nombres que no son de recursos serían útiles. Por ejemplo, se " +"permite el retorno de nombres de subdirectorios para que cuando se sepa que " +"el paquete y los recursos están almacenados en el sistema de archivos, esos " +"nombres de subdirectorios se puedan usar directamente." #: ../Doc/library/importlib.rst:553 msgid "The abstract method returns an iterable of no items." -msgstr "" +msgstr "El método abstracto retorna un iterable de ningún elemento." #: ../Doc/library/importlib.rst:558 msgid "" "An abstract base class for a :term:`loader` which implements the optional :" "pep:`302` protocol for loading arbitrary resources from the storage back-end." msgstr "" +"Una clase base abstracta para un :term:`loader` que implementa el protocolo " +"opcional :pep:`302` para cargar recursos arbitrarios desde el back-end de " +"almacenamiento." #: ../Doc/library/importlib.rst:562 msgid "" "This ABC is deprecated in favour of supporting resource loading through :" "class:`importlib.abc.ResourceReader`." msgstr "" +"Este ABC está en desuso a favor de admitir la carga de recursos a través de :" +"class:`importlib.abc.ResourceReader`." #: ../Doc/library/importlib.rst:568 msgid "" @@ -765,16 +1033,25 @@ msgid "" "*path* is expected to be constructed using a module's :attr:`__file__` " "attribute or an item from a package's :attr:`__path__`." msgstr "" +"Un método abstracto para devolver los bytes de los datos ubicados en *path*. " +"Los cargadores que tienen un back-end de almacenamiento similar a un archivo " +"que permite almacenar datos arbitrarios pueden implementar este método " +"abstracto para dar acceso directo a los datos almacenados. :exc:`OSError` se " +"lanza si no se puede encontrar el *path*. Se espera que la *path* se " +"construya utilizando el atributo :attr:`__file__` de un módulo o un elemento " +"de un paquete :attr:`__path__`." #: ../Doc/library/importlib.rst:576 msgid "Raises :exc:`OSError` instead of :exc:`NotImplementedError`." -msgstr "" +msgstr "Lanza :exc:`OSError` en vez de :exc:`NotImplementedError`." #: ../Doc/library/importlib.rst:582 msgid "" "An abstract base class for a :term:`loader` which implements the optional :" "pep:`302` protocol for loaders that inspect modules." msgstr "" +"Una clase base abstracta para un :term:`loader` que implementa el protocolo " +"opcional :pep:`302` para cargadores que inspeccionan módulos." #: ../Doc/library/importlib.rst:587 msgid "" @@ -782,16 +1059,23 @@ msgid "" "a code object (as would be the case, for example, for a built-in module). " "Raise an :exc:`ImportError` if loader cannot find the requested module." msgstr "" +"Retorna el objeto código para un módulo, o ``None`` si el módulo no tiene un " +"objeto código (como sería el caso, por ejemplo, para un módulo integrado). " +"Lanza un :exc:`ImportError` si el cargador no puede encontrar el módulo " +"solicitado." #: ../Doc/library/importlib.rst:593 msgid "" "While the method has a default implementation, it is suggested that it be " "overridden if possible for performance." msgstr "" +"Si bien el método tiene una implementación predeterminada, se sugiere que se " +"anule si es posible para mejorar el rendimiento." #: ../Doc/library/importlib.rst:599 msgid "No longer abstract and a concrete implementation is provided." msgstr "" +"Ya no es un método abstracto y se proporciona una implementación concreta." #: ../Doc/library/importlib.rst:604 msgid "" @@ -801,11 +1085,17 @@ msgid "" "available (e.g. a built-in module). Raises :exc:`ImportError` if the loader " "cannot find the module specified." msgstr "" +"Un método abstracto para retornar la fuente de un módulo. Se retorna como " +"una cadena de caracteres de texto usando :term:`universal newlines`, " +"traduciendo todos los separadores de línea reconocidos en caracteres ``'\n" +"'``. Retorna ``None`` si no hay una fuente disponible (por ejemplo, un " +"módulo integrado). Lanza :exc:`ImportError` si el cargador no puede " +"encontrar el módulo especificado." #: ../Doc/library/importlib.rst:610 ../Doc/library/importlib.rst:619 #: ../Doc/library/importlib.rst:669 msgid "Raises :exc:`ImportError` instead of :exc:`NotImplementedError`." -msgstr "" +msgstr "Lanza :exc:`ImportError` en vez de :exc:`NotImplementedError`." #: ../Doc/library/importlib.rst:615 msgid "" @@ -813,10 +1103,13 @@ msgid "" "false value otherwise. :exc:`ImportError` is raised if the :term:`loader` " "cannot find the module." msgstr "" +"Un método abstracto para retornar un valor verdadero si el módulo es un " +"paquete, un valor falso en caso contrario. :exc:`ImportError` se lanza si :" +"term:`loader` no puede encontrar el módulo." #: ../Doc/library/importlib.rst:624 msgid "Create a code object from Python source." -msgstr "" +msgstr "Cree un objeto de código a partir de la fuente de Python." #: ../Doc/library/importlib.rst:626 msgid "" @@ -825,28 +1118,34 @@ msgid "" "source code originated from, which can be an abstract concept (e.g. location " "in a zip file)." msgstr "" +"El argumento *data* puede ser cualquier cosa que admita la función :func:" +"`compile` (es decir, cadena de caracteres o bytes). El argumento *path* debe " +"ser la \"ruta\" de donde se originó el código fuente, que puede ser un " +"concepto abstracto (por ejemplo, ubicación en un archivo zip)." #: ../Doc/library/importlib.rst:631 msgid "" "With the subsequent code object one can execute it in a module by running " "``exec(code, module.__dict__)``." msgstr "" +"Con el objeto de código subsiguiente, uno puede ejecutarlo en un módulo " +"ejecutando ``exec(code, module.__dict__)``." #: ../Doc/library/importlib.rst:636 msgid "Made the method static." -msgstr "" +msgstr "Hace el método estático." #: ../Doc/library/importlib.rst:641 msgid "Implementation of :meth:`Loader.exec_module`." -msgstr "" +msgstr "Implementación de :meth:`Loader.exec_module`." #: ../Doc/library/importlib.rst:647 msgid "Implementation of :meth:`Loader.load_module`." -msgstr "" +msgstr "Implementación de :meth:`Loader.load_module`." #: ../Doc/library/importlib.rst:649 msgid "use :meth:`exec_module` instead." -msgstr "" +msgstr "use :meth:`exec_module` en su lugar." #: ../Doc/library/importlib.rst:655 msgid "" @@ -854,18 +1153,26 @@ msgid "" "implemented, helps a module to be executed as a script. The ABC represents " "an optional :pep:`302` protocol." msgstr "" +"Una clase base abstracta que hereda de :class:`InspectLoader` que, cuando se " +"implementa, ayuda a que un módulo se ejecute como un script. El ABC " +"representa un protocolo opcional :pep:`302`." #: ../Doc/library/importlib.rst:661 msgid "" "An abstract method that is to return the value of :attr:`__file__` for the " "specified module. If no path is available, :exc:`ImportError` is raised." msgstr "" +"Un método abstracto que retorna el valor de :attr:`__file__` para el módulo " +"especificado. Si no hay una ruta disponible, se lanza :exc:`ImportError`." #: ../Doc/library/importlib.rst:665 msgid "" "If source code is available, then the method should return the path to the " "source file, regardless of whether a bytecode was used to load the module." msgstr "" +"Si el código fuente está disponible, entonces el método debe devolver la " +"ruta al archivo fuente, independientemente de si se utilizó un código de " +"bytes para cargar el módulo." #: ../Doc/library/importlib.rst:675 msgid "" @@ -873,36 +1180,42 @@ msgid "" "class:`ExecutionLoader`, providing concrete implementations of :meth:" "`ResourceLoader.get_data` and :meth:`ExecutionLoader.get_filename`." msgstr "" +"Una clase base abstracta que hereda de :class:`ResourceLoader` y :class:" +"`ExecutionLoader`, proporcionando implementaciones concretas de :meth:" +"`ResourceLoader.get_data` y :meth:`ExecutionLoader.get_filename`." #: ../Doc/library/importlib.rst:679 msgid "" "The *fullname* argument is a fully resolved name of the module the loader is " "to handle. The *path* argument is the path to the file for the module." msgstr "" +"El argumento *fullname* es un nombre completamente resuelto del módulo que " +"el cargador debe manejar. El argumento *path* es la ruta al archivo del " +"módulo." #: ../Doc/library/importlib.rst:686 msgid "The name of the module the loader can handle." -msgstr "" +msgstr "El nombre del módulo que puede manejar el cargador." #: ../Doc/library/importlib.rst:690 msgid "Path to the file of the module." -msgstr "" +msgstr "Ruta al archivo del módulo." #: ../Doc/library/importlib.rst:694 msgid "Calls super's ``load_module()``." -msgstr "" +msgstr "Llama a super's ``load_module()``." #: ../Doc/library/importlib.rst:696 msgid "Use :meth:`Loader.exec_module` instead." -msgstr "" +msgstr "Utilice :meth:`Loader.exec_module` en su lugar." #: ../Doc/library/importlib.rst:701 ../Doc/library/importlib.rst:1319 msgid "Returns :attr:`path`." -msgstr "" +msgstr "Retorna :attr:`path`." #: ../Doc/library/importlib.rst:705 msgid "Reads *path* as a binary file and returns the bytes from it." -msgstr "" +msgstr "Lee *path* como un archivo binario y devuelve los bytes de él." #: ../Doc/library/importlib.rst:710 msgid "" @@ -910,20 +1223,25 @@ msgid "" "file loading. The class inherits from both :class:`ResourceLoader` and :" "class:`ExecutionLoader`, requiring the implementation of:" msgstr "" +"Una clase base abstracta para implementar la carga de archivos fuente (y " +"opcionalmente bytecode). La clase hereda tanto de :class:`ResourceLoader` " +"como de :class:`ExecutionLoader`, lo que requiere la implementación de:" #: ../Doc/library/importlib.rst:714 msgid ":meth:`ResourceLoader.get_data`" -msgstr "" +msgstr ":meth:`ResourceLoader.get_data`" #: ../Doc/library/importlib.rst:717 msgid ":meth:`ExecutionLoader.get_filename`" -msgstr "" +msgstr ":meth:`ExecutionLoader.get_filename`" #: ../Doc/library/importlib.rst:716 msgid "" "Should only return the path to the source file; sourceless loading is not " "supported." msgstr "" +"Solo debe devolver la ruta al archivo de origen; la carga sin fuente no es " +"compatible." #: ../Doc/library/importlib.rst:719 msgid "" @@ -936,38 +1254,56 @@ msgid "" "loading by removing the parsing step of Python's compiler, and so no " "bytecode-specific API is exposed." msgstr "" +"Los métodos abstractos definidos por esta clase son para agregar soporte de " +"archivo de código de bytes opcional. No implementar estos métodos opcionales " +"(o hacer que se lance :exc:`NotImplementedError`) hace que el cargador solo " +"funcione con el código fuente. La implementación de los métodos permite que " +"el cargador trabaje con archivos fuente *y* código de bytes; no permite la " +"carga *sin fuente* donde solo se proporciona un código de bytes. Los " +"archivos de código de bytes son una optimización para acelerar la carga al " +"eliminar el paso de análisis del compilador de Python, por lo que no se " +"expone ninguna API específica de código de bytes." #: ../Doc/library/importlib.rst:730 msgid "" "Optional abstract method which returns a :class:`dict` containing metadata " "about the specified path. Supported dictionary keys are:" msgstr "" +"Método abstracto opcional que devuelve un :class:`dict` que contiene " +"metadatos sobre la ruta especificada. Las claves de diccionario admitidas " +"son:" #: ../Doc/library/importlib.rst:733 msgid "" "``'mtime'`` (mandatory): an integer or floating-point number representing " "the modification time of the source code;" msgstr "" +"``'mtime'`` (obligatorio): un número entero o de punto flotante que " +"representa la hora de modificación del código fuente;" #: ../Doc/library/importlib.rst:735 msgid "``'size'`` (optional): the size in bytes of the source code." -msgstr "" +msgstr "``'size'`` (opcional): el tamaño en bytes del código fuente." #: ../Doc/library/importlib.rst:737 msgid "" "Any other keys in the dictionary are ignored, to allow for future " "extensions. If the path cannot be handled, :exc:`OSError` is raised." msgstr "" +"Cualquier otra clave del diccionario se ignora para permitir futuras " +"extensiones. Si no se puede manejar la ruta, se genera :exc:`OSError`." #: ../Doc/library/importlib.rst:742 ../Doc/library/importlib.rst:755 msgid "Raise :exc:`OSError` instead of :exc:`NotImplementedError`." -msgstr "" +msgstr "Lanza :exc:`OSError` en vez de :exc:`NotImplementedError`." #: ../Doc/library/importlib.rst:747 msgid "" "Optional abstract method which returns the modification time for the " "specified path." msgstr "" +"Método abstracto opcional que retorna la hora de modificación de la ruta " +"especificada." #: ../Doc/library/importlib.rst:750 msgid "" @@ -975,6 +1311,9 @@ msgid "" "to implement it, but it is still available for compatibility purposes. " "Raise :exc:`OSError` if the path cannot be handled." msgstr "" +"Este método está obsoleto en favor de :meth:`path_stats`. No tiene que " +"implementarlo, pero aún está disponible para fines de compatibilidad. Lanza :" +"exc:`OSError` si la ruta no se puede manejar." #: ../Doc/library/importlib.rst:760 msgid "" @@ -982,36 +1321,41 @@ msgid "" "Any intermediate directories which do not exist are to be created " "automatically." msgstr "" +"Método abstracto opcional que escribe los bytes especificados en una ruta de " +"archivo. Los directorios intermedios que no existan se crearán " +"automáticamente." #: ../Doc/library/importlib.rst:764 msgid "" "When writing to the path fails because the path is read-only (:attr:`errno." "EACCES`/:exc:`PermissionError`), do not propagate the exception." msgstr "" +"Cuando la escritura en la ruta falla porque la ruta es de solo lectura (:" +"attr:`errno.EACCES`/:exc:`PermissionError`), no propague la excepción." #: ../Doc/library/importlib.rst:768 msgid "No longer raises :exc:`NotImplementedError` when called." -msgstr "" +msgstr "Ya no lanza :exc:`NotImplementedError` cuando se llama." #: ../Doc/library/importlib.rst:773 msgid "Concrete implementation of :meth:`InspectLoader.get_code`." -msgstr "" +msgstr "Implementación concreta de :meth:`InspectLoader.get_code`." #: ../Doc/library/importlib.rst:777 msgid "Concrete implementation of :meth:`Loader.exec_module`." -msgstr "" +msgstr "Implementación concreta de :meth:`Loader.exec_module`." #: ../Doc/library/importlib.rst:783 msgid "Concrete implementation of :meth:`Loader.load_module`." -msgstr "" +msgstr "Implementación concreta de :meth:`Loader.load_module`." #: ../Doc/library/importlib.rst:785 msgid "Use :meth:`exec_module` instead." -msgstr "" +msgstr "Utilice :meth:`exec_module` en su lugar." #: ../Doc/library/importlib.rst:790 msgid "Concrete implementation of :meth:`InspectLoader.get_source`." -msgstr "" +msgstr "Implementación concreta de :meth:`InspectLoader.get_source`." #: ../Doc/library/importlib.rst:794 msgid "" @@ -1021,12 +1365,19 @@ msgid "" "extension is removed **and** the module name itself does not end in " "``__init__``." msgstr "" +"Implementación concreta de :meth:`InspectLoader.is_package`. Se determina " +"que un módulo es un paquete si su ruta de archivo (proporcionada por :meth:" +"`ExecutionLoader.get_filename`) es un archivo llamado ``__init__`` cuando se " +"elimina la extensión del archivo **y** el nombre del módulo sí lo hace no " +"termina en ``__init__``." #: ../Doc/library/importlib.rst:803 msgid "" "An object with a subset of pathlib.Path methods suitable for traversing " "directories and opening files." msgstr "" +"Un objeto con un subconjunto de métodos pathlib.Path adecuados para recorrer " +"directorios y abrir archivos." #: ../Doc/library/importlib.rst:811 msgid "" @@ -1035,14 +1386,19 @@ msgid "" "of the ResourceReader's abstract methods. Therefore, any loader supplying " "TraversableReader also supplies ResourceReader." msgstr "" +"Una clase base abstracta para lectores de recursos capaz de servir la " +"interfaz de ``files``. Subclases ResourceReader y proporciona " +"implementaciones concretas de los métodos abstractos de ResourceReader. Por " +"lo tanto, cualquier cargador que suministre TraversableReader también " +"suministra ResourceReader." #: ../Doc/library/importlib.rst:821 msgid ":mod:`importlib.resources` -- Resources" -msgstr "" +msgstr ":mod:`importlib.resources` -- Recursos" #: ../Doc/library/importlib.rst:826 msgid "**Source code:** :source:`Lib/importlib/resources.py`" -msgstr "" +msgstr "**Código fuente:** :source:`Lib/importlib/resources.py`" #: ../Doc/library/importlib.rst:832 msgid "" @@ -1051,6 +1407,10 @@ msgid "" "resources within that package. Resources can be opened or read, in either " "binary or text mode." msgstr "" +"Este módulo aprovecha el sistema de importación de Python para proporcionar " +"acceso a *resources* dentro de *packages*. Si puede importar un paquete, " +"puede acceder a los recursos dentro de ese paquete. Los recursos se pueden " +"abrir o leer, ya sea en modo binario o texto." #: ../Doc/library/importlib.rst:837 msgid "" @@ -1059,6 +1419,10 @@ msgid "" "packages **do not** have to exist as physical files and directories on the " "file system." msgstr "" +"Los recursos son similares a los archivos dentro de los directorios, aunque " +"es importante tener en cuenta que esto es solo una metáfora. Los recursos y " +"paquetes **no** tienen que existir como archivos y directorios físicos en el " +"sistema de archivos." #: ../Doc/library/importlib.rst:843 msgid "" @@ -1069,6 +1433,12 @@ msgid "" "makes reading resources included in packages easier, with more stable and " "consistent semantics." msgstr "" +"Este módulo proporciona una funcionalidad similar a `pkg_resources `_ `Acceso Básico a " +"Recursos `_ sin la sobrecarga de rendimiento de ese " +"paquete. Esto facilita la lectura de los recursos incluidos en los paquetes, " +"con una semántica más estable y coherente." #: ../Doc/library/importlib.rst:851 msgid "" @@ -1077,10 +1447,14 @@ msgid "" "using.html>`_ and `migrating from pkg_resources to importlib.resources " "`_." msgstr "" +"El backport independiente de este módulo proporciona más información sobre " +"`usar importlib.resources `_ y `migrar desde pkg_resources a importlib.resources " +"`_." #: ../Doc/library/importlib.rst:861 msgid "The following types are defined." -msgstr "" +msgstr "Se definen los siguientes tipos." #: ../Doc/library/importlib.rst:865 msgid "" @@ -1089,16 +1463,23 @@ msgid "" "either a string or a module. Module objects must have a resolvable " "``__spec__.submodule_search_locations`` that is not ``None``." msgstr "" +"El tipo ``Package`` se define como ``Union[str, ModuleType]``. Esto " +"significa que cuando la función describe la aceptación de un ``Package``, " +"puede pasar una cadena de caracteres o un módulo. Los objetos de módulo " +"deben tener un ``__spec__.submodule_search_locations`` que se pueda resolver " +"que no sea ``None``." #: ../Doc/library/importlib.rst:872 msgid "" "This type describes the resource names passed into the various functions in " "this package. This is defined as ``Union[str, os.PathLike]``." msgstr "" +"Este tipo describe los nombres de los recursos que se pasan a las distintas " +"funciones de este paquete. Esto se define como ``Union[str, os.PathLike]``." #: ../Doc/library/importlib.rst:876 msgid "The following functions are available." -msgstr "" +msgstr "Están disponibles las siguientes funciones." #: ../Doc/library/importlib.rst:881 msgid "" @@ -1107,16 +1488,22 @@ msgid "" "(think files). A Traversable may contain other containers (think " "subdirectories)." msgstr "" +"Retorna un objeto :class:`importlib.resources.abc.Traversable` que " +"representa el contenedor de recursos para el paquete (directorio think) y " +"sus recursos (archivos think). Un Traversable puede contener otros " +"contenedores (subdirectorios think)." #: ../Doc/library/importlib.rst:886 ../Doc/library/importlib.rst:971 msgid "" "*package* is either a name or a module object which conforms to the " "``Package`` requirements." msgstr "" +"*package* es un nombre o un objeto de módulo que cumple con los requisitos " +"de ``Package``." #: ../Doc/library/importlib.rst:893 msgid "Open for binary reading the *resource* within *package*." -msgstr "" +msgstr "Abra para lectura binaria el *resource* dentro del *package*." #: ../Doc/library/importlib.rst:895 msgid "" @@ -1126,12 +1513,20 @@ msgid "" "resources (i.e. it cannot be a directory). This function returns a ``typing." "BinaryIO`` instance, a binary I/O stream open for reading." msgstr "" +"*package* es un nombre o un objeto de módulo que cumple con los requisitos " +"de ``Package``. *resource* es el nombre del recurso a abrir dentro de " +"*package*; puede que no contenga separadores de ruta y puede que no tenga " +"sub-recursos (es decir, no puede ser un directorio). Esta función retorna " +"una instancia de ``typing.BinaryIO``, un flujo de E/S binario abierto para " +"lectura." #: ../Doc/library/importlib.rst:904 msgid "" "Open for text reading the *resource* within *package*. By default, the " "resource is opened for reading as UTF-8." msgstr "" +"Se abre para leer el texto del *resource* dentro del *package*. De forma " +"predeterminada, el recurso está abierto para lectura como UTF-8." #: ../Doc/library/importlib.rst:907 msgid "" @@ -1141,17 +1536,26 @@ msgid "" "resources (i.e. it cannot be a directory). *encoding* and *errors* have the " "same meaning as with built-in :func:`open`." msgstr "" +"*package* es un nombre o un objeto de módulo que cumple con los requisitos " +"de ``Package``. *resource* es el nombre del recurso a abrir dentro de " +"*package*; puede que no contenga separadores de ruta y puede que no tenga " +"sub-recursos (es decir, no puede ser un directorio). *encoding* y *errors* " +"tienen el mismo significado que con la función integrada :func:`open`." #: ../Doc/library/importlib.rst:913 msgid "" "This function returns a ``typing.TextIO`` instance, a text I/O stream open " "for reading." msgstr "" +"Esta función retorna una instancia de ``typing.TextIO``, un flujo de E/S de " +"texto abierto para lectura." #: ../Doc/library/importlib.rst:919 msgid "" "Read and return the contents of the *resource* within *package* as ``bytes``." msgstr "" +"Lee y retorna el contenido del *resource* dentro del *package* como " +"``bytes``." #: ../Doc/library/importlib.rst:922 msgid "" @@ -1161,12 +1565,19 @@ msgid "" "resources (i.e. it cannot be a directory). This function returns the " "contents of the resource as :class:`bytes`." msgstr "" +"*package* es un nombre o un objeto de módulo que cumple con los requisitos " +"de ``Package``. *resource* es el nombre del recurso a abrir dentro de " +"*package*; puede que no contenga separadores de ruta y puede que no tenga " +"sub-recursos (es decir, no puede ser un directorio). Esta función retorna el " +"contenido del recurso como :class:`bytes`." #: ../Doc/library/importlib.rst:931 msgid "" "Read and return the contents of *resource* within *package* as a ``str``. By " "default, the contents are read as strict UTF-8." msgstr "" +"Lee y retorna el contenido de *resource* dentro de *package* como un " +"``str``. De forma predeterminada, los contenidos se leen como UTF-8 estricto." #: ../Doc/library/importlib.rst:934 msgid "" @@ -1177,6 +1588,12 @@ msgid "" "same meaning as with built-in :func:`open`. This function returns the " "contents of the resource as :class:`str`." msgstr "" +"*package* es un nombre o un objeto de módulo que cumple con los requisitos " +"de ``Package``. *resource* es el nombre del recurso a abrir dentro de " +"*package*; puede que no contenga separadores de ruta y puede que no tenga " +"sub-recursos (es decir, no puede ser un directorio). *encoding* y *errors* " +"tienen el mismo significado que con la función integrada :func:`open`. Esta " +"función retorna el contenido del recurso como :class:`str`." #: ../Doc/library/importlib.rst:944 msgid "" @@ -1184,12 +1601,18 @@ msgid "" "function returns a context manager for use in a :keyword:`with` statement. " "The context manager provides a :class:`pathlib.Path` object." msgstr "" +"Retorna la ruta al *resource* como una ruta real del sistema de archivos. " +"Esta función retorna un administrador de contexto para usar en una " +"declaración :keyword:`with`. El administrador de contexto proporciona un " +"objeto :class:`pathlib.Path`." #: ../Doc/library/importlib.rst:948 msgid "" "Exiting the context manager cleans up any temporary file created when the " "resource needs to be extracted from e.g. a zip file." msgstr "" +"Salir del administrador de contexto limpia cualquier archivo temporal creado " +"cuando el recurso necesita ser extraído, por ejemplo, un archivo zip." #: ../Doc/library/importlib.rst:951 msgid "" @@ -1198,6 +1621,10 @@ msgid "" "within *package*; it may not contain path separators and it may not have sub-" "resources (i.e. it cannot be a directory)." msgstr "" +"*package* es un nombre o un objeto de módulo que cumple con los requisitos " +"de ``Package``. *resource* es el nombre del recurso a abrir dentro de " +"*package*; puede que no contenga separadores de ruta y puede que no tenga " +"sub-recursos (es decir, no puede ser un directorio)." #: ../Doc/library/importlib.rst:959 msgid "" @@ -1206,6 +1633,10 @@ msgid "" "*package* is either a name or a module object which conforms to the " "``Package`` requirements." msgstr "" +"Retorna ``True`` si hay un recurso llamado *name* en el paquete; de lo " +"contrario, ``False``. ¡Recuerde que los directorios *no* son recursos! " +"*package* es un nombre o un objeto de módulo que cumple con los requisitos " +"de ``Package``." #: ../Doc/library/importlib.rst:967 msgid "" @@ -1213,58 +1644,73 @@ msgid "" "returns :class:`str` resources (e.g. files) and non-resources (e.g. " "directories). The iterable does not recurse into subdirectories." msgstr "" +"Retorna un iterable sobre los elementos nombrados dentro del paquete. El " +"iterable retorna recursos :class:`str` (por ejemplo, archivos) y no-recursos " +"(por ejemplo, directorios). El iterable no recurre a subdirectorios." #: ../Doc/library/importlib.rst:976 msgid ":mod:`importlib.machinery` -- Importers and path hooks" -msgstr "" +msgstr ":mod:`importlib.machinery` -- Importadores y enlaces de ruta" #: ../Doc/library/importlib.rst:981 msgid "**Source code:** :source:`Lib/importlib/machinery.py`" -msgstr "" +msgstr "**Código fuente:** :source:`Lib/importlib/machinery.py`" #: ../Doc/library/importlib.rst:985 msgid "" "This module contains the various objects that help :keyword:`import` find " "and load modules." msgstr "" +"Este módulo contiene varios objetos que ayudan :keyword:`import` buscar y " +"cargar módulos." #: ../Doc/library/importlib.rst:990 msgid "" "A list of strings representing the recognized file suffixes for source " "modules." msgstr "" +"Una lista de cadenas de caracteres que representan los sufijos de archivo " +"reconocidos para los módulos de origen." #: ../Doc/library/importlib.rst:997 msgid "" "A list of strings representing the file suffixes for non-optimized bytecode " "modules." msgstr "" +"Una lista de cadenas que representan los sufijos de archivo para módulos de " +"código de bytes no optimizados." #: ../Doc/library/importlib.rst:1002 ../Doc/library/importlib.rst:1012 msgid "Use :attr:`BYTECODE_SUFFIXES` instead." -msgstr "" +msgstr "Utilice :attr:`BYTECODE_SUFFIXES` en su lugar." #: ../Doc/library/importlib.rst:1007 msgid "" "A list of strings representing the file suffixes for optimized bytecode " "modules." msgstr "" +"Una lista de cadenas de caracteres que representan los sufijos de archivo " +"para módulos de código de bytes optimizados." #: ../Doc/library/importlib.rst:1017 msgid "" "A list of strings representing the recognized file suffixes for bytecode " "modules (including the leading dot)." msgstr "" +"Una lista de cadenas de caracteres que representan los sufijos de archivo " +"reconocidos para los módulos de código de bytes (incluido el punto inicial)." #: ../Doc/library/importlib.rst:1022 msgid "The value is no longer dependent on ``__debug__``." -msgstr "" +msgstr "El valor ya no depende de ``__debug__``." #: ../Doc/library/importlib.rst:1027 msgid "" "A list of strings representing the recognized file suffixes for extension " "modules." msgstr "" +"Una lista de cadenas de caracteres que representan los sufijos de archivo " +"reconocidos para los módulos de extensión." #: ../Doc/library/importlib.rst:1034 msgid "" @@ -1274,6 +1720,12 @@ msgid "" "module without needing any details on the kind of module (for example, :func:" "`inspect.getmodulename`)." msgstr "" +"Retorna una lista combinada de cadenas de caracteres que representan todos " +"los sufijos de archivo para módulos reconocidos por la maquinaria de " +"importación estándar. Este es un ayudante para el código que simplemente " +"necesita saber si una ruta del sistema de archivos potencialmente se refiere " +"a un módulo sin necesidad de detalles sobre el tipo de módulo (por ejemplo, :" +"func:`inspect.getmodulename`)." #: ../Doc/library/importlib.rst:1045 msgid "" @@ -1281,6 +1733,10 @@ msgid "" "listed in :data:`sys.builtin_module_names`. This class implements the :class:" "`importlib.abc.MetaPathFinder` and :class:`importlib.abc.InspectLoader` ABCs." msgstr "" +"Un :term:`importer` para módulos integrados. Todos los módulos integrados " +"conocidos se enumeran en :data:`sys.builtin_module_names`. Esta clase " +"implementa los ABC :class:`importlib.abc.MetaPathFinder` y :class:`importlib." +"abc.InspectLoader`." #: ../Doc/library/importlib.rst:1050 ../Doc/library/importlib.rst:1064 #: ../Doc/library/importlib.rst:1077 ../Doc/library/importlib.rst:1092 @@ -1288,35 +1744,48 @@ msgid "" "Only class methods are defined by this class to alleviate the need for " "instantiation." msgstr "" +"Esta clase solo define los métodos de clase para aliviar la necesidad de " +"instanciación." #: ../Doc/library/importlib.rst:1053 msgid "" "As part of :pep:`489`, the builtin importer now implements :meth:`Loader." "create_module` and :meth:`Loader.exec_module`" msgstr "" +"Como parte de :pep:`489`, el importador integrado ahora implementa :meth:" +"`Loader.create_module` y :meth:`Loader.exec_module`" #: ../Doc/library/importlib.rst:1060 msgid "" "An :term:`importer` for frozen modules. This class implements the :class:" "`importlib.abc.MetaPathFinder` and :class:`importlib.abc.InspectLoader` ABCs." msgstr "" +"Un :term:`importer` para módulos congelados. Esta clase implementa los ABC :" +"class:`importlib.abc.MetaPathFinder` y :class:`importlib.abc.InspectLoader`." #: ../Doc/library/importlib.rst:1067 msgid "" "Gained :meth:`~Loader.create_module` and :meth:`~Loader.exec_module` methods." msgstr "" +"Métodos obtenidos :meth:`~Loader.create_module` y :meth:`~Loader." +"exec_module`." #: ../Doc/library/importlib.rst:1074 msgid "" ":term:`Finder ` for modules declared in the Windows registry. This " "class implements the :class:`importlib.abc.MetaPathFinder` ABC." msgstr "" +":term:`Finder ` para los módulos declarados en el registro de " +"Windows. Esta clase implementa el :class:`importlib.abc.MetaPathFinder` ABC." #: ../Doc/library/importlib.rst:1082 msgid "" "Use :mod:`site` configuration instead. Future versions of Python may not " "enable this finder by default." msgstr "" +"Utilice la configuración de :mod:`site` en su lugar. Es posible que las " +"versiones futuras de Python no habiliten este buscador de forma " +"predeterminada." #: ../Doc/library/importlib.rst:1089 msgid "" @@ -1324,6 +1793,9 @@ msgid "" "attributes. This class implements the :class:`importlib.abc.MetaPathFinder` " "ABC." msgstr "" +"Un :term:`Finder ` para :data:`sys.path` y atributos del paquete " +"``__path__``. Esta clase implementa el :class:`importlib.abc.MetaPathFinder` " +"ABC." #: ../Doc/library/importlib.rst:1097 msgid "" @@ -1338,6 +1810,16 @@ msgid "" "the module. If no finder is ever found then ``None`` is both stored in the " "cache and returned." msgstr "" +"Método de clase que intenta encontrar un :term:`spec ` para el " +"módulo especificado por *fullname* en :data:`sys.path` o, si está definido, " +"en *path*. Para cada entrada de ruta que se busca, se comprueba :data:`sys." +"path_importer_cache`. Si se encuentra un objeto que no es falso, se utiliza " +"como :term:`path entry finder` para buscar el módulo que se está buscando. " +"Si no se encuentra ninguna entrada en :data:`sys.path_importer_cache`, " +"entonces :data:`sys.path_hooks` se busca un buscador para la entrada de ruta " +"y, si se encuentra, se almacena en :data:`sys.path_importer_cache` junto con " +"ser consultado sobre el módulo. Si nunca se encuentra ningún buscador, " +"entonces ``None`` se almacena en el caché y se retorna." #: ../Doc/library/importlib.rst:1111 msgid "" @@ -1345,10 +1827,13 @@ msgid "" "longer valid then ``None`` is returned but no value is cached in :data:`sys." "path_importer_cache`." msgstr "" +"Si el directorio de trabajo actual, representado por una cadena de " +"caracteres vacía, ya no es válido, se retorna``None`` pero no se almacena " +"ningún valor en :data:`sys.path_importer_cache`." #: ../Doc/library/importlib.rst:1118 msgid "A legacy wrapper around :meth:`find_spec`." -msgstr "" +msgstr "Una envoltura heredada alrededor de :meth:`find_spec`." #: ../Doc/library/importlib.rst:1125 msgid "" @@ -1356,28 +1841,38 @@ msgid "" "stored in :data:`sys.path_importer_cache` that define the method. Otherwise " "entries in :data:`sys.path_importer_cache` set to ``None`` are deleted." msgstr "" +"Llama :meth:`importlib.abc.PathEntryFinder.invalidate_caches` en todos los " +"buscadores almacenados en :data:`sys.path_importer_cache` que definen el " +"método. De lo contrario, las entradas en :data:`sys.path_importer_cache` " +"establecidas en ``None`` se eliminan." #: ../Doc/library/importlib.rst:1130 msgid "Entries of ``None`` in :data:`sys.path_importer_cache` are deleted." msgstr "" +"Se eliminan las entradas de ``None`` en :data:`sys.path_importer_cache`." #: ../Doc/library/importlib.rst:1133 msgid "" "Calls objects in :data:`sys.path_hooks` with the current working directory " "for ``''`` (i.e. the empty string)." msgstr "" +"Llama a objetos en :data:`sys.path_hooks` con el directorio de trabajo " +"actual para ``''`` (es decir, la cadena de caracteres vacía)." #: ../Doc/library/importlib.rst:1140 msgid "" "A concrete implementation of :class:`importlib.abc.PathEntryFinder` which " "caches results from the file system." msgstr "" +"Una implementación concreta de :class:`importlib.abc.PathEntryFinder` que " +"almacena en caché los resultados del sistema de archivos." #: ../Doc/library/importlib.rst:1143 msgid "" "The *path* argument is the directory for which the finder is in charge of " "searching." msgstr "" +"El argumento *path* es el directorio que el buscador se encarga de buscar." #: ../Doc/library/importlib.rst:1146 msgid "" @@ -1386,6 +1881,11 @@ msgid "" "The loaders are expected to be callables which accept two arguments of the " "module's name and the path to the file found." msgstr "" +"El argumento *loader_details* es un número variable de tuplas de 2 " +"elementos, cada una de las cuales contiene un cargador y una secuencia de " +"sufijos de archivo que el cargador reconoce. Se espera que los cargadores " +"sean invocables que acepten dos argumentos del nombre del módulo y la ruta " +"al archivo encontrado." #: ../Doc/library/importlib.rst:1151 msgid "" @@ -1399,22 +1899,36 @@ msgid "" "prevent this from happening, when you create a module dynamically, make sure " "to call :func:`importlib.invalidate_caches`." msgstr "" +"El buscador almacenará en caché el contenido del directorio según sea " +"necesario, haciendo llamadas estadísticas para cada búsqueda de módulo para " +"verificar que la caché no esté desactualizada. Debido a que la obsolescencia " +"de la caché se basa en la granularidad de la información de estado del " +"sistema operativo del sistema de archivos, existe una condición de carrera " +"potencial de buscar un módulo, crear un nuevo archivo y luego buscar el " +"módulo que representa el nuevo archivo. Si las operaciones ocurren lo " +"suficientemente rápido como para ajustarse a la granularidad de las llamadas " +"estadísticas, la búsqueda del módulo fallará. Para evitar que esto suceda, " +"cuando cree un módulo dinámicamente, asegúrese de llamar a :func:`importlib." +"invalidate_caches`." #: ../Doc/library/importlib.rst:1165 msgid "The path the finder will search in." -msgstr "" +msgstr "La ruta en la que buscará el buscador." #: ../Doc/library/importlib.rst:1169 msgid "Attempt to find the spec to handle *fullname* within :attr:`path`." msgstr "" +"Intente encontrar la especificación para manejar *fullname* dentro de :attr:" +"`path`." #: ../Doc/library/importlib.rst:1175 msgid "Attempt to find the loader to handle *fullname* within :attr:`path`." msgstr "" +"Intente encontrar el cargador para manejar *fullname* dentro de :attr:`path`." #: ../Doc/library/importlib.rst:1179 msgid "Clear out the internal cache." -msgstr "" +msgstr "Borrar el caché interno." #: ../Doc/library/importlib.rst:1183 msgid "" @@ -1422,12 +1936,18 @@ msgid "" "instance of :class:`FileFinder` is returned by the closure using the path " "argument given to the closure directly and *loader_details* indirectly." msgstr "" +"Un método de clase que devuelve un cierre para su uso en :attr:`sys." +"path_hooks`. Una instancia de :class:`FileFinder` es retornada por el cierre " +"usando el argumento de ruta dado al cierre directamente y *loader_details* " +"indirectamente." #: ../Doc/library/importlib.rst:1188 msgid "" "If the argument to the closure is not an existing directory, :exc:" "`ImportError` is raised." msgstr "" +"Si el argumento del cierre no es un directorio existente, se lanza :exc:" +"`ImportError`." #: ../Doc/library/importlib.rst:1194 msgid "" @@ -1435,43 +1955,53 @@ msgid "" "subclassing :class:`importlib.abc.FileLoader` and providing some concrete " "implementations of other methods." msgstr "" +"Una implementación concreta de :class:`importlib.abc.SourceLoader` " +"subclasificando :class:`importlib.abc.FileLoader` y proporcionando algunas " +"implementaciones concretas de otros métodos." #: ../Doc/library/importlib.rst:1202 msgid "The name of the module that this loader will handle." -msgstr "" +msgstr "El nombre del módulo que manejará este cargador." #: ../Doc/library/importlib.rst:1206 msgid "The path to the source file." -msgstr "" +msgstr "La ruta al archivo de origen." #: ../Doc/library/importlib.rst:1210 msgid "Return ``True`` if :attr:`path` appears to be for a package." -msgstr "" +msgstr "Devuelve ``True`` si :attr:`path` parece ser para un paquete." #: ../Doc/library/importlib.rst:1214 msgid "" "Concrete implementation of :meth:`importlib.abc.SourceLoader.path_stats`." msgstr "" +"Implementación concreta de :meth:`importlib.abc.SourceLoader.path_stats`." #: ../Doc/library/importlib.rst:1218 msgid "Concrete implementation of :meth:`importlib.abc.SourceLoader.set_data`." msgstr "" +"Implementación concreta de :meth:`importlib.abc.SourceLoader.set_data`." #: ../Doc/library/importlib.rst:1222 ../Doc/library/importlib.rst:1265 msgid "" "Concrete implementation of :meth:`importlib.abc.Loader.load_module` where " "specifying the name of the module to load is optional." msgstr "" +"Implementación concreta de :meth:`importlib.abc.Loader.load_module` donde " +"especificar el nombre del módulo a cargar es opcional." #: ../Doc/library/importlib.rst:1227 ../Doc/library/importlib.rst:1270 msgid "Use :meth:`importlib.abc.Loader.exec_module` instead." -msgstr "" +msgstr "Utilice :meth:`importlib.abc.Loader.exec_module` en su lugar." #: ../Doc/library/importlib.rst:1232 msgid "" "A concrete implementation of :class:`importlib.abc.FileLoader` which can " "import bytecode files (i.e. no source code files exist)." msgstr "" +"Una implementación concreta de :class:`importlib.abc.FileLoader` que puede " +"importar archivos de código de bytes (es decir, no existen archivos de " +"código fuente)." #: ../Doc/library/importlib.rst:1235 msgid "" @@ -1479,71 +2009,90 @@ msgid "" "files) inhibits your modules from being usable by all Python implementations " "or new versions of Python which change the bytecode format." msgstr "" +"Tenga en cuenta que el uso directo de archivos de código de bytes (y, por lo " +"tanto, no de archivos de código fuente) impide que sus módulos sean " +"utilizables por todas las implementaciones de Python o las nuevas versiones " +"de Python que cambian el formato de código de bytes." #: ../Doc/library/importlib.rst:1244 msgid "The name of the module the loader will handle." -msgstr "" +msgstr "El nombre del módulo que manejará el cargador." #: ../Doc/library/importlib.rst:1248 msgid "The path to the bytecode file." -msgstr "" +msgstr "La ruta al archivo de código de bytes." #: ../Doc/library/importlib.rst:1252 msgid "Determines if the module is a package based on :attr:`path`." -msgstr "" +msgstr "Determina si el módulo es un paquete basado en :attr:`path`." #: ../Doc/library/importlib.rst:1256 msgid "Returns the code object for :attr:`name` created from :attr:`path`." msgstr "" +"Retorna el objeto de código para :attr:`name` creado a partir de :attr:" +"`path`." #: ../Doc/library/importlib.rst:1260 msgid "" "Returns ``None`` as bytecode files have no source when this loader is used." msgstr "" +"Devuelve ``None`` ya que los archivos de código de bytes no tienen fuente " +"cuando se usa este cargador." #: ../Doc/library/importlib.rst:1275 msgid "" "A concrete implementation of :class:`importlib.abc.ExecutionLoader` for " "extension modules." msgstr "" +"Una implementación concreta de :class:`importlib.abc.ExecutionLoader` para " +"módulos de extensión." #: ../Doc/library/importlib.rst:1278 msgid "" "The *fullname* argument specifies the name of the module the loader is to " "support. The *path* argument is the path to the extension module's file." msgstr "" +"El argumento *fullname* especifica el nombre del módulo que el cargador debe " +"admitir. El argumento *path* es la ruta al archivo del módulo de extensión." #: ../Doc/library/importlib.rst:1285 msgid "Name of the module the loader supports." -msgstr "" +msgstr "Nombre del módulo que admite el cargador." #: ../Doc/library/importlib.rst:1289 msgid "Path to the extension module." -msgstr "" +msgstr "Ruta al módulo de extensión." #: ../Doc/library/importlib.rst:1293 msgid "" "Creates the module object from the given specification in accordance with :" "pep:`489`." msgstr "" +"Crea el objeto de módulo a partir de la especificación dada de acuerdo con :" +"pep:`489`." #: ../Doc/library/importlib.rst:1300 msgid "Initializes the given module object in accordance with :pep:`489`." -msgstr "" +msgstr "Inicializa el objeto de módulo dado de acuerdo con :pep:`489`." #: ../Doc/library/importlib.rst:1306 msgid "" "Returns ``True`` if the file path points to a package's ``__init__`` module " "based on :attr:`EXTENSION_SUFFIXES`." msgstr "" +"Retorna ``True`` si la ruta del archivo apunta al módulo ``__init__`` de un " +"paquete basado en :attr:`EXTENSION_SUFFIXES`." #: ../Doc/library/importlib.rst:1311 msgid "Returns ``None`` as extension modules lack a code object." msgstr "" +"Retorna ``None`` ya que los módulos de extensión carecen de un objeto de " +"código." #: ../Doc/library/importlib.rst:1315 msgid "Returns ``None`` as extension modules do not have source code." msgstr "" +"Retorna ``None`` ya que los módulos de extensión no tienen código fuente." #: ../Doc/library/importlib.rst:1326 msgid "" @@ -1557,28 +2106,39 @@ msgid "" "``__path__`` at runtime, and this will not be automatically reflected in " "``__spec__.submodule_search_locations``." msgstr "" +"Una especificación para el estado relacionado con el sistema de importación " +"de un módulo. Esto generalmente se expone como el atributo ``__spec__`` del " +"módulo. En las descripciones siguientes, los nombres entre paréntesis dan el " +"atributo correspondiente disponible directamente en el objeto del módulo, " +"por ejemplo, ``module.__spec__.origin == module.__file__``. Sin embargo, " +"tenga en cuenta que, si bien los *values* suelen ser equivalentes, pueden " +"diferir ya que no hay sincronización entre los dos objetos. Por lo tanto, es " +"posible actualizar el ``__path__`` del módulo en tiempo de ejecución, y esto " +"no se reflejará automáticamente en ``__spec__.submodule_search_locations``." #: ../Doc/library/importlib.rst:1340 msgid "(``__name__``)" -msgstr "" +msgstr "(``__name__``)" #: ../Doc/library/importlib.rst:1342 msgid "A string for the fully-qualified name of the module." -msgstr "" +msgstr "Una cadena de caracteres para el nombre completo del módulo." #: ../Doc/library/importlib.rst:1346 msgid "(``__loader__``)" -msgstr "" +msgstr "(``__loader__``)" #: ../Doc/library/importlib.rst:1348 msgid "" "The :term:`Loader ` that should be used when loading the module. :" "term:`Finders ` should always set this." msgstr "" +"El :term:`Loader ` que debe usarse al cargar el módulo. :term:" +"`Finders ` siempre debe establecer esto." #: ../Doc/library/importlib.rst:1353 msgid "(``__file__``)" -msgstr "" +msgstr "(``__file__``)" #: ../Doc/library/importlib.rst:1355 msgid "" @@ -1587,33 +2147,44 @@ msgid "" "\"origin\" should be set, but it may be ``None`` (the default) which " "indicates it is unspecified (e.g. for namespace packages)." msgstr "" +"Nombre del lugar desde el que se carga el módulo, por ejemplo \"incorporado" +"\" (*builtin*) para los módulos incorporados y el nombre de archivo para los " +"módulos cargados desde la fuente. Normalmente se debe establecer \"origen\", " +"pero puede ser ``None`` (el valor predeterminado), lo que indica que no está " +"especificado (por ejemplo, para paquetes de espacio de nombres)." #: ../Doc/library/importlib.rst:1362 msgid "(``__path__``)" -msgstr "" +msgstr "(``__path__``)" #: ../Doc/library/importlib.rst:1364 msgid "" "List of strings for where to find submodules, if a package (``None`` " "otherwise)." msgstr "" +"Lista de cadenas de caracteres de dónde encontrar submódulos, si es un " +"paquete (``None`` de lo contrario)." #: ../Doc/library/importlib.rst:1369 msgid "" "Container of extra module-specific data for use during loading (or ``None``)." msgstr "" +"Contenedor de datos adicionales específicos del módulo para usar durante la " +"carga (o ``None``)." #: ../Doc/library/importlib.rst:1374 msgid "(``__cached__``)" -msgstr "" +msgstr "(``__cached__``)" #: ../Doc/library/importlib.rst:1376 msgid "String for where the compiled module should be stored (or ``None``)." msgstr "" +"Cadena de caracteres para el lugar donde se debe almacenar el módulo " +"compilado (o ``None``)." #: ../Doc/library/importlib.rst:1380 msgid "(``__package__``)" -msgstr "" +msgstr "(``__package__``)" #: ../Doc/library/importlib.rst:1382 msgid "" @@ -1621,32 +2192,42 @@ msgid "" "should be loaded as a submodule (or the empty string for top-level modules). " "For packages, it is the same as :attr:`__name__`." msgstr "" +"(Solo lectura) El nombre completo del paquete bajo el cual se debe cargar el " +"módulo como submódulo (o la cadena de caracteres vacía para los módulos de " +"nivel superior). Para los paquetes, es lo mismo que :attr:`__name__`." #: ../Doc/library/importlib.rst:1388 msgid "" "Boolean indicating whether or not the module's \"origin\" attribute refers " "to a loadable location." msgstr "" +"Booleano que indica si el atributo \"origen\" del módulo se refiere a una " +"ubicación cargable." #: ../Doc/library/importlib.rst:1392 msgid ":mod:`importlib.util` -- Utility code for importers" -msgstr "" +msgstr ":mod:`importlib.util` -- Código de utilidad para importadores" #: ../Doc/library/importlib.rst:1398 msgid "**Source code:** :source:`Lib/importlib/util.py`" -msgstr "" +msgstr "**Código fuente:** :source:`Lib/importlib/util.py`" #: ../Doc/library/importlib.rst:1402 msgid "" "This module contains the various objects that help in the construction of " "an :term:`importer`." msgstr "" +"Este módulo contiene los diversos objetos que ayudan en la construcción de " +"un :term:`importer`." #: ../Doc/library/importlib.rst:1407 msgid "" "The bytes which represent the bytecode version number. If you need help with " "loading/writing bytecode then consider :class:`importlib.abc.SourceLoader`." msgstr "" +"Los bytes que representan el número de versión del código de bytes. Si " +"necesita ayuda para cargar/escribir código de bytes, considere :class:" +"`importlib.abc.SourceLoader`." #: ../Doc/library/importlib.rst:1414 msgid "" @@ -1657,6 +2238,12 @@ msgid "" "`get_tag`; if :attr:`sys.implementation.cache_tag` is not defined then :exc:" "`NotImplementedError` will be raised)." msgstr "" +"Retorna la ruta :pep:`3147`/:pep:`488` al archivo compilado por bytes " +"asociado con la *path* de origen. Por ejemplo, si *path* es ``/foo/bar/baz." +"py``, el valor de retorno sería ``/foo/bar/__pycache__/baz.cpython-32.pyc`` " +"para Python 3.2. La cadena de caracteres ``cpython-32`` proviene de la " +"etiqueta mágica actual (ver :func:`get_tag`; si :attr:`sys.implementation." +"cache_tag` no está definido, se lanzará :exc:`NotImplementedError`)." #: ../Doc/library/importlib.rst:1421 msgid "" @@ -1670,6 +2257,17 @@ msgid "" "cpython-32.opt-2.pyc``. The string representation of *optimization* can only " "be alphanumeric, else :exc:`ValueError` is raised." msgstr "" +"El parámetro *optimization* se utiliza para especificar el nivel de " +"optimización del archivo de código de bytes. Una cadena de caracteres vacía " +"no representa optimización, por lo que ``/foo/bar/baz.py`` con una " +"*optimization* de ``''`` dará como resultado una ruta de código de bytes de " +"``/foo/bar/__pycache__/baz.cpython-32.pyc``. ``None`` hace que se utilice el " +"nivel de optimización del intérprete. Se usa la representación de cadena de " +"caracteres de cualquier otro valor, por lo que ``/foo/bar/baz.py`` con una " +"*optimization* de ``2`` conducirá a la ruta del código de bytes de ``/foo/" +"bar/__pycache__/baz.cpython-32.opt-2.pyc``. La representación de cadena de " +"caracteres *optimization* solo puede ser alfanumérica, de lo contrario se " +"lanza :exc:`ValueError`." #: ../Doc/library/importlib.rst:1431 msgid "" @@ -1679,17 +2277,25 @@ msgid "" "setting *optimization* to ``1``. If both *debug_override* an *optimization* " "are not ``None`` then :exc:`TypeError` is raised." msgstr "" +"El parámetro *debug_override* está obsoleto y se puede usar para anular el " +"valor del sistema para ``__debug__``. Un valor ``True`` es el equivalente a " +"establecer *optimization* en la cadena de caracteres vacía. Un valor " +"``False`` es lo mismo que establecer *optimization* en ``1``. Si tanto " +"*debug_override* como *optimization* no es ``None``, entonces se lanza :exc:" +"`TypeError`." #: ../Doc/library/importlib.rst:1439 msgid "" "The *optimization* parameter was added and the *debug_override* parameter " "was deprecated." msgstr "" +"Se agregó el parámetro *optimization* y el parámetro *debug_override* quedó " +"obsoleto." #: ../Doc/library/importlib.rst:1443 ../Doc/library/importlib.rst:1459 #: ../Doc/library/importlib.rst:1608 msgid "Accepts a :term:`path-like object`." -msgstr "" +msgstr "Acepta un :term:`path-like object`." #: ../Doc/library/importlib.rst:1449 msgid "" @@ -1700,6 +2306,13 @@ msgid "" "format, a :exc:`ValueError` is raised. If :attr:`sys.implementation." "cache_tag` is not defined, :exc:`NotImplementedError` is raised." msgstr "" +"Dado el *path* a un nombre de archivo :pep:`3147`, retorna la ruta del " +"archivo del código fuente asociado. Por ejemplo, si *path* es ``/foo/bar/" +"__pycache__/baz.cpython-32.pyc``, la ruta retornada sería ``/foo/bar/baz." +"py``. *path* no necesita existir, sin embargo, si no se ajusta al formato :" +"pep:`3147` o :pep:`488`, se lanza un :exc:`ValueError`. Si :attr:`sys." +"implementation.cache_tag` no está definido, se lanza :exc:" +"`NotImplementedError`." #: ../Doc/library/importlib.rst:1464 msgid "" @@ -1707,10 +2320,13 @@ msgid "" "with universal newlines (as required by :meth:`importlib.abc.InspectLoader." "get_source`)." msgstr "" +"Decodifica los bytes dados que representan el código fuente y los retorna " +"como una cadena de caracteres con nuevas líneas universales (como lo " +"requiere :meth:`importlib.abc.InspectLoader.get_source`)." #: ../Doc/library/importlib.rst:1472 msgid "Resolve a relative module name to an absolute one." -msgstr "" +msgstr "Resuelve un nombre de módulo relativo a uno absoluto." #: ../Doc/library/importlib.rst:1474 msgid "" @@ -1718,6 +2334,10 @@ msgid "" "allows for usage such as ``importlib.util.resolve_name('sys', __spec__." "parent)`` without doing a check to see if the **package** argument is needed." msgstr "" +"Si **name** no tiene puntos iniciales, entonces **name** simplemente se " +"retorna. Esto permite el uso como ``importlib.util.resolve_name('sys', " +"__spec__.parent)`` sin hacer una verificación para ver si se necesita el " +"argumento **package**." #: ../Doc/library/importlib.rst:1479 msgid "" @@ -1726,12 +2346,20 @@ msgid "" "`ImportError` is also raised a relative name would escape its containing " "package (e.g. requesting ``..bacon`` from within the ``spam`` package)." msgstr "" +":exc:`ImportError` se lanza si **name** es un nombre de módulo relativo pero " +"**package** es un valor falso (por ejemplo, ``None`` o la cadena de " +"caracteres vacía). También se lanza :exc:`ImportError` un nombre relativo " +"que escaparía del paquete que lo contiene (por ejemplo, solicitando ``.." +"bacon`` desde el paquete ``spam``)." #: ../Doc/library/importlib.rst:1486 msgid "" "To improve consistency with import statements, raise :exc:`ImportError` " "instead of :exc:`ValueError` for invalid relative import attempts." msgstr "" +"Para mejorar la coherencia con las declaraciones de importación, aumente :" +"exc:`ImportError` en lugar de :exc:`ValueError` para intentos de importación " +"relativa no válidos." #: ../Doc/library/importlib.rst:1493 msgid "" @@ -1742,16 +2370,25 @@ msgid "" "Otherwise a search using :attr:`sys.meta_path` is done. ``None`` is returned " "if no spec is found." msgstr "" +"Busca el :term:`spec ` para un módulo, opcionalmente relativo " +"al nombre del **package** especificado. Si el módulo está en :attr:`sys." +"modules`, se retorna ``sys.modules[name].__spec__`` (a menos que la " +"especificación sea ``None`` o no esté establecida, en cuyo caso se lanza :" +"exc:`ValueError`). De lo contrario, se realiza una búsqueda utilizando :attr:" +"`sys.meta_path`. Se retorna ``None`` si no se encuentra ninguna " +"especificación." #: ../Doc/library/importlib.rst:1500 msgid "" "If **name** is for a submodule (contains a dot), the parent module is " "automatically imported." msgstr "" +"Si **name** es para un submódulo (contiene un punto), el módulo principal se " +"importa automáticamente." #: ../Doc/library/importlib.rst:1503 msgid "**name** and **package** work the same as for :func:`import_module`." -msgstr "" +msgstr "**name** y **package** funcionan igual que para :func:`import_module`." #: ../Doc/library/importlib.rst:1507 msgid "" @@ -1759,12 +2396,17 @@ msgid "" "**package** is in fact not a package (i.e. lacks a :attr:`__path__` " "attribute)." msgstr "" +"Lanza :exc:`ModuleNotFoundError` en lugar de :exc:`AttributeError` si " +"**package** no es de hecho un paquete (es decir, carece de un atributo :attr:" +"`__path__`)." #: ../Doc/library/importlib.rst:1514 msgid "" "Create a new module based on **spec** and :meth:`spec.loader.create_module " "`." msgstr "" +"Cree un nuevo módulo basado en **spec** y :meth:`spec.loader.create_module " +"`." #: ../Doc/library/importlib.rst:1517 msgid "" @@ -1773,6 +2415,10 @@ msgid "" "reset. Also, no :exc:`AttributeError` will be raised if triggered while " "accessing **spec** or setting an attribute on the module." msgstr "" +"Si :meth:`spec.loader.create_module ` no " +"retorna ``None``, no se restablecerán los atributos preexistentes. Además, " +"no se lanzará :exc:`AttributeError` si se activa mientras se accede a " +"**spec** o se establece un atributo en el módulo." #: ../Doc/library/importlib.rst:1522 msgid "" @@ -1780,6 +2426,9 @@ msgid "" "new module as **spec** is used to set as many import-controlled attributes " "on the module as possible." msgstr "" +"Esta función es preferible a usar :class:`types.ModuleType` para crear un " +"nuevo módulo ya que **spec** se usa para establecer tantos atributos de " +"importación controlados en el módulo como sea posible." #: ../Doc/library/importlib.rst:1530 msgid "" @@ -1790,6 +2439,13 @@ msgid "" "module **object** to be used by the loader. Note that the decorator will not " "work on static methods because of the assumption of two arguments." msgstr "" +"Un :term:`decorator` para :meth:`importlib.abc.Loader.load_module` para " +"manejar la selección del objeto de módulo adecuado para cargar. Se espera " +"que el método decorado tenga una firma de llamada que tome dos argumentos " +"posicionales (por ejemplo, ``load_module(self, module)``) para los cuales el " +"segundo argumento será el módulo **object** que usará el cargador. Tenga en " +"cuenta que el decorador no funcionará con métodos estáticos debido a la " +"suposición de dos argumentos." #: ../Doc/library/importlib.rst:1539 msgid "" @@ -1800,6 +2456,13 @@ msgid "" "based on what :meth:`importlib.abc.InspectLoader.is_package` returns (if " "available). These attributes are set unconditionally to support reloading." msgstr "" +"El método decorado tomará el **name** del módulo que se cargará como se " +"esperaba para un :term:`loader`. Si el módulo no se encuentra en :data:`sys." +"modules`, se construye uno nuevo. Independientemente de la procedencia del " +"módulo, :attr:`__loader__` se establece en **self** y :attr:`__package__` se " +"establece en función de lo que retorna :meth:`importlib.abc.InspectLoader." +"is_package` (si está disponible) . Estos atributos se establecen " +"incondicionalmente para admitir la recarga." #: ../Doc/library/importlib.rst:1547 msgid "" @@ -1808,24 +2471,34 @@ msgid "" "initialized module from being in left in :data:`sys.modules`. If the module " "was already in :data:`sys.modules` then it is left alone." msgstr "" +"Si el método decorado lanza una excepción y se agrega un módulo a :data:`sys." +"modules`, entonces el módulo se eliminará para evitar que un módulo " +"parcialmente inicializado quede en :data:`sys.modules`. Si el módulo ya " +"estaba en :data:`sys.modules` entonces se deja solo." #: ../Doc/library/importlib.rst:1552 msgid "" ":attr:`__loader__` and :attr:`__package__` are automatically set (when " "possible)." msgstr "" +":attr:`__loader__` y :attr:`__package__` se configuran automáticamente " +"(cuando es posible)." #: ../Doc/library/importlib.rst:1556 msgid "" "Set :attr:`__name__`, :attr:`__loader__` :attr:`__package__` unconditionally " "to support reloading." msgstr "" +"Establece :attr:`__name__`, :attr:`__loader__` :attr:`__package__` " +"incondicionalmente para apoyar la recarga." #: ../Doc/library/importlib.rst:1560 msgid "" "The import machinery now directly performs all the functionality provided by " "this function." msgstr "" +"La maquinaria de importación ahora realiza directamente toda la " +"funcionalidad proporcionada por esta función." #: ../Doc/library/importlib.rst:1566 msgid "" @@ -1835,15 +2508,22 @@ msgid "" "positional argument to the wrapped method (i.e. ``self``) is what :attr:" "`__loader__` should be set to." msgstr "" +"Un :term:`decorator` para :meth:`importlib.abc.Loader.load_module` para " +"establecer el atributo :attr:`__loader__` en el módulo retornado. Si el " +"atributo ya está configurado, el decorador no hace nada. Se asume que el " +"primer argumento posicional del método envuelto (es decir, ``self``) es lo " +"que se debe establecer en :attr:`__loader__`." #: ../Doc/library/importlib.rst:1573 msgid "" "Set ``__loader__`` if set to ``None``, as if the attribute does not exist." msgstr "" +"Establece ``__loader__`` si está configurado como ``None``, como si el " +"atributo no existiera." #: ../Doc/library/importlib.rst:1577 ../Doc/library/importlib.rst:1586 msgid "The import machinery takes care of this automatically." -msgstr "" +msgstr "La maquinaria de importación se encarga de esto automáticamente." #: ../Doc/library/importlib.rst:1582 msgid "" @@ -1851,6 +2531,10 @@ msgid "" "attr:`__package__` attribute on the returned module. If :attr:`__package__` " "is set and has a value other than ``None`` it will not be changed." msgstr "" +"Un :term:`decorator` para :meth:`importlib.abc.Loader.load_module` para " +"establecer el atributo :attr:`__package__` en el módulo retornado. Si :attr:" +"`__package__` está configurado y tiene un valor diferente a ``None``, no se " +"cambiará." #: ../Doc/library/importlib.rst:1591 msgid "" @@ -1859,6 +2543,11 @@ msgid "" "The function uses available :term:`loader` APIs, such as :meth:" "`InspectLoader.is_package`, to fill in any missing information on the spec." msgstr "" +"Una función de fábrica para crear una instancia :class:`ModuleSpec` basada " +"en un cargador. Los parámetros tienen el mismo significado que para " +"ModuleSpec. La función utiliza APIs disponibles :term:`loader`, como :meth:" +"`InspectLoader.is_package`, para completar cualquier información que falte " +"en la especificación." #: ../Doc/library/importlib.rst:1601 msgid "" @@ -1866,6 +2555,10 @@ msgid "" "path to a file. Missing information will be filled in on the spec by making " "use of loader APIs and by the implication that the module will be file-based." msgstr "" +"Una función de fábrica para crear una instancia :class:`ModuleSpec` basada " +"en la ruta a un archivo. La información que falte se completará en la " +"especificación mediante el uso de las API de carga y la implicación de que " +"el módulo estará basado en archivos." #: ../Doc/library/importlib.rst:1613 msgid "" @@ -1873,12 +2566,17 @@ msgid "" "embeds the :func:`source_hash` of the corresponding source file's contents " "in its header." msgstr "" +"Retorna el hash de *source_bytes* como bytes. Un archivo ``.pyc`` basado en " +"hash incrusta :func:`source_hash` del contenido del archivo fuente " +"correspondiente en su encabezado." #: ../Doc/library/importlib.rst:1621 msgid "" "A class which postpones the execution of the loader of a module until the " "module has an attribute accessed." msgstr "" +"Una clase que pospone la ejecución del cargador de un módulo hasta que el " +"módulo tiene acceso a un atributo." #: ../Doc/library/importlib.rst:1624 msgid "" @@ -1892,6 +2590,15 @@ msgid "" "module references throughout the interpreter safely; :exc:`ValueError` is " "raised if such a substitution is detected." msgstr "" +"Esta clase **solo** funciona con cargadores que definen :meth:`~importlib." +"abc.Loader.exec_module` ya que se requiere control sobre qué tipo de módulo " +"se usa para el módulo. Por esas mismas razones, el método del cargador :meth:" +"`~importlib.abc.Loader.create_module` debe retornar ``None`` o un tipo para " +"el cual su atributo ``__class__`` se puede mutar junto con no usar :term:" +"`slots <__slots__>`. Finalmente, los módulos que sustituyen el objeto " +"colocado en :attr:`sys.modules` no funcionarán ya que no hay forma de " +"reemplazar correctamente las referencias del módulo en todo el intérprete de " +"forma segura; :exc:`ValueError` se genera si se detecta tal sustitución." #: ../Doc/library/importlib.rst:1635 msgid "" @@ -1901,6 +2608,12 @@ msgid "" "**heavily** discouraged due to error messages created during loading being " "postponed and thus occurring out of context." msgstr "" +"Para proyectos donde el tiempo de inicio es crítico, esta clase permite " +"minimizar potencialmente el costo de cargar un módulo si nunca se usa. Para " +"proyectos en los que el tiempo de inicio no es esencial, el uso de esta " +"clase se desaconseja **en gran medida** debido a que los mensajes de error " +"creados durante la carga se posponen y, por lo tanto, ocurren fuera de " +"contexto." #: ../Doc/library/importlib.rst:1643 msgid "" @@ -1908,6 +2621,9 @@ msgid "" "compatibility warning for :class:`importlib.machinery.BuiltinImporter` and :" "class:`importlib.machinery.ExtensionFileLoader`." msgstr "" +"Comenzó a llamar :meth:`~importlib.abc.Loader.create_module`, eliminando la " +"advertencia de compatibilidad para :class:`importlib.machinery." +"BuiltinImporter` y :class:`importlib.machinery.ExtensionFileLoader`." #: ../Doc/library/importlib.rst:1650 msgid "" @@ -1915,43 +2631,52 @@ msgid "" "meant to be used in situations where the loader is passed by class instead " "of by instance. ::" msgstr "" +"Un método estático que devuelve un invocable que crea un cargador diferido. " +"Esto está destinado a utilizarse en situaciones en las que el cargador se " +"pasa por clase en lugar de por instancia. ::" #: ../Doc/library/importlib.rst:1663 msgid "Examples" -msgstr "" +msgstr "Ejemplos" #: ../Doc/library/importlib.rst:1666 msgid "Importing programmatically" -msgstr "" +msgstr "Importar programáticamente" #: ../Doc/library/importlib.rst:1668 msgid "" "To programmatically import a module, use :func:`importlib.import_module`. ::" msgstr "" +"Para importar un módulo mediante programación, use :func:`importlib." +"import_module`. ::" #: ../Doc/library/importlib.rst:1677 msgid "Checking if a module can be imported" -msgstr "" +msgstr "Comprobando si se puede importar un módulo" #: ../Doc/library/importlib.rst:1679 msgid "" "If you need to find out if a module can be imported without actually doing " "the import, then you should use :func:`importlib.util.find_spec`. ::" msgstr "" +"Si necesita averiguar si un módulo se puede importar sin realmente realizar " +"la importación, entonces debe usar :func:`importlib.util.find_spec`. ::" #: ../Doc/library/importlib.rst:1702 msgid "Importing a source file directly" -msgstr "" +msgstr "Importar un archivo fuente directamente" #: ../Doc/library/importlib.rst:1704 msgid "" "To import a Python source file directly, use the following recipe (Python " "3.5 and newer only)::" msgstr "" +"Para importar un archivo fuente de Python directamente, use la siguiente " +"receta (solo Python 3.5 y más reciente)::" #: ../Doc/library/importlib.rst:1723 msgid "Setting up an importer" -msgstr "" +msgstr "Configurar un importador" #: ../Doc/library/importlib.rst:1725 msgid "" @@ -1966,10 +2691,21 @@ msgid "" "will use them (for creating an importer for yourself, read the documentation " "for the appropriate classes defined within this package)::" msgstr "" +"Para personalizaciones profundas de la importación, normalmente desea " +"implementar un :term:`importador`. Esto significa administrar tanto el lado :" +"term:`finder` como :term:`loader` de las cosas. Para los buscadores, hay dos " +"sabores para elegir según sus necesidades: un :term:`meta path finder` o un :" +"term:`path entry finder`. El primero es lo que pondrías en :attr:`sys." +"meta_path` mientras que el segundo es lo que creas usando un :term:`path " +"entry hook` en :attr:`sys.path_hooks` que funciona con :attr:`sys .path` " +"entradas para crear potencialmente un buscador. Este ejemplo le mostrará " +"cómo registrar sus propios importadores para que import los utilice (para " +"crear un importador para usted, lea la documentación de las clases " +"apropiadas definidas dentro de este paquete):" #: ../Doc/library/importlib.rst:1757 msgid "Approximating :func:`importlib.import_module`" -msgstr "" +msgstr "Aproximando :func:`importlib.import_module`" #: ../Doc/library/importlib.rst:1759 msgid "" @@ -1980,3 +2716,9 @@ msgid "" "and newer for the importlib usage, Python 3.6 and newer for other parts of " "the code). ::" msgstr "" +"La importación en sí está implementada en código Python, lo que permite " +"exponer la mayor parte de la maquinaria de importación a través de " +"importlib. Lo siguiente ayuda a ilustrar las diversas API que importlib " +"expone al proporcionar una implementación aproximada de :func:`importlib." +"import_module` (Python 3.4 y más reciente para el uso de importlib, Python " +"3.6 y más reciente para otras partes del código). ::" diff --git a/library/ipaddress.po b/library/ipaddress.po index 36eb52fd67..6b55817f7c 100644 --- a/library/ipaddress.po +++ b/library/ipaddress.po @@ -11,15 +11,16 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-03-19 11:16+0100\n" -"PO-Revision-Date: 2020-07-18 03:11-0300\n" +"PO-Revision-Date: 2021-09-01 06:45-0300\n" "Last-Translator: \n" "Language: es\n" "Language-Team: python-doc-es\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.8.0\n" +"X-Generator: Poedit 2.4.2\n" #: ../Doc/library/ipaddress.rst:2 msgid ":mod:`ipaddress` --- IPv4/IPv6 manipulation library" @@ -324,6 +325,15 @@ msgid "" "``'#'`` and the grouping option ``'_'`` are available. ``__format__`` is " "used by ``format``, ``str.format`` and f-strings." msgstr "" +"Retorna una representación en cadena de caracteres de la dirección IP, " +"controlada por una cadena de formato explícito. *fmt* puede ser uno de los " +"siguientes: ``'s'``, la opción predeterminada, equivalente a :func:`str`, " +"``'b'`` para una cadena binaria con relleno de ceros, ``'X'`` o ``'x'`` para " +"una representación hexadecimal en mayúsculas o minúsculas, o ``'n'``, que es " +"equivalente a ``'b'`` para direcciones IPv4 y ``'x'`` para IPv6. Para " +"representaciones binarias y hexadecimales, el especificador de formulario " +"``'#'`` y la opción de agrupación ``'_'`` están disponibles. ``__format__`` " +"es utilizado por ``format``, ``str.format`` y f-strings." #: ../Doc/library/ipaddress.rst:234 msgid "" @@ -362,6 +372,11 @@ msgid "" "``fe80::1234%1`` might identify address ``fe80::1234`` on the first link of " "the node." msgstr "" +"Opcionalmente, la cadena de caracteres también puede tener un ID alcance, " +"expresado con un sufijo ``%scope_id``. Si está presente, el ID de alcance no " +"debe estar vacío y no puede contener ``%``. Consulte :RFC:`4007` para " +"obtener más detalles. Por ejemplo, ``fe80::1234% 1`` podría identificar la " +"dirección ``fe80::1234`` en el primer enlace del nodo." #: ../Doc/library/ipaddress.rst:252 msgid "An integer that fits into 128 bits." @@ -398,7 +413,6 @@ msgstr "" "ceros iniciales y los grupos que consisten completamente de ceros." #: ../Doc/library/ipaddress.rst:275 -#, fuzzy msgid "" "For the following attributes and methods, see the corresponding " "documentation of the :class:`IPv4Address` class:" @@ -406,9 +420,7 @@ msgstr "" "Para los siguientes atributos, véase la documentación correspondiente de la " "clase :class:`IPv4Address`:" -# Esto no debería tener que traducirse #: ../Doc/library/ipaddress.rst:290 -#, fuzzy msgid "is_global" msgstr "is_global" @@ -441,6 +453,10 @@ msgid "" "particular zone of the address's scope that the address belongs to, as a " "string. When no scope zone is specified, this property will be ``None``." msgstr "" +"Para las direcciones con alcance como es definido por :RFC:`4007`, esta " +"propiedad identifica la zona particular del alcance de la dirección a la que " +"pertenece dicha dirección, como una cadena de caracteres. Cuando no se " +"especifica ninguna zona de alcance, esta propiedad será ``None``." #: ../Doc/library/ipaddress.rst:314 msgid "" @@ -449,9 +465,9 @@ msgid "" "embedded IPv4 address. For any other address, this property will be " "``None``." msgstr "" -"Para las direcciones que parecen ser direcciones 6to4 (comenzando con " +"Para las direcciones que parecen ser direcciones 6to4 (comenzando con " "``2002::/16``) según lo definido por :RFC:`3056`, esta propiedad reportará " -"la dirección IPv4 incrustada. Para cualquier otra dirección, esta propiedad " +"la dirección IPv4 incrustada. Para cualquier otra dirección, esta propiedad " "será ``None``." #: ../Doc/library/ipaddress.rst:321 @@ -467,7 +483,6 @@ msgstr "" "otra dirección, esta propiedad será ``None``." #: ../Doc/library/ipaddress.rst:328 -#, fuzzy msgid "" "Refer to the corresponding method documentation in :class:`IPv4Address`." msgstr "" @@ -493,6 +508,8 @@ msgid "" "Note that IPv6 scoped addresses are converted to integers without scope zone " "ID." msgstr "" +"Tenga en cuenta que las direcciones IPv6 con alcance se convierten en " +"números enteros sin ID de zona de alcance." #: ../Doc/library/ipaddress.rst:353 ../Doc/library/ipaddress.rst:737 #: ../Doc/library/ipaddress.rst:873 @@ -514,14 +531,14 @@ msgid "Comparison operators" msgstr "Operadores de comparación" #: ../Doc/library/ipaddress.rst:363 -#, fuzzy msgid "" "Address objects can be compared with the usual set of comparison operators. " "Same IPv6 addresses with different scope zone IDs are not equal. Some " "examples::" msgstr "" "Los objetos de dirección pueden compararse con el conjunto usual de " -"operadores de comparación. Algunos ejemplos:" +"operadores de comparación. Las mismas direcciones IPv6 con diferentes ID de " +"zona de alcance no son iguales. Algunos ejemplos:" #: ../Doc/library/ipaddress.rst:380 msgid "Arithmetic operators" @@ -783,7 +800,6 @@ msgid "Length of the network prefix, in bits." msgstr "Longitud del prefijo de red, en bits." #: ../Doc/library/ipaddress.rst:540 -#, fuzzy msgid "" "Returns an iterator over the usable hosts in the network. The usable hosts " "are all the IP addresses that belong to the network, except the network " @@ -792,11 +808,13 @@ msgid "" "included in the result. Networks with a mask of 32 will return a list " "containing the single host address." msgstr "" -"Retorna un iterador a través de los *hosts* utilizables de la red. Los " +"Retorna un iterador a través de los *hosts* utilizables de la red. Los " "*hosts* utilizables son todas las direcciones IP que pertenecen a la red, " -"excepto la propia dirección de red y la dirección de difusión de red. Para " +"excepto la propia dirección de red y la dirección de difusión de red. Para " "las redes con una longitud de máscara de 31, la dirección de red y la " -"dirección de difusión de red también se incluyen en el resultado." +"dirección de difusión de red también se incluyen en el resultado. Las redes " +"con una máscara de 32 retornarán una lista que contiene la única dirección " +"de host." #: ../Doc/library/ipaddress.rst:558 msgid "" @@ -942,7 +960,6 @@ msgstr "" "para una dirección IPv6." #: ../Doc/library/ipaddress.rst:712 -#, fuzzy msgid "" "Returns an iterator over the usable hosts in the network. The usable hosts " "are all the IP addresses that belong to the network, except the Subnet-" @@ -950,11 +967,12 @@ msgid "" "Router anycast address is also included in the result. Networks with a mask " "of 128 will return a list containing the single host address." msgstr "" -"Retorna un iterador sobre los *hosts* utilizables de la red. Los *hosts* " +"Retorna un iterador sobre los *hosts* utilizables de la red. Los *hosts* " "utilizables son todas las direcciones IP que pertenecen a la red, excepto la " -"dirección *anycast Subnet-Router*. Para las redes con una longitud de " +"dirección *anycast Subnet-Router*. Para las redes con una longitud de " "máscara de 127, la dirección *anycast Subnet-Router* también se incluye en " -"el resultado." +"el resultado. Las redes con una máscara de 128 retornarán una lista que " +"contiene la única dirección de host." #: ../Doc/library/ipaddress.rst:727 msgid "" diff --git a/library/os.po b/library/os.po index 154ef4dac2..f0a1a2f9f1 100644 --- a/library/os.po +++ b/library/os.po @@ -11,15 +11,16 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-03-19 11:16+0100\n" -"PO-Revision-Date: 2020-08-20 20:48+0200\n" +"PO-Revision-Date: 2021-08-19 21:45-0500\n" "Last-Translator: Cristián Maureira-Fredes \n" "Language: es\n" "Language-Team: python-doc-es\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.8.0\n" +"X-Generator: Poedit 3.0\n" #: ../Doc/library/os.rst:2 msgid ":mod:`os` --- Miscellaneous operating system interfaces" @@ -274,15 +275,14 @@ msgstr "" "modificando directamente a ``os.environ``." #: ../Doc/library/os.rst:114 -#, fuzzy msgid "" "This mapping may be used to modify the environment as well as query the " "environment. :func:`putenv` will be called automatically when the mapping " "is modified." msgstr "" -"Si la plataforma soporta la función :func:`putenv`, este mapeo se puede usar " -"para modificar el entorno como también para consultarlo. La función :func:" -"`putenv` será llamada automáticamente cuando este mapeo sea modificado." +"Este mapeo puede ser usado para modificar el entorno y también para " +"consultarlo. :func:`putenv` será llamado automáticamente cuando el mapeo sea " +"modificado." #: ../Doc/library/os.rst:118 msgid "" @@ -318,11 +318,17 @@ msgid "" "environ``, and when one of the :meth:`pop` or :meth:`clear` methods is " "called." msgstr "" +"Puedes eliminar elementos en este mapeo para remover variables de entorno. :" +"func:`unsetenv` va a ser llamado automáticamente cuando el elemento es " +"eliminado de ``os.environ``, y cuando uno de los métodos :meth:`pop` o :meth:" +"`clear` son llamados." #: ../Doc/library/os.rst:138 ../Doc/library/os.rst:154 msgid "" "Updated to support :pep:`584`'s merge (``|``) and update (``|=``) operators." msgstr "" +"Actualizado para soportar los operadores merge (``|``) y update (``|=``) de :" +"pep:`584`'s." #: ../Doc/library/os.rst:144 msgid "" @@ -678,16 +684,19 @@ msgid "" "don't update ``os.environ``, so it is actually preferable to assign to items " "of ``os.environ``." msgstr "" +"La asignación a elementos en ``os.environ`` es automáticamente traducida en " +"llamadas correspondientes a :func:`putenv`; sin embardo, llamadas a :func:" +"`putenv` no actualizan ``os.environ``, así que es preferible asignar a " +"elementos de ``os.environ``." #: ../Doc/library/os.rst:451 -#, fuzzy msgid "" "On some platforms, including FreeBSD and Mac OS X, setting ``environ`` may " "cause memory leaks. Refer to the system documentation for :c:func:`putenv`." msgstr "" -"En algunas plataformas, como FreeBSD y Mac OS X, establece ``environ`` " -"pueden generar pérdidas de memoria. Hay que referirse a la documentación del " -"sistema para la función :c:func:`putenv`." +"En algunas plataformas, como FreeBSD y Mac OS X, establecer ``environ`` " +"pueden generar fugas de memoria. Referirse a la documentación para :c:func:" +"`putenv`." #: ../Doc/library/os.rst:454 msgid "" @@ -698,9 +707,8 @@ msgstr "" "``key``, ``value``." #: ../Doc/library/os.rst:456 -#, fuzzy msgid "The function is now always available." -msgstr "Esta función no está disponible en MacOS." +msgstr "Esta función actualmente siempre esta disponible." #: ../Doc/library/os.rst:462 msgid "Set the current process's effective group id." @@ -922,6 +930,10 @@ msgid "" "don't update ``os.environ``, so it is actually preferable to delete items of " "``os.environ``." msgstr "" +"La eliminación de elementos en ``os.environ`` es automáticamente traducida a " +"llamadas correspondiente a :func:`unsetenv`; sin embardo, llamadas a :func:" +"`unsetenv` no actualizan ``os.environ``, así que es realmente preferible " +"eliminar elementos de ``os.environ``." #: ../Doc/library/os.rst:651 msgid "" @@ -932,9 +944,10 @@ msgstr "" "``key``." #: ../Doc/library/os.rst:653 -#, fuzzy msgid "The function is now always available and is also available on Windows." -msgstr "Estas funciones están disponibles solo en Linux." +msgstr "" +"Estas funciones se encuentra ahora siempre disponible y también esta " +"disponible en Windows" #: ../Doc/library/os.rst:660 msgid "File Object Creation" @@ -1292,7 +1305,7 @@ msgid "" "Return ``True`` if the file descriptor *fd* is open and connected to a tty(-" "like) device, else ``False``." msgstr "" -"retorna ``True`` si el descriptor de archivo *fd* está abierto y conectado a " +"Retorna ``True`` si el descriptor de archivo *fd* está abierto y conectado a " "un dispositivo tipo tty, de lo contrario, ``False``." #: ../Doc/library/os.rst:894 @@ -1635,15 +1648,14 @@ msgid "Combine the functionality of :func:`os.readv` and :func:`os.pread`." msgstr "Combina la funcionalidad de :func:`os.readv` y :func:`os.pread`." #: ../Doc/library/os.rst:1156 -#, fuzzy msgid "" ":ref:`Availability `: Linux 2.6.30 and newer, FreeBSD 6.0 and " "newer, OpenBSD 2.7 and newer, AIX 7.1 and newer. Using flags requires Linux " "4.6 or newer." msgstr "" ":ref:`Disponibilidad `: Linux 2.6.30 y posterior, FreeBSD 6.0 " -"y posterior, OpenBSD 2.7 y posterior. El uso de flags requiere Linux 4.6 o " -"posterior." +"y posterior, OpenBSD 2.7 y posterior, AIX 7.1 y posterior. El uso de flags " +"requiere Linux 4.6 o posterior." #: ../Doc/library/os.rst:1162 msgid "" @@ -1734,15 +1746,14 @@ msgid "Combine the functionality of :func:`os.writev` and :func:`os.pwrite`." msgstr "Combina la funcionalidad de :func:`os.writev` y :func:`os.pwrite`." #: ../Doc/library/os.rst:1225 -#, fuzzy msgid "" ":ref:`Availability `: Linux 2.6.30 and newer, FreeBSD 6.0 and " "newer, OpenBSD 2.7 and newer, AIX 7.1 and newer. Using flags requires Linux " "4.7 or newer." msgstr "" ":ref:`Disponibilidad `: Linux 2.6.30 y posterior, FreeBSD 6.0 " -"y posterior, OpenBSD 2.7 y posterior. El uso de flags requiere Linux 4.7 o " -"posterior." +"y posterior, OpenBSD 2.7 y posterior, AIX 7.1 y posterior. El uso de flags " +"requiere Linux 4.7 o posterior." #: ../Doc/library/os.rst:1231 msgid "" @@ -1785,15 +1796,14 @@ msgstr "" "métodos :meth:`~file.read` o :meth:`~file.readline`." #: ../Doc/library/os.rst:1273 -#, fuzzy msgid "" "Copy *count* bytes from file descriptor *in_fd* to file descriptor *out_fd* " "starting at *offset*. Return the number of bytes sent. When EOF is reached " "return ``0``." msgstr "" -"Copia *count* bytes del descriptor de archivo *in* al descriptor de archivo " -"*out* comenzando en *offset*. Retorna el número de bytes enviados. Cuando se " -"alcanza EOF, retorna 0." +"Copia *count* bytes del descriptor de archivo *in_fd* al descriptor de " +"archivo *out_fd* comenzando en *offset*. Retorna el número de bytes " +"enviados. Cuando se alcanza EOF, retorna ``0``." #: ../Doc/library/os.rst:1277 msgid "" @@ -1804,16 +1814,14 @@ msgstr "" "que definen :func:`sendfile`." #: ../Doc/library/os.rst:1280 -#, fuzzy msgid "" "On Linux, if *offset* is given as ``None``, the bytes are read from the " "current position of *in_fd* and the position of *in_fd* is updated." msgstr "" -"En Linux, si *offset* se da como ``None``, los bytes se leen desde la " -"posición actual de *in* y se actualiza la posición de *in*." +"En Linux, si *offset* se entrega como ``None``, los bytes se leen desde la " +"posición actual de *in_fd* y la posición de *in_fd* se actualiza." #: ../Doc/library/os.rst:1283 -#, fuzzy msgid "" "The second case may be used on Mac OS X and FreeBSD where *headers* and " "*trailers* are arbitrary sequences of buffers that are written before and " @@ -1822,27 +1830,25 @@ msgid "" msgstr "" "El segundo caso puede usarse en Mac OS X y FreeBSD donde *headers* y " "*trailers* son secuencias arbitrarias de búferes que se escriben antes y " -"después de que se escriben los datos de *in*. Retorna lo mismo que el primer " -"caso." +"después de que los datos de *in_fd* sean escritos. Retorna lo mismo que el " +"primer caso." #: ../Doc/library/os.rst:1287 -#, fuzzy msgid "" "On Mac OS X and FreeBSD, a value of ``0`` for *count* specifies to send " "until the end of *in_fd* is reached." msgstr "" "En Mac OS X y FreeBSD, un valor de 0 para *count* especifica enviar hasta el " -"final de *in*." +"que final de *in_fd* sea alcanzado." #: ../Doc/library/os.rst:1290 -#, fuzzy msgid "" "All platforms support sockets as *out_fd* file descriptor, and some " "platforms allow other types (e.g. regular file, pipe) as well." msgstr "" -"Todas las plataformas admiten sockets como descriptor de archivo *out*, y " +"Todas las plataformas admiten sockets como descriptor de archivo *out_fd*, y " "algunas plataformas también permiten otros tipos (por ejemplo, archivo " -"normal, tuberías)." +"regular, tuberías)." #: ../Doc/library/os.rst:1293 msgid "" @@ -1862,7 +1868,7 @@ msgstr "" #: ../Doc/library/os.rst:1305 msgid "Parameters *out* and *in* was renamed to *out_fd* and *in_fd*." -msgstr "" +msgstr "Parámetros *out* e *in* han sido renombrados a *out_fd* e *in_fd*." #: ../Doc/library/os.rst:1311 msgid "" @@ -2630,7 +2636,6 @@ msgid "Accepts a :term:`path-like object` for *src* and *dst*." msgstr "Acepta un :term:`path-like object` para *src* y *dst*." #: ../Doc/library/os.rst:1837 -#, fuzzy msgid "" "Return a list containing the names of the entries in the directory given by " "*path*. The list is in arbitrary order, and does not include the special " @@ -2641,7 +2646,9 @@ msgstr "" "Retorna una lista que contiene los nombres de las entradas en el directorio " "dado por *path*. La lista está en un orden arbitrario y no incluye las " "entradas especiales ``'.'`` Y ``'..'`` incluso si están presentes en el " -"directorio." +"directorio. Si un archivo es removido de o añadido al directorio mientras se " +"llama a esta función, no se especifica si el nombre para el archivo será " +"incluido." #: ../Doc/library/os.rst:1843 msgid "" @@ -3211,7 +3218,6 @@ msgid "The *dir_fd* parameter." msgstr "El parámetro *dir_fd*." #: ../Doc/library/os.rst:2244 -#, fuzzy msgid "" "Return an iterator of :class:`os.DirEntry` objects corresponding to the " "entries in the directory given by *path*. The entries are yielded in " @@ -3222,7 +3228,9 @@ msgid "" msgstr "" "Retorna un iterador de objetos :class:`os.DirEntry` correspondientes a las " "entradas en el directorio dado por *path*. Las entradas se entregan en orden " -"arbitrario, y las entradas especiales ``'.'`` Y ``'..'`` no están incluidas." +"arbitrario, y las entradas especiales ``'.'`` Y ``'..'`` no están incluidas. " +"Si un archivo es removido de o añadido al directorio después de crear el " +"iterador, no se especifica si una entrada para el archivo será incluido." #: ../Doc/library/os.rst:2251 msgid "" @@ -3822,7 +3830,7 @@ msgstr "el momento del cambio de metadatos más reciente en Unix," #: ../Doc/library/os.rst:2582 msgid "the time of creation on Windows, expressed in seconds." -msgstr "El tiempo de creación en Windows, expresado en segundos." +msgstr "el tiempo de creación en Windows, expresado en segundos." #: ../Doc/library/os.rst:2586 msgid "Time of most recent access expressed in nanoseconds as an integer." @@ -3841,7 +3849,7 @@ msgstr "" msgid "" "the time of creation on Windows, expressed in nanoseconds as an integer." msgstr "" -"El tiempo de creación en Windows, expresado en nanosegundos como un entero." +"el tiempo de creación en Windows, expresado en nanosegundos como un entero." #: ../Doc/library/os.rst:2603 msgid "" @@ -4443,7 +4451,6 @@ msgstr "" "tupla de 3 tuplas ``(dirpath, dirnames, filenames)``." #: ../Doc/library/os.rst:2994 -#, fuzzy msgid "" "*dirpath* is a string, the path to the directory. *dirnames* is a list of " "the names of the subdirectories in *dirpath* (excluding ``'.'`` and " @@ -4458,10 +4465,13 @@ msgstr "" "*dirpath* es una cadena, la ruta al directorio. *dirnames* es una lista de " "los nombres de los subdirectorios en *dirpath* (excluyendo ``'.'`` y " "``'..'``). *filenames* es una lista de los nombres de los archivos que no " -"son de directorio en *dirpath*. Tenga en cuenta que los nombres en las " +"son un directorio en *dirpath*. Tenga en cuenta que los nombres en las " "listas no contienen componentes de ruta. Para obtener una ruta completa (que " "comienza con *top*) a un archivo o directorio en *dirpath*, haga ``os.path." -"join(dirpath, name)``." +"join(dirpath, name)``. El hecho de que las lista esta ordenada o no depende " +"del sistema de archivos. Si un archivo es removido de o agregado al " +"directorio *dirpath* mientras se generan las listas, no se especifica si el " +"nombre para el archivo será incluido." #: ../Doc/library/os.rst:3004 msgid "" @@ -4574,13 +4584,12 @@ msgstr "" "permite eliminar un directorio antes de que el directorio esté vacío::" #: ../Doc/library/os.rst:3071 -#, fuzzy msgid "" "Raises an :ref:`auditing event ` ``os.walk`` with arguments " "``top``, ``topdown``, ``onerror``, ``followlinks``." msgstr "" "Lanza un :ref:`evento de auditoría ` ``os.spawn`` con argumentos " -"``mode``, ``path``, ``args``, ``env``." +"``top``, ``topdown``, ``onerror``, ``followlinks``." #: ../Doc/library/os.rst:3073 msgid "" @@ -4639,13 +4648,12 @@ msgstr "" "directorio esté vacío::" #: ../Doc/library/os.rst:3132 -#, fuzzy msgid "" "Raises an :ref:`auditing event ` ``os.fwalk`` with arguments " "``top``, ``topdown``, ``onerror``, ``follow_symlinks``, ``dir_fd``." msgstr "" "Lanza un :ref:`evento de auditoría ` ``os.chown`` con argumentos " -"``path``, ``uid``, ``gid``, ``dir_fd``." +"``top``, ``topdown``, ``onerror``, ``follow_symlinks``, ``dir_fd``." #: ../Doc/library/os.rst:3141 msgid "Added support for :class:`bytes` paths." @@ -5329,15 +5337,19 @@ msgid "" "*flags* argument is provided for future extensions; no flag values are " "currently defined." msgstr "" +"Retorna un descriptor de archivo referente al *pid* del proceso. Este " +"descriptor puede ser usado para realizar gestión de procesos sin necesidad " +"de señales y carreras. El argumento *flags* es proporcionado para " +"extensiones futuras; ningún valor se encuentra definido en las banderas " +"actualmente." #: ../Doc/library/os.rst:3644 msgid "See the :manpage:`pidfd_open(2)` man page for more details." -msgstr "" +msgstr "Ver la página manual de :manpage:`pidfd_open(2)` para mas detalles." #: ../Doc/library/os.rst:3646 -#, fuzzy msgid ":ref:`Availability `: Linux 5.3+" -msgstr ":ref:`Disponibilidad `: Unix." +msgstr ":ref:`Disponibilidad `: Linux 5.3+" #: ../Doc/library/os.rst:3652 msgid "" @@ -5390,6 +5402,10 @@ msgid "" "method result (exit status) into an exit code if it is not ``None``. On " "Windows, the ``close`` method result is directly the exit code (or ``None``)." msgstr "" +"En Unix, :func:`waitstatus_to_exitcode` puede ser usado para convertir el " +"resultado del método ``close`` (estado de salida) en un código de salida si " +"es que no es ``None``. En Windows, el resultado del método ``close`` es " +"directamente el código de salida (o ``None``)." #: ../Doc/library/os.rst:3682 msgid "" @@ -5423,7 +5439,6 @@ msgstr "" "`execve`." #: ../Doc/library/os.rst:3698 -#, fuzzy msgid "" "The *path* parameter is the path to the executable file. The *path* should " "contain a directory. Use :func:`posix_spawnp` to pass an executable file " @@ -5964,6 +5979,9 @@ msgid "" "(exit status) into an exit code. On Windows, the result is directly the exit " "code." msgstr "" +"En Unix, :func:`waitstatus_to_exitcode` puede ser usado para convertir el " +"resultado (estado de salida) en un código de salida. En Windows, el " +"resultado es directamente el código de salida." #: ../Doc/library/os.rst:3989 msgid "" @@ -6012,7 +6030,7 @@ msgid "" msgstr "" "Por compatibilidad con versiones anteriores, este objeto también se comporta " "como una tupla que contiene :attr:`user`, :attr:`system`, :attr:" -"`children_user`, :attr:`children_system`, y :attr:`elapsed` en ese orden" +"`children_user`, :attr:`children_system`, y :attr:`elapsed` en ese orden." #: ../Doc/library/os.rst:4009 msgid "" @@ -6047,15 +6065,18 @@ msgid "" ":func:`waitstatus_to_exitcode` can be used to convert the exit status into " "an exit code." msgstr "" +":func:`waitstatus_to_exitcode` puede ser usado para convertir el estado de " +"salida en el código de salida." #: ../Doc/library/os.rst:4036 msgid "" ":func:`waitpid` can be used to wait for the completion of a specific child " "process and has more options." msgstr "" +":func:`waitpid` puede ser usado para esperar a la terminación de algún " +"proceso hijo en específico y tiene más opciones." #: ../Doc/library/os.rst:4041 -#, fuzzy msgid "" "Wait for the completion of one or more child processes. *idtype* can be :" "data:`P_PID`, :data:`P_PGID`, :data:`P_ALL`, or :data:`P_PIDFD` on Linux. " @@ -6068,14 +6089,14 @@ msgid "" "`WNOHANG` is specified and there are no children in a waitable state." msgstr "" "Espere la finalización de uno o más procesos secundarios. *idtype* puede " -"ser :data:`P_PID`, :data:`P_PGID` o :data:`P_ALL`. *id* especifica el pid " -"para esperar. *options* se construye a partir de OR de uno o más de :data:" -"`WEXITED`, :data:`WSTOPPED` o :data:`WCONTINUED` y adicionalmente se puede " -"ORing con :data:`WNOHANG` o :data:`WNOWAIT`. El valor de retorno es un " -"objeto que representa los datos contenidos en la estructura :c:type:" -"`siginfo_t`, a saber: :attr:`si_pid`, :attr:`si_uid`, :attr:`si_signo`, :" -"attr:`si_status`, :attr:`si_code` o ``None`` if :data:`WNOHANG` está " -"especificado y no hay hijos en un estado de espera." +"ser :data:`P_PID`, :data:`P_PGID`, :data:`P_ALL` o :data:`P_PIDFD` en Linux. " +"*id* especifica el pid para esperar. *options* se construye a partir de " +"ORing de uno o más de :data:`WEXITED`, :data:`WSTOPPED` o :data:`WCONTINUED` " +"y adicionalmente se puede ORed con :data:`WNOHANG` o :data:`WNOWAIT`. El " +"valor de retorno es un objeto que representa los datos contenidos en la " +"estructura :c:type:`siginfo_t`, a saber: :attr:`si_pid`, :attr:`si_uid`, :" +"attr:`si_signo`, :attr:`si_status`, :attr:`si_code` o ``None`` si :data:" +"`WNOHANG` está especificado y no hay hijos en un estado de espera." #: ../Doc/library/os.rst:4061 msgid "" @@ -6090,11 +6111,12 @@ msgid "" "This is a Linux-specific *idtype* that indicates that *id* is a file " "descriptor that refers to a process." msgstr "" +"Esto es un *idtype* especifico de Linux que indica que ese *id* es un " +"descriptor de archivo que hace referencia a un proceso." #: ../Doc/library/os.rst:4074 -#, fuzzy msgid ":ref:`Availability `: Linux 5.4+" -msgstr ":ref:`Disponibilidad `: Unix." +msgstr ":ref:`Disponibilidad `: Linux 5.4+" #: ../Doc/library/os.rst:4081 msgid "" @@ -6114,7 +6136,7 @@ msgstr "" #: ../Doc/library/os.rst:4103 msgid "Added :data:`CLD_KILLED` and :data:`CLD_STOPPED` values." -msgstr "" +msgstr "Agregado los valores :data:`CLD_KILLED` y :data:`CLD_STOPPED`." #: ../Doc/library/os.rst:4109 msgid "The details of this function differ on Unix and Windows." @@ -6201,6 +6223,8 @@ msgid "" ":func:`waitstatus_to_exitcode` can be used to convert the exit status into " "an exitcode." msgstr "" +":func:`waitstatus_to_exitcode` puede ser usado para convertir el estado de " +"salida al código de salida." #: ../Doc/library/os.rst:4160 msgid "" @@ -6219,11 +6243,11 @@ msgstr "" #: ../Doc/library/os.rst:4174 msgid "Convert a wait status to an exit code." -msgstr "" +msgstr "Convertir un estado de espera a un código de salida." #: ../Doc/library/os.rst:4176 msgid "On Unix:" -msgstr "" +msgstr "En Unix:" #: ../Doc/library/os.rst:4178 msgid "" @@ -6231,6 +6255,9 @@ msgid "" "the process exit status (return ``WEXITSTATUS(status)``): result greater " "than or equal to 0." msgstr "" +"Si el proceso termino con normalidad (if ``WIFEXITED(status)`` is true, se " +"retornan el estado de salida del proceso (return ``WEXITSTATUS(status)``): " +"resultado mayor o igual a 0." #: ../Doc/library/os.rst:4181 msgid "" @@ -6239,14 +6266,17 @@ msgid "" "caused the process to terminate (return ``-WTERMSIG(status)``): result less " "than 0." msgstr "" +"Si el proceso fue terminado por una señal (if ``WIFSIGNALED(status)`` is " +"true), retorna ``-signum`` donde *signum* es el numero de la señal que cause " +"que el proceso termine (return ``-WTERMSIG(status)``): resultado menor que 0." #: ../Doc/library/os.rst:4185 msgid "Otherwise, raise a :exc:`ValueError`." -msgstr "" +msgstr "En el caso contrario, se lanza un :exc:`ValueError`." #: ../Doc/library/os.rst:4187 msgid "On Windows, return *status* shifted right by 8 bits." -msgstr "" +msgstr "En Windows, retorna *status* desplazado a la derecha en 8 bits." #: ../Doc/library/os.rst:4189 msgid "" @@ -6255,12 +6285,18 @@ msgid "" "``WIFSTOPPED(status)`` is true. This function must not be called if " "``WIFSTOPPED(status)`` is true." msgstr "" +"En Unix, si el proceso esta siendo rastreado o si :func:`waitpid` fue " +"llamado con la opción :data:`WUNTRACED`, el que llama debe revisar primero " +"si ``WIFSTOPPED(status)`` es verdadero. La función no debe de ser llamada si " +"``WIFSTOPPED(status)`` es verdadero." #: ../Doc/library/os.rst:4196 msgid "" ":func:`WIFEXITED`, :func:`WEXITSTATUS`, :func:`WIFSIGNALED`, :func:" "`WTERMSIG`, :func:`WIFSTOPPED`, :func:`WSTOPSIG` functions." msgstr "" +"Funciones :func:`WIFEXITED`, :func:`WEXITSTATUS`, :func:`WIFSIGNALED`, :func:" +"`WTERMSIG`, :func:`WIFSTOPPED`, :func:`WSTOPSIG`." #: ../Doc/library/os.rst:4204 msgid "" @@ -6321,7 +6357,7 @@ msgid "" "`~signal.SIGCONT` (if the process has been continued from a job control " "stop), otherwise return ``False``." msgstr "" -"retorna ``True`` si un niño detenido se ha reanudado mediante la entrega de :" +"Retorna ``True`` si un niño detenido se ha reanudado mediante la entrega de :" "data:`~signal.SIGCONT` (si el proceso se ha continuado desde una parada de " "control de trabajo), de lo contrario, retorna ``False``." @@ -6334,7 +6370,7 @@ msgid "" "Return ``True`` if the process was stopped by delivery of a signal, " "otherwise return ``False``." msgstr "" -"retorna ``True`` si el proceso se detuvo mediante la entrega de una señal; " +"Retorna ``True`` si el proceso se detuvo mediante la entrega de una señal; " "de lo contrario, retorna ``False``." #: ../Doc/library/os.rst:4256 @@ -6352,7 +6388,7 @@ msgid "" "Return ``True`` if the process was terminated by a signal, otherwise return " "``False``." msgstr "" -"retorna ``True`` si el proceso finalizó con una señal; de lo contrario, " +"Retorna ``True`` si el proceso finalizó con una señal; de lo contrario, " "retorna ``False``." #: ../Doc/library/os.rst:4272 @@ -6361,7 +6397,7 @@ msgid "" "calling ``exit()`` or ``_exit()``, or by returning from ``main()``; " "otherwise return ``False``." msgstr "" -"retorna ``True`` si el proceso finalizó normalmente, es decir, llamando a " +"Retorna ``True`` si el proceso finalizó normalmente, es decir, llamando a " "``exit()`` o ``_exit()``, o volviendo de ``main()``; de lo contrario, " "retorna ``False``." diff --git a/library/sys.po b/library/sys.po index 99006694e3..70a0f600ce 100644 --- a/library/sys.po +++ b/library/sys.po @@ -11,15 +11,16 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-03-19 11:16+0100\n" -"PO-Revision-Date: 2020-09-17 03:18+0200\n" -"Last-Translator: \n" +"PO-Revision-Date: 2021-10-11 14:39+0200\n" +"Last-Translator: Diego Cristóbal Herreros\n" "Language: es\n" "Language-Team: python-doc-es\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.8.0\n" +"X-Generator: Poedit 3.0\n" #: ../Doc/library/sys.rst:2 msgid ":mod:`sys` --- System-specific parameters and functions" @@ -150,12 +151,20 @@ msgid "" "given event are considered a public and stable API and should not be " "modified between releases." msgstr "" +"Activar un evento de auditoría y activar cualquier hook de auditoría activo. " +"*event* es una cadena que identifica el evento, y *args* puede contener " +"argumentos opcionales con más información sobre el evento. El número y los " +"tipos de argumentos para un evento determinado se consideran una API pública " +"y estable y no deberían modificarse entre versiones." #: ../Doc/library/sys.rst:94 msgid "" "For example, one auditing event is named ``os.chdir``. This event has one " "argument called *path* that will contain the requested new working directory." msgstr "" +"Por ejemplo, un evento de auditoría se llama ``os.chdir``. Este evento tiene " +"un argumento llamado *path* que contendrá el nuevo directorio de trabajo " +"solicitado." #: ../Doc/library/sys.rst:98 msgid "" @@ -166,6 +175,13 @@ msgid "" "implementations to decide how to respond to particular events: they can " "merely log the event or abort the operation by raising an exception." msgstr "" +":func:`sys.audit` llamará a los ganchos de auditoría existentes, pasando el " +"nombre del evento y los argumentos, y volverá a lanzar la primera excepción " +"de cualquier hook. En general, si se lanza una excepción, no debería ser " +"manejada y el proceso debería terminar lo más rápidamente posible. Esto " +"permite que las implementaciones de los hook decidan cómo responder a " +"determinados eventos: pueden limitarse a registrar el evento o abortar la " +"operación lanzando una excepción." #: ../Doc/library/sys.rst:106 msgid "" @@ -864,7 +880,7 @@ msgstr ":const:`dev_mode`" #: ../Doc/library/sys.rst:464 msgid ":option:`-X dev <-X>` (:ref:`Python Development Mode `)" -msgstr "" +msgstr ":option:`-X dev <-X>` (:ref:`Modo de desarrollo de Python `)" #: ../Doc/library/sys.rst:465 msgid ":const:`utf8_mode`" @@ -945,7 +961,7 @@ msgstr "" #: ../Doc/library/sys.rst:503 msgid "See also :func:`math.ulp`." -msgstr "" +msgstr "Vea también :func:`math.ulp`." #: ../Doc/library/sys.rst:505 msgid ":const:`dig`" @@ -1040,6 +1056,8 @@ msgid "" "Use :func:`math.ulp(0.0) ` to get the smallest positive " "*denormalized* representable float." msgstr "" +"Usa :func:`math.ulp(0.0) ` para obtener el menor flotante positivo " +"*denormalizado* representable." #: ../Doc/library/sys.rst:525 msgid ":const:`min_exp`" @@ -2181,6 +2199,9 @@ msgid "" "Name of the platform-specific library directory. It is used to build the " "path of standard library and the paths of installed extension modules." msgstr "" +"Nombre del directorio de la biblioteca específica de la plataforma. Se " +"utiliza para construir la ruta de la biblioteca estándar y las rutas de los " +"módulos de extensión instalados." #: ../Doc/library/sys.rst:1161 msgid "" @@ -2188,12 +2209,17 @@ msgid "" "equal to ``\"lib64\"`` on 64-bit platforms which gives the following ``sys." "path`` paths (where ``X.Y`` is the Python ``major.minor`` version):" msgstr "" +"Es igual a ``\"lib\"`` en la mayoría de las plataformas. En Fedora y SuSE, " +"es igual a ``\"lib64\"`` en plataformas de 64 bits, lo que da las siguientes " +"rutas ``sys.path`` (donde ``X.Y`` es la versión ``mayor.menor`` de Python):" #: ../Doc/library/sys.rst:1165 msgid "" "``/usr/lib64/pythonX.Y/``: Standard library (like ``os.py`` of the :mod:`os` " "module)" msgstr "" +"``/usr/lib64/pythonX.Y/``: Biblioteca estándar (como ``os.py`` del módulo :" +"mod:`os`)" #: ../Doc/library/sys.rst:1167 msgid "" @@ -2201,18 +2227,25 @@ msgid "" "library (like the :mod:`errno` module, the exact filename is platform " "specific)" msgstr "" +"``/usr/lib64/pythonX.Y/lib-dynload/``: Módulos de extensión C de la " +"biblioteca estándar (como el módulo :mod:`errno`, el nombre exacto del " +"archivo es específico de la plataforma)" #: ../Doc/library/sys.rst:1170 msgid "" "``/usr/lib/pythonX.Y/site-packages/`` (always use ``lib``, not :data:`sys." "platlibdir`): Third-party modules" msgstr "" +"``/usr/lib/pythonX.Y/site-packages/`` (utilice siempre ``lib``, no :data:" +"`sys.platlibdir`): Módulos de terceros" #: ../Doc/library/sys.rst:1172 msgid "" "``/usr/lib64/pythonX.Y/site-packages/``: C extension modules of third-party " "packages" msgstr "" +"``/usr/lib64/pythonX.Y/site-packages/``: Módulos de extensión C de paquetes " +"de terceros" #: ../Doc/library/sys.rst:1180 msgid "" @@ -2845,11 +2878,19 @@ msgid "" "the :option:`-u` command-line option or setting the :envvar:" "`PYTHONUNBUFFERED` environment variable." msgstr "" +"Cuando es interactivo, el flujo de ``stdout`` se almacena en búfer de línea. " +"En caso contrario, se almacena en búfer de bloque como los archivos de texto " +"normales. El flujo ``stderr`` tiene un búfer de línea en ambos casos. " +"Puede hacer que ambos flujos no tengan búfer pasando la opción de línea de " +"comandos :option:`-u` o estableciendo la variable de entorno :envvar:" +"`PYTHONUNBUFFERED`." #: ../Doc/library/sys.rst:1501 msgid "" "Non-interactive ``stderr`` is now line-buffered instead of fully buffered." msgstr "" +"Ahora, ``stderr`` no interactivo tiene búfer de línea en lugar de búfer " +"completo." #: ../Doc/library/sys.rst:1507 msgid "" diff --git a/library/zoneinfo.po b/library/zoneinfo.po index 7b73190e53..62be49232f 100644 --- a/library/zoneinfo.po +++ b/library/zoneinfo.po @@ -4,23 +4,25 @@ # package. # FIRST AUTHOR , 2021. # -#, fuzzy msgid "" msgstr "" "Project-Id-Version: Python en Español 3.9\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-03-19 11:16+0100\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" +"PO-Revision-Date: 2021-10-01 21:30-0500\n" "MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" +"Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.8.0\n" +"Language-Team: \n" +"X-Generator: Poedit 3.0\n" +"Last-Translator: \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"Language: es\n" #: ../Doc/library/zoneinfo.rst:2 msgid ":mod:`zoneinfo` --- IANA time zone support" -msgstr "" +msgstr ":mod:`zoneinfo` --- Soporte de zona horaria IANA" #: ../Doc/library/zoneinfo.rst:14 msgid "" @@ -30,30 +32,40 @@ msgid "" "if no system time zone data is available, the library will fall back to " "using the first-party `tzdata`_ package available on PyPI." msgstr "" +"El módulo :mod:`zoneinfo` proporciona una implementación concreta de zonas " +"horarias para soportar la base de datos de zonas horarias de IANA tal y como " +"se especificó originalmente en :pep:`615`. Por defecto, :mod:`zoneinfo` " +"utiliza los datos de zona horaria del sistema si están disponibles; si no " +"hay datos de zona horaria del sistema, la biblioteca volverá a utilizar el " +"paquete de primera parte `tzdata`_ disponible en PyPI." #: ../Doc/library/zoneinfo.rst:24 msgid "Module: :mod:`datetime`" -msgstr "" +msgstr "Modulo: :mod:`datetime`" #: ../Doc/library/zoneinfo.rst:23 msgid "" "Provides the :class:`~datetime.time` and :class:`~datetime.datetime` types " "with which the :class:`ZoneInfo` class is designed to be used." msgstr "" +"Proporciona los tipos :class:`~datetime.time` y :class:`~datetime.datetime` " +"con los que está diseñada la clase :class:`ZoneInfo`." #: ../Doc/library/zoneinfo.rst:27 msgid "Package `tzdata`_" -msgstr "" +msgstr "Paquete `tzdata`_" #: ../Doc/library/zoneinfo.rst:27 msgid "" "First-party package maintained by the CPython core developers to supply time " "zone data via PyPI." msgstr "" +"Paquete de origen mantenido por los desarrolladores del núcleo de CPython " +"para suministrar datos de zonas horarias a través de PyPI." #: ../Doc/library/zoneinfo.rst:32 msgid "Using ``ZoneInfo``" -msgstr "" +msgstr "Usando ``ZoneInfo``" #: ../Doc/library/zoneinfo.rst:34 msgid "" @@ -63,12 +75,20 @@ msgid "" "replace>` method or :meth:`datetime.astimezone `::" msgstr "" +":class:`ZoneInfo` es una implementación concreta de la clase base abstracta :" +"class:`datetime.tzinfo`, y está pensada para ser adjuntada a ``tzinfo``, " +"bien a través del constructor, del método :meth:`datetime.replace ` o de :meth:`datetime.astimezone `:" #: ../Doc/library/zoneinfo.rst:49 msgid "" "Datetimes constructed in this way are compatible with datetime arithmetic " "and handle daylight saving time transitions with no further intervention::" msgstr "" +"Las fechas construidas de esta manera son compatibles con la aritmética de " +"fechas y manejan las transiciones del horario de verano sin ninguna otra " +"intervención::" #: ../Doc/library/zoneinfo.rst:60 msgid "" @@ -78,16 +98,24 @@ msgid "" "offset from *before* the transition is used when ``fold=0``, and the offset " "*after* the transition is used when ``fold=1``, for example::" msgstr "" +"Estas zonas horarias también soportan el atributo :attr:`~datetime.datetime." +"fold` introducido en :pep:`495`. Durante las transiciones de desfase que " +"inducen tiempos ambiguos (como una transición de horario de verano a horario " +"estándar), se utiliza el desfase de *antes* de la transición cuando " +"``fold=0``, y el desfase *después* de la transición cuando ``fold=1``, por " +"ejemplo::" #: ../Doc/library/zoneinfo.rst:73 msgid "" "When converting from another time zone, the fold will be set to the correct " "value::" msgstr "" +"Al convertir desde otra zona horaria, el pliegue se ajustará al valor " +"correcto::" #: ../Doc/library/zoneinfo.rst:89 msgid "Data sources" -msgstr "" +msgstr "Fuentes de datos" #: ../Doc/library/zoneinfo.rst:91 msgid "" @@ -100,10 +128,20 @@ msgid "" "system data nor tzdata are available, all calls to :class:`ZoneInfo` will " "raise :exc:`ZoneInfoNotFoundError`." msgstr "" +"El módulo ``zoneinfo`` no proporciona directamente los datos de la zona " +"horaria, y en su lugar extrae la información de la zona horaria de la base " +"de datos de la zona horaria del sistema o del paquete de PyPI `tzdata`_, si " +"está disponible. Algunos sistemas, incluyendo notablemente los sistemas " +"Windows, no tienen una base de datos IANA disponible, por lo que para los " +"proyectos que tienen como objetivo la compatibilidad entre plataformas que " +"requieren datos de zona horaria, se recomienda declarar una dependencia de " +"tzdata. Si no están disponibles ni los datos del sistema ni los de tzdata, " +"todas las llamadas a :class:`ZoneInfo` lanzarán un :exc:" +"`ZoneInfoNotFoundError`." #: ../Doc/library/zoneinfo.rst:103 msgid "Configuring the data sources" -msgstr "" +msgstr "Configurando los orígenes de datos" #: ../Doc/library/zoneinfo.rst:105 msgid "" @@ -112,28 +150,39 @@ msgid "" "failure looks for a match in the tzdata package. This behavior can be " "configured in three ways:" msgstr "" +"Cuando se llama a ``ZoneInfo(key)``, el constructor busca primero en los " +"directorios especificados en :data:`TZPATH` un archivo que coincida con " +"``key``, y en caso de fallo busca una coincidencia en el paquete tzdata. " +"Este comportamiento puede configurarse de tres maneras:" #: ../Doc/library/zoneinfo.rst:110 msgid "" "The default :data:`TZPATH` when not otherwise specified can be configured " "at :ref:`compile time `." msgstr "" +"El :data:`TZPATH` por defecto cuando no se especifica otra cosa puede " +"configurarse en :ref:`tiempo de compilación " +"`." #: ../Doc/library/zoneinfo.rst:112 msgid "" ":data:`TZPATH` can be configured using :ref:`an environment variable " "`." msgstr "" +":data:`TZPATH` puede configurarse utilizando :ref:`una variable de entorno " +"`." #: ../Doc/library/zoneinfo.rst:114 msgid "" "At :ref:`runtime `, the search path can be " "manipulated using the :func:`reset_tzpath` function." msgstr "" +"En :ref:`runtime `, la ruta de búsqueda puede " +"ser manipulada usando la función :func:`reset_tzpath`." #: ../Doc/library/zoneinfo.rst:120 msgid "Compile-time configuration" -msgstr "" +msgstr "Configuración en tiempo de compilación" #: ../Doc/library/zoneinfo.rst:122 msgid "" @@ -145,16 +194,27 @@ msgid "" "time option ``TZPATH`` (or, more likely, the ``configure`` flag ``--with-" "tzpath``), which should be a string delimited by :data:`os.pathsep`." msgstr "" +"La ruta por defecto :data:`TZPATH` incluye varias ubicaciones comunes de " +"despliegue para la base de datos de zonas horarias (excepto en Windows, " +"donde no hay ubicaciones \"conocidas\" para los datos de zonas horarias). En " +"los sistemas POSIX, los distribuidores posteriores y aquellos que construyen " +"Python desde el código fuente que saben dónde se despliegan los datos de " +"zona horaria de su sistema pueden cambiar la ruta de zona horaria por " +"defecto especificando la opción de compilación ``TZPATH`` (o, más " +"probablemente, la bandera ``configure`` ``--with-tzpath``), que debe ser una " +"cadena delimitada por :data:`os.pathsep`." #: ../Doc/library/zoneinfo.rst:130 msgid "" "On all platforms, the configured value is available as the ``TZPATH`` key " "in :func:`sysconfig.get_config_var`." msgstr "" +"En todas las plataformas, el valor configurado está disponible como la clave " +"``TZPATH`` en :func:`sysconfig.get_config_var`." #: ../Doc/library/zoneinfo.rst:136 msgid "Environment configuration" -msgstr "" +msgstr "Configuración del entorno" #: ../Doc/library/zoneinfo.rst:138 msgid "" @@ -163,6 +223,10 @@ msgid "" "use the environment variable ``PYTHONTZPATH``, if it exists, to set the " "search path." msgstr "" +"Cuando se inicializa :data:`TZPATH` (ya sea en el momento de la importación " +"o cuando se llama a :func:`reset_tzpath` sin argumentos), el módulo " +"``zoneinfo`` utilizará la variable de entorno ``PYTHONTZPATH``, si existe, " +"para establecer la ruta de búsqueda." #: ../Doc/library/zoneinfo.rst:145 msgid "" @@ -174,16 +238,26 @@ msgid "" "other implementations are free to silently ignore the erroneous component or " "raise an exception." msgstr "" +"Se trata de una cadena separada por :data:`os.pathsep` que contiene la ruta " +"de búsqueda de la zona horaria a utilizar. Debe consistir sólo en rutas " +"absolutas y no relativas. Los componentes relativos especificados en " +"``PYTHONTZPATH`` no se utilizarán, pero por lo demás el comportamiento " +"cuando se especifica una ruta relativa es definido por la implementación; " +"CPython lanzará :exc:`InvalidTZPathWarning`, pero otras implementaciones son " +"libres de ignorar silenciosamente el componente erróneo o lanzar una " +"excepción." #: ../Doc/library/zoneinfo.rst:153 msgid "" "To set the system to ignore the system data and use the tzdata package " "instead, set ``PYTHONTZPATH=\"\"``." msgstr "" +"Para que el sistema ignore los datos del sistema y utilice el paquete tzdata " +"en su lugar, establezca ``PYTHONTZPATH=\"\"``." #: ../Doc/library/zoneinfo.rst:159 msgid "Runtime configuration" -msgstr "" +msgstr "Configuración de tiempo de ejecución" #: ../Doc/library/zoneinfo.rst:161 msgid "" @@ -193,10 +267,15 @@ msgid "" "a specific time zone path (or require disabling access to the system time " "zones)." msgstr "" +"La ruta de búsqueda de TZ también puede configurarse en tiempo de ejecución " +"mediante la función :func:`reset_tzpath`. Por lo general, esta operación no " +"es aconsejable, aunque es razonable utilizarla en funciones de prueba que " +"requieran el uso de una ruta de zona horaria específica (o que requieran " +"deshabilitar el acceso a las zonas horarias del sistema)." #: ../Doc/library/zoneinfo.rst:168 msgid "The ``ZoneInfo`` class" -msgstr "" +msgstr "La clase ``ZoneInfo``" #: ../Doc/library/zoneinfo.rst:172 msgid "" @@ -206,6 +285,12 @@ msgid "" "cache invalidation via :meth:`ZoneInfo.clear_cache`, for all values of " "``key``, the following assertion will always be true:" msgstr "" +"Una subclase concreta de :class:`datetime.tzinfo` que representa una zona " +"horaria IANA especificada por la cadena ``key``. Las llamadas al constructor " +"primario siempre devolverán objetos que se comparan de forma idéntica; dicho " +"de otro modo, salvo la invalidación de la caché mediante :meth:`ZoneInfo." +"clear_cache`, para todos los valores de ``key``, la siguiente afirmación " +"siempre será verdadera:" #: ../Doc/library/zoneinfo.rst:184 msgid "" @@ -213,16 +298,21 @@ msgid "" "level references. The constructor will raise :exc:`ValueError` if a non-" "conforming key is passed." msgstr "" +"La ``key`` debe tener la forma de una ruta POSIX relativa y normalizada, sin " +"referencias de nivel superior. El constructor lanzará :exc:`ValueError` si " +"se pasa una clave no conforme." #: ../Doc/library/zoneinfo.rst:188 msgid "" "If no file matching ``key`` is found, the constructor will raise :exc:" "`ZoneInfoNotFoundError`." msgstr "" +"Si no se encuentra ningún archivo que coincida con la ``clave``, el " +"constructor lanzará :exc:`ZoneInfoNotFoundError`." #: ../Doc/library/zoneinfo.rst:192 msgid "The ``ZoneInfo`` class has two alternate constructors:" -msgstr "" +msgstr "La clase ``ZoneInfo`` tiene dos constructores alternativos:" #: ../Doc/library/zoneinfo.rst:196 msgid "" @@ -230,17 +320,25 @@ msgid "" "g. a file opened in binary mode or an :class:`io.BytesIO` object). Unlike " "the primary constructor, this always constructs a new object." msgstr "" +"Construye un objeto ``ZoneInfo`` a partir de un objeto tipo archivo que " +"retorna bytes (por ejemplo, un archivo abierto en modo binario o un objeto :" +"class:`io.BytesIO`). A diferencia del constructor primario, éste siempre " +"construye un nuevo objeto." #: ../Doc/library/zoneinfo.rst:200 msgid "" "The ``key`` parameter sets the name of the zone for the purposes of :py:meth:" "`~object.__str__` and :py:meth:`~object.__repr__`." msgstr "" +"El parámetro ``key`` establece el nombre de la zona a efectos de :py:meth:" +"`~object.__str__` y :py:meth:`~object.__repr__`." #: ../Doc/library/zoneinfo.rst:203 msgid "" "Objects created via this constructor cannot be pickled (see `pickling`_)." msgstr "" +"Los objetos creados a través de este constructor no pueden ser serializados " +"(ver `pickling`_)." #: ../Doc/library/zoneinfo.rst:207 msgid "" @@ -250,22 +348,31 @@ msgid "" "it can also be used to create a system with a different cache invalidation " "strategy." msgstr "" +"Un constructor alternativo que omite la caché del constructor. Es idéntico " +"al constructor principal, pero retorna un nuevo objeto en cada llamada. Es " +"muy probable que esto sea útil para propósitos de prueba o demostración, " +"pero también se puede utilizar para crear un sistema con una estrategia de " +"invalidación de caché diferente." #: ../Doc/library/zoneinfo.rst:213 msgid "" "Objects created via this constructor will also bypass the cache of a " "deserializing process when unpickled." msgstr "" +"Los objetos creados a través de este constructor también pasarán por encima " +"de la caché de un proceso de deserialización cuando sean deserializados." #: ../Doc/library/zoneinfo.rst:220 msgid "" "Using this constructor may change the semantics of your datetimes in " "surprising ways, only use it if you know that you need to." msgstr "" +"El uso de este constructor puede cambiar la semántica de tus datetimes de " +"manera sorprendente, sólo úsalo si sabes que lo necesitas." #: ../Doc/library/zoneinfo.rst:223 msgid "The following class methods are also available:" -msgstr "" +msgstr "También están disponibles los siguientes métodos de clase:" #: ../Doc/library/zoneinfo.rst:227 msgid "" @@ -273,6 +380,9 @@ msgid "" "arguments are passed, all caches are invalidated and the next call to the " "primary constructor for each key will return a new instance." msgstr "" +"Un método para invalidar la caché de la clase ``ZoneInfo``. Si no se pasan " +"argumentos, se invalidan todas las cachés y la siguiente llamada al " +"constructor primario de cada clave devolverá una nueva instancia." #: ../Doc/library/zoneinfo.rst:231 msgid "" @@ -280,6 +390,9 @@ msgid "" "the specified keys will be removed from the cache. Keys passed to " "``only_keys`` but not found in the cache are ignored." msgstr "" +"Si se pasa un iterable de nombres de claves al parámetro ``only_keys``, sólo " +"se eliminarán de la caché las claves especificadas. Las claves pasadas a " +"``only_keys`` pero que no se encuentran en la caché se ignoran." #: ../Doc/library/zoneinfo.rst:239 msgid "" @@ -287,10 +400,14 @@ msgid "" "``ZoneInfo`` in surprising ways; this modifies process-wide global state and " "thus may have wide-ranging effects. Only use it if you know that you need to." msgstr "" +"La invocación de esta función puede cambiar la semántica de las fechas " +"utilizando ``ZoneInfo`` de forma sorprendente; esto modifica el estado " +"global del proceso y por lo tanto puede tener efectos de gran alcance. " +"Utilícela sólo si sabe que lo necesita." #: ../Doc/library/zoneinfo.rst:244 msgid "The class has one attribute:" -msgstr "" +msgstr "La clase tiene un atributo:" #: ../Doc/library/zoneinfo.rst:248 msgid "" @@ -299,12 +416,18 @@ msgid "" "zone database (e.g. ``America/New_York``, ``Europe/Paris`` or ``Asia/" "Tokyo``)." msgstr "" +"Se trata de un :term:`attribute` de sólo lectura que retorna el valor de " +"``key`` pasado al constructor, que debe ser una clave de búsqueda en la base " +"de datos de zonas horarias de la IANA (por ejemplo, ``America/New_York``, " +"``Europe/Paris`` o ``Asia/Tokyo``." #: ../Doc/library/zoneinfo.rst:253 msgid "" "For zones constructed from file without specifying a ``key`` parameter, this " "will be set to ``None``." msgstr "" +"Para las zonas construidas a partir de un archivo sin especificar un " +"parámetro ``key``, se establecerá como ``None``." #: ../Doc/library/zoneinfo.rst:258 msgid "" @@ -314,10 +437,15 @@ msgid "" "Unicode Common Locale Data Repository) can be used to get more user-friendly " "strings from these keys." msgstr "" +"Aunque es una práctica algo común exponerlos a los usuarios finales, estos " +"valores están diseñados para ser claves primarias para representar las zonas " +"relevantes y no necesariamente elementos orientados al usuario. Se pueden " +"utilizar proyectos como CLDR (Unicode Common Locale Data Repository) para " +"obtener cadenas más fáciles de usar a partir de estas claves." #: ../Doc/library/zoneinfo.rst:265 msgid "String representations" -msgstr "" +msgstr "Representaciones de cadenas" #: ../Doc/library/zoneinfo.rst:267 msgid "" @@ -325,6 +453,9 @@ msgid "" "`ZoneInfo` object defaults to using the :attr:`ZoneInfo.key` attribute (see " "the note on usage in the attribute documentation)::" msgstr "" +"La representación de cadena que se retorna al llamar a :py:class:`str` sobre " +"un objeto :class:`ZoneInfo` utiliza por defecto el atributo :attr:`ZoneInfo." +"key` (ver la nota de uso en la documentación del atributo)::" #: ../Doc/library/zoneinfo.rst:279 msgid "" @@ -333,10 +464,15 @@ msgid "" "implementation-defined and not necessarily stable between versions, but it " "is guaranteed not to be a valid ``ZoneInfo`` key." msgstr "" +"Para los objetos construidos a partir de un fichero sin especificar un " +"parámetro ``key``, ``str`` vuelve a llamar a :func:`repr``. El parámetro " +"``repr`` de ``ZoneInfo`` está definido por la implementación y no es " +"necesariamente estable entre versiones, pero se garantiza que no es una " +"clave válida de ``ZoneInfo``.Pickled." #: ../Doc/library/zoneinfo.rst:287 msgid "Pickle serialization" -msgstr "" +msgstr "Serialización de Pickle" #: ../Doc/library/zoneinfo.rst:289 msgid "" @@ -344,10 +480,16 @@ msgid "" "serialized by key, and ``ZoneInfo`` objects constructed from files (even " "those with a value for ``key`` specified) cannot be pickled." msgstr "" +"En lugar de serializar todos los datos de transición, los objetos " +"``ZoneInfo`` se serializan por clave, y los objetos ``ZoneInfo`` construidos " +"a partir de archivos (incluso los que tienen un valor por ``key`` " +"especifico) no pueden ser serializados." #: ../Doc/library/zoneinfo.rst:293 msgid "The behavior of a ``ZoneInfo`` file depends on how it was constructed:" msgstr "" +"El comportamiento de un archivo ``ZoneInfo`` depende de cómo se haya " +"construido:" #: ../Doc/library/zoneinfo.rst:295 msgid "" @@ -359,6 +501,13 @@ msgid "" "constructed from ``ZoneInfo(\"Europe/Berlin\")``, one would expect the " "following behavior:" msgstr "" +"``ZoneInfo(key)``: Cuando se construye con el constructor primario, un " +"objeto ``ZoneInfo`` se serializa por la clave, y cuando se deserializa, el " +"proceso de deserialización utiliza el primario y por lo tanto se espera que " +"estos sean el mismo objeto que otras referencias a la misma zona horaria. " +"Por ejemplo, si ``europe_berlin_pkl`` es una cadena que contiene un pickle " +"construido a partir de ``ZoneInfo(\"Europe/Berlin\")``, se esperaría el " +"siguiente comportamiento:" #: ../Doc/library/zoneinfo.rst:310 msgid "" @@ -369,6 +518,12 @@ msgid "" "constructed from ``ZoneInfo.no_cache(\"Europe/Berlin\")``, one would expect " "the following behavior:" msgstr "" +"``ZoneInfo.no_cache(key)``: Cuando se construye a partir del constructor que " +"evita la caché, el objeto ``ZoneInfo`` también se serializa por clave, pero " +"cuando se deserializa, el proceso de deserialización utiliza el constructor " +"que evita la caché. Si ``europe_berlin_pkl_nc`` es una cadena que contiene " +"un pickle construido a partir de ``ZoneInfo.no_cache(\"Europe/Berlin\")``, " +"cabría esperar el siguiente comportamiento:" #: ../Doc/library/zoneinfo.rst:324 msgid "" @@ -378,6 +533,12 @@ msgid "" "use a wrapper type or a custom serialization function: either serializing by " "key or storing the contents of the file object and serializing that." msgstr "" +"``ZoneInfo.from_file(fobj, /, key=None)``: Cuando se construye a partir de " +"un fichero, el objeto ``ZoneInfo`` lanza una excepción al ser recogido. Si " +"un usuario final quiere recoger un ``ZoneInfo`` construido a partir de un " +"archivo, se recomienda que utilice un tipo de envoltura o una función de " +"serialización personalizada: ya sea serializando por clave o almacenando el " +"contenido del objeto archivo y serializándolo." #: ../Doc/library/zoneinfo.rst:330 msgid "" @@ -389,10 +550,18 @@ msgid "" "a ``ZoneInfo`` pickled in an environment with a different version of the " "time zone data." msgstr "" +"Este método de serialización requiere que los datos de la zona horaria para " +"la clave requerida estén disponibles tanto en el lado de serialización como " +"en el de deserialización, de forma similar a como se espera que las " +"referencias a las clases y funciones existan tanto en el entorno de " +"serialización como en el de deserialización. También significa que no se " +"garantiza la consistencia de los resultados cuando se retira un ``ZoneInfo`` " +"recogido en un entorno con una versión diferente de los datos de la zona " +"horaria." #: ../Doc/library/zoneinfo.rst:338 msgid "Functions" -msgstr "" +msgstr "Funciones" #: ../Doc/library/zoneinfo.rst:342 msgid "" @@ -400,6 +569,9 @@ msgid "" "anywhere on the time zone path. This is recalculated on every call to the " "function." msgstr "" +"Obtiene un conjunto que contiene todas las claves válidas para las zonas " +"horarias de la IANA disponibles en cualquier lugar de la ruta de zonas " +"horarias. Se recalcula en cada llamada a la función." #: ../Doc/library/zoneinfo.rst:346 msgid "" @@ -407,6 +579,9 @@ msgid "" "\"special\" zones such as those under the ``posix/`` and ``right/`` " "directories, or the ``posixrules`` zone." msgstr "" +"Esta función sólo incluye los nombres de zona canónicos y no incluye las " +"zonas \"especiales\" como las que se encuentran bajo los directorios ``posix/" +"`` y ``right/``, o la zona ``posixrules``." #: ../Doc/library/zoneinfo.rst:352 msgid "" @@ -414,6 +589,9 @@ msgid "" "if a file on the time zone path is a valid time zone is to read the \"magic " "string\" at the beginning." msgstr "" +"Esta función puede abrir un gran número de archivos, ya que la mejor manera " +"de determinar si un archivo en la ruta de la zona horaria es una zona " +"horaria válida es leer la \"magic string\" (cadena mágica) al principio." #: ../Doc/library/zoneinfo.rst:358 msgid "" @@ -422,12 +600,20 @@ msgid "" "Locale Data Repository) to get more user-friendly strings. See also the " "cautionary note on :attr:`ZoneInfo.key`." msgstr "" +"Estos valores no están diseñados para ser expuestos a los usuarios finales; " +"para los elementos de cara al usuario, las aplicaciones deberían utilizar " +"algo como CLDR (el Unicode Common Locale Data Repository) para obtener " +"cadenas más fáciles de usar. Véase también la nota de advertencia sobre :" +"attr:`ZoneInfo.key`." #: ../Doc/library/zoneinfo.rst:365 msgid "" "Sets or resets the time zone search path (:data:`TZPATH`) for the module. " "When called with no arguments, :data:`TZPATH` is set to the default value." msgstr "" +"Establece o restablece la ruta de búsqueda de la zona horaria (:data:" +"`TZPATH`) para el módulo. Cuando se llama sin argumentos, :data:`TZPATH` se " +"establece en el valor por defecto." #: ../Doc/library/zoneinfo.rst:368 msgid "" @@ -435,6 +621,9 @@ msgid "" "and so calls to the primary ``ZoneInfo`` constructor will only use the new " "``TZPATH`` in the case of a cache miss." msgstr "" +"La llamada a ``reset_tzpath`` no invalidará la caché de :class:`ZoneInfo`, " +"por lo que las llamadas al constructor primario de ``ZoneInfo`` sólo " +"utilizarán el nuevo ``TZPATH`` en caso de que se pierda la caché." #: ../Doc/library/zoneinfo.rst:372 msgid "" @@ -443,10 +632,13 @@ msgid "" "`ValueError` will be raised if something other than an absolute path is " "passed." msgstr "" +"El parámetro ``to`` debe ser un :term:`sequence` de cadenas o :class:`os." +"PathLike` y no una cadena, todos los cuales deben ser rutas absolutas. :exc:" +"`ValueError` se lanzará si se pasa algo que no sea una ruta absoluta." #: ../Doc/library/zoneinfo.rst:378 msgid "Globals" -msgstr "" +msgstr "Globales" #: ../Doc/library/zoneinfo.rst:382 msgid "" @@ -454,12 +646,18 @@ msgid "" "constructing a ``ZoneInfo`` from a key, the key is joined to each entry in " "the ``TZPATH``, and the first file found is used." msgstr "" +"Una secuencia de sólo lectura que representa la ruta de búsqueda de zonas " +"horarias -- cuando se construye un ``ZoneInfo`` a partir de una clave, la " +"clave se une a cada entrada del ``TZPATH``, y se utiliza el primer archivo " +"encontrado." #: ../Doc/library/zoneinfo.rst:386 msgid "" "``TZPATH`` may contain only absolute paths, never relative paths, regardless " "of how it is configured." msgstr "" +"``TZPATH`` sólo puede contener rutas absolutas, nunca relativas, " +"independientemente de cómo esté configurado." #: ../Doc/library/zoneinfo.rst:389 msgid "" @@ -468,16 +666,22 @@ msgid "" "TZPATH`` rather than importing ``TZPATH`` from ``zoneinfo`` or assigning a " "long-lived variable to ``zoneinfo.TZPATH``." msgstr "" +"El objeto al que apunta ``zoneinfo.TZPATH`` puede cambiar en respuesta a una " +"llamada a :func:`reset_tzpath`, por lo que se recomienda utilizar ``zoneinfo." +"TZPATH`` en lugar de importar ``TZPATH`` desde ``zoneinfo`` o asignar una " +"variable de larga duración a ``zoneinfo.TZPATH``." #: ../Doc/library/zoneinfo.rst:394 msgid "" "For more information on configuring the time zone search path, see :ref:" "`zoneinfo_data_configuration`." msgstr "" +"Para más información sobre la configuración de la ruta de búsqueda de zonas " +"horarias, consulte :ref:`zoneinfo_data_configuration`." #: ../Doc/library/zoneinfo.rst:398 msgid "Exceptions and warnings" -msgstr "" +msgstr "Excepciones y advertencias" #: ../Doc/library/zoneinfo.rst:402 msgid "" @@ -485,9 +689,14 @@ msgid "" "specified key could not be found on the system. This is a subclass of :exc:" "`KeyError`." msgstr "" +"Se lanza cuando la construcción de un objeto :class:`ZoneInfo` falla porque " +"la clave especificada no puede encontrarse en el sistema. Es una subclase " +"de :exc:`KeyError`." #: ../Doc/library/zoneinfo.rst:408 msgid "" "Raised when :envvar:`PYTHONTZPATH` contains an invalid component that will " "be filtered out, such as a relative path." msgstr "" +"Se lanza cuando :envvar:`PYTHONTZPATH` contiene un componente no válido que " +"será filtrado, como una ruta relativa." diff --git a/scripts/completed_files.py b/scripts/completed_files.py old mode 100644 new mode 100755 diff --git a/scripts/print_percentage.py b/scripts/print_percentage.py old mode 100644 new mode 100755 diff --git a/whatsnew/2.3.po b/whatsnew/2.3.po index bdd2425c3a..9b0e113686 100644 --- a/whatsnew/2.3.po +++ b/whatsnew/2.3.po @@ -9,15 +9,15 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2019-05-06 11:59-0400\n" -"PO-Revision-Date: 2021-04-17 07:53-0500\n" +"PO-Revision-Date: 2021-09-25 10:30+0100\n" "Language-Team: python-doc-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" -"Last-Translator: \n" +"Last-Translator: Claudia Millan \n" "Language: es\n" -"X-Generator: Poedit 2.2.1\n" +"X-Generator: Poedit 3.0\n" #: ../Doc/whatsnew/2.3.rst:3 msgid "What's New in Python 2.3" @@ -97,7 +97,7 @@ msgstr "" #: ../Doc/whatsnew/2.3.rst:41 msgid "PEP 218: A Standard Set Datatype" -msgstr "PEP 218: A Standard Set Datatype" +msgstr "PEP 218: Un tipo de datos de conjunto estándar" #: ../Doc/whatsnew/2.3.rst:43 msgid "" @@ -159,17 +159,19 @@ msgstr "" #: ../Doc/whatsnew/2.3.rst:117 msgid ":pep:`218` - Adding a Built-In Set Object Type" -msgstr ":pep:`218` - Adding a Built-In Set Object Type" +msgstr ":pep:`218` - Añadiendo un tipo de objeto de conjunto incorporado" #: ../Doc/whatsnew/2.3.rst:117 msgid "" "PEP written by Greg V. Wilson. Implemented by Greg V. Wilson, Alex Martelli, " "and GvR." msgstr "" +"PEP escrito por Greg V. Wilson. Implementado por Greg V. Wilson, Alex " +"Martelli y GvR." #: ../Doc/whatsnew/2.3.rst:126 msgid "PEP 255: Simple Generators" -msgstr "" +msgstr "PEP 255: Generadores simples" #: ../Doc/whatsnew/2.3.rst:128 msgid "" @@ -181,6 +183,14 @@ msgid "" "2.2\" document; if you read it back when Python 2.2 came out, you can skip " "the rest of this section." msgstr "" +"En Python 2.2, los generadores se añadieron como una característica " +"opcional, que se activaba mediante una directiva ``from __future__ import " +"generators``. En 2.3 los generadores ya no necesitan ser habilitados " +"especialmente, y ahora están siempre presentes; esto significa que :keyword:" +"`yield` es ahora siempre una palabra clave. El resto de esta sección es una " +"copia de la descripción de los generadores del documento \"What's New in " +"Python 2.2\"; si lo leíste cuando salió Python 2.2, puedes saltarte el resto " +"de esta sección." #: ../Doc/whatsnew/2.3.rst:136 msgid "" @@ -194,10 +204,20 @@ msgid "" "This is what generators provide; they can be thought of as resumable " "functions." msgstr "" +"Sin duda estás familiarizado con cómo funcionan las llamadas a funciones en " +"Python o C. Cuando llamas a una función, ésta obtiene un espacio de nombres " +"privado donde se crean sus variables locales. Cuando la función llega a una " +"declaración :keyword:`return`, las variables locales se destruyen y el valor " +"resultante se retorna a quien la llamó. Una llamada posterior a la misma " +"función obtendrá un nuevo conjunto de variables locales. Pero, ¿qué pasaría " +"si las variables locales no se tiraran al salir de una función? ¿Qué pasaría " +"si pudieras reanudar la función donde la dejaste? Esto es lo que " +"proporcionan los generadores; se puede pensar en ellos como funciones " +"reanudables." #: ../Doc/whatsnew/2.3.rst:145 msgid "Here's the simplest example of a generator function::" -msgstr "" +msgstr "Este es el ejemplo más sencillo de una función generadora::" #: ../Doc/whatsnew/2.3.rst:151 msgid "" @@ -206,6 +226,10 @@ msgid "" "this is detected by Python's bytecode compiler which compiles the function " "specially as a result." msgstr "" +"Se ha introducido una nueva palabra clave, :keyword:`yield`, para los " +"generadores. Cualquier función que contenga una declaración :keyword:`!" +"yield` es una función generadora; esto es detectado por el compilador de " +"código de bits de Python que compila la función especialmente como resultado." #: ../Doc/whatsnew/2.3.rst:156 msgid "" @@ -222,16 +246,31 @@ msgid "" "try`...\\ :keyword:`!finally` statement; read :pep:`255` for a full " "explanation of the interaction between :keyword:`!yield` and exceptions.)" msgstr "" +"Cuando se llama a una función generadora, ésta no retorna un único valor, " +"sino que retorna un objeto generador que soporta el protocolo de los " +"iteradores. Al ejecutar la sentencia :keyword:`yield`, el generador retorna " +"el valor de ``i``, de forma similar a una sentencia :keyword:`return`. La " +"gran diferencia entre :keyword:`!yield` y una sentencia :keyword:`!return` " +"es que al llegar a una sentencia :keyword:`!yield` se suspende el estado de " +"ejecución del generador y se conservan las variables locales. En la " +"siguiente llamada al método ``.next()`` del generador, la función se " +"reanudará la ejecución inmediatamente después de la sentencia :keyword:`!" +"yield`. (Por razones complicadas, la sentencia :keyword:`!yield` no está " +"permitida dentro del bloque :keyword:`try` de una sentencia :keyword:`!" +"try`...`; lea :pep:`255` para una explicación completa de la interacción " +"entre :keyword:`!yield` y las excepciones)" #: ../Doc/whatsnew/2.3.rst:169 msgid "Here's a sample usage of the :func:`generate_ints` generator::" -msgstr "" +msgstr "Este es un ejemplo de uso del generador :func:`generate_ints`::" #: ../Doc/whatsnew/2.3.rst:186 msgid "" "You could equally write ``for i in generate_ints(5)``, or ``a,b,c = " "generate_ints(3)``." msgstr "" +"También podrías escribir ``for i in generate_ints(5)``, o ``a,b,c = " +"generate_ints(3)``." #: ../Doc/whatsnew/2.3.rst:189 msgid "" @@ -243,6 +282,13 @@ msgid "" "indicated by raising :exc:`StopIteration` manually, or by just letting the " "flow of execution fall off the bottom of the function." msgstr "" +"Dentro de una función generadora, la expresión :keyword:`return` sólo puede " +"usarse sin un valor, y señala el final de la procesión de valores; después " +"el generador no puede retornar más valores. :keyword:`!return` con un valor, " +"como ``return 5``, es un error de sintaxis dentro de una función " +"generadora. El final de los resultados del generador también puede " +"indicarse levantando manualmente :exc:`StopIteration`, o simplemente dejando " +"que el flujo de ejecución caiga en el fondo de la función." #: ../Doc/whatsnew/2.3.rst:197 msgid "" @@ -256,6 +302,15 @@ msgid "" "The simplest one implements an in-order traversal of a tree using generators " "recursively. ::" msgstr "" +"Puedes conseguir el efecto de los generadores manualmente escribiendo tu " +"propia clase y almacenando todas las variables locales del generador como " +"variables de instancia. Por ejemplo, la devolución de una lista de enteros " +"podría hacerse estableciendo ``self.count`` a 0, y haciendo que el método :" +"meth:`next` incremente ``self.count`` y lo retorne. Sin embargo, para un " +"generador medianamente complicado, escribir la clase correspondiente sería " +"mucho más complicado. :file:`Lib/test/test_generators.py` contiene varios " +"ejemplos más interesantes. El más sencillo implementa un recorrido en orden " +"de un árbol utilizando generadores de forma recursiva ::" #: ../Doc/whatsnew/2.3.rst:215 msgid "" @@ -265,6 +320,11 @@ msgid "" "knight to every square of an $NxN$ chessboard without visiting any square " "twice)." msgstr "" +"Otros dos ejemplos en :file:`Lib/test/test_generators.py` producen " +"soluciones para el problema de las N reinas (colocar $N$ reinas en un " +"tablero de ajedrez $NxN$ de forma que ninguna reina amenace a otra) y el " +"recorrido del caballero (una ruta que lleva a un caballo a cada casilla de " +"un tablero de ajedrez $NxN$ sin visitar ninguna casilla dos veces)." #: ../Doc/whatsnew/2.3.rst:220 msgid "" @@ -275,6 +335,12 @@ msgid "" "\" at https://www.cs.arizona.edu/icon/docs/ipd266.htm gives an idea of what " "this looks like::" msgstr "" +"La idea de los generadores proviene de otros lenguajes de programación, " +"especialmente de Icon (https://www.cs.arizona.edu/icon/), donde la idea de " +"los generadores es fundamental. En Icon, cada expresión y llamada a una " +"función se comporta como un generador. Un ejemplo de \"*An Overview of the " +"Icon Programming Language*\" en https://www.cs.arizona.edu/icon/docs/ipd266." +"htm da una idea de cómo es esto::" #: ../Doc/whatsnew/2.3.rst:230 msgid "" @@ -284,6 +350,12 @@ msgid "" "Icon retries it with the second value of 23. 23 is greater than 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 " +"imprime el valor 23 en la pantalla." #: ../Doc/whatsnew/2.3.rst:236 msgid "" @@ -295,10 +367,17 @@ msgid "" "as a concrete object (the iterator) that can be passed around to other " "functions or stored in a data structure." msgstr "" +"Python no va tan lejos como Icon en la adopción de generadores como concepto " +"central. Los generadores se consideran parte del núcleo del lenguaje " +"Python, pero aprenderlos o utilizarlos no es obligatorio; si no resuelven " +"ningún problema que tengas, siéntete libre de ignorarlos. Una característica " +"novedosa de la interfaz de Python en comparación con la de Icon es que el " +"estado de un generador se representa como un objeto concreto (el iterador) " +"que puede pasarse a otras funciones o almacenarse en una estructura de datos." #: ../Doc/whatsnew/2.3.rst:248 msgid ":pep:`255` - Simple Generators" -msgstr "" +msgstr ":pep:`255` - Generadores simples" #: ../Doc/whatsnew/2.3.rst:248 msgid "" @@ -306,10 +385,13 @@ msgid "" "mostly by Neil Schemenauer and Tim Peters, with other fixes from the Python " "Labs crew." msgstr "" +"Escrito por Neil Schemenauer, Tim Peters, Magnus Lie Hetland. Implementado " +"principalmente por Neil Schemenauer y Tim Peters, con otras correcciones del " +"equipo de Python Labs." #: ../Doc/whatsnew/2.3.rst:257 msgid "PEP 263: Source Code Encodings" -msgstr "" +msgstr "PEP 263: Codificación del código fuente" #: ../Doc/whatsnew/2.3.rst:259 msgid "" @@ -318,6 +400,10 @@ msgid "" "comment in the first or second line of the source file. For example, a " "UTF-8 file can be declared with::" msgstr "" +"Los archivos fuente de Python ahora pueden declararse con diferentes " +"codificaciones de conjuntos de caracteres. Las codificaciones se declaran " +"incluyendo un comentario con formato especial en la primera o segunda línea " +"del archivo fuente. Por ejemplo, un archivo UTF-8 puede declararse con::" #: ../Doc/whatsnew/2.3.rst:267 msgid "" @@ -327,6 +413,11 @@ msgid "" "`DeprecationWarning` being signalled by Python 2.3; in 2.4 this will be a " "syntax error." msgstr "" +"Sin esta declaración de codificación, la codificación por defecto utilizada " +"es ASCII de 7 bits. Ejecutar o importar módulos que contengan literales de " +"cadena con caracteres de 8 bits y que no tengan una declaración de " +"codificación dará lugar a un :exc:`DeprecationWarning` señalado por Python " +"2.3; en 2.4 será un error de sintaxis." #: ../Doc/whatsnew/2.3.rst:273 msgid "" @@ -335,20 +426,28 @@ msgid "" "identifiers are still restricted to ASCII characters, so you can't have " "variable names that use characters outside of the usual alphanumerics." msgstr "" +"La declaración de codificación sólo afecta a los literales de cadena " +"Unicode, que se convertirán a Unicode utilizando la codificación " +"especificada. Ten en cuenta que los identificadores de Python siguen " +"restringidos a caracteres ASCII, por lo que no puedes tener nombres de " +"variables que utilicen caracteres fuera de los alfanuméricos habituales." #: ../Doc/whatsnew/2.3.rst:282 msgid ":pep:`263` - Defining Python Source Code Encodings" msgstr "" +":pep:`263` - Definición de las codificaciones del código fuente de Python" #: ../Doc/whatsnew/2.3.rst:282 msgid "" "Written by Marc-André Lemburg and Martin von Löwis; implemented by Suzuki " "Hisao and Martin von Löwis." msgstr "" +"Escrito por Marc-André Lemburg y Martin von Löwis; realizado por Suzuki " +"Hisao y Martin von Löwis." #: ../Doc/whatsnew/2.3.rst:289 msgid "PEP 273: Importing Modules from ZIP Archives" -msgstr "" +msgstr "PEP 273: Importar módulos desde archivos ZIP" #: ../Doc/whatsnew/2.3.rst:291 msgid "" @@ -357,6 +456,10 @@ msgid "" "be automatically imported if a ZIP archive's filename is added to ``sys." "path``. For example:" msgstr "" +"El nuevo módulo :mod:`zipimport` añade soporte para importar módulos desde " +"un archivo en formato ZIP. No es necesario importar el módulo " +"explícitamente; se importará automáticamente si se añade el nombre de un " +"archivo ZIP a ``sys.path``. Por ejemplo:" #: ../Doc/whatsnew/2.3.rst:314 msgid "" @@ -367,6 +470,13 @@ msgid "" "by adding the corresponding :file:`\\*.pyc` file, meaning that if a ZIP " "archive doesn't contain :file:`\\*.pyc` files, importing may be rather slow." msgstr "" +"Una entrada en ``sys.path`` puede ser ahora el nombre de un archivo ZIP. El " +"archivo ZIP puede contener cualquier tipo de ficheros, pero sólo se pueden " +"importar los ficheros llamados :file:`\\*.py`, :file:`\\*.pyc`, o :file:`\\*." +"pyo`. Si un archivo sólo contiene ficheros :file:`\\*.py`, Python no " +"intentará modificar el archivo añadiendo el correspondiente fichero :file:`" +"\\*.pyc`, lo que significa que si un archivo ZIP no contiene ficheros :file:`" +"\\*.pyc`, la importación puede ser bastante lenta." #: ../Doc/whatsnew/2.3.rst:321 msgid "" @@ -374,10 +484,13 @@ msgid "" "subdirectory; for example, the path :file:`/tmp/example.zip/lib/` would only " "import from the :file:`lib/` subdirectory within the archive." msgstr "" +"También se puede especificar una ruta dentro del archivo para importar sólo " +"de un subdirectorio; por ejemplo, la ruta :file:`/tmp/example.zip/lib/` sólo " +"importaría del subdirectorio :file:`lib/` dentro del archivo." #: ../Doc/whatsnew/2.3.rst:331 msgid ":pep:`273` - Import Modules from Zip Archives" -msgstr "" +msgstr ":pep:`273` - Importación de módulos desde archivos Zip" #: ../Doc/whatsnew/2.3.rst:329 msgid "" @@ -387,10 +500,15 @@ msgid "" "`302`. See section :ref:`section-pep302` for a description of the new import " "hooks." msgstr "" +"Escrito por James C. Ahlstrom, que también proporcionó una implementación. " +"Python 2.3 sigue la especificación en :pep:`273`, pero utiliza una " +"implementación escrita por Just van Rossum que utiliza los ganchos de " +"importación descritos en :pep:`302`. Vea la sección :ref:`section-pep302` " +"para una descripción de los nuevos ganchos de importación." #: ../Doc/whatsnew/2.3.rst:338 msgid "PEP 277: Unicode file name support for Windows NT" -msgstr "" +msgstr "PEP 277: Soporte de nombres de archivo Unicode para Windows NT" #: ../Doc/whatsnew/2.3.rst:340 msgid "" @@ -398,6 +516,10 @@ msgid "" "strings. Traditionally, Python has represented file names as byte strings, " "which is inadequate because it renders some file names inaccessible." msgstr "" +"En Windows NT, 2000 y XP, el sistema almacena los nombres de archivo como " +"cadenas Unicode. Tradicionalmente, Python ha representado los nombres de " +"archivo como cadenas de bytes, lo cual es inadecuado porque hace que algunos " +"nombres de archivo sean inaccesibles." #: ../Doc/whatsnew/2.3.rst:344 msgid "" @@ -407,12 +529,21 @@ 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 " +"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." #: ../Doc/whatsnew/2.3.rst:350 msgid "" "Byte strings still work as file names, and on Windows Python will " "transparently convert them to Unicode using the ``mbcs`` encoding." msgstr "" +"Las cadenas de bytes siguen funcionando como nombres de archivo, y en " +"Windows Python las convertirá de forma transparente a Unicode utilizando la " +"codificación ``mbcs``." #: ../Doc/whatsnew/2.3.rst:353 msgid "" @@ -422,24 +553,32 @@ msgid "" "strings are supported as file names by checking :attr:`os.path." "supports_unicode_filenames`, a Boolean value." msgstr "" +"Otros sistemas también permiten cadenas Unicode como nombres de archivo, " +"pero las convierten en cadenas de bytes antes de pasarlas al sistema, lo que " +"puede provocar un :exc:`UnicodeError`. Las aplicaciones pueden comprobar si " +"se admiten cadenas Unicode arbitrarias como nombres de archivo comprobando :" +"attr:`os.path.supports_unicode_filenames`, un valor booleano." #: ../Doc/whatsnew/2.3.rst:359 msgid "Under MacOS, :func:`os.listdir` may now return Unicode filenames." msgstr "" +"En MacOS, :func:`os.listdir` ahora puede retornar nombres de archivo Unicode." #: ../Doc/whatsnew/2.3.rst:365 msgid ":pep:`277` - Unicode file name support for Windows NT" -msgstr "" +msgstr ":pep:`277` - Soporte de nombres de archivo Unicode para Windows NT" #: ../Doc/whatsnew/2.3.rst:365 msgid "" "Written by Neil Hodgson; implemented by Neil Hodgson, Martin von Löwis, and " "Mark Hammond." msgstr "" +"Escrito por Neil Hodgson; realizado por Neil Hodgson, Martin von Löwis y " +"Mark Hammond." #: ../Doc/whatsnew/2.3.rst:375 msgid "PEP 278: Universal Newline Support" -msgstr "" +msgstr "PEP 278: Soporte universal de nuevas líneas" #: ../Doc/whatsnew/2.3.rst:377 msgid "" @@ -450,6 +589,14 @@ msgid "" "character 10), MacOS uses the carriage return (ASCII character 13), and " "Windows uses a two-character sequence of a carriage return plus a newline." msgstr "" +"Los tres principales sistemas operativos que se utilizan hoy en día son " +"Microsoft Windows, el sistema operativo Macintosh de Apple y los diversos " +"derivados de Unix. Una pequeña molestia del trabajo entre plataformas es " +"que estas tres plataformas utilizan diferentes caracteres para marcar el " +"final de las líneas en los archivos de texto. Unix utiliza el salto de " +"línea (carácter ASCII 10), MacOS utiliza el retorno de carro (carácter ASCII " +"13), y Windows utiliza una secuencia de dos caracteres de un retorno de " +"carro más una nueva línea." #: ../Doc/whatsnew/2.3.rst:384 msgid "" @@ -460,6 +607,13 @@ 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`." #: ../Doc/whatsnew/2.3.rst:391 msgid "" @@ -468,6 +622,10 @@ msgid "" "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." #: ../Doc/whatsnew/2.3.rst:396 msgid "" @@ -475,18 +633,21 @@ msgid "" "`!--without-universal-newlines` switch when running Python's :program:" "`configure` script." msgstr "" +"Esta función puede desactivarse al compilar Python especificando la opción :" +"option:`!--without-universal-newlines` al ejecutar el script :program:" +"`configure` de Python." #: ../Doc/whatsnew/2.3.rst:403 msgid ":pep:`278` - Universal Newline Support" -msgstr "" +msgstr ":pep:`278` - Soporte universal de nuevas líneas" #: ../Doc/whatsnew/2.3.rst:404 msgid "Written and implemented by Jack Jansen." -msgstr "" +msgstr "Escrito y ejecutado por Jack Jansen." #: ../Doc/whatsnew/2.3.rst:412 msgid "PEP 279: enumerate()" -msgstr "" +msgstr "PEP 279: enumerate()" #: ../Doc/whatsnew/2.3.rst:414 msgid "" @@ -495,26 +656,32 @@ msgid "" "sequence, returns an iterator that will return ``(0, thing[0])``, ``(1, " "thing[1])``, ``(2, thing[2])``, and so forth." msgstr "" +"Una nueva función incorporada, :func:`enumerate`, hará que ciertos bucles " +"sean un poco más claros. ``enumerate(cosa)``, donde *cosa* es un iterador o " +"una secuencia, retorna un iterador que retornará ``(0, cosa[0])``, ``(1, " +"cosa[1])``, ``(2, cosa[2])``, y así sucesivamente." #: ../Doc/whatsnew/2.3.rst:419 msgid "A common idiom to change every element of a list looks like this::" msgstr "" +"Un modismo común para cambiar cada elemento de una lista tiene el siguiente " +"aspecto::" #: ../Doc/whatsnew/2.3.rst:426 msgid "This can be rewritten using :func:`enumerate` as::" -msgstr "" +msgstr "Esto se puede reescribir usando :func:`enumerate` como::" #: ../Doc/whatsnew/2.3.rst:435 msgid ":pep:`279` - The enumerate() built-in function" -msgstr "" +msgstr ":pep:`279` - La función incorporada enumerate()" #: ../Doc/whatsnew/2.3.rst:436 msgid "Written and implemented by Raymond D. Hettinger." -msgstr "" +msgstr "Escrito y ejecutado por Raymond D. Hettinger." #: ../Doc/whatsnew/2.3.rst:442 msgid "PEP 282: The logging Package" -msgstr "" +msgstr "PEP 282: El paquete de registro" #: ../Doc/whatsnew/2.3.rst:444 msgid "" @@ -527,6 +694,15 @@ msgid "" "log, or even e-mail them to a particular address; of course, it's also " "possible to write your own handler classes." msgstr "" +"Se ha añadido a Python 2.3 un paquete estándar para escribir registros, :mod:" +"`logging`. Proporciona un mecanismo potente y flexible para generar salidas " +"de registro que pueden ser filtradas y procesadas de varias maneras. Se " +"puede utilizar un archivo de configuración escrito en un formato estándar " +"para controlar el comportamiento de registro de un programa. Python incluye " +"manejadores que escribirán los registros en el error estándar o en un " +"archivo o socket, los enviarán al registro del sistema, o incluso los " +"enviarán por correo electrónico a una dirección particular; por supuesto, " +"también es posible escribir tus propias clases de manejadores." #: ../Doc/whatsnew/2.3.rst:453 msgid "" @@ -542,16 +718,30 @@ msgid "" "auth`` and ``server.network``. There's also a root :class:`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." #: ../Doc/whatsnew/2.3.rst:464 msgid "" "For simple uses, the :mod:`logging` package contains some convenience " "functions that always use the root log::" msgstr "" +"Para usos sencillos, el paquete :mod:`logging` contiene algunas funciones de " +"conveniencia que siempre utilizan la raíz log::" #: ../Doc/whatsnew/2.3.rst:475 ../Doc/whatsnew/2.3.rst:500 msgid "This produces the following output::" -msgstr "" +msgstr "Esto produce la siguiente salida::" #: ../Doc/whatsnew/2.3.rst:481 msgid "" @@ -560,6 +750,10 @@ msgid "" "display of informational and debugging messages by calling the :meth:" "`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 " +"visualización de mensajes informativos y de depuración llamando al método :" +"meth:`setLevel` del registrador raíz." #: ../Doc/whatsnew/2.3.rst:486 msgid "" @@ -567,6 +761,10 @@ msgid "" "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 " +"argumentos ``(msg, arg1, arg2, ...)`` y registran la cadena resultante de " +"``msg % (arg1, arg2, ...)``." #: ../Doc/whatsnew/2.3.rst:490 msgid "" @@ -574,6 +772,10 @@ msgid "" "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*. ::" #: ../Doc/whatsnew/2.3.rst:508 msgid "" @@ -582,6 +784,10 @@ msgid "" "creating it if it doesn't exist yet. ``getLogger(None)`` returns the root " "logger. ::" msgstr "" +"Los programas un poco más avanzados utilizarán un logger distinto del logger " +"raíz. La función ``getLogger(nombre)`` se utiliza para obtener un registro " +"en particular, creándolo si aún no existe. ``getLogger(None)`` retorna el " +"logger raíz. ::" #: ../Doc/whatsnew/2.3.rst:519 msgid "" @@ -590,6 +796,10 @@ msgid "" "`Logger` can prevent this by setting its :attr:`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`." #: ../Doc/whatsnew/2.3.rst:523 msgid "" @@ -603,6 +813,16 @@ msgid "" "by a :class:`Formatter` 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 pueden ser " +"personalizadas. Cuando una instancia de :class:`Logger` recibe la orden de " +"registrar un mensaje, crea una instancia de :class:`LogRecord` que se envía " +"a cualquier número de instancias de :class:`Handler` diferentes. Los " +"loggers y handlers también pueden tener una lista adjunta de filtros, y cada " +"filtro puede hacer que el :class:`LogRecord` sea ignorado o puede modificar " +"el registro antes de pasarlo. Cuando finalmente se emiten, las instancias " +"de :class:`LogRecord` se convierten en texto mediante una clase :class:" +"`Formatter`. Todas estas clases pueden ser reemplazadas por tus propias " +"clases especialmente escritas." #: ../Doc/whatsnew/2.3.rst:533 msgid "" @@ -612,18 +832,23 @@ msgid "" "documentation for all of the details. Reading :pep:`282` will also be " "helpful." msgstr "" +"Con todas estas características, el paquete :mod:`logging` debería " +"proporcionar suficiente flexibilidad incluso para las aplicaciones más " +"complicadas. Esto es sólo un resumen incompleto de sus características, así " +"que por favor consulte la documentación de referencia del paquete para todos " +"los detalles. La lectura de :pep:`282` también será útil." #: ../Doc/whatsnew/2.3.rst:541 msgid ":pep:`282` - A Logging System" -msgstr "" +msgstr ":pep:`282` - Un sistema de registro" #: ../Doc/whatsnew/2.3.rst:542 msgid "Written by Vinay Sajip and Trent Mick; implemented by Vinay Sajip." -msgstr "" +msgstr "Escrito por Vinay Sajip y Trent Mick; implementado por Vinay Sajip." #: ../Doc/whatsnew/2.3.rst:550 msgid "PEP 285: A Boolean Type" -msgstr "" +msgstr "PEP 285: Un tipo booleano" #: ../Doc/whatsnew/2.3.rst:552 msgid "" @@ -633,6 +858,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)" #: ../Doc/whatsnew/2.3.rst:558 msgid "" @@ -640,12 +870,17 @@ msgid "" "for it takes any Python value and converts it to :const:`True` or :const:" "`False`. ::" msgstr "" +"El objeto de tipo para este nuevo tipo se denomina :class:`bool`; su " +"constructor toma cualquier valor de Python y lo convierte en :const:`True` " +"o :const:`False`. ::" #: ../Doc/whatsnew/2.3.rst:570 msgid "" "Most of the standard library modules and built-in functions have been " "changed to return Booleans. ::" msgstr "" +"La mayoría de los módulos de la biblioteca estándar y las funciones " +"incorporadas se han modificado para retornar booleanos. ::" #: ../Doc/whatsnew/2.3.rst:581 msgid "" @@ -656,6 +891,12 @@ msgid "" "the statement is ``return True``, however, the meaning of the return value " "is quite clear." msgstr "" +"Los booleanos de Python se añadieron con el objetivo principal de hacer el " +"código más claro. Por ejemplo, si estás leyendo una función y te encuentras " +"con la sentencia ``return 1``, podrías preguntarte si el ``1`` representa un " +"valor de verdad booleano, un índice o un coeficiente que multiplica alguna " +"otra cantidad. Sin embargo, si la sentencia es ``return True``, el " +"significado del valor de retorno es bastante claro." #: ../Doc/whatsnew/2.3.rst:587 msgid "" @@ -669,6 +910,15 @@ msgid "" "a subclass of the :class:`int` class so that arithmetic using a Boolean " "still works. ::" msgstr "" +"Los booleanos de Python *no* se añadieron en aras de una comprobación de " +"tipos estricta. Un lenguaje muy estricto como Pascal también le impediría " +"realizar aritmética con booleanos, y requeriría que la expresión en una " +"declaración :keyword:`if` siempre se evaluara a un resultado booleano. " +"Python no es tan estricto y nunca lo será, como dice explícitamente :pep:" +"`285`. Esto significa que puede utilizar cualquier expresión en una " +"sentencia :keyword:`!if`, incluso las que se evalúan a una lista o tupla o " +"algún objeto aleatorio. El tipo Booleano es una subclase de la clase :class:" +"`int` por lo que la aritmética que utiliza un Booleano sigue funcionando. ::" #: ../Doc/whatsnew/2.3.rst:605 msgid "" @@ -677,18 +927,22 @@ msgid "" "difference that :func:`str` and :func:`repr` return the strings ``'True'`` " "and ``'False'`` instead of ``'1'`` and ``'0'``." msgstr "" +"Para resumir :const:`True` and :const:`False` en una frase: son formas " +"alternativas de deletrear los valores enteros 1 y 0, con la única diferencia " +"de que :func:`str` y :func:`repr` retornan las cadenas ``Verdadero`` y " +"``Falso`` en lugar de ``1`` y ``0``." #: ../Doc/whatsnew/2.3.rst:613 msgid ":pep:`285` - Adding a bool type" -msgstr "" +msgstr ":pep:`285` - Añadir un tipo booleano" #: ../Doc/whatsnew/2.3.rst:614 msgid "Written and implemented by GvR." -msgstr "" +msgstr "Escrito y ejecutado por GvR." #: ../Doc/whatsnew/2.3.rst:620 msgid "PEP 293: Codec Error Handling Callbacks" -msgstr "" +msgstr "PEP 293: Llamadas de retorno para el manejo de errores del códec" #: ../Doc/whatsnew/2.3.rst:622 msgid "" @@ -701,6 +955,14 @@ msgid "" "inserting an XML character reference or HTML entity reference into the " "converted string." msgstr "" +"Al codificar una cadena Unicode en una cadena de bytes, pueden encontrarse " +"caracteres no codificables. Hasta ahora, Python ha permitido especificar el " +"procesamiento del error como \"estricto\" (lanzando :exc:`UnicodeError`), " +"\"ignorar\" (saltando el carácter), o \"reemplazar\" (usando un signo de " +"interrogación en la cadena de salida), siendo \"estricto\" el comportamiento " +"por defecto. Puede ser deseable especificar un procesamiento alternativo de " +"tales errores, como insertar una referencia de carácter XML o una referencia " +"de entidad HTML en la cadena convertida." #: ../Doc/whatsnew/2.3.rst:630 msgid "" @@ -713,6 +975,15 @@ msgid "" "target encoding. The handler can then either raise an exception or return a " "replacement string." msgstr "" +"Python tiene ahora un marco flexible para añadir diferentes estrategias de " +"procesamiento. Se pueden añadir nuevos manejadores de errores con :func:" +"`codecs.register_error`, y los códecs pueden acceder al manejador de errores " +"con :func:`codecs.lookup_error`. Se ha añadido una API en C equivalente para " +"los códecs escritos en C. El gestor de errores obtiene la información de " +"estado necesaria, como la cadena que se está convirtiendo, la posición en la " +"cadena donde se ha detectado el error y la codificación de destino. El " +"controlador puede entonces lanzar una excepción o retornar una cadena de " +"reemplazo." #: ../Doc/whatsnew/2.3.rst:638 msgid "" @@ -720,24 +991,30 @@ msgid "" "\"backslashreplace\" uses Python backslash quoting to represent unencodable " "characters and \"xmlcharrefreplace\" emits XML character references." msgstr "" +"Se han implementado dos manejadores de error adicionales utilizando este " +"marco: \"backslashreplace\" utiliza las comillas de barra invertida de " +"Python para representar los caracteres no codificables y \"xmlcharrefreplace" +"\" emite referencias de caracteres XML." #: ../Doc/whatsnew/2.3.rst:645 msgid ":pep:`293` - Codec Error Handling Callbacks" -msgstr "" +msgstr ":pep:`293` - Retrollamadas de manejo de errores del códec" #: ../Doc/whatsnew/2.3.rst:646 msgid "Written and implemented by Walter Dörwald." -msgstr "" +msgstr "Escrito y ejecutado por Walter Dörwald." #: ../Doc/whatsnew/2.3.rst:654 msgid "PEP 301: Package Index and Metadata for Distutils" -msgstr "" +msgstr "PEP 301: Índice de paquetes y metadatos para Distutils" #: ../Doc/whatsnew/2.3.rst:656 msgid "" "Support for the long-requested Python catalog makes its first appearance in " "2.3." msgstr "" +"La compatibilidad con el catálogo de Python, largamente solicitada, hace su " +"primera aparición en 2.3." #: ../Doc/whatsnew/2.3.rst:658 msgid "" @@ -747,6 +1024,11 @@ msgid "" "it to a central catalog server. The resulting catalog is available from " "https://pypi.org." msgstr "" +"El corazón del catálogo es el nuevo comando :command:`register` de " +"Distutils. Ejecutando ``python setup.py register`` se recogen los metadatos " +"que describen un paquete, como su nombre, versión, mantenedor, descripción, " +"etc., y se envían a un servidor de catálogo central. El catálogo resultante " +"está disponible en https://pypi.org." #: ../Doc/whatsnew/2.3.rst:664 msgid "" @@ -755,30 +1037,38 @@ msgid "" "`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." #: ../Doc/whatsnew/2.3.rst:669 msgid "" "Here's an example :file:`setup.py` with classifiers, written to be " "compatible with older versions of the Distutils::" msgstr "" +"Aquí hay un ejemplo :file:`setup.py` con clasificadores, escrito para que " +"sea compatible con las versiones más antiguas de Distutils::" #: ../Doc/whatsnew/2.3.rst:688 msgid "" "The full list of classifiers can be obtained by running ``python setup.py " "register --list-classifiers``." msgstr "" +"La lista completa de clasificadores se puede obtener ejecutando ``python " +"setup.py register --list-classifiers``." #: ../Doc/whatsnew/2.3.rst:694 msgid ":pep:`301` - Package Index and Metadata for Distutils" -msgstr "" +msgstr ":pep:`301` - Índice de paquetes y metadatos para Distutils" #: ../Doc/whatsnew/2.3.rst:695 msgid "Written and implemented by Richard Jones." -msgstr "" +msgstr "Escrito y ejecutado por Richard Jones." #: ../Doc/whatsnew/2.3.rst:703 msgid "PEP 302: New Import Hooks" -msgstr "" +msgstr "PEP 302: Nuevos ganchos de importación" #: ../Doc/whatsnew/2.3.rst:705 msgid "" @@ -789,6 +1079,12 @@ 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." #: ../Doc/whatsnew/2.3.rst:712 msgid "" @@ -796,6 +1092,9 @@ msgid "" "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`:" #: ../Doc/whatsnew/2.3.rst:716 msgid "" @@ -804,12 +1103,19 @@ msgid "" "an importer object that will handle imports from this path or raises an :exc:" "`ImportError` exception if it can't handle this path." msgstr "" +"``sys.path_hooks`` es una lista de objetos invocables; la mayoría de las " +"veces serán clases. Cada llamada toma una cadena que contiene una ruta y " +"retorna un objeto importador que manejará las importaciones desde esta ruta " +"o lanza una excepción :exc:`ImportError` si no puede manejar esta ruta." #: ../Doc/whatsnew/2.3.rst:721 msgid "" "``sys.path_importer_cache`` caches importer objects for each path, so ``sys." "path_hooks`` will only need to be traversed once for each path." msgstr "" +"``sys.path_importer_cache`` almacena en caché los objetos del importador " +"para cada ruta, por lo que ``sys.path_hooks`` sólo tendrá que ser recorrido " +"una vez para cada ruta." #: ../Doc/whatsnew/2.3.rst:724 msgid "" @@ -818,6 +1124,11 @@ msgid "" "can add objects to it. Additional built-in and frozen modules can be " "imported by an object added to this list." msgstr "" +"``sys.meta_path`` es una lista de objetos importadores que se recorrerán " +"antes de comprobar ``sys.path``. Esta lista está inicialmente vacía, pero " +"el código de usuario puede añadir objetos a ella. Los módulos adicionales " +"incorporados y congelados pueden ser importados por un objeto añadido a esta " +"lista." #: ../Doc/whatsnew/2.3.rst:729 msgid "" @@ -827,25 +1138,35 @@ msgid "" "has a single method, ``load_module(fullname)``, that creates and returns the " "corresponding module object." msgstr "" +"Los objetos importadores deben tener un único método, " +"``find_module(fullname, path=None)``. *fullname* será un nombre de módulo o " +"paquete, por ejemplo ``string`` o ``distutils.core``. :meth:`find_module` " +"debe retornar un objeto cargador que tenga un único método, " +"``load_module(fullname)``, que cree y retorne el objeto módulo " +"correspondiente." #: ../Doc/whatsnew/2.3.rst:735 msgid "" "Pseudo-code for Python's new import logic, therefore, looks something like " "this (simplified a bit; see :pep:`302` for the full details)::" msgstr "" +"Por lo tanto, el pseudocódigo de la nueva lógica de importación de Python es " +"algo así (simplificado un poco; véase :pep:`302` para los detalles " +"completos)::" #: ../Doc/whatsnew/2.3.rst:760 msgid ":pep:`302` - New Import Hooks" -msgstr "" +msgstr ":pep:`302` - Nuevos ganchos de importación" #: ../Doc/whatsnew/2.3.rst:761 msgid "" "Written by Just van Rossum and Paul Moore. Implemented by Just van Rossum." msgstr "" +"Escrito por Just van Rossum y Paul Moore. Implementado por Just van Rossum." #: ../Doc/whatsnew/2.3.rst:769 msgid "PEP 305: Comma-separated Files" -msgstr "" +msgstr "PEP 305: Archivos separados por comas" #: ../Doc/whatsnew/2.3.rst:771 msgid "" @@ -853,22 +1174,31 @@ msgid "" "databases and spreadsheets. Python 2.3 adds a parser for comma-separated " "files." msgstr "" +"Los archivos separados por comas son un formato frecuentemente utilizado " +"para exportar datos de bases de datos y hojas de cálculo. Python 2.3 añade " +"un analizador de archivos separados por comas." #: ../Doc/whatsnew/2.3.rst:774 msgid "Comma-separated format is deceptively simple at first glance::" msgstr "" +"El formato separado por comas es engañosamente sencillo a primera vista::" #: ../Doc/whatsnew/2.3.rst:778 msgid "" "Read a line and call ``line.split(',')``: what could be simpler? But toss in " "string data that can contain commas, and things get more complicated::" msgstr "" +"Leer una línea y llamar a ``line.split(',')``: ¿qué puede ser más sencillo? " +"Pero si se añaden datos de cadena que pueden contener comas, las cosas se " +"complican::" #: ../Doc/whatsnew/2.3.rst:783 msgid "" "A big ugly regular expression can parse this, but using the new :mod:`csv` " "package is much simpler::" msgstr "" +"Una expresión regular grande y fea puede analizar esto, pero usar el nuevo " +"paquete :mod:`csv` es mucho más sencillo::" #: ../Doc/whatsnew/2.3.rst:793 msgid "" @@ -876,6 +1206,9 @@ msgid "" "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." #: ../Doc/whatsnew/2.3.rst:797 msgid "" @@ -884,20 +1217,27 @@ msgid "" "class:`csv.writer` class will generate comma-separated files from a " "succession of tuples or lists, quoting strings that contain the delimiter." msgstr "" +"Se pueden definir y registrar diferentes dialectos de archivos separados por " +"comas; actualmente hay dos dialectos, ambos utilizados por Microsoft Excel. " +"Una clase :class:`csv.writer` independiente generará archivos separados por " +"comas a partir de una sucesión de tuplas o listas, citando cadenas que " +"contengan el delimitador." #: ../Doc/whatsnew/2.3.rst:806 msgid ":pep:`305` - CSV File API" -msgstr "" +msgstr ":pep:`305` - API de archivos CSV" #: ../Doc/whatsnew/2.3.rst:806 msgid "" "Written and implemented by Kevin Altis, Dave Cole, Andrew McNamara, Skip " "Montanaro, Cliff Wells." msgstr "" +"Escrito y realizado por Kevin Altis, Dave Cole, Andrew McNamara, Skip " +"Montanaro, Cliff Wells." #: ../Doc/whatsnew/2.3.rst:815 msgid "PEP 307: Pickle Enhancements" -msgstr "" +msgstr "PEP 307: Mejoras en Pickle" #: ../Doc/whatsnew/2.3.rst:817 msgid "" @@ -907,6 +1247,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." #: ../Doc/whatsnew/2.3.rst:823 msgid "" @@ -917,6 +1263,13 @@ msgid "" "format. A new constant, :const:`pickle.HIGHEST_PROTOCOL`, can be used to " "select the fanciest protocol available." msgstr "" +"La solución fue inventar un nuevo protocolo pickle. La función :func:" +"`pickle.dumps` soporta desde hace tiempo una bandera de texto o binario. En " +"la versión 2.3, esta bandera se ha redefinido, pasando de ser un booleano a " +"un entero: 0 es el antiguo formato pickle en modo texto, 1 es el antiguo " +"formato binario, y ahora 2 es un nuevo formato específico de 2.3. Una nueva " +"constante, :const:`pickle.HIGHEST_PROTOCOL`, puede utilizarse para " +"seleccionar el protocolo más elegante disponible." #: ../Doc/whatsnew/2.3.rst:830 msgid "" @@ -926,6 +1279,12 @@ 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." #: ../Doc/whatsnew/2.3.rst:836 msgid "" @@ -934,6 +1293,11 @@ msgid "" "`__getstate__`, :meth:`__setstate__`, and :meth:`__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." #: ../Doc/whatsnew/2.3.rst:841 msgid "" @@ -942,18 +1306,23 @@ msgid "" "Software Foundation will maintain a list of standardized codes; there's also " "a range of codes for private use. Currently no codes have been specified." msgstr "" +"Como forma de comprimir aún más los pickles, ahora es posible utilizar " +"códigos enteros en lugar de cadenas largas para identificar las clases " +"serializadas. La Python Software Foundation mantendrá una lista de códigos " +"estandarizados; también hay una gama de códigos para uso privado. " +"Actualmente no se ha especificado ningún código." #: ../Doc/whatsnew/2.3.rst:849 msgid ":pep:`307` - Extensions to the pickle protocol" -msgstr "" +msgstr ":pep:`307` - Extensiones del protocolo pickle" #: ../Doc/whatsnew/2.3.rst:850 msgid "Written and implemented by Guido van Rossum and Tim Peters." -msgstr "" +msgstr "Escrito y ejecutado por Guido van Rossum y Tim Peters." #: ../Doc/whatsnew/2.3.rst:858 msgid "Extended Slices" -msgstr "" +msgstr "Rebanadas ampliadas" #: ../Doc/whatsnew/2.3.rst:860 msgid "" @@ -965,21 +1334,33 @@ msgid "" "sequence types have never supported this feature, raising a :exc:`TypeError` " "if you tried it. Michael Hudson contributed a patch to fix this shortcoming." msgstr "" +"Desde la versión 1.4 de Python, la sintaxis de corte admite un tercer " +"argumento opcional \"paso\" o \"zancada\". Por ejemplo, estas son todas las " +"sintaxis legales de Python: ``L[1:10:2]``, ``L[:-1:1]``, ``L[::-1]``. Esto " +"se añadió a Python a petición de los desarrolladores de Numerical Python, " +"que utiliza ampliamente el tercer argumento. Sin embargo, los tipos de " +"secuencias de listas, tuplas y cadenas incorporados en Python nunca han " +"soportado esta característica, y lanzan un :exc:`TypeError` si lo intentas. " +"Michael Hudson ha contribuido con un parche para solucionar este problema." #: ../Doc/whatsnew/2.3.rst:868 msgid "" "For example, you can now easily extract the elements of a list that have " "even indexes::" msgstr "" +"Por ejemplo, ahora puede extraer fácilmente los elementos de una lista que " +"tengan índices pares::" #: ../Doc/whatsnew/2.3.rst:875 msgid "" "Negative values also work to make a copy of the same list in reverse order::" msgstr "" +"Los valores negativos también sirven para hacer una copia de la misma lista " +"en orden inverso::" #: ../Doc/whatsnew/2.3.rst:880 msgid "This also works for tuples, arrays, and strings::" -msgstr "" +msgstr "Esto también funciona para tuplas, arrays y cadenas::" #: ../Doc/whatsnew/2.3.rst:888 msgid "" @@ -988,6 +1369,10 @@ msgid "" "assignment to extended and regular slices. Assignment to a regular slice " "can be used to change the length of the sequence::" msgstr "" +"Si tienes una secuencia mutable, como una lista o un array, puedes asignar o " +"eliminar una rebanada extendida, pero hay algunas diferencias entre la " +"asignación a rebanadas extendidas y regulares. La asignación a una rebanada " +"regular se puede utilizar para cambiar la longitud de la secuencia::" #: ../Doc/whatsnew/2.3.rst:900 msgid "" @@ -995,20 +1380,25 @@ msgid "" "the list on the right hand side of the statement must contain the same " "number of items as the slice it is replacing::" msgstr "" +"Las rebanadas extendidas no son tan flexibles. Cuando se asigna a una " +"rebanada extendida, la lista a la derecha de la declaración debe contener el " +"mismo número de elementos que la rebanada que está reemplazando::" #: ../Doc/whatsnew/2.3.rst:917 msgid "Deletion is more straightforward::" -msgstr "" +msgstr "La eliminación es más sencilla::" #: ../Doc/whatsnew/2.3.rst:928 msgid "" "One can also now pass slice objects to the :meth:`__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::" #: ../Doc/whatsnew/2.3.rst:934 msgid "Or use slice objects directly in subscripts::" -msgstr "" +msgstr "O utilizar los objetos de corte directamente en los subíndices::" #: ../Doc/whatsnew/2.3.rst:939 msgid "" @@ -1020,6 +1410,13 @@ msgid "" "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í::" #: ../Doc/whatsnew/2.3.rst:957 msgid "" @@ -1028,28 +1425,38 @@ msgid "" "This is consistent with Python 2.2, where :class:`int`, :class:`str`, etc., " "underwent the same change." msgstr "" +"En este ejemplo también se puede ver que el objeto incorporado :class:" +"`slice` es ahora el objeto tipo para el tipo slice, y ya no es una función. " +"Esto es consistente con Python 2.2, donde :class:`int`, :class:`str`, etc., " +"sufrieron el mismo cambio." #: ../Doc/whatsnew/2.3.rst:966 msgid "Other Language Changes" -msgstr "" +msgstr "Otros cambios en el lenguaje" #: ../Doc/whatsnew/2.3.rst:968 msgid "" "Here are all of the changes that Python 2.3 makes to the core Python " "language." msgstr "" +"Estos son todos los cambios que Python 2.3 introduce en el núcleo del " +"lenguaje Python." #: ../Doc/whatsnew/2.3.rst:970 msgid "" "The :keyword:`yield` statement is now always a keyword, as described in " "section :ref:`section-generators` of this document." msgstr "" +"La expresión :keyword:`yield` es ahora siempre una palabra clave, como se " +"describe en la sección :ref:`section-generators` de este documento." #: ../Doc/whatsnew/2.3.rst:973 msgid "" "A new built-in function :func:`enumerate` was added, as described in " "section :ref:`section-enumerate` of this document." msgstr "" +"Se ha añadido una nueva función incorporada :func:`enumerate`, como se " +"describe en la sección :ref:`section-enumerate` de este documento." #: ../Doc/whatsnew/2.3.rst:976 msgid "" @@ -1057,6 +1464,9 @@ msgid "" "the built-in :class:`bool` type, as described in section :ref:`section-bool` " "of this document." msgstr "" +"Se han añadido dos nuevas constantes, :const:`True` y :const:`False` junto " +"con el tipo incorporado :class:`bool`, como se describe en la sección :ref:" +"`section-bool` de este documento." #: ../Doc/whatsnew/2.3.rst:980 msgid "" @@ -1066,12 +1476,19 @@ msgid "" "that ``isinstance(int(expression), int)`` is false, but that seems unlikely " "to cause problems in practice." msgstr "" +"El constructor de tipo :func:`int` ahora retornará un entero largo en lugar " +"de lanzar un :exc:`OverflowError` cuando una cadena o un número de punto " +"flotante es demasiado grande para caber en un entero. Esto puede llevar al " +"resultado paradójico de que ``isinstance(int(expresión), int)`` sea falso, " +"pero parece poco probable que cause problemas en la práctica." #: ../Doc/whatsnew/2.3.rst:986 msgid "" "Built-in types now support the extended slicing syntax, as described in " "section :ref:`section-slices` of this document." msgstr "" +"Los tipos incorporados ahora soportan la sintaxis de rebanado extendida, " +"como se describe en la sección :ref:`section-slices` de este documento." #: ../Doc/whatsnew/2.3.rst:989 msgid "" @@ -1080,6 +1497,10 @@ msgid "" "accepts numbers, meaning that you can't use it to concatenate a bunch of " "strings. (Contributed by Alex Martelli.)" msgstr "" +"Una nueva función incorporada, ``suma(iterable, start=0)``, suma los " +"elementos numéricos en el objeto iterable y retorna su suma. :func:`suma` " +"sólo acepta números, lo que significa que no se puede utilizar para " +"concatenar un montón de cadenas. (Contribución de Alex Martelli)" #: ../Doc/whatsnew/2.3.rst:994 msgid "" @@ -1088,6 +1509,10 @@ msgid "" "consistent with slice indexing, so when *pos* is -1 the value will be " "inserted before the last element, and so forth." msgstr "" +"``list.insert(pos, valor)`` solía insertar *valor* al principio de la lista " +"cuando *pos* era negativo. El comportamiento ha sido cambiado para ser " +"consistente con la indexación de las rebanadas, así que cuando *pos* es -1 " +"el valor será insertado antes del último elemento, y así sucesivamente." #: ../Doc/whatsnew/2.3.rst:999 msgid "" @@ -1095,6 +1520,9 @@ msgid "" "returns its index, now takes optional *start* and *stop* arguments to limit " "the search to only part of the list." msgstr "" +"``list.index(value)``, que busca *valor* dentro de la lista y retorna su " +"índice, ahora toma los argumentos opcionales *start* y *stop* para limitar " +"la búsqueda sólo a una parte de la lista." #: ../Doc/whatsnew/2.3.rst:1003 msgid "" @@ -1103,6 +1531,11 @@ msgid "" "dictionary. If the requested key isn't present in the dictionary, *default* " "is returned if it's specified and :exc:`KeyError` raised if it isn't. ::" msgstr "" +"Los diccionarios tienen un nuevo método, ``pop(key[, *default*])``, que " +"retorna el valor correspondiente a *key* y elimina ese par clave/valor del " +"diccionario. Si la clave solicitada no está presente en el diccionario, se " +"retorna *default* si está especificada y se lanza :exc:`KeyError` si no lo " +"está:" #: ../Doc/whatsnew/2.3.rst:1025 msgid "" @@ -1110,20 +1543,26 @@ msgid "" "creates a dictionary with keys taken from the supplied iterator *iterable* " "and all values set to *value*, defaulting to ``None``." msgstr "" +"También hay un nuevo método de clase, ``dict.fromkeys(iterable, value)``, " +"que crea un diccionario con claves tomadas del iterador *iterable* " +"suministrado y todos los valores establecidos a *value*, por defecto a " +"``None``." #: ../Doc/whatsnew/2.3.rst:1029 msgid "(Patches contributed by Raymond Hettinger.)" -msgstr "" +msgstr "(Parches aportados por Raymond Hettinger)" #: ../Doc/whatsnew/2.3.rst:1031 msgid "" "Also, the :func:`dict` constructor now accepts keyword arguments to simplify " "creating small dictionaries::" msgstr "" +"Además, el constructor :func:`dict` ahora acepta argumentos de palabras " +"clave para simplificar la creación de pequeños diccionarios::" #: ../Doc/whatsnew/2.3.rst:1037 msgid "(Contributed by Just van Rossum.)" -msgstr "" +msgstr "(Contribución de Just van Rossum.)" #: ../Doc/whatsnew/2.3.rst:1039 msgid "" @@ -1132,6 +1571,10 @@ msgid "" "Python with the :option:`-O` switch will still generate code that doesn't " "execute any assertions." msgstr "" +"La expresión :keyword:`assert` ya no comprueba la bandera ``debug__``, por " +"lo que ya no se pueden desactivar las aserciones asignando a ``__debug__``. " +"Ejecutar Python con la opción :option:`-O` seguirá generando código que no " +"ejecute ninguna aserción." #: ../Doc/whatsnew/2.3.rst:1044 msgid "" @@ -1141,6 +1584,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:" #: ../Doc/whatsnew/2.3.rst:1059 msgid "" @@ -1151,6 +1600,12 @@ msgid "" "PendingDeprecationWarning:: <-W>` on the command line or use :func:`warnings." "filterwarnings`." msgstr "" +"Se ha añadido una nueva advertencia, :exc:`PendingDeprecationWarning` para " +"indicar las características que están en proceso de ser obsoletas. La " +"advertencia no se imprimirá por defecto. Para comprobar el uso de funciones " +"que quedarán obsoletas en el futuro, proporcione :option:`-Walways::" +"PendingDeprecationWarning:: <-W>` en la línea de comandos o utilice :func:" +"`warnings.filterwarnings`." #: ../Doc/whatsnew/2.3.rst:1065 msgid "" @@ -1158,6 +1613,9 @@ msgid "" "occurred\"``, has begun. Raising a string will now trigger :exc:" "`PendingDeprecationWarning`." msgstr "" +"Ha comenzado el proceso de desaprobación de las excepciones basadas en " +"cadenas, como en ``lanzamiento de \"Error ocurred”``. Al lanzar una cadena, " +"ahora se activará :exc:`PendingDeprecationWarning`." #: ../Doc/whatsnew/2.3.rst:1069 msgid "" @@ -1165,6 +1623,9 @@ msgid "" "warning. In a future version of Python, ``None`` may finally become a " "keyword." msgstr "" +"El uso de ``None`` como nombre de una variable ahora resultará en una " +"advertencia :exc:`SyntaxWarning`. En una futura versión de Python, ``None`` " +"podría convertirse en una palabra clave." #: ../Doc/whatsnew/2.3.rst:1072 msgid "" @@ -1176,6 +1637,15 @@ 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 " +"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 msgid "" @@ -1192,6 +1662,19 @@ 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 los métodos utilizados por las clases del nuevo " +"estilo ha cambiado, aunque sólo 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 utilizaba una " +"ordenación topológica de los ancestros de una clase, pero 2.3 ahora utiliza " +"el algoritmo C3 como se describe en el artículo `\"A Monotonic Superclass " +"Linearization for Dylan\" `_. Para entender la motivación de este cambio, lea el " +"artículo de Michele Simionato `\"Python 2.3 Method Resolution Order\" " +"`_, 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." #: ../Doc/whatsnew/2.3.rst:1093 msgid "" @@ -1203,6 +1686,13 @@ 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`." #: ../Doc/whatsnew/2.3.rst:1101 msgid "" @@ -1211,10 +1701,15 @@ msgid "" "``'.'`` in front of the type name. For example, in Python 2.2, if you " "created a socket and printed its :attr:`__class__`, you'd get this output::" 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::" #: ../Doc/whatsnew/2.3.rst:1110 msgid "In 2.3, you get this::" -msgstr "" +msgstr "En 2.3, se obtiene esto::" #: ../Doc/whatsnew/2.3.rst:1115 msgid "" @@ -1225,10 +1720,16 @@ msgid "" "lines of those relating to assigning to an instance's :attr:`~instance." "__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." #: ../Doc/whatsnew/2.3.rst:1125 msgid "String Changes" -msgstr "" +msgstr "Cambios en las cadenas de texto" #: ../Doc/whatsnew/2.3.rst:1127 msgid "" @@ -1238,12 +1739,20 @@ msgid "" "and ``X in Y`` will return :const:`True` if *X* is a substring of *Y*. If " "*X* is the empty string, the result is always :const:`True`. ::" msgstr "" +"El operador :keyword:`in` ahora funciona de forma diferente para las " +"cadenas. Antes, cuando se evaluaba ``X en Y`` donde *X* y *Y* eran cadenas, " +"*X* sólo podía ser un único carácter. Esto ha cambiado; *X* puede ser una " +"cadena de cualquier longitud, y ``X en Y`` retornará :const:`True` si *X* es " +"una subcadena de *Y*. Si *X* es una cadena vacía, el resultado es siempre :" +"const:`True`. ::" #: ../Doc/whatsnew/2.3.rst:1140 msgid "" "Note that this doesn't tell you where the substring starts; if you need that " "information, use the :meth:`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." #: ../Doc/whatsnew/2.3.rst:1143 msgid "" @@ -1251,16 +1760,22 @@ msgid "" "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::" #: ../Doc/whatsnew/2.3.rst:1157 msgid "(Suggested by Simon Brunning and implemented by Walter Dörwald.)" -msgstr "" +msgstr "(Sugerido por Simon Brunning y aplicado por Walter Dörwald)" #: ../Doc/whatsnew/2.3.rst:1159 msgid "" "The :meth:`startswith` and :meth:`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*." #: ../Doc/whatsnew/2.3.rst:1162 msgid "" @@ -1269,10 +1784,14 @@ msgid "" "left until it's the specified width. Note that the ``%`` operator is still " "more flexible and powerful than :meth:`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`. ::" #: ../Doc/whatsnew/2.3.rst:1174 msgid "(Contributed by Walter Dörwald.)" -msgstr "" +msgstr "(Contribución de Walter Dörwald.)" #: ../Doc/whatsnew/2.3.rst:1176 msgid "" @@ -1281,6 +1800,11 @@ msgid "" "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 " +"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`." #: ../Doc/whatsnew/2.3.rst:1181 msgid "" @@ -1288,22 +1812,30 @@ msgid "" "the usual way when the only reference to them is from the internal " "dictionary of interned strings. (Implemented by Oren Tirosh.)" msgstr "" +"Las cadenas internas ya no son inmortales y ahora serán recolectadas de la " +"forma habitual cuando la única referencia a ellas sea desde el diccionario " +"interno de cadenas internas. (Implementado por Oren Tirosh)" #: ../Doc/whatsnew/2.3.rst:1189 msgid "Optimizations" -msgstr "" +msgstr "Optimizaciones" #: ../Doc/whatsnew/2.3.rst:1191 msgid "" "The creation of new-style class instances has been made much faster; they're " "now faster than classic classes!" msgstr "" +"La creación de instancias de clases de estilo nuevo se ha hecho mucho más " +"rápida; ¡ahora son más rápidas que las clases clásicas!" #: ../Doc/whatsnew/2.3.rst:1194 msgid "" "The :meth:`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 " +"rápida." #: ../Doc/whatsnew/2.3.rst:1197 msgid "" @@ -1313,6 +1845,11 @@ msgid "" "(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)" #: ../Doc/whatsnew/2.3.rst:1202 msgid "" @@ -1320,6 +1857,10 @@ msgid "" "increase, depending on your compiler's idiosyncrasies. See section :ref:" "`23section-other` for a longer explanation. (Removed by Michael Hudson.)" msgstr "" +"El opcode ``SET_LINENO`` ha desaparecido. Esto puede proporcionar un " +"pequeño aumento de velocidad, dependiendo de la idiosincrasia de su " +"compilador. Vea la sección :ref:`23section-other` para una explicación más " +"larga. (Eliminado por Michael Hudson)" #: ../Doc/whatsnew/2.3.rst:1206 msgid "" @@ -1327,6 +1868,9 @@ msgid "" "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)" #: ../Doc/whatsnew/2.3.rst:1210 msgid "" @@ -1335,16 +1879,22 @@ msgid "" "(Implemented mostly by GvR, but lots of people have contributed single " "changes.)" msgstr "" +"Se han realizado una serie de pequeños reajustes en varios puntos " +"conflictivos para mejorar el rendimiento, como por ejemplo alinear una " +"función o eliminar algo de código. (Implementado principalmente por GvR, " +"pero mucha gente ha contribuido con cambios individuales)" #: ../Doc/whatsnew/2.3.rst:1214 msgid "" "The net result of the 2.3 optimizations is that Python 2.3 runs the pystone " "benchmark around 25% faster than Python 2.2." msgstr "" +"El resultado neto de las optimizaciones de la versión 2.3 es que Python 2.3 " +"ejecuta el benchmark pystone alrededor de un 25% f más rápido que Python 2.2." #: ../Doc/whatsnew/2.3.rst:1221 msgid "New, Improved, and Deprecated Modules" -msgstr "" +msgstr "Módulos nuevos, mejorados y obsoletos" #: ../Doc/whatsnew/2.3.rst:1223 msgid "" @@ -1354,6 +1904,12 @@ msgid "" "source tree for a more complete list of changes, or look through the CVS " "logs for all the details." msgstr "" +"Como es habitual, la biblioteca estándar de Python ha recibido una serie de " +"mejoras y correcciones de errores. Aquí hay una lista parcial de los " +"cambios más notables, ordenados alfabéticamente por nombre de módulo. " +"Consulte el archivo :file:`Misc/NEWS` en el árbol de fuentes para obtener " +"una lista más completa de los cambios, o busque en los registros de CVS para " +"obtener todos los detalles." #: ../Doc/whatsnew/2.3.rst:1228 msgid "" @@ -1362,6 +1918,11 @@ msgid "" "assignment operator to add another array's contents, and the ``*=`` " "assignment operator to repeat an array. (Contributed by Jason Orendorff.)" msgstr "" +"El módulo :mod:`array` soporta ahora matrices de caracteres Unicode que " +"utilizan el carácter de formato ``'u``. Las matrices también soportan ahora " +"el uso del operador de asignación ``+=`` para añadir el contenido de otra " +"matriz, y el operador de asignación ``*=`` para repetir una matriz. " +"(Contribución de Jason Orendorff)" #: ../Doc/whatsnew/2.3.rst:1233 msgid "" @@ -1369,6 +1930,10 @@ msgid "" "`_ 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 `_, proporcionando una interfaz más " +"completa para las características transaccionales de la biblioteca " +"BerkeleyDB." #: ../Doc/whatsnew/2.3.rst:1237 msgid "" @@ -1385,6 +1950,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 " +"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`." #: ../Doc/whatsnew/2.3.rst:1249 msgid "" @@ -1392,12 +1970,19 @@ msgid "" "library. bz2-compressed data is usually smaller than corresponding :mod:" "`zlib`\\ -compressed data. (Contributed by Gustavo Niemeyer.)" msgstr "" +"El nuevo módulo :mod:`bz2` es una interfaz para la biblioteca de compresión " +"de datos bz2. Los datos comprimidos con bz2 suelen ser más pequeños que los " +"correspondientes datos comprimidos con :mod:`zlib`. (Contribución de Gustavo " +"Niemeyer)" #: ../Doc/whatsnew/2.3.rst:1253 msgid "" "A set of standard date/time types has been added in the new :mod:`datetime` " "module. See the following section for more details." msgstr "" +"Se ha añadido un conjunto de tipos de fecha/hora estándar en el nuevo " +"módulo :mod:`datetime`. Consulte la siguiente sección para obtener más " +"detalles." #: ../Doc/whatsnew/2.3.rst:1256 msgid "" @@ -1408,12 +1993,20 @@ 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í::" #: ../Doc/whatsnew/2.3.rst:1267 msgid "" "Modifying :file:`sample.h` would then cause the module to be recompiled. " "(Contributed by Jeremy Hylton.)" msgstr "" +"La modificación de :file:`sample.h` haría que el módulo se recompilara. " +"(Contribución de Jeremy Hylton)" #: ../Doc/whatsnew/2.3.rst:1270 msgid "" @@ -1422,6 +2015,10 @@ msgid "" "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)." #: ../Doc/whatsnew/2.3.rst:1275 msgid "" @@ -1430,12 +2027,18 @@ msgid "" "private ones as well. The :func:`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`." #: ../Doc/whatsnew/2.3.rst:1280 msgid "" "The new ``gc.get_referents(object)`` function returns a list of all the " "objects referenced by *object*." msgstr "" +"La nueva función ``gc.get_referents(object)`` retorna una lista de todos los " +"objetos referenciados por *object*." #: ../Doc/whatsnew/2.3.rst:1283 msgid "" @@ -1446,20 +2049,29 @@ msgid "" "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::" #: ../Doc/whatsnew/2.3.rst:1294 msgid "(Contributed by Peter Åstrand.)" -msgstr "" +msgstr "(Contribución de Peter Åstrand.)" #: ../Doc/whatsnew/2.3.rst:1296 msgid "" "The :mod:`grp`, :mod:`pwd`, and :mod:`resource` modules now return enhanced " "tuples::" msgstr "" +"Los módulos :mod:`grp`, :mod:`pwd` y :mod:`resource` retornan ahora tuplas " +"mejoradas::" #: ../Doc/whatsnew/2.3.rst:1304 msgid "The :mod:`gzip` module can now handle files exceeding 2 GiB." -msgstr "" +msgstr "El módulo :mod:`gzip` ahora puede manejar archivos de más de 2 GiB." #: ../Doc/whatsnew/2.3.rst:1306 msgid "" @@ -1471,6 +2083,14 @@ msgid "" "is O(lg n). (See https://xlinux.nist.gov/dads//HTML/priorityque.html for " "more information about the priority queue data 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, " +"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)" #: ../Doc/whatsnew/2.3.rst:1314 msgid "" @@ -1479,10 +2099,14 @@ msgid "" "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::" #: ../Doc/whatsnew/2.3.rst:1332 msgid "(Contributed by Kevin O'Connor.)" -msgstr "" +msgstr "(Contribución de Kevin O'Connor.)" #: ../Doc/whatsnew/2.3.rst:1334 msgid "" @@ -1493,1019 +2117,9 @@ msgid "" "operations. IDLE's core code has been incorporated into the standard library " "as the :mod:`idlelib` package." msgstr "" - -#: ../Doc/whatsnew/2.3.rst:1340 -msgid "" -"The :mod:`imaplib` module now supports IMAP over SSL. (Contributed by Piers " -"Lauder and Tino Lange.)" -msgstr "" - -#: ../Doc/whatsnew/2.3.rst:1343 -msgid "" -"The :mod:`itertools` contains a number of useful functions for use with " -"iterators, inspired by various functions provided by the ML and Haskell " -"languages. For example, ``itertools.ifilter(predicate, iterator)`` returns " -"all elements in the iterator for which the function :func:`predicate` " -"returns :const:`True`, and ``itertools.repeat(obj, N)`` returns ``obj`` *N* " -"times. There are a number of other functions in the module; see the " -"package's reference documentation for details. (Contributed by Raymond " -"Hettinger.)" -msgstr "" - -#: ../Doc/whatsnew/2.3.rst:1352 -msgid "" -"Two new functions in the :mod:`math` module, ``degrees(rads)`` and " -"``radians(degs)``, convert between radians and degrees. Other functions in " -"the :mod:`math` module such as :func:`math.sin` and :func:`math.cos` have " -"always required input values measured in radians. Also, an optional *base* " -"argument was added to :func:`math.log` to make it easier to compute " -"logarithms for bases other than ``e`` and ``10``. (Contributed by Raymond " -"Hettinger.)" -msgstr "" - -#: ../Doc/whatsnew/2.3.rst:1359 -msgid "" -"Several new POSIX functions (:func:`getpgid`, :func:`killpg`, :func:" -"`lchown`, :func:`loadavg`, :func:`major`, :func:`makedev`, :func:`minor`, " -"and :func:`mknod`) were added to the :mod:`posix` module that underlies the :" -"mod:`os` module. (Contributed by Gustavo Niemeyer, Geert Jansen, and Denis " -"S. Otkidach.)" -msgstr "" - -#: ../Doc/whatsnew/2.3.rst:1365 -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 "" - -#: ../Doc/whatsnew/2.3.rst:1369 -msgid "" -"During testing, it was found that some applications will break if time " -"stamps are floats. For compatibility, when using the tuple interface of " -"the :class:`stat_result` time stamps will be represented as integers. When " -"using named fields (a feature first introduced in Python 2.2), time stamps " -"are still represented as integers, unless :func:`os.stat_float_times` is " -"invoked to enable float return values::" -msgstr "" - -#: ../Doc/whatsnew/2.3.rst:1382 -msgid "In Python 2.4, the default will change to always returning floats." -msgstr "" - -#: ../Doc/whatsnew/2.3.rst:1384 -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 "" - -#: ../Doc/whatsnew/2.3.rst:1389 -msgid "" -"The :mod:`optparse` module contains a new parser for command-line arguments " -"that can convert option values to a particular Python type and will " -"automatically generate a usage message. See the following section for more " -"details." -msgstr "" - -#: ../Doc/whatsnew/2.3.rst:1394 -msgid "" -"The old and never-documented :mod:`linuxaudiodev` module has been " -"deprecated, and a new version named :mod:`ossaudiodev` has been added. The " -"module was renamed because the OSS sound drivers can be used on platforms " -"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 "" - -#: ../Doc/whatsnew/2.3.rst:1400 -msgid "" -"The new :mod:`platform` module contains a number of functions that try to " -"determine various properties of the platform you're running on. There are " -"functions for getting the architecture, CPU type, the Windows OS version, " -"and even the Linux distribution version. (Contributed by Marc-André Lemburg.)" -msgstr "" - -#: ../Doc/whatsnew/2.3.rst:1405 -msgid "" -"The parser objects provided by the :mod:`pyexpat` module can now optionally " -"buffer character data, resulting in fewer calls to your character data " -"handler and therefore faster performance. Setting the parser object's :attr:" -"`buffer_text` attribute to :const:`True` will enable buffering." -msgstr "" - -#: ../Doc/whatsnew/2.3.rst:1410 -msgid "" -"The ``sample(population, k)`` function was added to the :mod:`random` " -"module. *population* is a sequence or :class:`xrange` object containing the " -"elements of a population, and :func:`sample` chooses *k* elements from the " -"population without replacing chosen elements. *k* can be any value up to " -"``len(population)``. For example::" -msgstr "" - -#: ../Doc/whatsnew/2.3.rst:1432 -msgid "" -"The :mod:`random` module now uses a new algorithm, the Mersenne Twister, " -"implemented in C. It's faster and more extensively studied than the " -"previous algorithm." -msgstr "" - -#: ../Doc/whatsnew/2.3.rst:1436 -msgid "(All changes contributed by Raymond Hettinger.)" -msgstr "" - -#: ../Doc/whatsnew/2.3.rst:1438 -msgid "" -"The :mod:`readline` module also gained a number of new functions: :func:" -"`get_history_item`, :func:`get_current_history_length`, and :func:" -"`redisplay`." -msgstr "" - -#: ../Doc/whatsnew/2.3.rst:1442 -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 " -"classes provide new ways to break out of the restricted execution " -"environment provided by :mod:`rexec`, and no one has interest in fixing them " -"or time to do so. If you have applications using :mod:`rexec`, rewrite them " -"to use something else." -msgstr "" - -#: ../Doc/whatsnew/2.3.rst:1448 -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 "" - -#: ../Doc/whatsnew/2.3.rst:1452 -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 "" - -#: ../Doc/whatsnew/2.3.rst:1456 -msgid "" -"The :mod:`shutil` module gained a ``move(src, dest)`` function that " -"recursively moves a file or directory to a new location." -msgstr "" - -#: ../Doc/whatsnew/2.3.rst:1459 -msgid "" -"Support for more advanced POSIX signal handling was added to the :mod:" -"`signal` but then removed again as it proved impossible to make it work " -"reliably across platforms." -msgstr "" - -#: ../Doc/whatsnew/2.3.rst:1463 -msgid "" -"The :mod:`socket` module now supports timeouts. You can call the " -"``settimeout(t)`` method on a socket object to set a timeout of *t* seconds. " -"Subsequent socket operations that take longer than *t* seconds to complete " -"will abort and raise a :exc:`socket.timeout` exception." -msgstr "" - -#: ../Doc/whatsnew/2.3.rst:1468 -msgid "" -"The original timeout implementation was by Tim O'Malley. Michael Gilfix " -"integrated it into the Python :mod:`socket` module and shepherded it through " -"a lengthy review. After the code was checked in, Guido van Rossum rewrote " -"parts of it. (This is a good example of a collaborative development process " -"in action.)" -msgstr "" - -#: ../Doc/whatsnew/2.3.rst:1474 -msgid "" -"On Windows, the :mod:`socket` module now ships with Secure Sockets Layer " -"(SSL) support." -msgstr "" - -#: ../Doc/whatsnew/2.3.rst:1477 -msgid "" -"The value of the C :const:`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 "" - -#: ../Doc/whatsnew/2.3.rst:1481 -msgid "" -"The new :mod:`tarfile` module allows reading from and writing to :program:" -"`tar`\\ -format archive files. (Contributed by Lars Gustäbel.)" -msgstr "" - -#: ../Doc/whatsnew/2.3.rst:1484 -msgid "" -"The new :mod:`textwrap` module contains functions for wrapping strings " -"containing paragraphs of text. The ``wrap(text, width)`` function takes a " -"string and returns a list containing the text split into lines of no more " -"than the chosen width. The ``fill(text, width)`` function returns a single " -"string, reformatted to fit into lines no longer than the chosen width. (As " -"you can guess, :func:`fill` is built on top of :func:`wrap`. For example::" -msgstr "" - -#: ../Doc/whatsnew/2.3.rst:1506 -msgid "" -"The module also contains a :class:`TextWrapper` class that actually " -"implements the text wrapping strategy. Both the :class:`TextWrapper` class " -"and the :func:`wrap` and :func:`fill` functions support a number of " -"additional keyword arguments for fine-tuning the formatting; consult the " -"module's documentation for details. (Contributed by Greg Ward.)" -msgstr "" - -#: ../Doc/whatsnew/2.3.rst:1512 -msgid "" -"The :mod:`thread` and :mod:`threading` modules now have companion modules, :" -"mod:`dummy_thread` and :mod:`dummy_threading`, that provide a do-nothing " -"implementation of the :mod:`thread` module's interface for platforms where " -"threads are not supported. The intention is to simplify thread-aware " -"modules (ones that *don't* rely on threads to run) by putting the following " -"code at the top::" -msgstr "" - -#: ../Doc/whatsnew/2.3.rst:1524 -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:" -"`threading` module. Code can call functions and use classes in :mod:" -"`_threading` whether or not threads are supported, avoiding an :keyword:`if` " -"statement and making the code slightly clearer. This module will not " -"magically make multithreaded code run without threads; code that waits for " -"another thread to return or to do something will simply hang forever." -msgstr "" - -#: ../Doc/whatsnew/2.3.rst:1532 -msgid "" -"The :mod:`time` module's :func:`strptime` function has long been an " -"annoyance because it uses the platform C library's :func:`strptime` " -"implementation, and different platforms sometimes have odd bugs. Brett " -"Cannon contributed a portable implementation that's written in pure Python " -"and should behave identically on all platforms." -msgstr "" - -#: ../Doc/whatsnew/2.3.rst:1538 -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 " -"command line, or the module's :class:`Timer` class can be imported and used " -"directly. Here's a short example that figures out whether it's 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 "" - -#: ../Doc/whatsnew/2.3.rst:1558 -msgid "" -"The :mod:`Tix` module has received various bug fixes and updates for the " -"current version of the Tix package." -msgstr "" - -#: ../Doc/whatsnew/2.3.rst:1561 -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 " -"in which they're created; accesses from another thread can cause Tcl to " -"panic. For certain Tcl interfaces, :mod:`Tkinter` will now automatically " -"avoid this when a widget is accessed from a different thread by marshalling " -"a command, passing it to the correct thread, and waiting for the results. " -"Other interfaces can't be handled automatically but :mod:`Tkinter` will now " -"raise an exception on such an access so that you can at least find out about " -"the problem. See https://mail.python.org/pipermail/python-dev/2002-" -"December/031107.html for a more detailed explanation of this change. " -"(Implemented by Martin von Löwis.)" -msgstr "" - -#: ../Doc/whatsnew/2.3.rst:1572 -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. This behavior can be " -"controlled through the :meth:`wantobjects` method of :class:`tkapp` objects." -msgstr "" - -#: ../Doc/whatsnew/2.3.rst:1578 -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 "" - -#: ../Doc/whatsnew/2.3.rst:1583 -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 "" - -#: ../Doc/whatsnew/2.3.rst:1590 -msgid "Any breakage caused by this change should be reported as a bug." -msgstr "" - -#: ../Doc/whatsnew/2.3.rst:1592 -msgid "" -"The :mod:`UserDict` module has a new :class:`DictMixin` class which defines " -"all dictionary methods for classes that already have a minimum mapping " -"interface. This greatly simplifies writing classes that need to be " -"substitutable for dictionaries, such as the classes in the :mod:`shelve` " -"module." -msgstr "" - -#: ../Doc/whatsnew/2.3.rst:1598 -msgid "" -"Adding the mix-in as a superclass provides the full dictionary interface " -"whenever the class defines :meth:`__getitem__`, :meth:`__setitem__`, :meth:" -"`__delitem__`, and :meth:`keys`. For example::" -msgstr "" - -#: ../Doc/whatsnew/2.3.rst:1639 -msgid "(Contributed by Raymond Hettinger.)" -msgstr "(Contribución de Raymond Hettinger.)" - -#: ../Doc/whatsnew/2.3.rst:1641 -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:`toxml` and :meth:`toprettyxml` methods of DOM nodes." -msgstr "" -"La implementación de DOM en :mod:`xml.dom.minidom` puede ahora generar la " -"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." - -#: ../Doc/whatsnew/2.3.rst:1645 -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 " -"on unmarshalling an XML-RPC response. To generate requests containing " -"``None``, you must supply a true value for the *allow_none* parameter when " -"creating a :class:`Marshaller` instance." -msgstr "" - -#: ../Doc/whatsnew/2.3.rst:1651 -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. " -"Pointing the Web browser to the RPC server produces pydoc-style " -"documentation; pointing xmlrpclib to the server allows invoking the actual " -"methods. (Contributed by Brian Quinlan.)" -msgstr "" - -#: ../Doc/whatsnew/2.3.rst:1657 -msgid "" -"Support for internationalized domain names (RFCs 3454, 3490, 3491, and 3492) " -"has been added. The \"idna\" encoding can be used to convert between a " -"Unicode domain name and the ASCII-compatible encoding (ACE) of that name. ::" -msgstr "" - -#: ../Doc/whatsnew/2.3.rst:1664 -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. " -"Modules that deal with hostnames such as :mod:`httplib` and :mod:`ftplib`) " -"also support Unicode host names; :mod:`httplib` also sends HTTP ``Host`` " -"headers using the ACE version of the domain name. :mod:`urllib` supports " -"Unicode URLs with non-ASCII host names as long as the ``path`` part of the " -"URL is ASCII only." -msgstr "" - -#: ../Doc/whatsnew/2.3.rst:1672 -msgid "" -"To implement this change, the :mod:`stringprep` module, the " -"``mkstringprep`` tool and the ``punycode`` encoding have been added." -msgstr "" - -#: ../Doc/whatsnew/2.3.rst:1679 -msgid "Date/Time Type" -msgstr "Tipo de fecha/hora" - -#: ../Doc/whatsnew/2.3.rst:1681 -msgid "" -"Date and time types suitable for expressing timestamps were added as the :" -"mod:`datetime` module. The types don't support different calendars or many " -"fancy features, and just stick to the basics of representing time." -msgstr "" - -#: ../Doc/whatsnew/2.3.rst:1685 -msgid "" -"The three primary types are: :class:`date`, representing a day, month, and " -"year; :class:`~datetime.time`, consisting of hour, minute, and second; and :" -"class:`~datetime.datetime`, which contains all the attributes of both :class:" -"`date` and :class:`~datetime.time`. There's also a :class:`timedelta` class " -"representing differences between two points in time, and time zone logic is " -"implemented by classes inheriting from the abstract :class:`tzinfo` class." -msgstr "" - -#: ../Doc/whatsnew/2.3.rst:1692 -msgid "" -"You can create instances of :class:`date` and :class:`~datetime.time` by " -"either supplying keyword arguments to the appropriate constructor, e.g. " -"``datetime.date(year=1972, month=10, day=15)``, or by using one of a number " -"of class methods. For example, the :meth:`date.today` class method returns " -"the current local date." -msgstr "" - -#: ../Doc/whatsnew/2.3.rst:1698 -msgid "" -"Once created, instances of the date/time classes are all immutable. There " -"are a number of methods for producing formatted strings from objects::" -msgstr "" - -#: ../Doc/whatsnew/2.3.rst:1710 -msgid "" -"The :meth:`replace` method allows modifying one or more fields of a :class:" -"`date` or :class:`~datetime.datetime` instance, returning a new instance::" -msgstr "" - -#: ../Doc/whatsnew/2.3.rst:1720 -msgid "" -"Instances can be compared, hashed, and converted to strings (the result is " -"the same as that of :meth:`isoformat`). :class:`date` and :class:`~datetime." -"datetime` instances can be subtracted from each other, and added to :class:" -"`timedelta` instances. The largest missing feature is that there's no " -"standard library support for parsing strings and getting back a :class:" -"`date` or :class:`~datetime.datetime`." -msgstr "" - -#: ../Doc/whatsnew/2.3.rst:1727 -msgid "" -"For more information, refer to the module's reference documentation. " -"(Contributed by Tim Peters.)" -msgstr "" - -#: ../Doc/whatsnew/2.3.rst:1734 -msgid "The optparse Module" -msgstr "" - -#: ../Doc/whatsnew/2.3.rst:1736 -msgid "" -"The :mod:`getopt` module provides simple parsing of command-line arguments. " -"The new :mod:`optparse` module (originally named Optik) provides more " -"elaborate command-line parsing that follows the Unix conventions, " -"automatically creates the output for :option:`!--help`, and can perform " -"different actions for different options." -msgstr "" - -#: ../Doc/whatsnew/2.3.rst:1742 -msgid "" -"You start by creating an instance of :class:`OptionParser` and telling it " -"what your program's options are. ::" -msgstr "" - -#: ../Doc/whatsnew/2.3.rst:1756 -msgid "" -"Parsing a command line is then done by calling the :meth:`parse_args` " -"method. ::" -msgstr "" - -#: ../Doc/whatsnew/2.3.rst:1762 -msgid "" -"This returns an object containing all of the option values, and a list of " -"strings containing the remaining arguments." -msgstr "" - -#: ../Doc/whatsnew/2.3.rst:1765 -msgid "" -"Invoking the script with the various arguments now works as you'd expect it " -"to. Note that the length argument is automatically converted to an integer." -msgstr "" - -#: ../Doc/whatsnew/2.3.rst:1778 -msgid "The help message is automatically generated for you:" -msgstr "" - -#: ../Doc/whatsnew/2.3.rst:1793 -msgid "See the module's documentation for more details." -msgstr "" - -#: ../Doc/whatsnew/2.3.rst:1796 -msgid "" -"Optik was written by Greg Ward, with suggestions from the readers of the " -"Getopt SIG." -msgstr "" - -#: ../Doc/whatsnew/2.3.rst:1805 -msgid "Pymalloc: A Specialized Object Allocator" -msgstr "" - -#: ../Doc/whatsnew/2.3.rst:1807 -msgid "" -"Pymalloc, a specialized object allocator written by Vladimir Marangozov, was " -"a feature added to Python 2.1. Pymalloc is intended to be faster than the " -"system :c:func:`malloc` and to have less memory overhead for allocation " -"patterns typical of Python programs. The allocator uses C's :c:func:`malloc` " -"function to get large pools of memory and then fulfills smaller memory " -"requests from these pools." -msgstr "" - -#: ../Doc/whatsnew/2.3.rst:1813 -msgid "" -"In 2.1 and 2.2, pymalloc was an experimental feature and wasn't enabled by " -"default; you had to explicitly enable it when compiling Python by providing " -"the :option:`!--with-pymalloc` option to the :program:`configure` script. " -"In 2.3, pymalloc has had further enhancements and is now enabled by default; " -"you'll have to supply :option:`!--without-pymalloc` to disable it." -msgstr "" - -#: ../Doc/whatsnew/2.3.rst:1819 -msgid "" -"This change is transparent to code written in Python; however, pymalloc may " -"expose bugs in C extensions. Authors of C extension modules should test " -"their code with pymalloc enabled, because some incorrect code may cause core " -"dumps at runtime." -msgstr "" - -#: ../Doc/whatsnew/2.3.rst:1824 -msgid "" -"There's one particularly common error that causes problems. There are a " -"number of memory allocation functions in Python's C API that have previously " -"just been aliases for the C library's :c:func:`malloc` and :c:func:`free`, " -"meaning that if you accidentally called mismatched functions the error " -"wouldn't be noticeable. When the object allocator is enabled, these " -"functions aren't aliases of :c:func:`malloc` and :c:func:`free` any more, " -"and calling the wrong function to free memory may get you a core dump. For " -"example, if memory was allocated using :c:func:`PyObject_Malloc`, it has to " -"be freed using :c:func:`PyObject_Free`, not :c:func:`free`. A few modules " -"included with Python fell afoul of this and had to be fixed; doubtless there " -"are more third-party modules that will have the same problem." -msgstr "" - -#: ../Doc/whatsnew/2.3.rst:1836 -msgid "" -"As part of this change, the confusing multiple interfaces for allocating " -"memory have been consolidated down into two API families. Memory allocated " -"with one family must not be manipulated with functions from the other " -"family. There is one family for allocating chunks of memory and another " -"family of functions specifically for allocating Python objects." -msgstr "" - -#: ../Doc/whatsnew/2.3.rst:1842 -msgid "" -"To allocate and free an undistinguished chunk of memory use the \"raw memory" -"\" family: :c:func:`PyMem_Malloc`, :c:func:`PyMem_Realloc`, and :c:func:" -"`PyMem_Free`." -msgstr "" - -#: ../Doc/whatsnew/2.3.rst:1845 -msgid "" -"The \"object memory\" family is the interface to the pymalloc facility " -"described above and is biased towards a large number of \"small\" " -"allocations: :c:func:`PyObject_Malloc`, :c:func:`PyObject_Realloc`, and :c:" -"func:`PyObject_Free`." -msgstr "" - -#: ../Doc/whatsnew/2.3.rst:1849 -msgid "" -"To allocate and free Python objects, use the \"object\" family :c:func:" -"`PyObject_New`, :c:func:`PyObject_NewVar`, and :c:func:`PyObject_Del`." -msgstr "" - -#: ../Doc/whatsnew/2.3.rst:1852 -msgid "" -"Thanks to lots of work by Tim Peters, pymalloc in 2.3 also provides " -"debugging features to catch memory overwrites and doubled frees in both " -"extension modules and in the interpreter itself. To enable this support, " -"compile a debugging version of the Python interpreter by running :program:" -"`configure` with :option:`!--with-pydebug`." -msgstr "" - -#: ../Doc/whatsnew/2.3.rst:1858 -msgid "" -"To aid extension writers, a header file :file:`Misc/pymemcompat.h` is " -"distributed with the source to Python 2.3 that allows Python extensions to " -"use the 2.3 interfaces to memory allocation while compiling against any " -"version of Python since 1.5.2. You would copy the file from Python's source " -"distribution and bundle it with the source of your extension." -msgstr "" - -#: ../Doc/whatsnew/2.3.rst:1869 -msgid "https://hg.python.org/cpython/file/default/Objects/obmalloc.c" -msgstr "" - -#: ../Doc/whatsnew/2.3.rst:1868 -msgid "" -"For the full details of the pymalloc implementation, see the comments at the " -"top of the file :file:`Objects/obmalloc.c` in the Python source code. The " -"above link points to the file within the python.org SVN browser." -msgstr "" - -#: ../Doc/whatsnew/2.3.rst:1876 -msgid "Build and C API Changes" -msgstr "Cambios en la API de construcción y C" - -#: ../Doc/whatsnew/2.3.rst:1878 -msgid "Changes to Python's build process and to the C API include:" -msgstr "" -"Los cambios en el proceso de build de Python y en la API de C incluyen:" - -#: ../Doc/whatsnew/2.3.rst:1880 -msgid "" -"The cycle detection implementation used by the garbage collection has proven " -"to be stable, so it's now been made mandatory. You can no longer compile " -"Python without it, and the :option:`!--with-cycle-gc` switch to :program:" -"`configure` has been removed." -msgstr "" - -#: ../Doc/whatsnew/2.3.rst:1885 -msgid "" -"Python can now optionally be built as a shared library (:file:`libpython2.3." -"so`) by supplying :option:`!--enable-shared` when running Python's :program:" -"`configure` script. (Contributed by Ondrej Palkovsky.)" -msgstr "" - -#: ../Doc/whatsnew/2.3.rst:1889 -msgid "" -"The :c:macro:`DL_EXPORT` and :c:macro:`DL_IMPORT` macros are now deprecated. " -"Initialization functions for Python extension modules should now be declared " -"using the new macro :c:macro:`PyMODINIT_FUNC`, while the Python core will " -"generally use the :c:macro:`PyAPI_FUNC` and :c:macro:`PyAPI_DATA` macros." -msgstr "" - -#: ../Doc/whatsnew/2.3.rst:1894 -msgid "" -"The interpreter can be compiled without any docstrings for the built-in " -"functions and modules by supplying :option:`!--without-doc-strings` to the :" -"program:`configure` script. This makes the Python executable about 10% " -"smaller, but will also mean that you can't get help for Python's built-ins. " -"(Contributed by Gustavo Niemeyer.)" -msgstr "" - -#: ../Doc/whatsnew/2.3.rst:1900 -msgid "" -"The :c:func:`PyArg_NoArgs` macro is now deprecated, and code that uses it " -"should be changed. For Python 2.2 and later, the method definition table " -"can specify the :const:`METH_NOARGS` flag, signalling that there are no " -"arguments, and the argument checking can then be removed. If compatibility " -"with pre-2.2 versions of Python is important, the code could use " -"``PyArg_ParseTuple(args, \"\")`` instead, but this will be slower than " -"using :const:`METH_NOARGS`." -msgstr "" - -#: ../Doc/whatsnew/2.3.rst:1907 -msgid "" -":c:func:`PyArg_ParseTuple` accepts new format characters for various sizes " -"of unsigned integers: ``B`` for :c:type:`unsigned char`, ``H`` for :c:type:" -"`unsigned short int`, ``I`` for :c:type:`unsigned int`, and ``K`` for :c:" -"type:`unsigned long long`." -msgstr "" - -#: ../Doc/whatsnew/2.3.rst:1912 -msgid "" -"A new function, ``PyObject_DelItemString(mapping, char *key)`` was added as " -"shorthand for ``PyObject_DelItem(mapping, PyString_New(key))``." -msgstr "" - -#: ../Doc/whatsnew/2.3.rst:1915 -msgid "" -"File objects now manage their internal string buffer differently, increasing " -"it exponentially when needed. This results in the benchmark tests in :file:" -"`Lib/test/test_bufio.py` speeding up considerably (from 57 seconds to 1.7 " -"seconds, according to one measurement)." -msgstr "" - -#: ../Doc/whatsnew/2.3.rst:1920 -msgid "" -"It's now possible to define class and static methods for a C extension type " -"by setting either the :const:`METH_CLASS` or :const:`METH_STATIC` flags in a " -"method's :c:type:`PyMethodDef` structure." -msgstr "" - -#: ../Doc/whatsnew/2.3.rst:1924 -msgid "" -"Python now includes a copy of the Expat XML parser's source code, removing " -"any dependence on a system version or local installation of Expat." -msgstr "" - -#: ../Doc/whatsnew/2.3.rst:1927 -msgid "" -"If you dynamically allocate type objects in your extension, you should be " -"aware of a change in the rules relating to the :attr:`__module__` and :attr:" -"`~definition.__name__` attributes. In summary, you will want to ensure the " -"type's dictionary contains a ``'__module__'`` key; making the module name " -"the part of the type name leading up to the final period will no longer have " -"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 contiene una clave ``'__module__``; hacer que " -"el nombre del módulo sea la parte del nombre del tipo que va hasta el punto " -"final ya no tendrá el efecto deseado. Para 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 en los ports" - -#: ../Doc/whatsnew/2.3.rst:1940 -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 " -"over the OS/2 system APIs. The Python port for EMX tries to support all the " -"POSIX-like capability exposed by the EMX runtime, and mostly succeeds; :func:" -"`fork` and :func:`fcntl` are restricted by the limitations of the underlying " -"emulation layer. The standard OS/2 port, which uses IBM's Visual Age " -"compiler, also gained support for case-sensitive import semantics as part of " -"the integration of the EMX port into CVS. (Contributed by Andrew MacIntyre.)" -msgstr "" -"El soporte para una adaptación al sistema OS/2 de IBM utilizando el entorno " -"de ejecución EMX se ha incorporado al árbol principal de fuentes de Python. " -"EMX es una capa de emulación POSIX sobre las APIs del sistema OS/2. El " -"puerto de Python para EMX intenta soportar todas las capacidades tipo POSIX " -"expuestas por el tiempo de ejecución de EMX, y en su mayoría lo consigue; :" -"func:`fork` y :func:`fcntl` están restringidas por las limitaciones de la " -"capa de emulación subyacente. El puerto estándar de OS/2, que utiliza el " -"compilador Visual Age de IBM, también obtuvo soporte para la semántica de " -"importación sensible a mayúsculas y minúsculas como parte de la integración " -"del puerto EMX en CVS. (Contribución de Andrew MacIntyre)." - -#: ../Doc/whatsnew/2.3.rst:1949 -msgid "" -"On MacOS, most toolbox modules have been weaklinked to improve backward " -"compatibility. This means that modules will no longer fail to load if a " -"single routine is missing on the current OS version. Instead calling the " -"missing routine will raise an exception. (Contributed by Jack Jansen.)" -msgstr "" -"En MacOS, la mayoría de los módulos de la caja de herramientas se han " -"debilitado para mejorar la compatibilidad con versiones anteriores. Esto " -"significa que los módulos ya no fallarán al cargarse si falta una rutina en " -"la versión actual del sistema operativo. En su lugar, llamar a la rutina que " -"falta lanzará una excepción. (Contribución de Jack Jansen.)" - -#: ../Doc/whatsnew/2.3.rst:1954 -msgid "" -"The RPM spec files, found in the :file:`Misc/RPM/` directory in the Python " -"source distribution, were updated for 2.3. (Contributed by Sean " -"Reifschneider.)" -msgstr "" -"Los archivos de especificaciones RPM, que se encuentran en el directorio :" -"file:`Misc/RPM/` en la distribución de fuentes de Python, fueron " -"actualizados para 2.3. (Contribución de Sean Reifschneider)." - -#: ../Doc/whatsnew/2.3.rst:1957 -msgid "" -"Other new platforms now supported by Python include AtheOS (http://www." -"atheos.cx/), GNU/Hurd, and OpenVMS." -msgstr "" -"Otras plataformas nuevas que ahora soporta Python son AtheOS (http://www." -"atheos.cx/), GNU/Hurd y OpenVMS." - -#: ../Doc/whatsnew/2.3.rst:1966 -msgid "Other Changes and Fixes" -msgstr "Otros cambios y correcciones" - -#: ../Doc/whatsnew/2.3.rst:1968 -msgid "" -"As usual, there were a bunch of other improvements and bugfixes scattered " -"throughout the source tree. A search through the CVS change logs finds " -"there were 523 patches applied and 514 bugs fixed between Python 2.2 and " -"2.3. Both figures are likely to be underestimates." -msgstr "" -"Como es habitual, hay un montón de otras mejoras y correcciones de errores " -"repartidas por el árbol de fuentes. Una búsqueda en los registros de " -"cambios de CVS revela que se aplicaron 523 parches y se corrigieron 514 " -"errores entre Python 2.2 y 2.3. Es probable que ambas cifras estén " -"subestimadas." - -#: ../Doc/whatsnew/2.3.rst:1973 -msgid "Some of the more notable changes are:" -msgstr "Algunos de los cambios más notables son:" - -#: ../Doc/whatsnew/2.3.rst:1975 -msgid "" -"If the :envvar:`PYTHONINSPECT` environment variable is set, the Python " -"interpreter will enter the interactive prompt after running a Python " -"program, as if Python had been invoked with the :option:`-i` option. The " -"environment variable can be set before running the Python interpreter, or it " -"can be set by the Python program as part of its execution." -msgstr "" -"Si se establece la variable de entorno :envvar:`PYTHONINSPECT`, el " -"intérprete de Python entrará en el prompt interactivo después de ejecutar un " -"programa Python, como si Python hubiera sido invocado con la opción :option:" -"`-i`. La variable de entorno se puede establecer antes de ejecutar el " -"intérprete de Python, o puede ser establecida por el programa de Python como " -"parte de su ejecución." - -#: ../Doc/whatsnew/2.3.rst:1981 -msgid "" -"The :file:`regrtest.py` script now provides a way to allow \"all resources " -"except *foo*.\" A resource name passed to the :option:`!-u` option can now " -"be prefixed with a hyphen (``'-'``) to mean \"remove this resource.\" For " -"example, the option '``-uall,-bsddb``' could be used to enable the use of " -"all resources except ``bsddb``." -msgstr "" -"El script :file:`regrtest.py` ahora proporciona una forma de permitir " -"\"todos los recursos excepto *foo*\". Un nombre de recurso pasado a la " -"opción :option:`!-u` puede ahora llevar un prefijo (``'-'``) para significar " -"\"eliminar este recurso\". Por ejemplo, la opción ``-uall,-bsddb`` podría " -"utilizarse para habilitar el uso de todos los recursos excepto ``bsddb``." - -#: ../Doc/whatsnew/2.3.rst:1987 -msgid "" -"The tools used to build the documentation now work under Cygwin as well as " -"Unix." -msgstr "" -"Las herramientas utilizadas para construir la documentación ahora funcionan " -"tanto en Cygwin como en Unix." - -#: ../Doc/whatsnew/2.3.rst:1990 -msgid "" -"The ``SET_LINENO`` opcode has been removed. Back in the mists of time, this " -"opcode was needed to produce line numbers in tracebacks and support trace " -"functions (for, e.g., :mod:`pdb`). Since Python 1.5, the line numbers in " -"tracebacks have been computed using a different mechanism that works with " -"\"python -O\". For Python 2.3 Michael Hudson implemented a similar scheme " -"to determine when to call the trace function, removing the need for " -"``SET_LINENO`` entirely." -msgstr "" -"The ``SET_LINENO`` opcode has been removed. Back in the mists of time, this " -"opcode was needed to produce line numbers in tracebacks and support trace " -"functions (for, e.g., :mod:`pdb`). Since Python 1.5, the line numbers in " -"tracebacks have been computed using a different mechanism that works with " -"\"python -O\". For Python 2.3 Michael Hudson implemented a similar scheme " -"to determine when to call the trace function, removing the need for " -"``SET_LINENO`` entirely." - -#: ../Doc/whatsnew/2.3.rst:1998 -msgid "" -"It would be difficult to detect any resulting difference from Python code, " -"apart from a slight speed up when Python is run without :option:`-O`." -msgstr "" -"Sería difícil detectar cualquier diferencia resultante del código Python, " -"aparte de un ligero aumento de velocidad cuando se ejecuta Python sin :" -"option:`-O`." - -#: ../Doc/whatsnew/2.3.rst:2001 -msgid "" -"C extensions that access the :attr:`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 en C que acceden al campo :attr:`f_lineno` de los objetos " -"frame deben llamar en su lugar a ``PyCode_Addr2Line(f->f_code, f-" -">f_lasti)``. Esto tendrá el efecto añadido de hacer que el código funcione " -"como se desea bajo \"python -O\" en versiones anteriores de Python." - -#: ../Doc/whatsnew/2.3.rst:2006 -msgid "" -"A nifty new feature is that trace functions can now assign to the :attr:" -"`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 nueva característica ingeniosa es que las funciones de rastreo pueden " -"ahora asignar al atributo :attr:`f_lineno` de los objetos marco, cambiando " -"la línea que se ejecutará a continuación. Se ha añadido un comando ``jump`` " -"al depurador :mod:`pdb` aprovechando esta nueva característica. " -"(Implementado por Richie Hindle)." - -#: ../Doc/whatsnew/2.3.rst:2015 -msgid "Porting to Python 2.3" -msgstr "Adaptación a Python 2.3" - -#: ../Doc/whatsnew/2.3.rst:2017 -msgid "" -"This section lists previously described changes that may require changes to " -"your code:" -msgstr "" -"Esta sección enumera los cambios descritos anteriormente que pueden requerir " -"cambios en su código:" - -#: ../Doc/whatsnew/2.3.rst:2020 -msgid "" -":keyword:`yield` is now always a keyword; if it's used as a variable name in " -"your code, a different name must be chosen." -msgstr "" -":keyword:`yield` es ahora siempre una palabra clave; si se utiliza como " -"nombre de variable en su código, debe elegirse un nombre diferente." - -#: ../Doc/whatsnew/2.3.rst:2023 -msgid "" -"For strings *X* and *Y*, ``X in Y`` now works if *X* is more than one " -"character long." -msgstr "" -"Para las cadenas *X* y *Y*, ``X en Y`` ahora funciona si *X* tiene más de un " -"carácter." - -#: ../Doc/whatsnew/2.3.rst:2026 -msgid "" -"The :func:`int` type constructor will now return a long integer instead of " -"raising an :exc:`OverflowError` when a string or floating-point number is " -"too large to fit into an integer." -msgstr "" -"El constructor de tipo :func:`int` ahora retornará un entero largo en lugar " -"de lanzar un :exc:`OverflowError` cuando una cadena o un número de punto " -"flotante es demasiado grande para caber en un entero." - -#: ../Doc/whatsnew/2.3.rst:2030 -msgid "" -"If you have Unicode strings that contain 8-bit characters, you must declare " -"the file's encoding (UTF-8, Latin-1, or whatever) by adding a comment to the " -"top of the file. See section :ref:`section-encodings` for more information." -msgstr "" -"Si tiene cadenas Unicode que contienen caracteres de 8 bits, debe declarar " -"la codificación del archivo (UTF-8, Latin-1, o la que sea) añadiendo un " -"comentario al principio del archivo. Consulte la sección :ref:`section-" -"encodings` para más información." - -#: ../Doc/whatsnew/2.3.rst:2034 -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 "" -"La llamada a métodos Tcl a través de :mod:`_tkinter` ya no retorna sólo " -"cadenas. En su lugar, si Tcl retorna otros objetos, éstos se convierten a su " -"equivalente en Python, si existe, o se envuelven con un objeto :class:" -"`_tkinter.Tcl_Obj` si no hay equivalente en Python." - -#: ../Doc/whatsnew/2.3.rst:2039 -msgid "" -"Large octal and hex literals such as ``0xffffffff`` now trigger a :exc:" -"`FutureWarning`. Currently they're stored as 32-bit numbers and result in a " -"negative value, but in Python 2.4 they'll become positive long integers." -msgstr "" -"Los octales largos y hexadecimales grandes como ``0xffffff`` ahora activan " -"un :exc:`FutureWarning`. Actualmente se almacenan como números de 32 bits y " -"resultan en un valor negativo, pero en Python 2.4 se convertirán en enteros " -"largos positivos." - -#: ../Doc/whatsnew/2.3.rst:2043 -msgid "" -"There are a few ways to fix this warning. If you really need a positive " -"number, just add an ``L`` to the end of the literal. If you're trying to " -"get a 32-bit integer with low bits set and have previously used an " -"expression such as ``~(1 << 31)``, it's probably clearest to start with all " -"bits set and clear the desired upper bits. For example, to clear just the " -"top bit (bit 31), you could write ``0xffffffffL &~(1L<<31)``." -msgstr "" -"Hay algunas formas de arreglar esta advertencia. Si realmente necesitas un " -"número positivo, simplemente añade una ``L`` al final del literal. Si está " -"tratando de obtener un entero de 32 bits con los bits inferiores " -"establecidos y ha utilizado previamente una expresión como ``~(1 << 31)``, " -"probablemente sea más claro comenzar con todos los bits establecidos y " -"borrar los bits superiores deseados. Por ejemplo, para borrar sólo el bit " -"superior (el 31), podrías escribir ``0xffffffL &~(1L<<31)``." - -#: ../Doc/whatsnew/2.3.rst:2050 -msgid "You can no longer disable assertions by assigning to ``__debug__``." -msgstr "" -"Ya no se pueden desactivar las aserciones asignándolas a ``__debug__``." - -#: ../Doc/whatsnew/2.3.rst:2052 -msgid "" -"The Distutils :func:`setup` function has gained various new keyword " -"arguments such as *depends*. Old versions of the Distutils will abort if " -"passed unknown keywords. A solution is to check for the presence of the " -"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 palabra " -"clave nuevos como *depends*. Las versiones antiguas de Distutils abortan 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 sólo utilizar las nuevas palabras clave con una versión de las " -"Distutils que las soporte::" - -#: ../Doc/whatsnew/2.3.rst:2065 -msgid "" -"Using ``None`` as a variable name will now result in a :exc:`SyntaxWarning` " -"warning." -msgstr "" -"El uso de ``None`` como nombre de variable ahora resultará en una " -"advertencia :exc:`SyntaxWarning`." - -#: ../Doc/whatsnew/2.3.rst:2068 -msgid "" -"Names of extension types defined by the modules included with Python now " -"contain the module and a ``'.'`` in front of the type name." -msgstr "" -"Los nombres de los tipos de extensión definidos por los módulos incluidos en " -"Python contienen ahora el módulo y un ``.'`` delante del nombre del tipo." - -#: ../Doc/whatsnew/2.3.rst:2077 -msgid "Acknowledgements" -msgstr "Agradecimientos" - -#: ../Doc/whatsnew/2.3.rst:2079 -msgid "" -"The author would like to thank the following people for offering " -"suggestions, corrections and assistance with various drafts of this article: " -"Jeff Bauer, Simon Brunning, Brett Cannon, Michael Chermside, Andrew Dalke, " -"Scott David Daniels, Fred L. Drake, Jr., David Fraser, Kelly Gerber, " -"Raymond Hettinger, Michael Hudson, Chris Lambert, Detlef Lannert, Martin von " -"Löwis, Andrew MacIntyre, Lalo Martins, Chad Netzer, Gustavo Niemeyer, Neal " -"Norwitz, Hans Nowak, Chris Reedy, Francesco Ricciardi, Vinay Sajip, Neil " -"Schemenauer, Roman Suzi, Jason Tishler, Just van Rossum." -msgstr "" -"El autor desea agradecer a las siguientes personas por ofrecer sugerencias, " -"correcciones y asistencia en los diversos borradores de este artículo:Jeff " -"Bauer, Simon Brunning, Brett Cannon, Michael Chermside, Andrew Dalke, Scott " -"David Daniels, Fred L. Drake, Jr, David Fraser, Kelly Gerber, Raymond " -"Hettinger, Michael Hudson, Chris Lambert, Detlef Lannert, Martin von Löwis, " -"Andrew MacIntyre, Lalo Martins, Chad Netzer, Gustavo Niemeyer, Neal Norwitz, " -"Hans Nowak, Chris Reedy, Francesco Ricciardi, Vinay Sajip, Neil Schemenauer, " -"Roman Suzi, Jason Tishler, Just van Rossum." +"El entorno de desarrollo integrado IDLE ha sido actualizado utilizando el " +"código del proyecto IDLEfork (http://idlefork.sourceforge.net). La " +"característica más notable es que el código que se está desarrollando se " +"ejecuta ahora en un subproceso, lo que significa que ya no es necesario " +"realizar operaciones manuales de ``reload()``. El código central de IDLE ha " +"sido incorporado a la biblioteca estándar como el paquete :mod:`idlelib`." diff --git a/whatsnew/2.5.po b/whatsnew/2.5.po index bdfbbb0193..fe126d76bc 100644 --- a/whatsnew/2.5.po +++ b/whatsnew/2.5.po @@ -6,31 +6,33 @@ # Check https://github.com/python/python-docs-es/blob/3.8/TRANSLATORS to # get the list of volunteers # -#, fuzzy msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2020-05-05 12:54+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" +"PO-Revision-Date: 2021-10-03 10:57-0300\n" "Language-Team: python-doc-es\n" "MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" +"Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.8.0\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"Last-Translator: Claudia Millan \n" +"Language: es\n" +"X-Generator: Poedit 2.4.2\n" #: ../Doc/whatsnew/2.5.rst:3 msgid "What's New in Python 2.5" -msgstr "" +msgstr "Novedades de Python 2.5" #: ../Doc/whatsnew/2.5.rst msgid "Author" -msgstr "" +msgstr "Autor" #: ../Doc/whatsnew/2.5.rst:5 msgid "A.M. Kuchling" -msgstr "" +msgstr "A.M. Kuchling" #: ../Doc/whatsnew/2.5.rst:12 msgid "" @@ -38,6 +40,9 @@ msgid "" "Python 2.5 is scheduled for August 2006; :pep:`356` describes the planned " "release schedule." msgstr "" +"Este artículo explica las nuevas características de Python 2.5. La versión " +"final de Python 2.5 está prevista para agosto de 2006; :pep:`356` describe " +"el calendario de publicación previsto." #: ../Doc/whatsnew/2.5.rst:16 msgid "" @@ -48,6 +53,12 @@ msgid "" "SQLite database module (:mod:`sqlite`), and the :mod:`ctypes` module for " "calling C functions." msgstr "" +"Los cambios en Python 2.5 son una interesante mezcla de mejoras en el " +"lenguaje y en las bibliotecas. Las mejoras de la biblioteca serán más " +"importantes para la comunidad de usuarios de Python, creo, porque se han " +"añadido varios paquetes muy útiles. Los nuevos módulos incluyen ElementTree " +"para el procesamiento de XML (:mod:`xml.etree`), el módulo de base de datos " +"SQLite (:mod:`sqlite`), y el módulo :mod:`ctypes` para llamar a funciones C." #: ../Doc/whatsnew/2.5.rst:23 msgid "" @@ -63,6 +74,18 @@ msgid "" "to one specific language feature or another; none of them are broad " "modifications to Python's semantics." msgstr "" +"Los cambios en el lenguaje son de mediana importancia. Se han añadido " +"algunas características nuevas y agradables, pero la mayoría de ellas no son " +"características que vaya a utilizar todos los días. Las expresiones " +"condicionales fueron finalmente añadidas al lenguaje usando una nueva " +"sintaxis; ver sección :ref:`pep-308`. La nueva sentencia ':keyword:`with`' " +"facilitará la escritura de código de limpieza (sección :ref:`pep-343`). " +"Ahora se pueden pasar valores a los generadores (sección :ref:`pep-342`). " +"Las importaciones son ahora visibles como absolutas o relativas (sección :" +"ref:`pep-328`). Se han mejorado algunos casos de manejo de excepciones " +"(sección :ref:`pep-341`). Todas estas mejoras merecen la pena, pero son " +"mejoras de una u otra característica específica del lenguaje; ninguna de " +"ellas es una modificación amplia de la semántica de Python." #: ../Doc/whatsnew/2.5.rst:34 msgid "" @@ -71,6 +94,11 @@ msgid "" "change logs finds there were 353 patches applied and 458 bugs fixed between " "Python 2.4 and 2.5. (Both figures are likely to be underestimates.)" msgstr "" +"Además de las adiciones al lenguaje y a la biblioteca, se han realizado " +"otras mejoras y correcciones de errores en todo el árbol de código fuente. " +"Una búsqueda en los registros de cambios del SVN revela que se aplicaron 353 " +"parches y se corrigieron 458 errores entre Python 2.4 y 2.5. (Es probable " +"que ambas cifras estén subestimadas)" #: ../Doc/whatsnew/2.5.rst:39 msgid "" @@ -81,16 +109,25 @@ msgid "" "implementation and design rationale, refer to the PEP for a particular new " "feature." msgstr "" +"Este artículo no pretende ser una especificación completa de las nuevas " +"características; en su lugar, los cambios se introducen brevemente " +"utilizando ejemplos útiles. Para obtener todos los detalles, siempre debes " +"consultar la documentación de Python 2.5 en https://docs.python.org. Si " +"quieres entender la implementación completa y los fundamentos del diseño, " +"consulta el PEP de una nueva característica en particular." #: ../Doc/whatsnew/2.5.rst:45 msgid "" "Comments, suggestions, and error reports for this document are welcome; " "please e-mail them to the author or open a bug in the Python bug tracker." msgstr "" +"Son bienvenidos los comentarios, las sugerencias y los informes de errores " +"para este documento; por favor, envíelos por correo electrónico al autor o " +"abra un error en el rastreador de errores de Python." #: ../Doc/whatsnew/2.5.rst:54 msgid "PEP 308: Conditional Expressions" -msgstr "" +msgstr "PEP 308: Expresiones condicionales" #: ../Doc/whatsnew/2.5.rst:56 msgid "" @@ -100,6 +137,11 @@ msgid "" "you write a single assignment statement that has the same effect as the " "following::" msgstr "" +"Durante mucho tiempo, la gente ha solicitado una forma de escribir " +"expresiones condicionales, que son expresiones que devuelven el valor A o el " +"valor B dependiendo de si un valor booleano es verdadero o falso. Una " +"expresión condicional le permite escribir una única sentencia de asignación " +"que tiene el mismo efecto que la siguiente::" #: ../Doc/whatsnew/2.5.rst:66 msgid "" @@ -109,10 +151,16 @@ msgid "" "was preferred by a clear majority. Candidates included C's ``cond ? true_v : " "false_v``, ``if cond then true_v else false_v``, and 16 other variations." msgstr "" +"Ha habido interminables y tediosas discusiones sobre la sintaxis tanto en " +"python-dev como en comp.lang.python. Incluso se llevó a cabo una votación " +"en la que se descubrió que la mayoría de los votantes querían expresiones " +"condicionales de alguna forma, pero no había ninguna sintaxis que fuera " +"preferida por una clara mayoría. Los candidatos incluían ``cond ? true_v : " +"false_v``, ``if cond then true_v else false_v``, y otras 16 variaciones." #: ../Doc/whatsnew/2.5.rst:72 msgid "Guido van Rossum eventually chose a surprising syntax::" -msgstr "" +msgstr "Guido van Rossum eligió finalmente una sintaxis sorprendente::" #: ../Doc/whatsnew/2.5.rst:76 msgid "" @@ -122,6 +170,11 @@ msgid "" "condition was true. Similarly, the *false_value* expression is only " "evaluated when the condition is false." msgstr "" +"La evaluación sigue siendo perezosa como en las expresiones booleanas " +"existentes, por lo que el orden de evaluación salta un poco. La expresión " +"*condición* del medio se evalúa primero, y la expresión *valor_verdadero* se " +"evalúa sólo si la condición es verdadera. Del mismo modo, la expresión " +"*valor_falso* sólo se evalúa cuando la condición es falsa." #: ../Doc/whatsnew/2.5.rst:82 msgid "" @@ -134,6 +187,14 @@ msgid "" "when the condition isn't met. The conditional syntax makes this pattern a " "bit more obvious::" msgstr "" +"Esta sintaxis puede parecer extraña y retrógrada; ¿por qué la condición va " +"en el *medio* de la expresión, y no en la parte delantera como en ``c ? x : " +"y`` de C? La decisión se comprobó aplicando la nueva sintaxis a los módulos " +"de la biblioteca estándar y viendo cómo se leía el código resultante. En " +"muchos casos en los que se utiliza una expresión condicional, un valor " +"parece ser el \"caso común\" y otro valor es un \"caso excepcional\", " +"utilizado sólo en las raras ocasiones en las que no se cumple la condición. " +"La sintaxis condicional hace que este patrón sea un poco más obvio::" #: ../Doc/whatsnew/2.5.rst:92 msgid "" @@ -142,6 +203,10 @@ msgid "" "an empty string is returned.\" I doubt I will use conditional expressions " "very often where there isn't a clear common and uncommon case." msgstr "" +"Leo la afirmación anterior en el sentido de que \"aquí se asigna a " +"*contents* un valor de ``doc+'\\n'``; a veces *doc* está vacío, en cuyo caso " +"especial se devuelve una cadena vacía\" Dudo que use expresiones " +"condicionales muy a menudo donde no hay un caso común y no común claro." #: ../Doc/whatsnew/2.5.rst:97 msgid "" @@ -150,6 +215,11 @@ msgid "" "require parentheses in the Python language's grammar, but as a matter of " "style I think you should always use them. Consider these two statements::" msgstr "" +"Hubo alguna discusión sobre si el lenguaje debería requerir rodear las " +"expresiones condicionales con paréntesis. Se tomó la decisión de *no* " +"requerir paréntesis en la gramática del lenguaje Python, pero como una " +"cuestión de estilo creo que siempre deberías usarlos. Considere estas dos " +"declaraciones::" #: ../Doc/whatsnew/2.5.rst:108 msgid "" @@ -159,6 +229,11 @@ msgid "" "better, in my opinion, because it makes it clear that the assignment is " "always performed and the choice is being made between two values." msgstr "" +"En la primera versión, creo que el ojo de un lector podría agrupar la " +"sentencia en 'nivel = 1', 'si registro', 'si no 0', y pensar que la " +"condición decide si se realiza la asignación a *nivel*. La segunda versión " +"se lee mejor, en mi opinión, porque deja claro que la asignación se realiza " +"siempre y que se está eligiendo entre dos valores." #: ../Doc/whatsnew/2.5.rst:114 msgid "" @@ -167,26 +242,34 @@ msgid "" "expressions. See :pep:`308` for some examples. If you put parentheses " "around your conditional expressions, you won't run into this case." msgstr "" +"Otra razón para incluir los paréntesis: algunas combinaciones extrañas de " +"comprensiones de listas y lambdas podrían parecer expresiones condicionales " +"incorrectas. Véase :pep:`308` para algunos ejemplos. Si pone paréntesis " +"alrededor de sus expresiones condicionales, no se encontrará con este caso." #: ../Doc/whatsnew/2.5.rst:123 msgid ":pep:`308` - Conditional Expressions" -msgstr "" +msgstr ":pep:`308` - Expresiones condicionales" #: ../Doc/whatsnew/2.5.rst:123 msgid "" "PEP written by Guido van Rossum and Raymond D. Hettinger; implemented by " "Thomas Wouters." msgstr "" +"PEP escrito por Guido van Rossum y Raymond D. Hettinger; implementado por " +"Thomas Wouters." #: ../Doc/whatsnew/2.5.rst:132 msgid "PEP 309: Partial Function Application" -msgstr "" +msgstr "PEP 309: Aplicación parcial de funciones" #: ../Doc/whatsnew/2.5.rst:134 msgid "" "The :mod:`functools` module is intended to contain tools for functional-" "style programming." msgstr "" +"El módulo :mod:`functools` está destinado a contener herramientas para la " +"programación de estilo funcional." #: ../Doc/whatsnew/2.5.rst:137 msgid "" @@ -197,6 +280,12 @@ msgid "" "c)`` that was equivalent to ``f(1, b, c)``. This is called \"partial " "function application\"." msgstr "" +"Una herramienta útil de este módulo es la función :func:`partial`. Para los " +"programas escritos en un estilo funcional, a veces querrá construir " +"variantes de funciones existentes que tengan algunos de los parámetros " +"rellenados. Considere una función Python ``f(a, b, c)``; podría crear una " +"nueva función ``g(b, c)`` que fuera equivalente a ``f(1, b, c)``. Esto se " +"llama \"aplicación parcial de funciones\"." #: ../Doc/whatsnew/2.5.rst:144 msgid "" @@ -204,10 +293,13 @@ msgid "" "kwarg1=value1, kwarg2=value2)``. The resulting object is callable, so you " "can just call it to invoke *function* with the filled-in arguments." msgstr "" +":func:`parcial` toma los argumentos ``(function, arg1, arg2, ... " +"kwarg1=valor1, kwarg2=valor2)``. El objeto resultante es invocable, por lo " +"que puedes llamarlo para invocar la *función* con los argumentos rellenados." #: ../Doc/whatsnew/2.5.rst:148 msgid "Here's a small but realistic example::" -msgstr "" +msgstr "He aquí un pequeño pero realista ejemplo::" #: ../Doc/whatsnew/2.5.rst:160 msgid "" @@ -216,6 +308,11 @@ msgid "" "provided for the menu option is a partially applied version of the :meth:" "`open_item` method, where the first argument has been provided. ::" msgstr "" +"Aquí hay otro ejemplo, de un programa que utiliza PyGTK. Aquí se está " +"construyendo dinámicamente un menú emergente sensible al contexto. El " +"callback proporcionado para la opción de menú es una versión parcialmente " +"aplicada del método :meth:`open_item`, donde se ha proporcionado el primer " +"argumento ::" #: ../Doc/whatsnew/2.5.rst:173 msgid "" @@ -225,6 +322,12 @@ msgid "" "docstring attribute to a wrapper function so that tracebacks inside the " "wrapped function are easier to understand. For example, you might write::" msgstr "" +"Otra función del módulo :mod:`functools` es la función " +"``update_wrapper(wrapper, wrapped)`` que le ayuda a escribir decoradores con " +"un buen comportamiento. :func:`update_wrapper` copia el nombre, el módulo y " +"el atributo docstring a una función wrapper para que las trazas dentro de la " +"función envuelta sean más fáciles de entender. Por ejemplo, puedes " +"escribir::" #: ../Doc/whatsnew/2.5.rst:186 msgid "" @@ -232,20 +335,25 @@ msgid "" "copy the wrapped function's information. An alternate version of the " "previous example would be::" msgstr "" +":func:`wraps` es un decorador que se puede utilizar dentro de sus propios " +"decoradores para copiar la información de la función envuelta. Una versión " +"alternativa del ejemplo anterior sería::" #: ../Doc/whatsnew/2.5.rst:201 msgid ":pep:`309` - Partial Function Application" -msgstr "" +msgstr ":pep:`309` - Aplicación parcial de funciones" #: ../Doc/whatsnew/2.5.rst:201 msgid "" "PEP proposed and written by Peter Harris; implemented by Hye-Shik Chang and " "Nick Coghlan, with adaptations by Raymond Hettinger." msgstr "" +"PEP propuesto y escrito por Peter Harris; implementado por Hye-Shik Chang y " +"Nick Coghlan, con adaptaciones de Raymond Hettinger." #: ../Doc/whatsnew/2.5.rst:210 msgid "PEP 314: Metadata for Python Software Packages v1.1" -msgstr "" +msgstr "PEP 314: Metadatos para paquetes de software Python v1.1" #: ../Doc/whatsnew/2.5.rst:212 msgid "" @@ -255,6 +363,11 @@ msgid "" "command, the dependency information will be recorded in the :file:`PKG-INFO` " "file." msgstr "" +"Se ha añadido a Distutils un sencillo soporte de dependencias. La función :" +"func:`setup` ahora tiene parámetros de palabras clave ``requires``, " +"``provides`` y ``obsoletes``. Cuando se construye una distribución de " +"origen utilizando el comando ``sdist``, la información de las dependencias " +"se registrará en el archivo :file:`PKG-INFO`." #: ../Doc/whatsnew/2.5.rst:217 msgid "" @@ -263,6 +376,10 @@ msgid "" "an entry in the package index, determine the dependencies for a package, and " "download the required packages. ::" msgstr "" +"Otro nuevo parámetro de palabra clave es ``download_url``, que debe " +"establecerse como una URL para el código fuente del paquete. Esto significa " +"que ahora es posible buscar una entrada en el índice de paquetes, determinar " +"las dependencias de un paquete y descargar los paquetes necesarios. ::" #: ../Doc/whatsnew/2.5.rst:231 msgid "" @@ -270,6 +387,9 @@ msgid "" "storing source and binary archives for a package. The new :command:`upload` " "Distutils command will upload a package to the repository." msgstr "" +"Otra nueva mejora en el índice de paquetes de Python en https://pypi.org es " +"el almacenamiento de archivos fuente y binarios de un paquete. El nuevo " +"comando :command:`upload` de Distutils subirá un paquete al repositorio." #: ../Doc/whatsnew/2.5.rst:236 msgid "" @@ -279,25 +399,33 @@ msgid "" "Optionally you can GPG-sign the package by supplying the :option:`!--sign` " "and :option:`!--identity` options." msgstr "" +"Antes de poder subir un paquete, debes ser capaz de construir una " +"distribución usando el comando :command:`sdist` de Distutils. Una vez que " +"funcione, puedes ejecutar ``python setup.py upload`` para añadir tu paquete " +"al archivo PyPI. Opcionalmente puedes firmar el paquete con GPG " +"suministrando las opciones :option:`!--sign` y :option:`!--identity`." #: ../Doc/whatsnew/2.5.rst:242 msgid "" "Package uploading was implemented by Martin von Löwis and Richard Jones." msgstr "" +"La carga de paquetes fue implementada por Martin von Löwis y Richard Jones." #: ../Doc/whatsnew/2.5.rst:248 msgid ":pep:`314` - Metadata for Python Software Packages v1.1" -msgstr "" +msgstr ":pep:`314` - Metadatos para paquetes de software Python v1.1" #: ../Doc/whatsnew/2.5.rst:248 msgid "" "PEP proposed and written by A.M. Kuchling, Richard Jones, and Fred Drake; " "implemented by Richard Jones and Fred Drake." msgstr "" +"PEP propuesto y redactado por A.M. Kuchling, Richard Jones y Fred Drake; " +"aplicado por Richard Jones y Fred Drake." #: ../Doc/whatsnew/2.5.rst:257 msgid "PEP 328: Absolute and Relative Imports" -msgstr "" +msgstr "PEP 328: Importaciones absolutas y relativas" #: ../Doc/whatsnew/2.5.rst:259 msgid "" @@ -306,6 +434,10 @@ msgid "" "``from ... import ...`` statement, making it easier to import many different " "names." msgstr "" +"La parte más sencilla de :pep:`328` se implementó en Python 2.4: los " +"paréntesis podían utilizarse ahora para encerrar los nombres importados de " +"un módulo utilizando la sentencia ``from ... import ...``, facilitando la " +"importación de muchos nombres diferentes." #: ../Doc/whatsnew/2.5.rst:263 msgid "" @@ -314,16 +446,22 @@ msgid "" "plan is to move toward making absolute imports the default in future " "versions of Python." msgstr "" +"La parte más complicada se ha implementado en Python 2.5: la importación de " +"un módulo puede especificarse para utilizar importaciones absolutas o " +"relativas al paquete. El plan es hacer que las importaciones absolutas sean " +"el valor por defecto en futuras versiones de Python." #: ../Doc/whatsnew/2.5.rst:267 msgid "Let's say you have a package directory like this::" -msgstr "" +msgstr "Digamos que tienes un directorio de paquetes como este::" #: ../Doc/whatsnew/2.5.rst:274 msgid "" "This defines a package named :mod:`pkg` containing the :mod:`pkg.main` and :" "mod:`pkg.string` submodules." msgstr "" +"Esto define un paquete llamado :mod:`pkg` que contiene los submódulos :mod:" +"`pkg.main` y :mod:`pkg.string`." #: ../Doc/whatsnew/2.5.rst:277 msgid "" @@ -334,6 +472,12 @@ msgid "" "`pkg.string` module, and that module is bound to the name ``string`` in the :" "mod:`pkg.main` module's namespace." msgstr "" +"Considera el código del módulo :file:`main.py`. ¿Qué ocurre si ejecuta la " +"sentencia ``importar cadena``? En Python 2.4 y anteriores, primero buscará " +"en el directorio del paquete para realizar una importación relativa, " +"encuentra :file:`pkg/string.py`, importa el contenido de ese archivo como el " +"módulo :mod:`pkg.string`, y ese módulo se vincula al nombre ``string`` en el " +"espacio de nombres del módulo :mod:`pkg.main`." #: ../Doc/whatsnew/2.5.rst:284 msgid "" @@ -345,6 +489,14 @@ msgid "" "imports from the standard library, ``import py; py.std.string.join()``, but " "that package isn't available on all Python installations." msgstr "" +"Eso está bien si :mod:`pkg.string` era lo que querías. ¿Pero qué pasa si " +"quieres el módulo estándar de Python :mod:`string`? No hay una forma limpia " +"de ignorar :mod:`pkg.string` y buscar el módulo estándar; generalmente " +"tienes que mirar el contenido de ``sys.modules``, lo cual es ligeramente " +"sucio. El paquete :mod:`py.std` de Holger Krekel proporciona una forma " +"más ordenada de realizar importaciones desde la biblioteca estándar, " +"``import py; py.std.string.join()``, pero ese paquete no está disponible en " +"todas las instalaciones de Python." #: ../Doc/whatsnew/2.5.rst:292 msgid "" @@ -355,6 +507,13 @@ msgid "" "submodules, but you can't protect against having your submodule's name being " "used for a new module added in a future version of Python." msgstr "" +"La lectura de código que depende de importaciones relativas también es menos " +"clara, porque un lector puede confundirse sobre qué módulo, :mod:`cadena` o :" +"mod:`cadena.pkg`, se pretende utilizar. Los usuarios de Python aprendieron " +"pronto a no duplicar los nombres de los módulos de la biblioteca estándar en " +"los nombres de los submódulos de sus paquetes, pero no puedes protegerte de " +"que el nombre de tu submódulo se utilice para un nuevo módulo añadido en una " +"futura versión de Python." #: ../Doc/whatsnew/2.5.rst:299 msgid "" @@ -366,12 +525,23 @@ msgid "" "that users should begin using absolute imports as much as possible, so it's " "preferable to begin writing ``from pkg import string`` in your code." msgstr "" +"En Python 2.5, puedes cambiar el comportamiento de :keyword:`import` a " +"importaciones absolutas usando una directiva ``from __future__ import " +"absolute_import``. Este comportamiento de importación absoluta será el " +"predeterminado en una versión futura (probablemente Python 2.7). Una vez " +"que las importaciones absolutas sean el valor por defecto, ``import string`` " +"siempre encontrará la versión de la biblioteca estándar. Se sugiere que los " +"usuarios comiencen a usar importaciones absolutas tanto como sea posible, " +"así que es preferible comenzar a escribir ``de pkg import string`` en su " +"código." #: ../Doc/whatsnew/2.5.rst:307 msgid "" "Relative imports are still possible by adding a leading period to the " "module name when using the ``from ... import`` form::" msgstr "" +"Las importaciones relativas siguen siendo posibles añadiendo un punto " +"inicial al nombre del módulo cuando se utiliza la forma ``from ... import``::" #: ../Doc/whatsnew/2.5.rst:315 msgid "" @@ -381,33 +551,41 @@ msgid "" "from the parent of the current package. For example, code in the :mod:`A.B." "C` module can do::" msgstr "" +"Esto importa el módulo :mod:`string` relativo al paquete actual, así que en :" +"mod:`pkg.main` esto importará *nombre1* y *nombre2* de :mod:`pkg.string`. " +"Los puntos iniciales adicionales realizan la importación relativa empezando " +"por el padre del paquete actual. Por ejemplo, el código en el módulo :mod:" +"`A.B.C` puede hacer::" #: ../Doc/whatsnew/2.5.rst:324 msgid "" "Leading periods cannot be used with the ``import modname`` form of the " "import statement, only the ``from ... import`` form." msgstr "" +"Los puntos suspensivos no pueden usarse con la forma ``importar nombre de " +"modelo`` de la sentencia import, sólo con la forma ``de ... import``." #: ../Doc/whatsnew/2.5.rst:331 msgid ":pep:`328` - Imports: Multi-Line and Absolute/Relative" -msgstr "" +msgstr ":pep:`328` - Importaciones: Multilínea y Absoluto/Relativo" #: ../Doc/whatsnew/2.5.rst:331 msgid "PEP written by Aahz; implemented by Thomas Wouters." -msgstr "" +msgstr "PEP escrito por Aahz; implementado por Thomas Wouters." #: ../Doc/whatsnew/2.5.rst:333 msgid "https://pylib.readthedocs.io/" -msgstr "" +msgstr "https://pylib.readthedocs.io/" #: ../Doc/whatsnew/2.5.rst:334 msgid "" "The py library by Holger Krekel, which contains the :mod:`py.std` package." msgstr "" +"La biblioteca py de Holger Krekel, que contiene el paquete :mod:`py.std`." #: ../Doc/whatsnew/2.5.rst:342 msgid "PEP 338: Executing Modules as Scripts" -msgstr "" +msgstr "PEP 338: Ejecutando Módulos como Scripts" #: ../Doc/whatsnew/2.5.rst:344 msgid "" @@ -416,6 +594,10 @@ msgid "" "the Python interpreter, the switch now uses an implementation in a new " "module, :mod:`runpy`." msgstr "" +"El conmutador :option:`-m` añadido en Python 2.4 para ejecutar un módulo " +"como un script ganó algunas habilidades más. En lugar de estar implementado " +"en código C dentro del intérprete de Python, el interruptor ahora utiliza " +"una implementación en un nuevo módulo, :mod:`runpy`." #: ../Doc/whatsnew/2.5.rst:349 msgid "" @@ -426,18 +608,24 @@ msgid "" "to ``sys.path`` and then use the :option:`-m` switch to execute code from " "the archive." msgstr "" +"El módulo :mod:`runpy` implementa un mecanismo de importación más " +"sofisticado de forma que ahora es posible ejecutar módulos en un paquete " +"como :mod:`pychecker.checker`. El módulo también soporta mecanismos de " +"importación alternativos como el módulo :mod:`zipimport`. Esto significa " +"que puede añadir la ruta de un archivo .zip a ``sys.path`` y luego utilizar " +"el modificador :option:`-m` para ejecutar el código del archivo." #: ../Doc/whatsnew/2.5.rst:359 msgid ":pep:`338` - Executing modules as scripts" -msgstr "" +msgstr ":pep:`338` - Ejecución de módulos como scripts" #: ../Doc/whatsnew/2.5.rst:360 msgid "PEP written and implemented by Nick Coghlan." -msgstr "" +msgstr "PEP escrito e implementado por Nick Coghlan." #: ../Doc/whatsnew/2.5.rst:368 msgid "PEP 341: Unified try/except/finally" -msgstr "" +msgstr "PEP 341: Try/except/finally unificados" #: ../Doc/whatsnew/2.5.rst:370 msgid "" @@ -449,6 +637,13 @@ msgid "" "complicated and it wasn't clear what the semantics of the combined statement " "should be." msgstr "" +"Hasta la versión 2.5 de Python, la sentencia :keyword:`try` tenía dos " +"variantes. Podías usar un bloque :keyword:`finally` para asegurarte de que " +"el código se ejecutaba siempre, o uno o más bloques :keyword:`except` para " +"capturar excepciones específicas. No podías combinar ambos bloques :keyword:" +"`!except` y un bloque :keyword:`!finally`, porque generar el bytecode " +"correcto para la versión combinada era complicado y no estaba claro cuál " +"debía ser la semántica de la sentencia combinada." #: ../Doc/whatsnew/2.5.rst:377 msgid "" @@ -457,6 +652,10 @@ msgid "" "block, and this clarified what the statement should mean. In Python 2.5, " "you can now write::" msgstr "" +"Guido van Rossum pasó algún tiempo trabajando con Java, que sí soporta el " +"equivalente de combinar bloques :keyword:`except` y un bloque :keyword:" +"`finally`, y esto aclaró lo que debería significar la declaración. En " +"Python 2.5, ahora se puede escribir::" #: ../Doc/whatsnew/2.5.rst:393 msgid "" @@ -466,6 +665,11 @@ msgid "" "class:`Exception2`, *handler-2* is executed, and so forth. If no exception " "is raised, the *else-block* is executed." msgstr "" +"Se ejecuta el código del *bloque-1*. Si el código lanza una excepción, se " +"comprueban los distintos bloques :keyword:`except`: si la excepción es de " +"clase :class:`Exception1`, se ejecuta *handler-1*; en caso contrario, si es " +"de clase :class:`Exception2`, se ejecuta *handler-2*, y así sucesivamente. " +"Si no se produce ninguna excepción, se ejecuta el bloque *else*." #: ../Doc/whatsnew/2.5.rst:399 msgid "" @@ -474,18 +678,23 @@ msgid "" "error in an exception handler or the *else-block* and a new exception is " "raised, the code in the *final-block* is still run." msgstr "" +"No importa lo que haya sucedido previamente, el *bloque final* se ejecuta " +"una vez que el bloque de código se ha completado y se han manejado las " +"excepciones planteadas. Incluso si hay un error en un manejador de " +"excepciones o en el *bloque else* y se lanza una nueva excepción, el código " +"del *bloque final* se sigue ejecutando." #: ../Doc/whatsnew/2.5.rst:407 msgid ":pep:`341` - Unifying try-except and try-finally" -msgstr "" +msgstr ":pep:`341` - Unificar try-except y try-finally" #: ../Doc/whatsnew/2.5.rst:408 msgid "PEP written by Georg Brandl; implementation by Thomas Lee." -msgstr "" +msgstr "PEP escrito por Georg Brandl; implementación por Thomas Lee." #: ../Doc/whatsnew/2.5.rst:416 msgid "PEP 342: New Generator Features" -msgstr "" +msgstr "PEP 342: Nuevas funciones del generador" #: ../Doc/whatsnew/2.5.rst:418 msgid "" @@ -498,10 +707,20 @@ msgid "" "changing the global variable's value, or passing in some mutable object that " "callers then modify." msgstr "" +"Python 2.5 añade una forma sencilla de pasar valores *a* un generador. Tal y " +"como se introdujo en Python 2.3, los generadores sólo producen salida; una " +"vez que se invoca el código de un generador para crear un iterador, no hay " +"forma de pasar ninguna información nueva a la función cuando se reanuda su " +"ejecución. A veces, la capacidad de pasar alguna información sería útil. " +"Las soluciones más ingeniosas para esto incluyen hacer que el código del " +"generador mire a una variable global y luego cambie el valor de la variable " +"global, o pasar algún objeto mutable que los llamadores luego modifiquen." #: ../Doc/whatsnew/2.5.rst:426 msgid "To refresh your memory of basic generators, here's a simple example::" msgstr "" +"Para refrescar la memoria de los generadores básicos, he aquí un ejemplo " +"sencillo::" #: ../Doc/whatsnew/2.5.rst:434 msgid "" @@ -512,6 +731,12 @@ msgid "" "the iterator's :meth:`next` method, picking up after the :keyword:`!yield` " "statement." msgstr "" +"Cuando se llama a ``contador(10)``, el resultado es un iterador que devuelve " +"los valores de 0 a 9. Al encontrar la sentencia :keyword:`yield`, el " +"iterador devuelve el valor proporcionado y suspende la ejecución de la " +"función, preservando las variables locales. La ejecución se reanuda en la " +"siguiente llamada al método :meth:`next` del iterador, retomando después de " +"la sentencia :keyword:`!yield`." #: ../Doc/whatsnew/2.5.rst:440 msgid "" @@ -519,6 +744,10 @@ msgid "" "value. In 2.5, :keyword:`!yield` is now an expression, returning a value " "that can be assigned to a variable or otherwise operated on::" msgstr "" +"En Python 2.3, :keyword:`yield` era una declaración; no devolvía ningún " +"valor. En 2.5, :keyword:`!yield` es ahora una expresión, que devuelve un " +"valor que se puede asignar a una variable o que se puede operar de otra " +"manera::" #: ../Doc/whatsnew/2.5.rst:446 msgid "" @@ -527,6 +756,10 @@ msgid "" "above example. The parentheses aren't always necessary, but it's easier to " "always add them instead of having to remember when they're needed." msgstr "" +"Te recomiendo que siempre pongas paréntesis alrededor de una expresión :" +"keyword:`yield` cuando estés haciendo algo con el valor devuelto, como en el " +"ejemplo anterior. Los paréntesis no siempre son necesarios, pero es más " +"fácil añadirlos siempre en lugar de tener que recordar cuándo son necesarios." #: ../Doc/whatsnew/2.5.rst:451 msgid "" @@ -536,6 +769,11 @@ msgid "" "can write ``val = yield i`` but have to use parentheses when there's an " "operation, as in ``val = (yield i) + 12``.)" msgstr "" +"(:pep:`342` explica las reglas exactas, que consisten en que una expresión :" +"keyword:`yield`\\ debe ir siempre entre paréntesis, excepto cuando ocurre en " +"la expresión de nivel superior en el lado derecho de una asignación. Esto " +"significa que puedes escribir ``val = yield i`` pero tienes que usar " +"paréntesis cuando hay una operación, como en ``val = (yield i) + 12``)" #: ../Doc/whatsnew/2.5.rst:458 msgid "" @@ -544,16 +782,22 @@ msgid "" "the specified *value*. If the regular :meth:`next` method is called, the :" "keyword:`!yield` returns :const:`None`." msgstr "" +"Los valores se envían a un generador llamando a su método ``send(value)``. " +"El código del generador se reanuda y la expresión :keyword:`yield` devuelve " +"el *valor* especificado. Si se llama al método regular :meth:`next`, la " +"expresión :keyword:`!yield` devuelve :const:`None`." #: ../Doc/whatsnew/2.5.rst:463 msgid "" "Here's the previous example, modified to allow changing the value of the " "internal counter. ::" msgstr "" +"Aquí está el ejemplo anterior, modificado para permitir cambiar el valor del " +"contador interno. ::" #: ../Doc/whatsnew/2.5.rst:476 msgid "And here's an example of changing the counter::" -msgstr "" +msgstr "Y aquí hay un ejemplo de cambio de contador::" #: ../Doc/whatsnew/2.5.rst:493 msgid "" @@ -562,11 +806,16 @@ msgid "" "sure that the :meth:`send` method will be the only method used to resume " "your generator function." msgstr "" +":keyword:`yield` normalmente devolverá :const:`None`, por lo que siempre " +"debes comprobar este caso. No utilices su valor en las expresiones sin más, " +"a menos que estés seguro de que el método :meth:`send` será el único " +"utilizado para reanudar tu función generadora." #: ../Doc/whatsnew/2.5.rst:498 msgid "" "In addition to :meth:`send`, there are two other new methods on generators:" msgstr "" +"Además de :meth:`send`, hay otros dos nuevos métodos en los generadores:" #: ../Doc/whatsnew/2.5.rst:500 msgid "" @@ -574,6 +823,9 @@ msgid "" "inside the generator; the exception is raised by the :keyword:`yield` " "expression where the generator's execution is paused." msgstr "" +"``throw(type, value=None, traceback=None)`` se utiliza para lanzar una " +"excepción dentro del generador; la excepción es lanzada por la expresión :" +"keyword:`yield` donde la ejecución del generador se pausa." #: ../Doc/whatsnew/2.5.rst:504 msgid "" @@ -586,6 +838,14 @@ msgid "" "meth:`close` will also be called by Python's garbage collector when the " "generator is garbage-collected." msgstr "" +":meth:`close` lanza una nueva excepción :exc:`GeneratorExit` dentro del " +"generador para terminar la iteración. Al recibir esta excepción, el código " +"del generador debe lanzar :exc:`GeneratorExit` o :exc:`StopIteration`. " +"Capturar la excepción :exc:`GeneratorExit` y devolver un valor es ilegal y " +"provocará un :exc:`RuntimeError`; si la función lanza alguna otra excepción, " +"esa excepción se propaga a quien la llama. :meth:`close` también será " +"llamado por el recolector de basura de Python cuando el generador sea " +"recolectado." #: ../Doc/whatsnew/2.5.rst:512 msgid "" @@ -593,12 +853,18 @@ msgid "" "suggest using a ``try: ... finally:`` suite instead of catching :exc:" "`GeneratorExit`." msgstr "" +"Si necesitas ejecutar código de limpieza cuando se produce un :exc:" +"`GeneratorExit`, te sugiero que utilices un conjunto ``try: ... finally:`` " +"en lugar de atrapar :exc:`GeneratorExit`." #: ../Doc/whatsnew/2.5.rst:515 msgid "" "The cumulative effect of these changes is to turn generators from one-way " "producers of information into both producers and consumers." msgstr "" +"El efecto acumulativo de estos cambios es que los generadores pasan de ser " +"productores unidireccionales de información a ser tanto productores como " +"consumidores." #: ../Doc/whatsnew/2.5.rst:518 msgid "" @@ -609,6 +875,12 @@ msgid "" "statements). We'll have to figure out patterns for using coroutines " "effectively in Python." msgstr "" +"Los generadores también se convierten en *corutinas*, una forma más " +"generalizada de subrutinas. Las subrutinas se introducen en un punto y se " +"salen en otro (la parte superior de la función, y una declaración :keyword:" +"`return`), pero las coroutines pueden introducirse, salirse y reanudarse en " +"muchos puntos diferentes (las declaraciones :keyword:`yield`). Tendremos que " +"descubrir patrones para usar coroutines de forma efectiva en Python." #: ../Doc/whatsnew/2.5.rst:524 msgid "" @@ -624,6 +896,19 @@ msgid "" "necessary in order to implement the :keyword:`with` statement described by :" "pep:`343`. I'll look at this new statement in the following section." msgstr "" +"La adición del método :meth:`close` tiene un efecto secundario que no es " +"obvio. :meth:`close` es llamado cuando un generador es recogido por la " +"basura, lo que significa que el código del generador tiene una última " +"oportunidad de ejecutarse antes de que el generador sea destruido. Esta " +"última oportunidad significa que ahora se puede garantizar que las " +"sentencias ``intentar...finalmente`` en los generadores funcionen; la " +"cláusula :keyword:`finally` ahora siempre tendrá una oportunidad de " +"ejecutarse. Por lo tanto, se ha eliminado la restricción sintáctica que " +"impedía mezclar sentencias :keyword:`yield` con un conjunto ``try..." +"finally``. Esto parece una trivialidad menor del lenguaje, pero el uso de " +"generadores y ``try...finally`` es realmente necesario para implementar la " +"sentencia :keyword:`with` descrita por :pep:`343`. Veré esta nueva " +"sentencia en la siguiente sección." #: ../Doc/whatsnew/2.5.rst:536 msgid "" @@ -632,44 +917,54 @@ msgid "" "possible for :attr:`gi_frame` to be ``None`` once the generator has been " "exhausted." msgstr "" +"Otro efecto aún más esotérico de este cambio: antes, el atributo :attr:" +"`gi_frame` de un generador era siempre un objeto frame. Ahora es posible " +"que :attr:`gi_frame` sea ``None`` una vez que el generador se ha agotado." #: ../Doc/whatsnew/2.5.rst:549 msgid ":pep:`342` - Coroutines via Enhanced Generators" -msgstr "" +msgstr ":pep:`342` - Coroutines mediante generadores mejorados" #: ../Doc/whatsnew/2.5.rst:545 msgid "" "PEP written by Guido van Rossum and Phillip J. Eby; implemented by Phillip " "J. Eby. Includes examples of some fancier uses of generators as coroutines." msgstr "" +"PEP escrito por Guido van Rossum y Phillip J. Eby; implementado por Phillip " +"J. Eby. Incluye ejemplos de algunos usos más sofisticados de los " +"generadores como coroutines." #: ../Doc/whatsnew/2.5.rst:548 msgid "" "Earlier versions of these features were proposed in :pep:`288` by Raymond " "Hettinger and :pep:`325` by Samuele Pedroni." msgstr "" +"Versiones anteriores de estas características fueron propuestas en :pep:" +"`288` por Raymond Hettinger y :pep:`325` por Samuele Pedroni." #: ../Doc/whatsnew/2.5.rst:552 msgid "https://en.wikipedia.org/wiki/Coroutine" -msgstr "" +msgstr "https://en.wikipedia.org/wiki/Coroutine" #: ../Doc/whatsnew/2.5.rst:552 msgid "The Wikipedia entry for coroutines." -msgstr "" +msgstr "La entrada de Wikipedia para las coroutines." #: ../Doc/whatsnew/2.5.rst:554 msgid "http://www.sidhe.org/~dan/blog/archives/000178.html" -msgstr "" +msgstr "http://www.sidhe.org/~dan/blog/archivos/000178.html" #: ../Doc/whatsnew/2.5.rst:555 msgid "" "An explanation of coroutines from a Perl point of view, written by Dan " "Sugalski." msgstr "" +"Una explicación de las coroutines desde el punto de vista de Perl, escrita " +"por Dan Sugalski." #: ../Doc/whatsnew/2.5.rst:563 msgid "PEP 343: The 'with' statement" -msgstr "" +msgstr "PEP 343: La declaración \"con" #: ../Doc/whatsnew/2.5.rst:565 msgid "" @@ -679,12 +974,19 @@ msgid "" "next section, I'll examine the implementation details and show how to write " "objects for use with this statement." msgstr "" +"La sentencia ':keyword:`with`' aclara el código que antes utilizaba bloques " +"``try...finally``' para asegurar que se ejecuta el código de limpieza. En " +"esta sección, hablaré de la sentencia tal y como se utiliza habitualmente. " +"En la siguiente sección, examinaré los detalles de la implementación y " +"mostraré cómo escribir objetos para usar con esta sentencia." #: ../Doc/whatsnew/2.5.rst:571 msgid "" "The ':keyword:`with`' statement is a new control-flow structure whose basic " "structure is::" msgstr "" +"La declaración ':keyword:`with`' es una nueva estructura de flujo de control " +"cuya estructura básica es::" #: ../Doc/whatsnew/2.5.rst:577 msgid "" @@ -692,6 +994,9 @@ msgid "" "the context management protocol (that is, has :meth:`__enter__` and :meth:" "`__exit__` methods." msgstr "" +"La expresión se evalúa y debe dar como resultado un objeto que soporte el " +"protocolo de gestión de contextos (es decir, que tenga los métodos :meth:" +"`__enter__` y :meth:`__exit__`)." #: ../Doc/whatsnew/2.5.rst:581 msgid "" @@ -700,6 +1005,11 @@ msgid "" "the name *variable*, if given. (Note carefully that *variable* is *not* " "assigned the result of *expression*.)" msgstr "" +"El :meth:`__enter__` del objeto es llamado antes de que se ejecute *with-" +"block* y por lo tanto puede ejecutar código de configuración. También puede " +"devolver un valor ligado al nombre *variable*, si se da. (Observe " +"cuidadosamente que a *variable* no se le asigna el resultado de la " +"*expresión*)" #: ../Doc/whatsnew/2.5.rst:586 msgid "" @@ -707,16 +1017,21 @@ msgid "" "`__exit__` method is called, even if the block raised an exception, and can " "therefore run clean-up code." msgstr "" +"Una vez finalizada la ejecución del *with-block*, se llama al método :meth:" +"`__exit__` del objeto, incluso si el bloque lanzó una excepción, y por lo " +"tanto puede ejecutar código de limpieza." #: ../Doc/whatsnew/2.5.rst:590 msgid "" "To enable the statement in Python 2.5, you need to add the following " "directive to your module::" msgstr "" +"Para habilitar la declaración en Python 2.5, debe añadir la siguiente " +"directiva a su módulo::" #: ../Doc/whatsnew/2.5.rst:595 msgid "The statement will always be enabled in Python 2.6." -msgstr "" +msgstr "La declaración siempre estará habilitada en Python 2.6." #: ../Doc/whatsnew/2.5.rst:597 msgid "" @@ -724,6 +1039,9 @@ msgid "" "can be used with the ':keyword:`with`' statement. File objects are one " "example::" msgstr "" +"Algunos objetos estándar de Python soportan ahora el protocolo de gestión de " +"contextos y pueden utilizarse con la sentencia ':keyword:`with`''. Los " +"objetos de archivo son un ejemplo::" #: ../Doc/whatsnew/2.5.rst:605 msgid "" @@ -731,24 +1049,33 @@ msgid "" "automatically closed, even if the :keyword:`for` loop raised an exception " "part-way through the block." msgstr "" +"Después de que esta sentencia se haya ejecutado, el objeto archivo en *f* se " +"habrá cerrado automáticamente, incluso si el bucle :keyword:`for` lanzó una " +"excepción a mitad del bloque." #: ../Doc/whatsnew/2.5.rst:611 msgid "" "In this case, *f* is the same object created by :func:`open`, because :meth:" "`file.__enter__` returns *self*." msgstr "" +"En este caso, *f* es el mismo objeto creado por :func:`open`, porque :meth:" +"`file.__enter__` devuelve *self*." #: ../Doc/whatsnew/2.5.rst:614 msgid "" "The :mod:`threading` module's locks and condition variables also support " "the ':keyword:`with`' statement::" msgstr "" +"Los bloqueos y las variables de condición del módulo :mod:`threading` " +"también soportan la sentencia ':keyword:`with`'::" #: ../Doc/whatsnew/2.5.rst:622 msgid "" "The lock is acquired before the block is executed and always released once " "the block is complete." msgstr "" +"El bloqueo se adquiere antes de que se ejecute el bloque y siempre se libera " +"una vez que el bloque se ha completado." #: ../Doc/whatsnew/2.5.rst:625 msgid "" @@ -756,10 +1083,13 @@ msgid "" "easy to save and restore the current decimal context, which encapsulates the " "desired precision and rounding characteristics for computations::" msgstr "" +"La nueva función :func:`localcontext` del módulo :mod:`decimal` facilita el " +"guardado y la restauración del contexto decimal actual, que encapsula las " +"características de precisión y redondeo deseadas para los cálculos::" #: ../Doc/whatsnew/2.5.rst:644 msgid "Writing Context Managers" -msgstr "" +msgstr "Redacción de Gestores de Contexto" #: ../Doc/whatsnew/2.5.rst:646 msgid "" @@ -769,10 +1099,17 @@ msgid "" "if you like. Authors of new objects will need to understand the details of " "the underlying implementation and should keep reading." msgstr "" +"Bajo el capó, la sentencia ':keyword:`with`' es bastante complicada. La " +"mayoría de la gente sólo utilizará ':keyword:`!with`' en compañía de objetos " +"existentes y no necesita conocer estos detalles, así que puedes saltarte el " +"resto de esta sección si quieres. Los autores de nuevos objetos necesitarán " +"entender los detalles de la implementación subyacente y deberían seguir " +"leyendo." #: ../Doc/whatsnew/2.5.rst:652 msgid "A high-level explanation of the context management protocol is:" msgstr "" +"Una explicación de alto nivel del protocolo de gestión del contexto es:" #: ../Doc/whatsnew/2.5.rst:654 msgid "" @@ -780,6 +1117,9 @@ msgid "" "\"context manager\". The context manager must have :meth:`__enter__` and :" "meth:`__exit__` methods." msgstr "" +"La expresión se evalúa y debe dar como resultado un objeto llamado \"gestor " +"de contexto\". El gestor de contexto debe tener métodos :meth:`__enter__` " +"y :meth:`__exit__`." #: ../Doc/whatsnew/2.5.rst:658 msgid "" @@ -787,10 +1127,13 @@ msgid "" "returned is assigned to *VAR*. If no ``'as VAR'`` clause is present, the " "value is simply discarded." msgstr "" +"Se llama al método :meth:`__enter__` del gestor de contexto. El valor " +"devuelto se asigna a *VAR*. Si no está presente la cláusula ``'as VAR'``, " +"el valor simplemente se descarta." #: ../Doc/whatsnew/2.5.rst:662 msgid "The code in *BLOCK* is executed." -msgstr "" +msgstr "Se ejecuta el código en *BLOQUE*." #: ../Doc/whatsnew/2.5.rst:664 msgid "" @@ -802,18 +1145,31 @@ msgid "" "if you do the author of the code containing the ':keyword:`with`' statement " "will never realize anything went wrong." msgstr "" +"Si *BLOCK* lanza una excepción, se llama a ``__exit__(type, value, " +"traceback)`` con los detalles de la excepción, los mismos valores devueltos " +"por :func:`sys.exc_info`. El valor de retorno del método controla si la " +"excepción se vuelve a lanzar: cualquier valor falso vuelve a lanzar la " +"excepción, y ``True`` resultará en suprimirla. Sólo en raras ocasiones " +"querrá suprimir la excepción, porque si lo hace el autor del código que " +"contiene la declaración ':keyword:`with`' nunca se dará cuenta de que algo " +"ha ido mal." #: ../Doc/whatsnew/2.5.rst:672 msgid "" "If *BLOCK* didn't raise an exception, the :meth:`__exit__` method is still " "called, but *type*, *value*, and *traceback* are all ``None``." msgstr "" +"Si *BLOCK* no lanzó una excepción, el método :meth:`__exit__` sigue siendo " +"llamado, pero *type*, *value*, y *traceback* son todos ``None``." #: ../Doc/whatsnew/2.5.rst:675 msgid "" "Let's think through an example. I won't present detailed code but will only " "sketch the methods necessary for a database that supports transactions." msgstr "" +"Pensemos en un ejemplo. No presentaré un código detallado, sino que sólo " +"esbozaré los métodos necesarios para una base de datos que soporte " +"transacciones." #: ../Doc/whatsnew/2.5.rst:678 msgid "" @@ -823,12 +1179,21 @@ msgid "" "rolled back, meaning that the changes are all discarded and the database is " "unchanged. See any database textbook for more information.)" msgstr "" +"(Para quienes no estén familiarizados con la terminología de las bases de " +"datos: un conjunto de cambios en la base de datos se agrupa en una " +"transacción. Las transacciones pueden ser confirmadas, lo que significa que " +"todos los cambios se escriben en la base de datos, o revertidas, lo que " +"significa que todos los cambios se descartan y la base de datos no se " +"modifica. Consulte cualquier libro de texto sobre bases de datos para " +"obtener más información)" #: ../Doc/whatsnew/2.5.rst:684 msgid "" "Let's assume there's an object representing a database connection. Our goal " "will be to let the user write code like this::" msgstr "" +"Supongamos que hay un objeto que representa una conexión a la base de datos. " +"Nuestro objetivo será permitir que el usuario escriba código como este::" #: ../Doc/whatsnew/2.5.rst:693 msgid "" @@ -836,6 +1201,9 @@ msgid "" "or rolled back if there's an exception. Here's the basic interface for :" "class:`DatabaseConnection` that I'll assume::" msgstr "" +"La transacción debe ser confirmada si el código en el bloque se ejecuta sin " +"problemas o revertida si hay una excepción. Aquí está la interfaz básica " +"para :class:`DatabaseConnection` que voy a asumir::" #: ../Doc/whatsnew/2.5.rst:706 msgid "" @@ -845,6 +1213,11 @@ msgid "" "cursor`` to their ':keyword:`with`' statement to bind the cursor to a " "variable name. ::" msgstr "" +"El método :meth:`__enter__` es bastante sencillo, ya que sólo hay que " +"iniciar una nueva transacción. Para esta aplicación el objeto cursor " +"resultante sería un resultado útil, por lo que el método lo devolverá. El " +"usuario puede entonces añadir ``as cursor`` a su sentencia ':keyword:`with`' " +"para ligar el cursor a un nombre de variable. ::" #: ../Doc/whatsnew/2.5.rst:718 msgid "" @@ -853,6 +1226,10 @@ msgid "" "occurred. If there was no exception, the transaction is committed. The " "transaction is rolled back if there was an exception." msgstr "" +"El método :meth:`__exit__` es el más complicado porque es donde hay que " +"hacer la mayor parte del trabajo. El método tiene que comprobar si se " +"produjo una excepción. Si no hubo ninguna excepción, la transacción es " +"confirmada. La transacción es revertida si hubo una excepción." #: ../Doc/whatsnew/2.5.rst:723 msgid "" @@ -861,10 +1238,15 @@ msgid "" "exception will be re-raised automatically. If you wished, you could be more " "explicit and add a :keyword:`return` statement at the marked location. ::" msgstr "" +"En el código de abajo, la ejecución simplemente caerá al final de la " +"función, devolviendo el valor por defecto de ``None``. ``None`` es falso, " +"por lo que la excepción se volverá a lanzar automáticamente. Si lo desea, " +"puede ser más explícito y añadir una declaración :keyword:`return` en el " +"lugar marcado. ::" #: ../Doc/whatsnew/2.5.rst:743 msgid "The contextlib module" -msgstr "" +msgstr "El módulo contextlib" #: ../Doc/whatsnew/2.5.rst:745 msgid "" @@ -872,6 +1254,9 @@ msgid "" "that are useful for writing objects for use with the ':keyword:`with`' " "statement." msgstr "" +"El nuevo módulo :mod:`contextlib` proporciona algunas funciones y un " +"decorador que son útiles para escribir objetos para usar con la sentencia ':" +"keyword:`with`'." #: ../Doc/whatsnew/2.5.rst:748 msgid "" @@ -885,12 +1270,23 @@ msgid "" "exception raised in the block will be raised by the :keyword:`!yield` " "statement." msgstr "" +"El decorador se llama :func:`contextmanager`, y permite escribir una única " +"función generadora en lugar de definir una nueva clase. El generador debe " +"producir exactamente un valor. El código hasta la palabra clave :keyword:" +"`yield` se ejecutará como el método :meth:`__enter__`, y el valor producido " +"será el valor de retorno del método que se vinculará a la variable en la " +"cláusula :keyword:`with` de la sentencia :keyword:`!as`, si existe. El " +"código después de :keyword:`yield` se ejecutará en el método :meth:" +"`__exit__`. Cualquier excepción lanzada en el bloque será lanzada por la " +"sentencia :keyword:`!yield`." #: ../Doc/whatsnew/2.5.rst:757 msgid "" "Our database example from the previous section could be written using this " "decorator as::" msgstr "" +"Nuestro ejemplo de base de datos de la sección anterior podría escribirse " +"utilizando este decorador como::" #: ../Doc/whatsnew/2.5.rst:777 msgid "" @@ -900,16 +1296,24 @@ msgid "" "with`' statement both starts a database transaction and acquires a thread " "lock::" msgstr "" +"El módulo :mod:`contextlib` también tiene una función ``anidada(mgr1, " +"mgr2, ...)`` que combina varios gestores de contexto para que no sea " +"necesario escribir sentencias ':keyword:`with`' anidadas. En este ejemplo, " +"la única sentencia ':keyword:`!with`` inicia una transacción de base de " +"datos y adquiere un bloqueo de hilo::" #: ../Doc/whatsnew/2.5.rst:786 msgid "" "Finally, the ``closing(object)`` function returns *object* so that it can be " "bound to a variable, and calls ``object.close`` at the end of the block. ::" msgstr "" +"Por último, la función ``closing(object)`` devuelve el *objeto* para que " +"pueda ser vinculado a una variable, y llama a ``object.close`` al final del " +"bloque. ::" #: ../Doc/whatsnew/2.5.rst:803 msgid ":pep:`343` - The \"with\" statement" -msgstr "" +msgstr ":pep:`343` - La declaración \"con\"" #: ../Doc/whatsnew/2.5.rst:800 msgid "" @@ -918,14 +1322,18 @@ msgid "" "':keyword:`with`' statement, which can be helpful in learning how the " "statement works." msgstr "" +"PEP escrito por Guido van Rossum y Nick Coghlan; implementado por Mike " +"Bland, Guido van Rossum y Neal Norwitz. El PEP muestra el código generado " +"para una sentencia ':keyword:`with`', que puede ser útil para aprender cómo " +"funciona la sentencia." #: ../Doc/whatsnew/2.5.rst:805 msgid "The documentation for the :mod:`contextlib` module." -msgstr "" +msgstr "La documentación del módulo :mod:`contextlib`." #: ../Doc/whatsnew/2.5.rst:813 msgid "PEP 352: Exceptions as New-Style Classes" -msgstr "" +msgstr "PEP 352: Las excepciones como clases de nuevo estilo" #: ../Doc/whatsnew/2.5.rst:815 msgid "" @@ -934,12 +1342,18 @@ msgid "" "exceptions (:exc:`NameError`, :exc:`ValueError`, etc.) are now new-style " "classes." msgstr "" +"Las clases de excepción ahora pueden ser clases de nuevo estilo, no sólo " +"clases clásicas, y la clase incorporada :exc:`Exception` y todas las " +"excepciones incorporadas estándar (:exc:`NameError`, :exc:`ValueError`, " +"etc.) son ahora clases de nuevo estilo." #: ../Doc/whatsnew/2.5.rst:819 msgid "" "The inheritance hierarchy for exceptions has been rearranged a bit. In 2.5, " "the inheritance relationships are::" msgstr "" +"La jerarquía de herencia de las excepciones se ha reordenado un poco. En " +"2.5, las relaciones de herencia son::" #: ../Doc/whatsnew/2.5.rst:828 msgid "" @@ -951,6 +1365,14 @@ msgid "" "exc:`KeyboardInterrupt` and :exc:`SystemExit` in order to re-raise them. " "The usual pattern is::" msgstr "" +"Esta reorganización se hizo porque la gente a menudo quiere atrapar todas " +"las excepciones que indican errores del programa. :exc:`KeyboardInterrupt` " +"y :exc:`SystemExit` no son errores, sin embargo, y por lo general " +"representan una acción explícita como el usuario pulsando :kbd:`Control-C` o " +"el código llamando a :func:`sys.exit`. Una simple ``except:`` atrapará " +"todas las excepciones, por lo que comúnmente se necesita listar :exc:" +"`KeyboardInterrupt` y :exc:`SystemExit` para volver a lanzarlas. El patrón " +"habitual es::" #: ../Doc/whatsnew/2.5.rst:843 msgid "" @@ -959,6 +1381,11 @@ msgid "" "leaving :exc:`KeyboardInterrupt` and :exc:`SystemExit` alone. As in " "previous versions, a bare ``except:`` still catches all exceptions." msgstr "" +"En Python 2.5, ahora puedes escribir ``except Exception`` para conseguir el " +"mismo resultado, capturando todas las excepciones que suelen indicar errores " +"pero dejando :exc:`KeyboardInterrupt` y :exc:`SystemExit` en paz. Como en " +"versiones anteriores, un ``except:`` desnudo sigue capturando todas las " +"excepciones." #: ../Doc/whatsnew/2.5.rst:848 msgid "" @@ -970,6 +1397,13 @@ msgid "" "``except:`` form should be removed in Python 3.0, but Guido van Rossum " "hasn't decided whether to do this or not." msgstr "" +"El objetivo de Python 3.0 es requerir que cualquier clase lanzada como " +"excepción derive de :exc:`BaseException` o de algún descendiente de :exc:" +"`BaseException`, y las futuras versiones de la serie Python 2.x pueden " +"empezar a imponer esta restricción. Por lo tanto, sugiero que empieces a " +"hacer que todas tus clases de excepción deriven de :exc:`Exception` ahora. " +"Se ha sugerido que la forma desnuda ``except:`` sea eliminada en Python 3.0, " +"pero Guido van Rossum no ha decidido si hacerlo o no." #: ../Doc/whatsnew/2.5.rst:856 msgid "" @@ -977,20 +1411,26 @@ msgid "" "occurred\"``, is deprecated in Python 2.5 and will trigger a warning. The " "aim is to be able to remove the string-exception feature in a few releases." msgstr "" +"El lanzamiento de cadenas como excepciones, como en la declaración ``raise " +"\"Error occurred\"``, está obsoleto en Python 2.5 y provocará una " +"advertencia. El objetivo es poder eliminar la función de excepción de " +"cadena en algunas versiones." #: ../Doc/whatsnew/2.5.rst:863 msgid ":pep:`352` - Required Superclass for Exceptions" -msgstr "" +msgstr ":pep:`352` - Superclase necesaria para las excepciones" #: ../Doc/whatsnew/2.5.rst:864 msgid "" "PEP written by Brett Cannon and Guido van Rossum; implemented by Brett " "Cannon." msgstr "" +"PEP escrito por Brett Cannon y Guido van Rossum; implementado por Brett " +"Cannon." #: ../Doc/whatsnew/2.5.rst:872 msgid "PEP 353: Using ssize_t as the index type" -msgstr "" +msgstr "PEP 353: Uso de ssize_t como tipo de índice" #: ../Doc/whatsnew/2.5.rst:874 msgid "" @@ -999,6 +1439,10 @@ msgid "" "handle more data on 64-bit platforms. This change doesn't affect Python's " "capacity on 32-bit platforms." msgstr "" +"Un amplio cambio en la API C de Python, que utiliza una nueva definición de " +"tipo :c:type:`Py_ssize_t` en lugar de :c:type:`int`, permitirá al intérprete " +"manejar más datos en plataformas de 64 bits. Este cambio no afecta a la " +"capacidad de Python en plataformas de 32 bits." #: ../Doc/whatsnew/2.5.rst:879 msgid "" @@ -1011,6 +1455,16 @@ msgid "" "www.unix.org/version2/whatsnew/lp64_wp.html for a discussion -- but the most " "commonly available model leaves :c:type:`int` as 32 bits.)" msgstr "" +"Varias partes del intérprete de Python utilizaban el tipo :c:type:`int` de C " +"para almacenar tamaños o recuentos; por ejemplo, el número de elementos de " +"una lista o tupla se almacenaba en un :c:type:`int`. Los compiladores de C " +"para la mayoría de las plataformas de 64 bits siguen definiendo :c:type:" +"`int` como un tipo de 32 bits, lo que significa que las listas sólo pueden " +"contener hasta ``2**31 - 1`` = 2147483647 elementos. (En realidad, hay " +"algunos modelos de programación diferentes que los compiladores de C de 64 " +"bits pueden utilizar -- véase http://www.unix.org/version2/whatsnew/lp64_wp." +"html para una discusión -- pero el modelo más comúnmente disponible deja :c:" +"type:`int` como de 32 bits)" #: ../Doc/whatsnew/2.5.rst:888 msgid "" @@ -1020,6 +1474,12 @@ msgid "" "type:`PyObject` representing the item. 2147483647\\*4 is already more bytes " "than a 32-bit address space can contain." msgstr "" +"Un límite de 2147483647 elementos no importa realmente en una plataforma de " +"32 bits porque te quedarás sin memoria antes de alcanzar el límite de " +"longitud. Cada elemento de la lista requiere espacio para un puntero, que es " +"de 4 bytes, más espacio para un :c:type:`PyObject` que representa el " +"elemento. 2147483647*4 ya son más bytes de los que puede contener un " +"espacio de direcciones de 32 bits." #: ../Doc/whatsnew/2.5.rst:894 msgid "" @@ -1033,6 +1493,17 @@ msgid "" "users is still relatively small. (In 5 or 10 years, we may *all* be on 64-" "bit machines, and the transition would be more painful then.)" msgstr "" +"Sin embargo, es posible direccionar esa cantidad de memoria en una " +"plataforma de 64 bits. Los punteros para una lista de ese tamaño sólo " +"requerirían 16 GiB de espacio, por lo que no es descabellado que los " +"programadores de Python puedan construir listas tan grandes. Por lo tanto, " +"el intérprete de Python tuvo que ser cambiado para usar algún tipo diferente " +"a :c:type:`int`, y este será un tipo de 64 bits en plataformas de 64 bits. " +"El cambio causará incompatibilidades en las máquinas de 64 bits, por lo que " +"se consideró que valía la pena hacer la transición ahora, mientras el número " +"de usuarios de 64 bits es todavía relativamente pequeño. (En 5 o 10 años, " +"puede que *todos* estemos en máquinas de 64 bits, y la transición sería " +"entonces más dolorosa)" #: ../Doc/whatsnew/2.5.rst:904 msgid "" @@ -1042,6 +1513,12 @@ msgid "" "now return :c:type:`Py_ssize_t`. Code in extension modules may therefore " "need to have some variables changed to :c:type:`Py_ssize_t`." msgstr "" +"Este cambio afecta en mayor medida a los autores de módulos de extensión de " +"C. Las cadenas de Python y los tipos contenedores como las listas y las " +"tuplas utilizan ahora :c:type:`Py_ssize_t` para almacenar su tamaño. " +"Funciones como :c:func:`PyList_Size` ahora devuelven :c:type:`Py_ssize_t`. " +"Por lo tanto, el código de los módulos de extensión puede necesitar cambiar " +"algunas variables a :c:type:`Py_ssize_t`." #: ../Doc/whatsnew/2.5.rst:910 msgid "" @@ -1051,24 +1528,32 @@ msgid "" "default, but you can define the macro :c:macro:`PY_SSIZE_T_CLEAN` before " "including :file:`Python.h` to make them return :c:type:`Py_ssize_t`." msgstr "" +"Las funciones :c:func:`PyArg_ParseTuple` y :c:func:`Py_BuildValue` tienen un " +"nuevo código de conversión, ``n``, para :c:type:`Py_ssize_t`. Las " +"funciones :c:func:`PyArg_ParseTuple` ``s#`` y ``t#`` siguen devolviendo :c:" +"type:`int` por defecto, pero puedes definir la macro :c:macro:" +"`PY_SSIZE_T_CLEAN` antes de incluir :file:`Python.h` para que devuelvan :c:" +"type:`Py_ssize_t`." #: ../Doc/whatsnew/2.5.rst:916 msgid "" ":pep:`353` has a section on conversion guidelines that extension authors " "should read to learn about supporting 64-bit platforms." msgstr "" +":pep:`353` tiene una sección sobre directrices de conversión que los autores " +"de extensiones deberían leer para aprender a soportar plataformas de 64 bits." #: ../Doc/whatsnew/2.5.rst:922 msgid ":pep:`353` - Using ssize_t as the index type" -msgstr "" +msgstr ":pep:`353` - Uso de ssize_t como tipo de índice" #: ../Doc/whatsnew/2.5.rst:923 msgid "PEP written and implemented by Martin von Löwis." -msgstr "" +msgstr "PEP escrito y aplicado por Martin von Löwis." #: ../Doc/whatsnew/2.5.rst:931 msgid "PEP 357: The '__index__' method" -msgstr "" +msgstr "PEP 357: El método '__index__'" #: ../Doc/whatsnew/2.5.rst:933 msgid "" @@ -1080,6 +1565,14 @@ msgid "" "8, 16, 32, and 64 bits, but there was no way to signal that these types " "could be used as slice indexes." msgstr "" +"Los desarrolladores de NumPy tenían un problema que sólo podía resolverse " +"añadiendo un nuevo método especial, :meth:`__index__`. Cuando se utiliza la " +"notación de trozos, como en ``[start:stop:step]``, los valores de los " +"índices *start*, *stop* y *step* deben ser todos enteros o enteros largos. " +"NumPy define una variedad de tipos de enteros especializados que " +"corresponden a enteros sin signo y con signo de 8, 16, 32 y 64 bits, pero no " +"había forma de señalar que estos tipos pudieran usarse como índices de " +"trozos." #: ../Doc/whatsnew/2.5.rst:941 msgid "" @@ -1088,6 +1581,11 @@ msgid "" "meth:`__int__`, floating-point numbers would also become legal slice indexes " "and that's clearly an undesirable behaviour." msgstr "" +"El rebanado no puede utilizar el método :meth:`__int__` existente porque ese " +"método también se utiliza para implementar la coerción a enteros. Si el " +"rebanado utilizara :meth:`__int__`, los números de punto flotante también se " +"convertirían en índices de rebanada legales y eso es claramente un " +"comportamiento indeseable." #: ../Doc/whatsnew/2.5.rst:946 msgid "" @@ -1095,6 +1593,9 @@ msgid "" "no arguments and returns an integer giving the slice index to use. For " "example::" msgstr "" +"En su lugar, se ha añadido un nuevo método especial llamado :meth:" +"`__index__`. No toma argumentos y devuelve un entero que da el índice de " +"corte a utilizar. Por ejemplo::" #: ../Doc/whatsnew/2.5.rst:953 msgid "" @@ -1102,6 +1603,9 @@ msgid "" "interpreter will check that the type returned is correct, and raises a :exc:" "`TypeError` if this requirement isn't met." msgstr "" +"El valor devuelto debe ser un entero de Python o un entero largo. El " +"intérprete comprobará que el tipo devuelto es correcto, y lanza un :exc:" +"`TypeError` si no se cumple este requisito." #: ../Doc/whatsnew/2.5.rst:957 msgid "" @@ -1110,24 +1614,31 @@ msgid "" "``PyNumber_Index(obj)`` can be used in extension code to call the :meth:" "`__index__` function and retrieve its result." msgstr "" +"Se ha añadido la correspondiente ranura :attr:`nb_index` a la estructura :c:" +"type:`PyNumberMethods` de nivel C para que las extensiones C puedan " +"implementar este protocolo. El código de la extensión puede utilizar " +"``PyNumber_Index(obj)`` para llamar a la función :meth:`__index__` y obtener " +"su resultado." #: ../Doc/whatsnew/2.5.rst:965 msgid ":pep:`357` - Allowing Any Object to be Used for Slicing" -msgstr "" +msgstr ":pep:`357` - Permitir el uso de cualquier objeto para rebanar" #: ../Doc/whatsnew/2.5.rst:966 msgid "PEP written and implemented by Travis Oliphant." -msgstr "" +msgstr "PEP escrito e implementado por Travis Oliphant." #: ../Doc/whatsnew/2.5.rst:974 msgid "Other Language Changes" -msgstr "" +msgstr "Otros cambios lingüísticos" #: ../Doc/whatsnew/2.5.rst:976 msgid "" "Here are all of the changes that Python 2.5 makes to the core Python " "language." msgstr "" +"Estos son todos los cambios que Python 2.5 introduce en el núcleo del " +"lenguaje Python." #: ../Doc/whatsnew/2.5.rst:978 msgid "" @@ -1138,12 +1649,22 @@ msgid "" "`collections` module. The following example defines a dictionary that " "returns zero for any missing key::" msgstr "" +"El tipo :class:`dict` tiene un nuevo gancho para permitir que las subclases " +"proporcionen un valor por defecto cuando una clave no está contenida en el " +"diccionario. Cuando no se encuentre una clave, se llamará al método " +"``missing__(key)`` del diccionario. Este hook se utiliza para implementar " +"la nueva clase :class:`defaultdict` en el módulo :mod:`collections`. El " +"siguiente ejemplo define un diccionario que devuelve cero para cualquier " +"clave que falte::" #: ../Doc/whatsnew/2.5.rst:993 msgid "" "Both 8-bit and Unicode strings have new ``partition(sep)`` and " "``rpartition(sep)`` methods that simplify a common use case." msgstr "" +"Tanto las cadenas de 8 bits como las de Unicode tienen nuevos métodos " +"``partition(sep)`` y ``rpartition(sep)`` que simplifican un caso de uso " +"común." #: ../Doc/whatsnew/2.5.rst:996 msgid "" @@ -1157,25 +1678,37 @@ msgid "" "tuple but starts searching from the end of the string; the ``r`` stands for " "'reverse'." msgstr "" +"El método ``find(S)`` se utiliza a menudo para obtener un índice que luego " +"se utiliza para cortar la cadena y obtener las piezas que están antes y " +"después del separador. El método ``partition(sep)`` condensa este patrón en " +"una sola llamada al método que devuelve una tripleta que contiene la " +"subcadena antes del separador, el propio separador y la subcadena después " +"del separador. Si no se encuentra el separador, el primer elemento de la " +"tupla es la cadena completa y los otros dos elementos están vacíos. " +"``rpartition(sep)`` también devuelve una tupla de 3 elementos, pero empieza " +"a buscar desde el final de la cadena; la ``r`` significa \"al revés\"." #: ../Doc/whatsnew/2.5.rst:1005 msgid "Some examples::" -msgstr "" +msgstr "Algunos ejemplos::" #: ../Doc/whatsnew/2.5.rst:1018 msgid "" "(Implemented by Fredrik Lundh following a suggestion by Raymond Hettinger.)" msgstr "" +"(Implementado por Fredrik Lundh tras una sugerencia de Raymond Hettinger)" #: ../Doc/whatsnew/2.5.rst:1020 msgid "" "The :meth:`startswith` and :meth:`endswith` methods of string types now " "accept tuples of strings to check for. ::" msgstr "" +"Los métodos :meth:`startswith` y :meth:`endswith` de los tipos de cadena " +"aceptan ahora tuplas de cadenas para su comprobación. ::" #: ../Doc/whatsnew/2.5.rst:1026 msgid "(Implemented by Georg Brandl following a suggestion by Tom Lynn.)" -msgstr "" +msgstr "(Implementado por Georg Brandl tras una sugerencia de Tom Lynn)" #: ../Doc/whatsnew/2.5.rst:1030 msgid "" @@ -1186,10 +1719,16 @@ msgid "" "with the smallest/largest return value from this function. For example, to " "find the longest string in a list, you can do::" msgstr "" +"Las funciones incorporadas :func:`min` y :func:`max` han ganado un parámetro " +"de palabra clave ``key`` análogo al argumento ``key`` de :meth:`sort`. Este " +"parámetro proporciona una función que toma un único argumento y es llamada " +"para cada valor de la lista; :func:`min`/:func:`max` devolverá el elemento " +"con el valor de retorno más pequeño/más grande de esta función. Por ejemplo, " +"para encontrar la cadena más larga de una lista, puede hacer::" #: ../Doc/whatsnew/2.5.rst:1043 msgid "(Contributed by Steven Bethard and Raymond Hettinger.)" -msgstr "" +msgstr "(Contribución de Steven Bethard y Raymond Hettinger)" #: ../Doc/whatsnew/2.5.rst:1045 msgid "" @@ -1200,6 +1739,12 @@ msgid "" "values returned by the iterator evaluate as true. (Suggested by Guido van " "Rossum, and implemented by Raymond Hettinger.)" msgstr "" +"Dos nuevas funciones incorporadas, :func:`any` y :func:`all`, evalúan si un " +"iterador contiene algún valor verdadero o falso. :func:`any` devuelve :const:" +"`True` si cualquier valor devuelto por el iterador es verdadero; en caso " +"contrario devolverá :const:`False`. :func:`all` devuelve :const:`True` sólo " +"si todos los valores devueltos por el iterador se evalúan como verdaderos. " +"(Sugerido por Guido van Rossum, e implementado por Raymond Hettinger)" #: ../Doc/whatsnew/2.5.rst:1052 msgid "" @@ -1210,6 +1755,13 @@ msgid "" "return non-negative numbers, and users often seem to use ``id(self)`` in :" "meth:`__hash__` methods (though this is discouraged)." msgstr "" +"El resultado del método :meth:`__hash__` de una clase puede ser ahora un " +"entero largo o un entero normal. Si se devuelve un entero largo, se toma el " +"hash de ese valor. En versiones anteriores se requería que el valor del " +"hash fuera un entero regular, pero en 2.5 el built-in :func:`id` se cambió " +"para devolver siempre números no negativos, y los usuarios parecen utilizar " +"a menudo ``id(self)`` en los métodos :meth:`__hash__` (aunque esto se " +"desaconseja)." #: ../Doc/whatsnew/2.5.rst:1061 msgid "" @@ -1219,6 +1771,12 @@ msgid "" "error. See :pep:`263` for how to declare a module's encoding; for example, " "you might add a line like this near the top of the source file::" msgstr "" +"ASCII es ahora la codificación por defecto para los módulos. Ahora es un " +"error de sintaxis si un módulo contiene literales de cadena con caracteres " +"de 8 bits pero no tiene una declaración de codificación. En Python 2.4 esto " +"provocaba una advertencia, no un error de sintaxis. Vea en :pep:`263` cómo " +"declarar la codificación de un módulo; por ejemplo, puede añadir una línea " +"como ésta cerca de la parte superior del fichero fuente::" #: ../Doc/whatsnew/2.5.rst:1069 msgid "" @@ -1227,6 +1785,10 @@ msgid "" "Unicode using the default ASCII encoding. The result of the comparison is " "false::" msgstr "" +"Una nueva advertencia, :class:`UnicodeWarning`, se activa cuando se intenta " +"comparar una cadena Unicode y una cadena de 8 bits que no se puede convertir " +"a Unicode utilizando la codificación ASCII por defecto. El resultado de la " +"comparación es falso::" #: ../Doc/whatsnew/2.5.rst:1081 msgid "" @@ -1237,6 +1799,13 @@ msgid "" "resulted in this exception being raised instead of suppressed by the code " "in :file:`dictobject.c` that implements dictionaries." msgstr "" +"Anteriormente, esto lanzaba una excepción :class:`UnicodeDecodeError`, pero " +"en 2.5 esto podía dar lugar a problemas desconcertantes al acceder a un " +"diccionario. Si se buscaba ``unichr(128)`` y se utilizaba ``chr(128)`` como " +"clave, se producía una excepción :class:`UnicodeDecodeError`. Otros cambios " +"en la versión 2.5 hicieron que esta excepción se lanzara en lugar de ser " +"suprimida por el código de :file:`dictobject.c` que implementa los " +"diccionarios." #: ../Doc/whatsnew/2.5.rst:1088 msgid "" @@ -1244,10 +1813,13 @@ msgid "" "change might have broken code, so instead :class:`UnicodeWarning` was " "introduced." msgstr "" +"Lanzar una excepción para tal comparación es estrictamente correcto, pero el " +"cambio podría haber roto el código, así que en su lugar se introdujo :class:" +"`UnicodeWarning`." #: ../Doc/whatsnew/2.5.rst:1091 msgid "(Implemented by Marc-André Lemburg.)" -msgstr "" +msgstr "(Implementado por Marc-André Lemburg.)" #: ../Doc/whatsnew/2.5.rst:1093 msgid "" @@ -1261,20 +1833,32 @@ msgid "" "running the Python executable to display the warning message. (Implemented " "by Thomas Wouters.)" msgstr "" +"Un error que a veces cometen los programadores de Python es olvidarse de " +"incluir un módulo :file:`__init__.py` en el directorio de un paquete. " +"Depurar este error puede ser confuso, y normalmente requiere ejecutar Python " +"con el modificador :option:`-v` para registrar todas las rutas buscadas. En " +"Python 2.5, una nueva advertencia :exc:`ImportWarning` se activa cuando una " +"importación habría recogido un directorio como paquete pero no se encontró " +"ningún :file:`__init__.py`. Esta advertencia se ignora silenciosamente por " +"defecto; proporcione la opción :option:`-Wd <-W>` cuando ejecute el " +"ejecutable de Python para mostrar el mensaje de advertencia. (Implementado " +"por Thomas Wouters)" #: ../Doc/whatsnew/2.5.rst:1102 msgid "" "The list of base classes in a class definition can now be empty. As an " "example, this is now legal::" msgstr "" +"La lista de clases base en una definición de clase ahora puede estar " +"vacía. Como ejemplo, esto es ahora legal::" #: ../Doc/whatsnew/2.5.rst:1108 msgid "(Implemented by Brett Cannon.)" -msgstr "" +msgstr "(Implementado por Brett Cannon.)" #: ../Doc/whatsnew/2.5.rst:1116 msgid "Interactive Interpreter Changes" -msgstr "" +msgstr "Cambios en el intérprete interactivo" #: ../Doc/whatsnew/2.5.rst:1118 msgid "" @@ -1282,6 +1866,9 @@ msgid "" "strings so that new users get a somewhat helpful message when they try to " "quit::" msgstr "" +"En el intérprete interactivo, ``quit`` y ``exit`` han sido durante mucho " +"tiempo cadenas para que los nuevos usuarios obtengan un mensaje algo útil " +"cuando intenten salir::" #: ../Doc/whatsnew/2.5.rst:1124 msgid "" @@ -1290,6 +1877,10 @@ msgid "" "``quit()`` or ``exit()`` will now exit the interpreter as they expect. " "(Implemented by Georg Brandl.)" msgstr "" +"En Python 2.5, ``quit`` y ``exit`` son ahora objetos que siguen produciendo " +"representaciones de cadena de sí mismos, pero también son invocables. Los " +"novatos que prueben ``quit()`` o ``exit()`` ahora saldrán del intérprete " +"como se espera. (Implementado por Georg Brandl.)" #: ../Doc/whatsnew/2.5.rst:1129 msgid "" @@ -1297,10 +1888,13 @@ msgid "" "help` and :option:`--version`; on Windows, it also accepts the :option:`/? " "<-?>` option for displaying a help message. (Implemented by Georg Brandl.)" msgstr "" +"El ejecutable de Python ahora acepta las opciones largas estándar :option:`--" +"help` y :option:`--version`; en Windows, también acepta la opción :option:" +"`/? <-?>` para mostrar un mensaje de ayuda. (Implementado por Georg Brandl)" #: ../Doc/whatsnew/2.5.rst:1139 msgid "Optimizations" -msgstr "" +msgstr "Optimizaciones" #: ../Doc/whatsnew/2.5.rst:1141 msgid "" @@ -1310,6 +1904,12 @@ msgid "" "LLC with local support from CCP Games. Those optimizations added at this " "sprint are specially marked in the following list." msgstr "" +"Varias de las optimizaciones se desarrollaron en el sprint NeedForSpeed, un " +"evento celebrado en Reikiavik, Islandia, del 21 al 28 de mayo de 2006. El " +"sprint se centró en las mejoras de velocidad de la implementación de CPython " +"y fue financiado por EWT LLC con el apoyo local de CCP Games. Las " +"optimizaciones añadidas en este sprint están especialmente marcadas en la " +"siguiente lista." #: ../Doc/whatsnew/2.5.rst:1147 msgid "" @@ -1319,6 +1919,11 @@ msgid "" "and as a result sets will use a third less memory and are somewhat faster. " "(Implemented by Raymond Hettinger.)" msgstr "" +"Cuando se introdujeron en Python 2.4, los tipos incorporados :class:`set` y :" +"class:`frozenset` se construyeron sobre el tipo diccionario de Python. En " +"2.5 la estructura de datos interna se ha personalizado para implementar " +"conjuntos, y como resultado los conjuntos utilizarán un tercio menos de " +"memoria y son algo más rápidos. (Implementado por Raymond Hettinger)" #: ../Doc/whatsnew/2.5.rst:1153 msgid "" @@ -1328,6 +1933,12 @@ msgid "" "Andrew Dalke at the NeedForSpeed sprint. Character maps were improved by " "Walter Dörwald and Martin von Löwis.)" msgstr "" +"Se ha mejorado la velocidad de algunas operaciones Unicode, como la búsqueda " +"de subcadenas, la división de cadenas y la codificación y decodificación de " +"mapas de caracteres. (Las mejoras en la búsqueda de subcadenas y la división " +"fueron añadidas por Fredrik Lundh y Andrew Dalke en el sprint NeedForSpeed. " +"Los mapas de caracteres fueron mejorados por Walter Dörwald y Martin von " +"Löwis)" #: ../Doc/whatsnew/2.5.rst:1161 msgid "" @@ -1336,6 +1947,10 @@ msgid "" "around 800--1000 digits where the function is 6 times faster. (Contributed " "by Alan McIntyre and committed at the NeedForSpeed sprint.)" msgstr "" +"La función ``long(str, base)`` es ahora más rápida en cadenas de dígitos " +"largos porque se calculan menos resultados intermedios. El máximo es para " +"cadenas de alrededor de 800-1000 dígitos, donde la función es 6 veces más " +"rápida. (Aportado por Alan McIntyre y comprometido en el sprint NeedForSpeed)" #: ../Doc/whatsnew/2.5.rst:1168 msgid "" @@ -1347,22 +1962,35 @@ msgid "" "methods will now trigger a :exc:`ValueError` from the :meth:`read\\*` " "method. (Implemented by Thomas Wouters.)" msgstr "" +"Ahora es ilegal mezclar la iteración sobre un fichero con ``for line in " +"file`` y llamar a los métodos :meth:`read`/:meth:`readline`/:meth:" +"`readlines` del objeto fichero. La iteración utiliza un buffer interno y " +"los métodos :meth:`read\\*` no utilizan ese buffer. En su lugar, " +"devolverán los datos que siguen al buffer, haciendo que los datos aparezcan " +"desordenados. Mezclar la iteración y estos métodos provocará ahora un :exc:" +"`ValueError` del método :meth:`read\\*`. (Implementado por Thomas Wouters)" -#: ../Doc/whatsnew/2.5.rst:1178 -#, python-format +#: ../Doc/whatsnew/2.5.rst:1178, python-format msgid "" "The :mod:`struct` module now compiles structure format strings into an " -"internal representation and caches this representation, yielding a " -"20% speedup. (Contributed by Bob Ippolito at the NeedForSpeed sprint.)" +"internal representation and caches this representation, yielding a 20% " +"speedup. (Contributed by Bob Ippolito at the NeedForSpeed sprint.)" msgstr "" +"El módulo :mod:`struct` ahora compila cadenas de formato de estructura en " +"una representación interna y almacena en caché esta representación, lo que " +"supone una mejora del 20% s. (Contribuido por Bob Ippolito en el sprint " +"NeedForSpeed)" -#: ../Doc/whatsnew/2.5.rst:1182 -#, python-format +#: ../Doc/whatsnew/2.5.rst:1182, python-format msgid "" "The :mod:`re` module got a 1 or 2% speedup by switching to Python's " "allocator functions instead of the system's :c:func:`malloc` and :c:func:" "`free`. (Contributed by Jack Diederich at the NeedForSpeed sprint.)" msgstr "" +"El módulo :mod:`re` obtuvo un 1 o 2% s de velocidad al cambiar a las " +"funciones asignadoras de Python en lugar de las :c:func:`malloc` y :c:func:" +"`free` del sistema. (Contribuido por Jack Diederich en el sprint " +"NeedForSpeed)" #: ../Doc/whatsnew/2.5.rst:1186 msgid "" @@ -1371,6 +1999,11 @@ msgid "" "will do the arithmetic and produce code corresponding to ``a = 5``. " "(Proposed and implemented by Raymond Hettinger.)" msgstr "" +"El optimizador de la mirilla del generador de código realiza ahora un simple " +"plegado de constantes en las expresiones. Si escribes algo como ``a = " +"2+3``, el generador de código hará la aritmética y producirá el código " +"correspondiente a ``a = 5``. (Propuesto e implementado por Raymond " +"Hettinger)" #: ../Doc/whatsnew/2.5.rst:1191 msgid "" @@ -1382,15 +2015,27 @@ msgid "" "may improve cache locality and reduce memory usage a bit. (Contributed by " "Neal Norwitz.)" msgstr "" +"Las llamadas a funciones son ahora más rápidas porque los objetos de código " +"guardan ahora el último fotograma terminado (un \"fotograma zombi\") en un " +"campo interno del objeto de código, reutilizándolo la próxima vez que se " +"invoque el objeto de código. (Parche original de Michael Hudson, modificado " +"por Armin Rigo y Richard Jones; confirmado en el sprint NeedForSpeed) Los " +"objetos marco son también ligeramente más pequeños, lo que puede mejorar la " +"localidad de la caché y reducir un poco el uso de la memoria. (Contribución " +"de Neal Norwitz)" -#: ../Doc/whatsnew/2.5.rst:1201 -#, python-format +#: ../Doc/whatsnew/2.5.rst:1201, python-format msgid "" "Python's built-in exceptions are now new-style classes, a change that speeds " "up instantiation considerably. Exception handling in Python 2.5 is " "therefore about 30% faster than in 2.4. (Contributed by Richard Jones, Georg " "Brandl and Sean Reifschneider at the NeedForSpeed sprint.)" msgstr "" +"Las excepciones incorporadas en Python son ahora clases de nuevo estilo, un " +"cambio que acelera considerablemente la instanciación. El manejo de " +"excepciones en Python 2.5 es, por tanto, un 30% f más rápido que en 2.4. " +"(Contribución de Richard Jones, Georg Brandl y Sean Reifschneider en el " +"sprint NeedForSpeed)" #: ../Doc/whatsnew/2.5.rst:1206 msgid "" @@ -1398,10 +2043,13 @@ msgid "" "so that the interpreter makes fewer :c:func:`open` and :c:func:`stat` calls " "on startup. (Contributed by Martin von Löwis and Georg Brandl.)" msgstr "" +"La importación ahora almacena en caché las rutas intentadas, registrando si " +"existen o no para que el intérprete haga menos llamadas a :c:func:`open` y :" +"c:func:`stat` al iniciar. (Contribución de Martin von Löwis y Georg Brandl)" #: ../Doc/whatsnew/2.5.rst:1218 msgid "New, Improved, and Removed Modules" -msgstr "" +msgstr "Módulos nuevos, mejorados y eliminados" #: ../Doc/whatsnew/2.5.rst:1220 msgid "" @@ -1411,12 +2059,21 @@ msgid "" "more complete list of changes, or look through the SVN logs for all the " "details." msgstr "" +"La biblioteca estándar ha recibido muchas mejoras y correcciones de errores " +"en Python 2.5. Aquí hay una lista parcial de los cambios más notables, " +"ordenados alfabéticamente por el nombre del módulo. Consulte el archivo :" +"file:`Misc/NEWS` en el árbol de fuentes para obtener una lista más completa " +"de los cambios, o busque en los registros de SVN para obtener todos los " +"detalles." #: ../Doc/whatsnew/2.5.rst:1225 msgid "" "The :mod:`audioop` module now supports the a-LAW encoding, and the code for " "u-LAW encoding has been improved. (Contributed by Lars Immisch.)" msgstr "" +"El módulo :mod:`audioop` soporta ahora la codificación a-LAW, y se ha " +"mejorado el código para la codificación u-LAW. (Contribución de Lars " +"Immisch)" #: ../Doc/whatsnew/2.5.rst:1228 msgid "" @@ -1431,6 +2088,17 @@ msgid "" "module documentation for details. (Designed and implemented by Walter " "Dörwald.)" msgstr "" +"El módulo :mod:`codecs` ha ganado soporte para códecs incrementales. La " +"función :func:`codec.lookup` devuelve ahora una instancia de :class:" +"`CodecInfo` en lugar de una tupla. Las instancias de :class:`CodecInfo` se " +"comportan como una cuádruple tupla para preservar la compatibilidad con " +"versiones anteriores, pero también tienen los atributos :attr:`encode`, :" +"attr:`decode`, :attr:`incrementalencoder`, :attr:`incrementaldecoder`, :attr:" +"`streamwriter` y :attr:`streamreader`. Los códecs incrementales pueden " +"recibir la entrada y producir la salida en varios trozos; la salida es la " +"misma que si la entrada completa fuera alimentada por el códec no " +"incremental. Consulte la documentación del módulo :mod:`codecs` para más " +"detalles. (Diseñado e implementado por Walter Dörwald)" #: ../Doc/whatsnew/2.5.rst:1240 msgid "" @@ -1439,6 +2107,11 @@ msgid "" "like a dictionary but constructs a default value when a key isn't present, " "automatically adding it to the dictionary for the requested key value." msgstr "" +"El módulo :mod:`collections` ha ganado un nuevo tipo, :class:`defaultdict`, " +"que subclasifica el tipo estándar :class:`dict`. El nuevo tipo se comporta " +"principalmente como un diccionario pero construye un valor por defecto " +"cuando una clave no está presente, añadiéndolo automáticamente al " +"diccionario para el valor de la clave solicitada." #: ../Doc/whatsnew/2.5.rst:1245 msgid "" @@ -1448,14 +2121,20 @@ msgid "" "constructors such as :func:`list` or :func:`int`. For example, you can " "make an index of words based on their initial letter like this::" msgstr "" +"El primer argumento del constructor de :class:`defaultdict` es una función " +"de fábrica que se llama cada vez que se solicita una clave pero no se " +"encuentra. Esta función de fábrica no recibe argumentos, por lo que puede " +"utilizar constructores de tipo incorporado como :func:`list` o :func:`int`. " +"Por ejemplo, puedes hacer un índice de palabras basado en su letra inicial " +"así::" #: ../Doc/whatsnew/2.5.rst:1261 msgid "Printing ``index`` results in the following output::" -msgstr "" +msgstr "Al imprimir ``index`` se obtiene la siguiente salida::" #: ../Doc/whatsnew/2.5.rst:1269 msgid "(Contributed by Guido van Rossum.)" -msgstr "" +msgstr "(Contribución de Guido van Rossum.)" #: ../Doc/whatsnew/2.5.rst:1271 msgid "" @@ -1464,6 +2143,10 @@ msgid "" "first occurrence of *value* in the queue, raising :exc:`ValueError` if the " "value isn't found. (Contributed by Raymond Hettinger.)" msgstr "" +"El tipo de cola doble :class:`deque` suministrado por el módulo :mod:" +"`collections` tiene ahora un método ``remove(value)`` que elimina la primera " +"aparición de *value* en la cola, lanzando :exc:`ValueError` si no se " +"encuentra el valor. (Contribución de Raymond Hettinger)" #: ../Doc/whatsnew/2.5.rst:1276 msgid "" @@ -1471,6 +2154,9 @@ msgid "" "with the new ':keyword:`with`' statement. See section :ref:`contextlibmod` " "for more about this module." msgstr "" +"Nuevo módulo: El módulo :mod:`contextlib` contiene funciones de ayuda para " +"usar con la nueva sentencia ':keyword:`with`'. Consulte la sección :ref:" +"`contextlibmod` para obtener más información sobre este módulo." #: ../Doc/whatsnew/2.5.rst:1280 msgid "" @@ -1482,6 +2168,14 @@ msgid "" "the :mod:`profile` module's interface, will continue to be maintained in " "future versions of Python. (Contributed by Armin Rigo.)" msgstr "" +"Nuevo módulo: El módulo :mod:`cProfile` es una implementación en C del " +"módulo existente :mod:`profile` que tiene una sobrecarga mucho menor. La " +"interfaz del módulo es la misma que la de :mod:`profile`: se ejecuta " +"``cProfile.run('main()')`` para perfilar una función, se pueden guardar los " +"datos del perfil en un archivo, etc. Todavía no se sabe si el perfilador " +"Hotshot, que también está escrito en C pero no coincide con la interfaz del " +"módulo :mod:`profile`, seguirá manteniéndose en futuras versiones de " +"Python. (Contribución de Armin Rigo.)" #: ../Doc/whatsnew/2.5.rst:1288 msgid "" @@ -1490,6 +2184,10 @@ msgid "" "*stream* argument to the :class:`Stats` constructor. (Contributed by Skip " "Montanaro.)" msgstr "" +"Además, el módulo :mod:`pstats` para analizar los datos medidos por el " +"perfilador ahora soporta dirigir la salida a cualquier objeto archivo " +"suministrando un argumento *stream* al constructor :class:`Stats`. " +"(Contribución de Skip Montanaro)" #: ../Doc/whatsnew/2.5.rst:1292 msgid "" @@ -1502,6 +2200,15 @@ msgid "" "the source; records can span multiple physical lines, so :attr:`line_num` is " "not the same as the number of records read." msgstr "" +"El módulo :mod:`csv`, que analiza archivos en formato de valores separados " +"por comas, ha recibido varias mejoras y una serie de correcciones de " +"errores. Ahora se puede establecer el tamaño máximo en bytes de un campo " +"llamando a la función ``csv.field_size_limit(new_limit)``; si se omite el " +"argumento *new_limit* se devolverá el límite establecido actualmente. La " +"clase :class:`reader` tiene ahora un atributo :attr:`line_num` que cuenta el " +"número de líneas físicas leídas de la fuente; los registros pueden abarcar " +"varias líneas físicas, por lo que :attr:`line_num` no es lo mismo que el " +"número de registros leídos." #: ../Doc/whatsnew/2.5.rst:1301 msgid "" @@ -1514,10 +2221,19 @@ msgid "" "fields are important, the input should be split into lines in a manner that " "preserves the newline characters." msgstr "" +"El analizador CSV es ahora más estricto con los campos entrecomillados de " +"varias líneas. Anteriormente, si una línea terminaba dentro de un campo " +"entre comillas sin un carácter de nueva línea final, se insertaba una nueva " +"línea en el campo devuelto. Este comportamiento causaba problemas cuando se " +"leían archivos que contenían caracteres de retorno de carro dentro de los " +"campos, por lo que se cambió el código para devolver el campo sin insertar " +"nuevas líneas. Como consecuencia, si las nuevas líneas incrustadas dentro de " +"los campos son importantes, la entrada debe dividirse en líneas de manera " +"que se conserven los caracteres de nueva línea." #: ../Doc/whatsnew/2.5.rst:1309 msgid "(Contributed by Skip Montanaro and Andrew McNamara.)" -msgstr "" +msgstr "(Contribución de Skip Montanaro y Andrew McNamara)" #: ../Doc/whatsnew/2.5.rst:1311 msgid "" @@ -1526,6 +2242,10 @@ msgid "" "by Josh Spoerri. It uses the same format characters as :func:`time.strptime` " "and :func:`time.strftime`::" msgstr "" +"La clase :class:`~datetime.datetime` del módulo :mod:`datetime` tiene ahora " +"un método ``strptime(string, format)`` para analizar cadenas de fechas, " +"aportado por Josh Spoerri. Utiliza los mismos caracteres de formato que :" +"func:`time.strptime` y :func:`time.strftime`::" #: ../Doc/whatsnew/2.5.rst:1321 msgid "" @@ -1534,6 +2254,11 @@ msgid "" "subsequences. Previously, the algorithm would occasionally break a block of " "matching elements into two list entries. (Enhancement by Tim Peters.)" msgstr "" +"El método :meth:`SequenceMatcher.get_matching_blocks` del módulo :mod:" +"`difflib` garantiza ahora la devolución de una lista mínima de bloques que " +"describen subsecuencias coincidentes. Anteriormente, el algoritmo rompía " +"ocasionalmente un bloque de elementos coincidentes en dos entradas de la " +"lista. (Mejora realizada por Tim Peters)" #: ../Doc/whatsnew/2.5.rst:1326 msgid "" @@ -1541,6 +2266,10 @@ msgid "" "from being executed at all. This is intended for code snippets that are " "usage examples intended for the reader and aren't actually test cases." msgstr "" +"El módulo :mod:`doctest` ha ganado una opción ``SKIP`` que impide que un " +"ejemplo se ejecute en absoluto. Esto está pensado para los fragmentos de " +"código que son ejemplos de uso destinados al lector y que no son realmente " +"casos de prueba." #: ../Doc/whatsnew/2.5.rst:1330 msgid "" @@ -1549,12 +2278,18 @@ msgid "" "easier to use non-ASCII characters in tests contained within a docstring. " "(Contributed by Bjorn Tillenius.)" msgstr "" +"Se ha añadido un parámetro *encoding* a la función :func:`testfile` y a la " +"clase :class:`DocFileSuite` para especificar la codificación del archivo. " +"Esto facilita el uso de caracteres no ASCII en las pruebas contenidas en un " +"docstring. (Contribución de Bjorn Tillenius)" #: ../Doc/whatsnew/2.5.rst:1337 msgid "" "The :mod:`email` package has been updated to version 4.0. (Contributed by " "Barry Warsaw.)" msgstr "" +"El paquete :mod:`email` ha sido actualizado a la versión 4.0. (Contribución " +"de Barry Warsaw.)" #: ../Doc/whatsnew/2.5.rst:1345 msgid "" @@ -1567,6 +2302,15 @@ msgid "" "`fileno` returns the file descriptor for the currently opened file. " "(Contributed by Georg Brandl.)" msgstr "" +"El módulo :mod:`fileinput` se ha hecho más flexible. Ahora se soportan los " +"nombres de archivo Unicode, y se ha añadido un parámetro *mode* que por " +"defecto es ``\"r\"`` a la función :func:`input` para permitir la apertura de " +"archivos en modo binario o :term:`universal newlines`. Otro nuevo " +"parámetro, *openhook*, permite utilizar una función distinta de :func:`open` " +"para abrir los ficheros de entrada. Una vez que se itera sobre el conjunto " +"de archivos, el nuevo :meth:`fileno` del objeto :class:`FileInput` devuelve " +"el descriptor de archivo del archivo actualmente abierto. (Contribuido por " +"Georg Brandl.)" #: ../Doc/whatsnew/2.5.rst:1354 msgid "" @@ -1578,6 +2322,13 @@ msgid "" "*generation* argument of 0, 1, or 2 to specify which generation to collect. " "(Contributed by Barry Warsaw.)" msgstr "" +"En el módulo :mod:`gc`, la nueva función :func:`get_count` devuelve una 3-" +"tupla que contiene los recuentos de recolección actuales para las tres " +"generaciones de GC. Se trata de información contable para el recolector de " +"basura; cuando estos recuentos alcanzan un umbral especificado, se realiza " +"un barrido de recolección de basura. La función :func:`gc.collect` " +"existente ahora toma un argumento opcional *generación* de 0, 1 o 2 para " +"especificar qué generación recoger. (Contribución de Barry Warsaw)" #: ../Doc/whatsnew/2.5.rst:1361 msgid "" @@ -1586,10 +2337,14 @@ msgid "" "by the :func:`min`/:func:`max` functions and the :meth:`sort` methods. For " "example::" msgstr "" +"Las funciones :func:`nsmallest` y :func:`nlargest` del módulo :mod:`heapq` " +"soportan ahora un parámetro de palabra clave ``key`` similar al " +"proporcionado por las funciones :func:`min`/:func:`max` y los métodos :meth:" +"`sort`. Por ejemplo::" #: ../Doc/whatsnew/2.5.rst:1373 ../Doc/whatsnew/2.5.rst:1382 msgid "(Contributed by Raymond Hettinger.)" -msgstr "" +msgstr "(Contribución de Raymond Hettinger.)" #: ../Doc/whatsnew/2.5.rst:1375 msgid "" @@ -1597,15 +2352,19 @@ msgid "" "step arguments. This makes it more compatible with the attributes of slice " "objects, so that you can now write the following::" msgstr "" +"La función :func:`itertools.islice` ahora acepta ``None`` para los " +"argumentos de inicio y paso. Esto la hace más compatible con los atributos " +"de los objetos slice, por lo que ahora se puede escribir lo siguiente::" #: ../Doc/whatsnew/2.5.rst:1384 msgid "" "The :func:`format` function in the :mod:`locale` module has been modified " "and two new functions were added, :func:`format_string` and :func:`currency`." msgstr "" +"Se ha modificado la función :func:`format` del módulo :mod:`locale` y se han " +"añadido dos nuevas funciones, :func:`format_string` y :func:`currency`." -#: ../Doc/whatsnew/2.5.rst:1387 -#, python-format +#: ../Doc/whatsnew/2.5.rst:1387, python-format msgid "" "The :func:`format` function's *val* parameter could previously be a string " "as long as no more than one %char specifier appeared; now the parameter must " @@ -1614,24 +2373,34 @@ msgid "" "locale's rules for formatting currency in placing a separator between groups " "of three digits." msgstr "" +"El parámetro *val* de la función :func:`format` podía ser antes una cadena " +"siempre que no apareciera más de un especificador %char; ahora el parámetro " +"debe ser exactamente un especificador %char sin texto alrededor. También se " +"ha añadido un parámetro opcional *monetario* que, si es ``Verdadero``, " +"utilizará las reglas de la configuración regional para formatear la moneda " +"al colocar un separador entre grupos de tres dígitos." -#: ../Doc/whatsnew/2.5.rst:1393 -#, python-format +#: ../Doc/whatsnew/2.5.rst:1393, python-format msgid "" "To format strings with multiple %char specifiers, use the new :func:" "`format_string` function that works like :func:`format` but also supports " "mixing %char specifiers with arbitrary text." msgstr "" +"Para formatear cadenas con múltiples especificadores %char, utilice la nueva " +"función :func:`format_string` que funciona como :func:`format` pero que " +"también permite mezclar especificadores %char con texto arbitrario." #: ../Doc/whatsnew/2.5.rst:1397 msgid "" "A new :func:`currency` function was also added that formats a number " "according to the current locale's settings." msgstr "" +"También se ha añadido una nueva función :func:`currency` que formatea un " +"número de acuerdo con la configuración local actual." #: ../Doc/whatsnew/2.5.rst:1400 msgid "(Contributed by Georg Brandl.)" -msgstr "" +msgstr "(Contribución de Georg Brandl.)" #: ../Doc/whatsnew/2.5.rst:1404 msgid "" @@ -1643,12 +2412,21 @@ msgid "" "unlock the mailbox. The following example converts a maildir-format mailbox " "into an mbox-format one::" msgstr "" +"El módulo :mod:`mailbox` ha sido reestructurado de forma masiva para añadir " +"la capacidad de modificar los buzones además de leerlos. Un nuevo conjunto " +"de clases que incluyen :class:`mbox`, :class:`MH`, y :class:`Maildir` se " +"utilizan para leer buzones, y tienen un método ``add(message)`` para añadir " +"mensajes, ``remove(key)`` para eliminar mensajes, y :meth:`lock`/:meth:" +"`unlock` para bloquear/desbloquear el buzón. El siguiente ejemplo convierte " +"un buzón con formato maildir en uno con formato mbox::" #: ../Doc/whatsnew/2.5.rst:1422 msgid "" "(Contributed by Gregory K. Johnson. Funding was provided by Google's 2005 " "Summer of Code.)" msgstr "" +"(Contribución de Gregory K. Johnson. La financiación fue proporcionada por " +"el Summer of Code 2005 de Google)" #: ../Doc/whatsnew/2.5.rst:1425 msgid "" @@ -1656,6 +2434,9 @@ msgid "" "file:`.msi` files and CAB files. Some support for reading the :file:`.msi` " "database is also included. (Contributed by Martin von Löwis.)" msgstr "" +"Nuevo módulo: el módulo :mod:`msilib` permite crear archivos :file:`.msi` de " +"Microsoft Installer y archivos CAB. También se incluye soporte para la " +"lectura de la base de datos :file:`.msi`. (Contribución de Martin von Löwis)" #: ../Doc/whatsnew/2.5.rst:1429 msgid "" @@ -1663,6 +2444,9 @@ msgid "" "default domain by supplying a *domain* argument to the :func:`nis.match` " "and :func:`nis.maps` functions. (Contributed by Ben Bell.)" msgstr "" +"El módulo :mod:`nis` soporta ahora el acceso a dominios distintos del " +"dominio por defecto del sistema proporcionando un argumento *dominio* a las " +"funciones :func:`nis.match` y :func:`nis.maps`. (Contribución de Ben Bell)" #: ../Doc/whatsnew/2.5.rst:1433 msgid "" @@ -1673,6 +2457,12 @@ msgid "" "method's ``key`` parameter lets you easily sort lists using multiple " "fields. (Contributed by Raymond Hettinger.)" msgstr "" +"Las funciones :mod:`operator` del módulo :func:`itemgetter` y :func:" +"`attrgetter` ahora soportan múltiples campos. Una llamada como ``operator." +"attrgetter('a', 'b')`` devolverá una función que recupera los atributos :" +"attr:`a` y :attr:`b`. La combinación de esta nueva función con el parámetro " +"``key`` del método :meth:`sort` permite ordenar fácilmente las listas " +"utilizando varios campos. (Contribución de Raymond Hettinger)" #: ../Doc/whatsnew/2.5.rst:1440 msgid "" @@ -1682,6 +2472,11 @@ msgid "" "method to break reference cycles created by the object. (Contributed by Greg " "Ward.)" msgstr "" +"El módulo :mod:`optparse` se ha actualizado a la versión 1.5.1 de la " +"biblioteca Optik. La clase :class:`OptionParser` obtuvo un atributo :attr:" +"`epilog`, una cadena que se imprimirá después del mensaje de ayuda, y un " +"método :meth:`destroy` para romper los ciclos de referencia creados por el " +"objeto. (Contribuido por Greg Ward.)" #: ../Doc/whatsnew/2.5.rst:1445 msgid "" @@ -1691,6 +2486,12 @@ msgid "" "that :func:`os.stat` will return times that are precise to fractions of a " "second; not all systems support such precision.)" msgstr "" +"El módulo :mod:`os` ha sufrido varios cambios. La variable :attr:" +"`stat_float_times` ahora está predeterminada a true, lo que significa que :" +"func:`os.stat` ahora devolverá los valores de tiempo como flotantes. (Esto " +"no significa necesariamente que :func:`os.stat` devolverá tiempos con una " +"precisión de fracciones de segundo; no todos los sistemas soportan dicha " +"precisión)" #: ../Doc/whatsnew/2.5.rst:1451 msgid "" @@ -1699,6 +2500,10 @@ msgid "" "function. Two new constants for locking are :attr:`os.O_SHLOCK` and :attr:" "`os.O_EXLOCK`." msgstr "" +"Se han añadido las constantes :attr:`os.SEEK_SET`, :attr:`os.SEEK_CUR` y :" +"attr:`os.SEEK_END`, que son los parámetros de la función :func:`os.lseek`. " +"Dos nuevas constantes para el bloqueo son :attr:`os.O_SHLOCK` y :attr:`os." +"O_EXLOCK`." #: ../Doc/whatsnew/2.5.rst:1456 msgid "" @@ -1711,6 +2516,15 @@ msgid "" "the :func:`resource.getrusage` function. ``wait4(pid)`` does take a process " "ID. (Contributed by Chad J. Schroeder.)" msgstr "" +"Se han añadido dos nuevas funciones, :func:`wait3` y :func:`wait4`. Son " +"similares a la función :func:`waitpid` que espera la salida de un proceso " +"hijo y devuelve una tupla con el ID del proceso y su estado de salida, pero :" +"func:`wait3` y :func:`wait4` devuelven información adicional. :func:`wait3` " +"no toma un ID de proceso como entrada, por lo que espera a que cualquier " +"proceso hijo salga y devuelve una tupla de *id de proceso*, *estado de " +"salida*, *uso de recursos* tal y como se devuelve desde la función :func:" +"`resource.getrusage`. ``wait4(pid)`` toma un ID de proceso. (Contribuido por " +"Chad J. Schroeder.)" #: ../Doc/whatsnew/2.5.rst:1465 msgid "" @@ -1719,6 +2533,10 @@ msgid "" "`st_birthtime`. The :attr:`st_flags` attribute is also available, if the " "platform supports it. (Contributed by Antti Louko and Diego Pettenò.)" msgstr "" +"En FreeBSD, la función :func:`os.stat` devuelve ahora tiempos con resolución " +"de nanosegundos, y el objeto devuelto tiene ahora :attr:`st_gen` y :attr:" +"`st_birthtime`. El atributo :attr:`st_flags` también está disponible, si la " +"plataforma lo soporta. (Contribución de Antti Louko y Diego Pettenò)" #: ../Doc/whatsnew/2.5.rst:1472 msgid "" @@ -1729,6 +2547,13 @@ msgid "" "can include commands that resume execution, such as ``continue`` or " "``next``. (Contributed by Grégoire Dooms.)" msgstr "" +"El depurador de Python proporcionado por el módulo :mod:`pdb` puede ahora " +"almacenar listas de comandos a ejecutar cuando se alcanza un punto de " +"ruptura y se detiene la ejecución. Una vez creado el punto de interrupción " +"nº 1, introduzca ``comandos 1`` e introduzca una serie de comandos a " +"ejecutar, terminando la lista con ``end``. La lista de comandos puede " +"incluir comandos que reanuden la ejecución, como ``continue`` o ``next``. " +"(Contribución de Grégoire Dooms.)" #: ../Doc/whatsnew/2.5.rst:1481 msgid "" @@ -1737,6 +2562,10 @@ msgid "" "tuple of arguments instead. The ability to return ``None`` was deprecated " "in Python 2.4, so this completes the removal of the feature." msgstr "" +"Los módulos :mod:`pickle` y :mod:`cPickle` ya no aceptan un valor de retorno " +"de ``None`` del método :meth:`__reduce__`; el método debe devolver una tupla " +"de argumentos. La capacidad de devolver ``None`` fue obsoleta en Python " +"2.4, así que esto completa la eliminación de la función." #: ../Doc/whatsnew/2.5.rst:1486 msgid "" @@ -1745,6 +2574,10 @@ msgid "" "works for packages stored in ZIP-format archives. (Contributed by Phillip J. " "Eby.)" msgstr "" +"El módulo :mod:`pkgutil`, que contiene varias funciones de utilidad para " +"encontrar paquetes, fue mejorado para soportar los ganchos de importación " +"de :pep:`302` y ahora también funciona para paquetes almacenados en archivos " +"con formato ZIP. (Contribución de Phillip J. Eby)" #: ../Doc/whatsnew/2.5.rst:1490 msgid "" @@ -1756,12 +2589,22 @@ msgid "" "numeric operations, instead of performing many different operations and " "reducing the result to a single number as :file:`pystone.py` does." msgstr "" +"El conjunto de pruebas pybench de Marc-André Lemburg se incluye ahora en el " +"directorio :file:`Tools/pybench`. El conjunto de pruebas pybench es una " +"mejora del programa :file:`pystone.py` de uso común, ya que pybench " +"proporciona una medición más detallada de la velocidad del intérprete. " +"Calcula el tiempo de determinadas operaciones como las llamadas a funciones, " +"el corte de tuplas, las búsquedas de métodos y las operaciones numéricas, en " +"lugar de realizar muchas operaciones diferentes y reducir el resultado a un " +"único número como hace :file:`pystone.py`." #: ../Doc/whatsnew/2.5.rst:1498 msgid "" "The :mod:`pyexpat` module now uses version 2.0 of the Expat parser. " "(Contributed by Trent Mick.)" msgstr "" +"El módulo :mod:`pyexpat` utiliza ahora la versión 2.0 del analizador " +"sintáctico Expat. (Contribución de Trent Mick)" #: ../Doc/whatsnew/2.5.rst:1501 msgid "" @@ -1772,6 +2615,12 @@ msgid "" "processing for an item has been completed. (Contributed by Raymond " "Hettinger.)" msgstr "" +"La clase :class:`~queue.Queue` proporcionada por el módulo :mod:`Queue` ha " +"ganado dos nuevos métodos. :meth:`join` bloquea hasta que todos los " +"elementos de la cola han sido recuperados y todo el trabajo de procesamiento " +"de los elementos ha sido completado. Los hilos de trabajo llaman al otro " +"método nuevo, :meth:`task_done`, para indicar que el procesamiento de un " +"elemento ha finalizado. (Contribución de Raymond Hettinger)" #: ../Doc/whatsnew/2.5.rst:1507 msgid "" @@ -1779,6 +2628,9 @@ msgid "" "ever since Python 2.0, have finally been deleted. Other deleted modules: :" "mod:`statcache`, :mod:`tzparse`, :mod:`whrandom`." msgstr "" +"Los antiguos módulos :mod:`regex` y :mod:`regsub`, obsoletos desde Python " +"2.0, han sido finalmente eliminados. Otros módulos eliminados: :mod:" +"`statcache`, :mod:`tzparse`, :mod:`whrandom`." #: ../Doc/whatsnew/2.5.rst:1511 msgid "" @@ -1787,6 +2639,11 @@ msgid "" "the default ``sys.path``, so unless your programs explicitly added the " "directory to ``sys.path``, this removal shouldn't affect your code." msgstr "" +"También se ha eliminado el directorio :file:`lib-old`, que incluye módulos " +"antiguos como :mod:`dircmp` y :mod:`ni`. :file:`lib-old` no estaba en el " +"directorio por defecto ``sys.path``, así que a menos que tus programas " +"añadan explícitamente el directorio a ``sys.path``, esta eliminación no " +"debería afectar a tu código." #: ../Doc/whatsnew/2.5.rst:1516 msgid "" @@ -1794,6 +2651,9 @@ msgid "" "`readline` module and therefore now works on non-Unix platforms. (Patch from " "Robert Kiendl.)" msgstr "" +"El módulo :mod:`rlcompleter` ya no depende de la importación del módulo :mod:" +"`readline` y, por lo tanto, ahora funciona en plataformas no Unix. (Parche " +"de Robert Kiendl.)" #: ../Doc/whatsnew/2.5.rst:1522 msgid "" @@ -1803,6 +2663,11 @@ msgid "" "RPC2'``. Setting :attr:`rpc_paths` to ``None`` or an empty tuple disables " "this path checking." msgstr "" +"Las clases :mod:`SimpleXMLRPCServer` y :mod:`DocXMLRPCServer` tienen ahora " +"un atributo :attr:`rpc_paths` que restringe las operaciones XML-RPC a un " +"conjunto limitado de rutas URL; por defecto sólo se permiten ``'/'`` y ``'/" +"RPC2'``. Establecer :attr:`rpc_paths` como ``None`` o una tupla vacía " +"desactiva esta comprobación de rutas." #: ../Doc/whatsnew/2.5.rst:1529 msgid "" @@ -1813,6 +2678,13 @@ msgid "" "linuxjournal.com/article/7356. In Python code, netlink addresses are " "represented as a tuple of 2 integers, ``(pid, group_mask)``." msgstr "" +"El módulo :mod:`socket` ahora soporta sockets :const:`AF_NETLINK` en Linux, " +"gracias a un parche de Philippe Biondi. Los sockets Netlink son un " +"mecanismo específico de Linux para las comunicaciones entre un proceso en el " +"espacio del usuario y el código del kernel; hay un artículo introductorio " +"sobre ellos en https://www.linuxjournal.com/article/7356. En el código " +"Python, las direcciones de netlink se representan como una tupla de 2 " +"enteros, ``(pid, group_mask)``." #: ../Doc/whatsnew/2.5.rst:1536 msgid "" @@ -1822,6 +2694,11 @@ msgid "" "This means you can put the data directly into an array or a memory-mapped " "file." msgstr "" +"Dos nuevos métodos en objetos socket, ``recv_into(buffer)`` y " +"``recvrom_into(buffer)``, almacenan los datos recibidos en un objeto que " +"soporta el protocolo de buffer en lugar de devolver los datos como una " +"cadena. Esto significa que puedes poner los datos directamente en un array " +"o en un archivo mapeado en memoria." #: ../Doc/whatsnew/2.5.rst:1541 msgid "" @@ -1829,12 +2706,18 @@ msgid "" "`getproto` accessor methods to retrieve the family, type, and protocol " "values for the socket." msgstr "" +"Los objetos Socket también han ganado métodos de acceso :meth:`getfamily`, :" +"meth:`gettype` y :meth:`getproto` para recuperar los valores de familia, " +"tipo y protocolo del socket." #: ../Doc/whatsnew/2.5.rst:1545 msgid "" "New module: the :mod:`spwd` module provides functions for accessing the " "shadow password database on systems that support shadow passwords." msgstr "" +"Nuevo módulo: el módulo :mod:`spwd` proporciona funciones para acceder a la " +"base de datos de contraseñas en la sombra en sistemas que soportan " +"contraseñas en la sombra." #: ../Doc/whatsnew/2.5.rst:1548 msgid "" @@ -1845,6 +2728,13 @@ msgid "" "func:`unpack` functions; they'll create :class:`Struct` objects and cache " "them. Or you can use :class:`Struct` instances directly::" msgstr "" +"El módulo :mod:`struct` es ahora más rápido porque compila cadenas de " +"formato en objetos :class:`Struct` con métodos :meth:`pack` y :meth:" +"`unpack`. Esto es similar a cómo el módulo :mod:`re` permite crear objetos " +"de expresión regular compilados. Puede seguir utilizando las funciones :" +"func:`pack` y :func:`unpack` a nivel de módulo; éstas crearán objetos :class:" +"`Struct` y los almacenarán en caché. O puede utilizar directamente las " +"instancias de :class:`Struct`::" #: ../Doc/whatsnew/2.5.rst:1560 msgid "" @@ -1853,6 +2743,10 @@ msgid "" "offset)`` methods. This lets you store data directly into an array or a " "memory-mapped file." msgstr "" +"También puedes empaquetar y desempaquetar datos hacia y desde objetos buffer " +"directamente usando los métodos ``pack_into(buffer, offset, v1, v2, ...)`` y " +"``unpack_from(buffer, offset)``. Esto te permite almacenar datos " +"directamente en un array o en un archivo mapeado en memoria." #: ../Doc/whatsnew/2.5.rst:1565 msgid "" @@ -1860,6 +2754,9 @@ msgid "" "NeedForSpeed sprint. Support for buffer objects was added by Martin Blais, " "also at the NeedForSpeed sprint.)" msgstr "" +"(:class:`Struct` objects fueron implementados por Bob Ippolito en el sprint " +"NeedForSpeed. El soporte para los objetos buffer fue añadido por Martin " +"Blais, también en el sprint NeedForSpeed)" #: ../Doc/whatsnew/2.5.rst:1569 msgid "" @@ -1869,6 +2766,12 @@ msgid "" "name, revision-range)``. For example, at the time of writing my copy of 2.5 " "was reporting ``('CPython', 'trunk', '45313:45315')``." msgstr "" +"Los desarrolladores de Python cambiaron de CVS a Subversion durante el " +"proceso de desarrollo de la versión 2.5. La información sobre la versión " +"exacta de construcción está disponible como la variable ``sys.subversion``, " +"una 3-tupla de ``(nombre del intérprete, nombre de la rama, rango de " +"revisión)``. Por ejemplo, en el momento de escribir esto, mi copia de 2.5 " +"informaba de ``('CPython', 'trunk', '45313:45315')``." #: ../Doc/whatsnew/2.5.rst:1575 msgid "" @@ -1877,6 +2780,10 @@ msgid "" "this: ``\"trunk:45355:45356M, Apr 13 2006, 07:42:19\"``. (Contributed by " "Barry Warsaw.)" msgstr "" +"Esta información también está disponible para las extensiones de C a través " +"de la función :c:func:`Py_GetBuildInfo` que devuelve una cadena de " +"información de compilación como esta ``\"trunk:45355:45356M, Apr 13 2006, " +"07:42:19\"``. (Contribuido por Barry Warsaw.)" #: ../Doc/whatsnew/2.5.rst:1580 msgid "" @@ -1885,6 +2792,11 @@ msgid "" "the topmost stack frame currently active in that thread at the time the " "function is called. (Contributed by Tim Peters.)" msgstr "" +"Otra nueva función, :func:`sys._current_frames`, devuelve los marcos de pila " +"actuales para todos los hilos en ejecución como un diccionario que asigna " +"los identificadores de los hilos al marco de pila superior actualmente " +"activo en ese hilo en el momento en que se llama a la función. (Contribuido " +"por Tim Peters.)" #: ../Doc/whatsnew/2.5.rst:1585 msgid "" @@ -1894,12 +2806,20 @@ msgid "" "as the extraction target, and to unpack only a subset of the archive's " "members." msgstr "" +"La clase :class:`TarFile` del módulo :mod:`tarfile` tiene ahora un método :" +"meth:`extractall` que extrae todos los miembros del archivo en el directorio " +"de trabajo actual. También es posible establecer un directorio diferente " +"como destino de la extracción, y desempaquetar sólo un subconjunto de los " +"miembros del archivo." #: ../Doc/whatsnew/2.5.rst:1590 msgid "" "The compression used for a tarfile opened in stream mode can now be " "autodetected using the mode ``'r|*'``. (Contributed by Lars Gustäbel.)" msgstr "" +"La compresión utilizada para un archivo tar abierto en modo stream puede " +"ahora ser autodetectada utilizando el modo ``'r|*'``. (Contribución de Lars " +"Gustäbel)" #: ../Doc/whatsnew/2.5.rst:1595 msgid "" @@ -1909,6 +2829,12 @@ msgid "" "sets a new value. Not all platforms support changing the stack size, but " "Windows, POSIX threading, and OS/2 all do. (Contributed by Andrew MacIntyre.)" msgstr "" +"El módulo :mod:`threading` permite ahora establecer el tamaño de la pila " +"utilizado cuando se crean nuevos hilos. La función ``stack_size([*size*])`` " +"devuelve el tamaño de pila actualmente configurado, y suministrando el " +"parámetro opcional *size* establece un nuevo valor. No todas las " +"plataformas soportan el cambio del tamaño de la pila, pero Windows, POSIX " +"threading y OS/2 lo hacen. (Contribución de Andrew MacIntyre)" #: ../Doc/whatsnew/2.5.rst:1603 msgid "" @@ -1916,6 +2842,10 @@ msgid "" "Unicode character database. Version 3.2.0 is required by some " "specifications, so it's still available as :attr:`unicodedata.ucd_3_2_0`." msgstr "" +"El módulo :mod:`unicodedata` ha sido actualizado para utilizar la versión " +"4.1.0 de la base de datos de caracteres Unicode. La versión 3.2.0 es " +"requerida por algunas especificaciones, por lo que sigue estando disponible " +"como :attr:`unicodedata.ucd_3_2_0`." #: ../Doc/whatsnew/2.5.rst:1607 msgid "" @@ -1928,10 +2858,18 @@ msgid "" "UUIDs are not specified in :rfc:`4122` and are not supported by this " "module.) ::" msgstr "" +"Nuevo módulo: el módulo :mod:`uuid` genera identificadores únicos " +"universales (UUID) de acuerdo con :rfc:`4122`. El RFC define varias " +"versiones diferentes de UUID que se generan a partir de una cadena inicial, " +"de propiedades del sistema o de forma puramente aleatoria. Este módulo " +"contiene una clase :class:`UUID` y funciones llamadas :func:`uuid1`, :func:" +"`uuid3`, :func:`uuid4`, y :func:`uuid5` para generar diferentes versiones de " +"UUID. (Los UUID de la versión 2 no se especifican en :rfc:`4122` y no están " +"soportados por este módulo) ::" #: ../Doc/whatsnew/2.5.rst:1632 msgid "(Contributed by Ka-Ping Yee.)" -msgstr "" +msgstr "(Contribución de Ka-Ping Yee.)" #: ../Doc/whatsnew/2.5.rst:1634 msgid "" @@ -1942,6 +2880,12 @@ msgid "" "`itervaluerefs` and :meth:`valuerefs` were added to :class:" "`WeakValueDictionary`. (Contributed by Fred L. Drake, Jr.)" msgstr "" +"Los tipos :mod:`weakref` del módulo :class:`WeakKeyDictionary` y :class:" +"`WeakValueDictionary` han obtenido nuevos métodos para iterar sobre las " +"referencias débiles contenidas en el diccionario. Se han añadido los " +"métodos :meth:`iterkeyrefs` y :meth:`keyrefs` a :class:`WeakKeyDictionary`, " +"y :meth:`itervaluerefs` y :meth:`valuerefs` a :class:`WeakValueDictionary`. " +"(Contribución de Fred L. Drake, Jr.)" #: ../Doc/whatsnew/2.5.rst:1641 msgid "" @@ -1956,6 +2900,17 @@ msgid "" "supported list such as Firefox, Opera, Konqueror, and elinks. (Contributed " "by Oleg Broytmann and Georg Brandl.)" msgstr "" +"El módulo :mod:`webbrowser` ha recibido una serie de mejoras. Ahora se puede " +"utilizar como un script con ``python -m webbrowser``, tomando una URL como " +"argumento; hay una serie de interruptores para controlar el comportamiento (:" +"option:`!-n` para una nueva ventana del navegador, :option:`!-t` para una " +"nueva pestaña). Se han añadido nuevas funciones a nivel de módulo, :func:" +"`open_new` y :func:`open_new_tab`, para soportar esto. La función :func:" +"`open` del módulo soporta una característica adicional, un parámetro " +"*autoraise* que señala si se debe levantar la ventana abierta cuando sea " +"posible. Se añadieron varios navegadores adicionales a la lista de " +"soportados, como Firefox, Opera, Konqueror y elinks. (Contribución de Oleg " +"Broytmann y Georg Brandl)" #: ../Doc/whatsnew/2.5.rst:1653 msgid "" @@ -1964,6 +2919,11 @@ msgid "" "to the :func:`loads` function or the :class:`Unmarshaller` class to enable " "this feature. (Contributed by Skip Montanaro.)" msgstr "" +"El módulo :mod:`xmlrpclib` ahora soporta la devolución de objetos :class:" +"`~datetime.datetime` para el tipo de fecha XML-RPC. Proporcione " +"``use_datetime=True`` a la función :func:`loads` o a la clase :class:" +"`Unmarshaller` para activar esta característica. (Contribución de Skip " +"Montanaro)" #: ../Doc/whatsnew/2.5.rst:1660 msgid "" @@ -1971,6 +2931,10 @@ msgid "" "meaning that a .zip archive can now be larger than 4 GiB and can contain " "individual files larger than 4 GiB. (Contributed by Ronald Oussoren.)" msgstr "" +"El módulo :mod:`zipfile` ahora soporta la versión ZIP64 del formato, lo que " +"significa que un archivo .zip ahora puede ser mayor de 4 GiB y puede " +"contener archivos individuales mayores de 4 GiB. (Contribución de Ronald " +"Oussoren)" #: ../Doc/whatsnew/2.5.rst:1666 msgid "" @@ -1979,10 +2943,14 @@ msgid "" "internal state and returns a new :class:`Compress` or :class:`Decompress` " "object. (Contributed by Chris AtLee.)" msgstr "" +"Los objetos :class:`zlib` y :class:`Decompress` del módulo :mod:`zlib` " +"soportan ahora un método :meth:`copy` que realiza una copia del estado " +"interno del objeto y devuelve un nuevo objeto :class:`Compress` o :class:" +"`Decompress`. (Contribución de Chris AtLee)" #: ../Doc/whatsnew/2.5.rst:1679 msgid "The ctypes package" -msgstr "" +msgstr "El paquete ctypes" #: ../Doc/whatsnew/2.5.rst:1681 msgid "" @@ -1992,6 +2960,12 @@ msgid "" "module, which provides functions for loading shared libraries and calling " "functions in them. The :mod:`ctypes` package is much fancier." msgstr "" +"El paquete :mod:`ctypes`, escrito por Thomas Heller, se ha añadido a la " +"biblioteca estándar. :mod:`ctypes` permite llamar a funciones arbitrarias en " +"bibliotecas compartidas o DLL. Los usuarios veteranos recordarán el módulo :" +"mod:`dl`, que proporciona funciones para cargar bibliotecas compartidas y " +"llamar a las funciones que contienen. El paquete :mod:`ctypes` es mucho más " +"sofisticado." #: ../Doc/whatsnew/2.5.rst:1687 msgid "" @@ -2000,6 +2974,10 @@ msgid "" "that's done, you can call arbitrary functions by accessing them as " "attributes of the :class:`CDLL` object. ::" msgstr "" +"Para cargar una biblioteca compartida o DLL, debes crear una instancia de la " +"clase :class:`CDLL` y proporcionar el nombre o la ruta de la biblioteca " +"compartida o DLL. Una vez hecho esto, puedes llamar a funciones arbitrarias " +"accediendo a ellas como atributos del objeto :class:`CDLL`. ::" #: ../Doc/whatsnew/2.5.rst:1697 msgid "" @@ -2012,6 +2990,15 @@ msgid "" "constructor. (And I mean *must*; getting it wrong will often result in the " "interpreter crashing with a segmentation fault.)" msgstr "" +"Se proporcionan constructores de tipos para los distintos tipos de C: :func:" +"`c_int`, :func:`c_float`, :func:`c_double`, :func:`c_char_p` (equivalente a :" +"c:type:`char \\*`), etc. A diferencia de los tipos de Python, las versiones " +"de C son todas mutables; puedes asignar a su atributo :attr:`value` para " +"cambiar el valor envuelto. Los enteros y las cadenas de Python se " +"convertirán automáticamente a los tipos C correspondientes, pero para otros " +"tipos debes llamar al constructor de tipo correcto. (Y quiero decir *debe*; " +"si se equivoca, a menudo el intérprete se bloquea con un fallo de " +"segmentación)" #: ../Doc/whatsnew/2.5.rst:1706 msgid "" @@ -2020,12 +3007,20 @@ msgid "" "be immutable; breaking this rule will cause puzzling bugs. When you need a " "modifiable memory area, use :func:`create_string_buffer`::" msgstr "" +"No debería usar :func:`c_char_p` con una cadena de Python cuando la función " +"C vaya a modificar el área de memoria, porque se supone que las cadenas de " +"Python son inmutables; romper esta regla causará errores desconcertantes. " +"Cuando necesite un área de memoria modificable, utilice :func:" +"`create_string_buffer`::" #: ../Doc/whatsnew/2.5.rst:1715 msgid "" "C functions are assumed to return integers, but you can set the :attr:" "`restype` attribute of the function object to change this::" msgstr "" +"Se supone que las funciones en C devuelven números enteros, pero se puede " +"establecer el atributo :attr:`restype` del objeto de la función para cambiar " +"esto::" #: ../Doc/whatsnew/2.5.rst:1724 msgid "" @@ -2036,12 +3031,20 @@ msgid "" "constructor that will create a :c:type:`PyObject \\*` pointer. A simple " "usage::" msgstr "" +":mod:`ctypes` también proporciona una envoltura para la API de C de Python " +"como el objeto ``ctypes.pythonapi``. Este objeto *no* libera el bloqueo " +"global del intérprete antes de llamar a una función, porque el bloqueo debe " +"mantenerse cuando se llama al código del intérprete. Hay un constructor de " +"tipo :class:`py_object()` que creará un puntero :c:type:`PyObject \\*`. Un " +"uso sencillo::" #: ../Doc/whatsnew/2.5.rst:1737 msgid "" "Don't forget to use :class:`py_object()`; if it's omitted you end up with a " "segmentation fault." msgstr "" +"No olvides usar :class:`py_object()`; si se omite acabas con un fallo de " +"segmentación." #: ../Doc/whatsnew/2.5.rst:1740 msgid "" @@ -2051,22 +3054,29 @@ msgid "" "wrappers atop a library accessed through :mod:`ctypes` instead of extension " "modules, now that :mod:`ctypes` is included with core Python." msgstr "" +":mod:`ctypes` existe desde hace tiempo, pero la gente sigue escribiendo y " +"distribuyendo módulos de extensión codificados a mano porque no se puede " +"confiar en que :mod:`ctypes` esté presente. Quizás los desarrolladores " +"empiecen a escribir envoltorios de Python sobre una biblioteca a la que se " +"accede a través de :mod:`ctypes` en lugar de módulos de extensión, ahora " +"que :mod:`ctypes` está incluido en el núcleo de Python." #: ../Doc/whatsnew/2.5.rst:1750 msgid "http://starship.python.net/crew/theller/ctypes/" -msgstr "" +msgstr "http://starship.python.net/crew/theller/ctypes/" #: ../Doc/whatsnew/2.5.rst:1750 msgid "The ctypes web page, with a tutorial, reference, and FAQ." msgstr "" +"La página web de ctypes, con un tutorial, referencias y preguntas frecuentes." #: ../Doc/whatsnew/2.5.rst:1752 msgid "The documentation for the :mod:`ctypes` module." -msgstr "" +msgstr "La documentación del módulo :mod:`ctypes`." #: ../Doc/whatsnew/2.5.rst:1760 msgid "The ElementTree package" -msgstr "" +msgstr "El paquete ElementTree" #: ../Doc/whatsnew/2.5.rst:1762 msgid "" @@ -2076,6 +3086,11 @@ msgid "" "ElementTree 1.2.6. The :mod:`cElementTree` accelerator module is also " "included." msgstr "" +"Un subconjunto de la biblioteca ElementTree de Fredrik Lundh para el " +"procesamiento de XML se ha añadido a la biblioteca estándar como :mod:`xml." +"etree`. Los módulos disponibles son :mod:`ElementTree`, :mod:`ElementPath` " +"y :mod:`ElementInclude` de ElementTree 1.2.6. También se incluye el " +"módulo acelerador :mod:`cElementTree`." #: ../Doc/whatsnew/2.5.rst:1768 msgid "" @@ -2083,6 +3098,9 @@ msgid "" "Full documentation for ElementTree is available at http://effbot.org/zone/" "element-index.htm." msgstr "" +"El resto de esta sección proporcionará una breve descripción del uso de " +"ElementTree. La documentación completa de ElementTree está disponible en " +"http://effbot.org/zone/element-index.htm." #: ../Doc/whatsnew/2.5.rst:1772 msgid "" @@ -2092,6 +3110,11 @@ msgid "" "the Document Object Model; in the DOM there are many different types of " "node, including :class:`TextNode`.)" msgstr "" +"ElementTree representa un documento XML como un árbol de nodos de elementos. " +"El contenido de texto del documento se almacena como los atributos :attr:" +"`text` y :attr:`tail` de (Esta es una de las principales diferencias entre " +"ElementTree y el Modelo de Objetos del Documento; en el DOM hay muchos tipos " +"diferentes de nodo, incluyendo :class:`TextNode`)" #: ../Doc/whatsnew/2.5.rst:1778 msgid "" @@ -2099,12 +3122,17 @@ msgid "" "a string (assumed to contain a filename) or a file-like object and returns " "an :class:`ElementTree` instance::" msgstr "" +"La función de análisis más utilizada es :func:`parse`, que toma una cadena " +"(se supone que contiene un nombre de archivo) o un objeto similar a un " +"archivo y devuelve una instancia de :class:`ElementTree`::" #: ../Doc/whatsnew/2.5.rst:1790 msgid "" "Once you have an :class:`ElementTree` instance, you can call its :meth:" "`getroot` method to get the root :class:`Element` node." msgstr "" +"Una vez que tengas una instancia de :class:`ElementTree`, puedes llamar a su " +"método :meth:`getroot` para obtener el nodo raíz de :class:`Element`." #: ../Doc/whatsnew/2.5.rst:1793 msgid "" @@ -2113,6 +3141,10 @@ msgid "" "provides a tidy way to incorporate XML fragments, approaching the " "convenience of an XML literal::" msgstr "" +"También hay una función :func:`XML` que toma un literal de cadena y devuelve " +"un nodo :class:`Element` (no un :class:`ElementTree`). Esta función " +"proporciona una forma ordenada de incorporar fragmentos XML, acercándose a " +"la comodidad de un literal XML::" #: ../Doc/whatsnew/2.5.rst:1803 msgid "" @@ -2120,110 +3152,114 @@ msgid "" "methods. Dictionary-like operations are used to access attribute values, " "and list-like operations are used to access child nodes." msgstr "" +"Cada elemento XML admite algunos métodos de acceso tipo diccionario y otros " +"tipo lista. Las operaciones tipo diccionario se utilizan para acceder a los " +"valores de los atributos, y las operaciones tipo lista se utilizan para " +"acceder a los nodos hijos." #: ../Doc/whatsnew/2.5.rst:1808 msgid "Operation" -msgstr "" +msgstr "Operación" #: ../Doc/whatsnew/2.5.rst:1808 msgid "Result" -msgstr "" +msgstr "Resultado" #: ../Doc/whatsnew/2.5.rst:1810 msgid "``elem[n]``" -msgstr "" +msgstr "``elem[n]``" #: ../Doc/whatsnew/2.5.rst:1810 msgid "Returns n'th child element." -msgstr "" +msgstr "Devuelve el elemento hijo enésimo." #: ../Doc/whatsnew/2.5.rst:1812 msgid "``elem[m:n]``" -msgstr "" +msgstr "``elem[m:n]``" #: ../Doc/whatsnew/2.5.rst:1812 msgid "Returns list of m'th through n'th child elements." -msgstr "" +msgstr "Devuelve la lista de m's a n's elementos hijos." #: ../Doc/whatsnew/2.5.rst:1815 msgid "``len(elem)``" -msgstr "" +msgstr "``len(elem)``" #: ../Doc/whatsnew/2.5.rst:1815 msgid "Returns number of child elements." -msgstr "" +msgstr "Devuelve el número de elementos hijos." #: ../Doc/whatsnew/2.5.rst:1817 msgid "``list(elem)``" -msgstr "" +msgstr "``lista(elem)``" #: ../Doc/whatsnew/2.5.rst:1817 msgid "Returns list of child elements." -msgstr "" +msgstr "Devuelve la lista de elementos hijos." #: ../Doc/whatsnew/2.5.rst:1819 msgid "``elem.append(elem2)``" -msgstr "" +msgstr "``elem.append(elem2)``" #: ../Doc/whatsnew/2.5.rst:1819 msgid "Adds *elem2* as a child." -msgstr "" +msgstr "Añade *elemento2* como hijo." #: ../Doc/whatsnew/2.5.rst:1821 msgid "``elem.insert(index, elem2)``" -msgstr "" +msgstr "``elem.insert(index, elem2)``" #: ../Doc/whatsnew/2.5.rst:1821 msgid "Inserts *elem2* at the specified location." -msgstr "" +msgstr "Inserta *elemento2* en el lugar especificado." #: ../Doc/whatsnew/2.5.rst:1823 msgid "``del elem[n]``" -msgstr "" +msgstr "``del elem[n]``" #: ../Doc/whatsnew/2.5.rst:1823 msgid "Deletes n'th child element." -msgstr "" +msgstr "Elimina el elemento hijo enésimo." #: ../Doc/whatsnew/2.5.rst:1825 msgid "``elem.keys()``" -msgstr "" +msgstr "``elem.keys()``" #: ../Doc/whatsnew/2.5.rst:1825 msgid "Returns list of attribute names." -msgstr "" +msgstr "Devuelve la lista de nombres de atributos." #: ../Doc/whatsnew/2.5.rst:1827 msgid "``elem.get(name)``" -msgstr "" +msgstr "``elem.get(name)``" #: ../Doc/whatsnew/2.5.rst:1827 msgid "Returns value of attribute *name*." -msgstr "" +msgstr "Devuelve el valor del atributo *nombre*." #: ../Doc/whatsnew/2.5.rst:1829 msgid "``elem.set(name, value)``" -msgstr "" +msgstr "``elem.set(nombre, valor)``" #: ../Doc/whatsnew/2.5.rst:1829 msgid "Sets new value for attribute *name*." -msgstr "" +msgstr "Establece el nuevo valor del atributo *nombre*." #: ../Doc/whatsnew/2.5.rst:1831 msgid "``elem.attrib``" -msgstr "" +msgstr "``elem.attrib``" #: ../Doc/whatsnew/2.5.rst:1831 msgid "Retrieves the dictionary containing attributes." -msgstr "" +msgstr "Recupera el diccionario que contiene los atributos." #: ../Doc/whatsnew/2.5.rst:1834 msgid "``del elem.attrib[name]``" -msgstr "" +msgstr "``del elem.attrib[name]``" #: ../Doc/whatsnew/2.5.rst:1834 msgid "Deletes attribute *name*." -msgstr "" +msgstr "Borra el atributo *nombre*." #: ../Doc/whatsnew/2.5.rst:1837 msgid "" @@ -2231,6 +3267,9 @@ msgid "" "`Element` nodes. To check if a node is a comment or processing " "instructions::" msgstr "" +"Los comentarios y las instrucciones de procesamiento también se representan " +"como nodos :class:`Element`. Para comprobar si un nodo es un comentario o " +"unas instrucciones de procesamiento::" #: ../Doc/whatsnew/2.5.rst:1845 msgid "" @@ -2238,6 +3277,9 @@ msgid "" "method. Like :func:`parse`, it can take either a string or a file-like " "object::" msgstr "" +"Para generar una salida XML, debes llamar al método :meth:`ElementTree." +"write`. Al igual que :func:`parse`, puede tomar una cadena o un objeto tipo " +"archivo::" #: ../Doc/whatsnew/2.5.rst:1855 msgid "" @@ -2248,24 +3290,34 @@ msgid "" "Therefore, it's best to specify a different encoding such as UTF-8 that can " "handle any Unicode character.)" msgstr "" +"(Atención: la codificación por defecto utilizada para la salida es ASCII. " +"Para el trabajo general de XML, donde el nombre de un elemento puede " +"contener caracteres Unicode arbitrarios, ASCII no es una codificación muy " +"útil porque lanzará una excepción si el nombre de un elemento contiene " +"cualquier carácter con valores superiores a 127. Por lo tanto, es mejor " +"especificar una codificación diferente, como UTF-8, que puede manejar " +"cualquier carácter Unicode)" #: ../Doc/whatsnew/2.5.rst:1862 msgid "" "This section is only a partial description of the ElementTree interfaces. " "Please read the package's official documentation for more details." msgstr "" +"Esta sección es sólo una descripción parcial de las interfaces de " +"ElementTree. Por favor, lee la documentación oficial del paquete para más " +"detalles." #: ../Doc/whatsnew/2.5.rst:1868 msgid "http://effbot.org/zone/element-index.htm" -msgstr "" +msgstr "http://effbot.org/zone/element-index.htm" #: ../Doc/whatsnew/2.5.rst:1869 msgid "Official documentation for ElementTree." -msgstr "" +msgstr "Documentación oficial de ElementTree." #: ../Doc/whatsnew/2.5.rst:1877 msgid "The hashlib package" -msgstr "" +msgstr "El paquete hashlib" #: ../Doc/whatsnew/2.5.rst:1879 msgid "" @@ -2275,6 +3327,11 @@ msgid "" "available, the module uses OpenSSL for fast platform optimized " "implementations of algorithms." msgstr "" +"Se ha añadido un nuevo módulo :mod:`hashlib`, escrito por Gregory P. Smith, " +"para sustituir a los módulos :mod:`md5` y :mod:`sha`. :mod:`hashlib` añade " +"soporte para hashes seguros adicionales (SHA-224, SHA-256, SHA-384 y " +"SHA-512). Cuando está disponible, el módulo utiliza OpenSSL para " +"implementaciones rápidas de algoritmos optimizados para la plataforma." #: ../Doc/whatsnew/2.5.rst:1885 msgid "" @@ -2284,6 +3341,11 @@ msgid "" "significant difference is that the constructor functions for creating new " "hashing objects are named differently. ::" msgstr "" +"Los antiguos módulos :mod:`md5` y :mod:`sha` siguen existiendo como " +"envoltorios de hashlib para preservar la compatibilidad hacia atrás. La " +"interfaz del nuevo módulo es muy parecida a la de los módulos antiguos, pero " +"no es idéntica. La diferencia más significativa es que las funciones " +"constructoras para crear nuevos objetos hashing tienen un nombre diferente ::" #: ../Doc/whatsnew/2.5.rst:1914 msgid "" @@ -2293,14 +3355,19 @@ msgid "" "binary string or a string of hex digits, and :meth:`copy` returns a new " "hashing object with the same digest state." msgstr "" +"Una vez que se ha creado un objeto hash, sus métodos son los mismos que " +"antes: ``actualizar(cadena)`` convierte la cadena especificada en el estado " +"de resumen actual, :meth:`digest` y :meth:`hexdigest` devuelven el valor de " +"resumen como una cadena binaria o una cadena de dígitos hexadecimales, y :" +"meth:`copiar` devuelve un nuevo objeto hash con el mismo estado de resumen." #: ../Doc/whatsnew/2.5.rst:1923 msgid "The documentation for the :mod:`hashlib` module." -msgstr "" +msgstr "La documentación del módulo :mod:`hashlib`." #: ../Doc/whatsnew/2.5.rst:1931 msgid "The sqlite3 package" -msgstr "" +msgstr "El paquete sqlite3" #: ../Doc/whatsnew/2.5.rst:1933 msgid "" @@ -2308,6 +3375,9 @@ msgid "" "embedded database, has been added to the standard library under the package " "name :mod:`sqlite3`." msgstr "" +"El módulo pysqlite (http://www.pysqlite.org), una envoltura para la base de " +"datos incrustada SQLite, se ha añadido a la biblioteca estándar bajo el " +"nombre de paquete :mod:`sqlite3`." #: ../Doc/whatsnew/2.5.rst:1937 msgid "" @@ -2318,12 +3388,21 @@ msgid "" "application using SQLite and then port the code to a larger database such as " "PostgreSQL or Oracle." msgstr "" +"SQLite es una biblioteca en C que proporciona una base de datos ligera " +"basada en disco que no requiere un proceso de servidor independiente y " +"permite acceder a la base de datos utilizando una variante no estándar del " +"lenguaje de consulta SQL. Algunas aplicaciones pueden utilizar SQLite para " +"el almacenamiento interno de datos. También es posible crear un prototipo " +"de una aplicación utilizando SQLite y luego portar el código a una base de " +"datos más grande como PostgreSQL u Oracle." #: ../Doc/whatsnew/2.5.rst:1944 msgid "" "pysqlite was written by Gerhard Häring and provides a SQL interface " "compliant with the DB-API 2.0 specification described by :pep:`249`." msgstr "" +"pysqlite fue escrito por Gerhard Häring y proporciona una interfaz SQL que " +"cumple con la especificación DB-API 2.0 descrita por :pep:`249`." #: ../Doc/whatsnew/2.5.rst:1947 msgid "" @@ -2333,6 +3412,11 @@ msgid "" "the build process will compile the module when the necessary headers are " "available." msgstr "" +"Si estás compilando el código fuente de Python tú mismo, ten en cuenta que " +"el árbol de código fuente no incluye el código de SQLite, sólo el módulo " +"envolvente. Necesitarás tener las librerías y cabeceras de SQLite instaladas " +"antes de compilar Python, y el proceso de construcción compilará el módulo " +"cuando las cabeceras necesarias estén disponibles." #: ../Doc/whatsnew/2.5.rst:1952 msgid "" @@ -2340,18 +3424,25 @@ msgid "" "represents the database. Here the data will be stored in the :file:`/tmp/" "example` file::" msgstr "" +"Para utilizar el módulo, primero hay que crear un objeto :class:`Connection` " +"que represente la base de datos. Aquí los datos se almacenarán en el " +"archivo :file:`/tmp/example`::" #: ../Doc/whatsnew/2.5.rst:1958 msgid "" "You can also supply the special name ``:memory:`` to create a database in " "RAM." msgstr "" +"También puede suministrar el nombre especial ``:memory:`` para crear una " +"base de datos en la RAM." #: ../Doc/whatsnew/2.5.rst:1960 msgid "" "Once you have a :class:`Connection`, you can create a :class:`Cursor` " "object and call its :meth:`execute` method to perform SQL commands::" msgstr "" +"Una vez que tengas una :class:`Connection`, puedes crear un objeto :class:" +"`Cursor` y llamar a su método :meth:`execute` para realizar comandos SQL::" #: ../Doc/whatsnew/2.5.rst:1974 msgid "" @@ -2360,9 +3451,12 @@ msgid "" "doing so is insecure; it makes your program vulnerable to an SQL injection " "attack." msgstr "" +"Normalmente tus operaciones SQL necesitarán usar valores de variables de " +"Python. No deberías montar tu consulta usando las operaciones de cadena de " +"Python porque hacerlo es inseguro; hace que tu programa sea vulnerable a un " +"ataque de inyección SQL." -#: ../Doc/whatsnew/2.5.rst:1978 -#, python-format +#: ../Doc/whatsnew/2.5.rst:1978, python-format msgid "" "Instead, use the DB-API's parameter substitution. Put ``?`` as a " "placeholder wherever you want to use a value, and then provide a tuple of " @@ -2370,6 +3464,11 @@ msgid "" "(Other database modules may use a different placeholder, such as ``%s`` or " "``:1``.) For example::" msgstr "" +"En su lugar, utilice la sustitución de parámetros de la DB-API. Ponga ``?`` " +"como marcador de posición donde quiera usar un valor, y luego proporcione " +"una tupla de valores como segundo argumento al método :meth:`execute` del " +"cursor. (Otros módulos de base de datos pueden utilizar un marcador de " +"posición diferente, como ``%s`` o ``:1``) Por ejemplo::" #: ../Doc/whatsnew/2.5.rst:1998 msgid "" @@ -2378,50 +3477,58 @@ msgid "" "retrieve a single matching row, or call :meth:`fetchall` to get a list of " "the matching rows." msgstr "" +"Para recuperar datos después de ejecutar una sentencia SELECT, puede tratar " +"el cursor como un iterador, llamar al método :meth:`fetchone` del cursor " +"para recuperar una sola fila que coincida, o llamar a :meth:`fetchall` para " +"obtener una lista de las filas que coincidan." #: ../Doc/whatsnew/2.5.rst:2003 msgid "This example uses the iterator form::" -msgstr "" +msgstr "Este ejemplo utiliza la forma del iterador::" #: ../Doc/whatsnew/2.5.rst:2016 msgid "" "For more information about the SQL dialect supported by SQLite, see https://" "www.sqlite.org." msgstr "" +"Para más información sobre el dialecto SQL soportado por SQLite, consulte " +"https://www.sqlite.org." #: ../Doc/whatsnew/2.5.rst:2023 msgid "http://www.pysqlite.org" -msgstr "" +msgstr "http://www.pysqlite.org" #: ../Doc/whatsnew/2.5.rst:2023 msgid "The pysqlite web page." -msgstr "" +msgstr "La página web de pysqlite." #: ../Doc/whatsnew/2.5.rst:2027 msgid "https://www.sqlite.org" -msgstr "" +msgstr "https://www.sqlite.org" #: ../Doc/whatsnew/2.5.rst:2026 msgid "" "The SQLite web page; the documentation describes the syntax and the " "available data types for the supported SQL dialect." msgstr "" +"La página web de SQLite; la documentación describe la sintaxis y los tipos " +"de datos disponibles para el dialecto SQL soportado." #: ../Doc/whatsnew/2.5.rst:2029 msgid "The documentation for the :mod:`sqlite3` module." -msgstr "" +msgstr "La documentación del módulo :mod:`sqlite3`." #: ../Doc/whatsnew/2.5.rst:2031 msgid ":pep:`249` - Database API Specification 2.0" -msgstr "" +msgstr ":pep:`249` - Especificación de la API de la base de datos 2.0" #: ../Doc/whatsnew/2.5.rst:2032 msgid "PEP written by Marc-André Lemburg." -msgstr "" +msgstr "PEP escrito por Marc-André Lemburg." #: ../Doc/whatsnew/2.5.rst:2040 msgid "The wsgiref package" -msgstr "" +msgstr "El paquete wsgiref" #: ../Doc/whatsnew/2.5.rst:2042 msgid "" @@ -2430,6 +3537,10 @@ msgid "" "`333`. The :mod:`wsgiref` package is a reference implementation of the WSGI " "specification." msgstr "" +"La Interfaz de Pasarela del Servidor Web (WSGI) v1.0 define una interfaz " +"estándar entre los servidores web y las aplicaciones web de Python y se " +"describe en :pep:`333`. El paquete :mod:`wsgiref` es una implementación de " +"referencia de la especificación WSGI." #: ../Doc/whatsnew/2.5.rst:2049 msgid "" @@ -2437,30 +3548,36 @@ msgid "" "this server is useful for debugging but isn't intended for production use. " "Setting up a server takes only a few lines of code::" msgstr "" +"El paquete incluye un servidor HTTP básico que ejecutará una aplicación " +"WSGI; este servidor es útil para la depuración pero no está pensado para su " +"uso en producción. La configuración de un servidor sólo requiere unas pocas " +"líneas de código::" #: ../Doc/whatsnew/2.5.rst:2069 msgid "http://www.wsgi.org" -msgstr "" +msgstr "http://www.wsgi.org" #: ../Doc/whatsnew/2.5.rst:2069 msgid "A central web site for WSGI-related resources." -msgstr "" +msgstr "Un sitio web central para los recursos relacionados con WSGI." #: ../Doc/whatsnew/2.5.rst:2071 msgid ":pep:`333` - Python Web Server Gateway Interface v1.0" -msgstr "" +msgstr ":pep:`333` - Interfaz del servidor web Python v1.0" #: ../Doc/whatsnew/2.5.rst:2072 msgid "PEP written by Phillip J. Eby." -msgstr "" +msgstr "PEP escrito por Phillip J. Eby." #: ../Doc/whatsnew/2.5.rst:2080 msgid "Build and C API Changes" -msgstr "" +msgstr "Cambios en la API de construcción y C" #: ../Doc/whatsnew/2.5.rst:2082 msgid "Changes to Python's build process and to the C API include:" msgstr "" +"Los cambios en el proceso de construcción de Python y en la API de C " +"incluyen:" #: ../Doc/whatsnew/2.5.rst:2084 msgid "" @@ -2468,6 +3585,10 @@ msgid "" "migration procedure that was supervised and flawlessly carried out by Martin " "von Löwis. The procedure was developed as :pep:`347`." msgstr "" +"El árbol de fuentes de Python fue convertido de CVS a Subversion, en un " +"complejo procedimiento de migración que fue supervisado y llevado a cabo de " +"forma impecable por Martin von Löwis. El procedimiento se desarrolló como :" +"pep:`347`." #: ../Doc/whatsnew/2.5.rst:2088 msgid "" @@ -2477,6 +3598,12 @@ msgid "" "were refcounting problems, often occurring in error-handling code. See " "https://scan.coverity.com for the statistics." msgstr "" +"Coverity, una empresa que comercializa una herramienta de análisis de código " +"fuente llamada Prevent, proporcionó los resultados de su examen del código " +"fuente de Python. El análisis encontró alrededor de 60 errores que fueron " +"rápidamente corregidos. Muchos de los errores eran problemas de recuento, " +"que a menudo se producen en el código de gestión de errores. Consulte las " +"estadísticas en https://scan.coverity.com." #: ../Doc/whatsnew/2.5.rst:2094 msgid "" @@ -2485,6 +3612,10 @@ msgid "" "`int`. See the earlier section :ref:`pep-353` for a discussion of this " "change." msgstr "" +"El mayor cambio en la API de C proviene de :pep:`353`, que modifica el " +"intérprete para utilizar una definición de tipo :c:type:`Py_ssize_t` en " +"lugar de :c:type:`int`. Vea la sección anterior :ref:`pep-353` para una " +"discusión de este cambio." #: ../Doc/whatsnew/2.5.rst:2099 msgid "" @@ -2493,6 +3624,11 @@ msgid "" "converted to an abstract syntax tree (or AST), and it is the abstract " "syntax tree that's traversed to produce the bytecode." msgstr "" +"El diseño del compilador de código de bytes ha cambiado mucho, ya no genera " +"código de bytes recorriendo el árbol de análisis sintáctico. En su lugar, " +"el árbol de análisis se convierte en un árbol de sintaxis abstracta (o AST), " +"y es el árbol de sintaxis abstracta el que se recorre para producir el " +"código de bytes." #: ../Doc/whatsnew/2.5.rst:2104 msgid "" @@ -2500,6 +3636,9 @@ msgid "" "`compile` built-in and specifying ``_ast.PyCF_ONLY_AST`` as the value of " "the *flags* parameter::" msgstr "" +"Es posible que el código Python obtenga objetos AST utilizando el built-in :" +"func:`compile` y especificando ``_ast.PyCF_ONLY_AST`` como valor del " +"parámetro *flags*::" #: ../Doc/whatsnew/2.5.rst:2117 msgid "" @@ -2514,6 +3653,16 @@ msgid "" "`PyAST_Compile`. For more information, read the source code, and then ask " "questions on python-dev." msgstr "" +"Todavía no se ha escrito ninguna documentación oficial para el código AST, " +"pero :pep:`339` discute el diseño. Para empezar a conocer el código, lea la " +"definición de los distintos nodos AST en :file:`Parser/Python.asdl`. Un " +"script de Python lee este archivo y genera un conjunto de definiciones de " +"estructuras C en :file:`Include/Python-ast.h`. Las funciones :c:func:" +"`PyParser_ASTFromString` y :c:func:`PyParser_ASTFromFile`, definidas en :" +"file:`Include/pythonrun.h`, toman el código fuente de Python como entrada y " +"devuelven la raíz de un AST que representa el contenido. Este AST puede " +"convertirse en un objeto de código mediante :c:func:`PyAST_Compile`. Para " +"más información, lea el código fuente, y luego haga preguntas en python-dev." #: ../Doc/whatsnew/2.5.rst:2127 msgid "" @@ -2523,6 +3672,11 @@ msgid "" "Schemenauer, plus the participants in a number of AST sprints at conferences " "such as PyCon." msgstr "" +"El código de la AST fue desarrollado bajo la dirección de Jeremy Hylton, e " +"implementado por (en orden alfabético) Brett Cannon, Nick Coghlan, Grant " +"Edwards, John Ehresman, Kurt Kaiser, Neal Norwitz, Tim Peters, Armin Rigo y " +"Neil Schemenauer, además de los participantes en varios sprints de la AST en " +"conferencias como la PyCon." #: ../Doc/whatsnew/2.5.rst:2136 msgid "" @@ -2534,6 +3688,14 @@ msgid "" "the memory may be returned to the operating system. (Implemented by Evan " "Jones, and reworked by Tim Peters.)" msgstr "" +"Se aplicó el parche de Evan Jones a obmalloc, descrito por primera vez en " +"una charla en la PyCon DC 2005. Python 2.4 asignaba objetos pequeños en " +"arenas de 256K, pero nunca liberaba arenas. Con este parche, Python " +"liberará arenas cuando estén vacías. El efecto neto es que en algunas " +"plataformas, cuando se asignan muchos objetos, el uso de la memoria de " +"Python puede realmente caer cuando se borran y la memoria puede ser devuelta " +"al sistema operativo. (Implementado por Evan Jones, y reelaborado por Tim " +"Peters)" #: ../Doc/whatsnew/2.5.rst:2144 msgid "" @@ -2545,6 +3707,14 @@ msgid "" "`PyObject_Realloc`, and :c:func:`PyObject_Free` are another family that's " "supposed to be used for creating Python objects." msgstr "" +"Tenga en cuenta que este cambio significa que los módulos de extensión deben " +"ser más cuidadosos al asignar memoria. La API de Python tiene muchas " +"funciones diferentes para asignar memoria que se agrupan en familias. Por " +"ejemplo, :c:func:`PyMem_Malloc`, :c:func:`PyMem_Realloc`, y :c:func:" +"`PyMem_Free` son una familia que asigna memoria en bruto, mientras que :c:" +"func:`PyObject_Malloc`, :c:func:`PyObject_Realloc`, y :c:func:" +"`PyObject_Free` son otra familia que se supone que se utiliza para crear " +"objetos de Python." #: ../Doc/whatsnew/2.5.rst:2152 msgid "" @@ -2556,6 +3726,14 @@ msgid "" "probably result in a segfault. You should carefully test your C extension " "modules with Python 2.5." msgstr "" +"Anteriormente estas diferentes familias se reducían a las funciones :c:func:" +"`malloc` y :c:func:`free` de la plataforma. Esto significaba que no " +"importaba si te equivocabas y asignabas memoria con la función :c:func:" +"`PyMem` pero la liberabas con la función :c:func:`PyObject`. Con los " +"cambios de la versión 2.5 en obmalloc, estas familias hacen ahora cosas " +"diferentes y los desajustes probablemente darán lugar a un fallo de " +"seguridad. Deberías probar cuidadosamente tus módulos de extensión C con " +"Python 2.5." #: ../Doc/whatsnew/2.5.rst:2159 msgid "" @@ -2565,6 +3743,11 @@ msgid "" "`PySet_Contains` and :c:func:`PySet_Size` to examine the set's state. " "(Contributed by Raymond Hettinger.)" msgstr "" +"Los tipos de conjuntos incorporados tienen ahora una API oficial en C. " +"Llame a :c:func:`PySet_New` y :c:func:`PyFrozenSet_New` para crear un nuevo " +"conjunto, :c:func:`PySet_Add` y :c:func:`PySet_Discard` para añadir y " +"eliminar elementos, y :c:func:`PySet_Contains` y :c:func:`PySet_Size` para " +"examinar el estado del conjunto. (Contribución de Raymond Hettinger)" #: ../Doc/whatsnew/2.5.rst:2165 msgid "" @@ -2573,6 +3756,11 @@ msgid "" "a string of build information like this: ``\"trunk:45355:45356M, Apr 13 " "2006, 07:42:19\"``. (Contributed by Barry Warsaw.)" msgstr "" +"El código C puede ahora obtener información sobre la revisión exacta del " +"intérprete de Python llamando a la función :c:func:`Py_GetBuildInfo` que " +"devuelve una cadena de información de compilación como esta ``" +"\"trunk:45355:45356M, Apr 13 2006, 07:42:19\"``. (Contribuido por Barry " +"Warsaw.)" #: ../Doc/whatsnew/2.5.rst:2170 msgid "" @@ -2587,12 +3775,24 @@ msgid "" "optimizations actually make the code faster. (Contributed by Fredrik Lundh " "at the NeedForSpeed sprint.)" msgstr "" +"Se pueden utilizar dos nuevas macros para indicar las funciones C que son " +"locales al fichero actual, de modo que se pueda utilizar una convención de " +"llamada más rápida. ``Py_LOCAL(type)`` declara que la función devuelve un " +"valor del *tipo* especificado y utiliza un calificador de llamada rápida. " +"``Py_LOCAL_INLINE(type)`` hace lo mismo y también solicita que la función " +"sea inline. Si :c:func:`PY_LOCAL_AGGRESSIVE` se define antes de que se " +"incluya :file:`python.h`, se habilita un conjunto de optimizaciones más " +"agresivas para el módulo; debería comparar los resultados para averiguar si " +"estas optimizaciones realmente hacen el código más rápido. (Contribuido por " +"Fredrik Lundh en el sprint NeedForSpeed)" #: ../Doc/whatsnew/2.5.rst:2181 msgid "" "``PyErr_NewException(name, base, dict)`` can now accept a tuple of base " "classes as its *base* argument. (Contributed by Georg Brandl.)" msgstr "" +"``PyErr_NewException(name, base, dict)`` ahora puede aceptar una tupla de " +"clases base como su argumento *base*. (Contribuido por Georg Brandl.)" #: ../Doc/whatsnew/2.5.rst:2184 msgid "" @@ -2602,6 +3802,12 @@ msgid "" "A *stacklevel* of 1 is the function calling :c:func:`PyErr_WarnEx`, 2 is the " "function above that, and so forth. (Added by Neal Norwitz.)" msgstr "" +"La función :c:func:`PyErr_Warn` para emitir avisos está ahora obsoleta en " +"favor de ``PyErr_WarnEx(category, message, stacklevel)`` que permite " +"especificar el número de marcos de pila que separan esta función y la que la " +"llama. Un *stacklevel* de 1 es la función que llama a :c:func:" +"`PyErr_WarnEx`, 2 es la función que está por encima, y así sucesivamente. " +"(Añadido por Neal Norwitz.)" #: ../Doc/whatsnew/2.5.rst:2190 msgid "" @@ -2609,6 +3815,9 @@ msgid "" "compiled with a C++ compiler without errors. (Implemented by Anthony " "Baxter, Martin von Löwis, Skip Montanaro.)" msgstr "" +"El intérprete de CPython sigue estando escrito en C, pero el código ahora " +"puede ser compilado con un compilador de C++ sin errores. (Implementado " +"por Anthony Baxter, Martin von Löwis, Skip Montanaro)" #: ../Doc/whatsnew/2.5.rst:2194 msgid "" @@ -2617,16 +3826,22 @@ msgid "" "unlikely case that your extensions were using it, you can replace it by " "something like the following::" msgstr "" +"Se ha eliminado la función :c:func:`PyRange_New`. Nunca se documentó, nunca " +"se utilizó en el código del núcleo, y tenía una comprobación de errores " +"peligrosamente laxa. En el improbable caso de que sus extensiones la " +"utilizaran, puede sustituirla por algo como lo siguiente::" #: ../Doc/whatsnew/2.5.rst:2208 msgid "Port-Specific Changes" -msgstr "" +msgstr "Cambios específicos en los puertos" #: ../Doc/whatsnew/2.5.rst:2210 msgid "" "MacOS X (10.3 and higher): dynamic loading of modules now uses the :c:func:" "`dlopen` function instead of MacOS-specific functions." msgstr "" +"MacOS X (10.3 y superior): la carga dinámica de módulos utiliza ahora la " +"función :c:func:`dlopen` en lugar de funciones específicas de MacOS." #: ../Doc/whatsnew/2.5.rst:2213 msgid "" @@ -2635,6 +3850,10 @@ msgid "" "binary able to run on both PowerPC and Intel processors. (Contributed by " "Ronald Oussoren; :issue:`2573`.)" msgstr "" +"MacOS X: se ha añadido una opción :option:`!--enable-universalsdk` al " +"script :program:`configure` que compila el intérprete como un binario " +"universal capaz de funcionar tanto en procesadores PowerPC como Intel. " +"(Contribución de Ronald Oussoren; :issue:`2573`.)" #: ../Doc/whatsnew/2.5.rst:2218 msgid "" @@ -2642,16 +3861,21 @@ msgid "" "extension modules. :file:`.pyd` is now the only filename extension that " "will be searched for." msgstr "" +"Windows: :file:`.dll` ya no se admite como extensión de nombre de archivo " +"para los módulos de extensión. :file:`.pyd` es ahora la única extensión de " +"nombre de archivo que se buscará." #: ../Doc/whatsnew/2.5.rst:2228 msgid "Porting to Python 2.5" -msgstr "" +msgstr "Adaptación a Python 2.5" #: ../Doc/whatsnew/2.5.rst:2230 msgid "" "This section lists previously described changes that may require changes to " "your code:" msgstr "" +"Esta sección enumera los cambios descritos anteriormente que pueden requerir " +"cambios en su código:" #: ../Doc/whatsnew/2.5.rst:2233 msgid "" @@ -2660,6 +3884,10 @@ msgid "" "encoding declaration. In Python 2.4 this triggered a warning, not a syntax " "error." msgstr "" +"ASCII es ahora la codificación por defecto para los módulos. Ahora es un " +"error de sintaxis si un módulo contiene literales de cadena con caracteres " +"de 8 bits pero no tiene una declaración de codificación. En Python 2.4 esto " +"provocaba una advertencia, no un error de sintaxis." #: ../Doc/whatsnew/2.5.rst:2238 msgid "" @@ -2667,6 +3895,9 @@ msgid "" "object. Because of the :pep:`342` changes described in section :ref:" "`pep-342`, it's now possible for :attr:`gi_frame` to be ``None``." msgstr "" +"Anteriormente, el atributo :attr:`gi_frame` de un generador era siempre un " +"objeto frame. Debido a los cambios de :pep:`342` descritos en la sección :" +"ref:`pep-342`, ahora es posible que :attr:`gi_frame` sea ``None``." #: ../Doc/whatsnew/2.5.rst:2242 msgid "" @@ -2675,6 +3906,11 @@ msgid "" "Unicode using the default ASCII encoding. Previously such comparisons would " "raise a :class:`UnicodeDecodeError` exception." msgstr "" +"Una nueva advertencia, :class:`UnicodeWarning`, se lanza cuando se intenta " +"comparar una cadena Unicode y una cadena de 8 bits que no puede ser " +"convertida a Unicode utilizando la codificación ASCII por defecto. " +"Anteriormente estas comparaciones lanzaban una excepción :class:" +"`UnicodeDecodeError`." #: ../Doc/whatsnew/2.5.rst:2247 msgid "" @@ -2683,15 +3919,22 @@ msgid "" "should be split into lines in a manner which preserves the newline " "characters." msgstr "" +"Biblioteca: el módulo :mod:`csv` es ahora más estricto con los campos " +"citados en varias líneas. Si sus archivos contienen nuevas líneas " +"incrustadas dentro de los campos, la entrada debe dividirse en líneas de " +"manera que se conserven los caracteres de nueva línea." -#: ../Doc/whatsnew/2.5.rst:2251 -#, python-format +#: ../Doc/whatsnew/2.5.rst:2251, python-format msgid "" "Library: the :mod:`locale` module's :func:`format` function's would " "previously accept any string as long as no more than one %char specifier " "appeared. In Python 2.5, the argument must be exactly one %char specifier " "with no surrounding text." msgstr "" +"Biblioteca: la función :func:`format` del módulo :mod:`locale` aceptaba " +"antes cualquier cadena siempre que no apareciera más de un especificador " +"%char. En Python 2.5, el argumento debe ser exactamente un especificador " +"%char sin texto alrededor." #: ../Doc/whatsnew/2.5.rst:2256 msgid "" @@ -2700,6 +3943,10 @@ msgid "" "return a tuple of arguments instead. The modules also no longer accept the " "deprecated *bin* keyword parameter." msgstr "" +"Biblioteca: Los módulos :mod:`pickle` y :mod:`cPickle` ya no aceptan un " +"valor de retorno de ``None`` del método :meth:`__reduce__`; el método debe " +"devolver una tupla de argumentos. Los módulos tampoco aceptan ya el " +"parámetro obsoleto de la palabra clave *bin*." #: ../Doc/whatsnew/2.5.rst:2261 msgid "" @@ -2709,6 +3956,11 @@ msgid "" "RPC2'``. Setting :attr:`rpc_paths` to ``None`` or an empty tuple disables " "this path checking." msgstr "" +"Biblioteca: Las clases :mod:`SimpleXMLRPCServer` y :mod:`DocXMLRPCServer` " +"tienen ahora un atributo :attr:`rpc_paths` que restringe las operaciones XML-" +"RPC a un conjunto limitado de rutas URL; por defecto sólo se permiten " +"``'/'`` y ``'/RPC2'``. Establecer :attr:`rpc_paths` como ``None`` o una " +"tupla vacía desactiva esta comprobación de rutas." #: ../Doc/whatsnew/2.5.rst:2267 msgid "" @@ -2717,6 +3969,11 @@ msgid "" "to make the same change to avoid warnings and to support 64-bit machines. " "See the earlier section :ref:`pep-353` for a discussion of this change." msgstr "" +"API C: Muchas funciones utilizan ahora :c:type:`Py_ssize_t` en lugar de :c:" +"type:`int` para permitir el procesamiento de más datos en máquinas de 64 " +"bits. Es posible que el código de las extensiones tenga que hacer el mismo " +"cambio para evitar advertencias y soportar máquinas de 64 bits. Véase la " +"sección anterior :ref:`pep-353` para una discusión de este cambio." #: ../Doc/whatsnew/2.5.rst:2272 msgid "" @@ -2725,10 +3982,15 @@ msgid "" "Memory allocated with one family's :c:func:`\\*_Malloc` must be freed with " "the corresponding family's :c:func:`\\*_Free` function." msgstr "" +"C API: Los cambios en obmalloc significan que debe tener cuidado de no " +"mezclar el uso de las familias de funciones :c:func:`PyMem_\\*` y :c:func:" +"`PyObject_\\*`. La memoria asignada con la función :c:func:`\\*_Malloc` de " +"una familia debe ser liberada con la función :c:func:`\\*_Free` de la " +"familia correspondiente." #: ../Doc/whatsnew/2.5.rst:2281 msgid "Acknowledgements" -msgstr "" +msgstr "Agradecimientos" #: ../Doc/whatsnew/2.5.rst:2283 msgid "" @@ -2740,3 +4002,9 @@ msgid "" "Paul Prescod, James Pryor, Mike Rovner, Scott Weikart, Barry Warsaw, Thomas " "Wouters." msgstr "" +"El autor desea agradecer a las siguientes personas sus sugerencias, " +"correcciones y ayuda en varios borradores de este artículo: Georg Brandl, " +"Nick Coghlan, Phillip J. Eby, Lars Gustäbel, Raymond Hettinger, Ralf W. " +"Grosse-Kunstleve, Kent Johnson, Iain Lowe, Martin von Löwis, Fredrik Lundh, " +"Andrew McNamara, Skip Montanaro, Gustavo Niemeyer, Paul Prescod, James " +"Pryor, Mike Rovner, Scott Weikart, Barry Warsaw, Thomas Wouters." diff --git a/whatsnew/2.6.po b/whatsnew/2.6.po index 37747e39ac..aae0dc7bd0 100644 --- a/whatsnew/2.6.po +++ b/whatsnew/2.6.po @@ -6,37 +6,41 @@ # Check https://github.com/python/python-docs-es/blob/3.8/TRANSLATORS to # get the list of volunteers # -#, fuzzy msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2020-05-05 12:54+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" +"PO-Revision-Date: 2021-09-27 14:39-0300\n" "Language-Team: python-doc-es\n" "MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" +"Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.8.0\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"Last-Translator: \n" +"Language: es\n" +"X-Generator: Poedit 2.4.2\n" #: ../Doc/whatsnew/2.6.rst:5 msgid "What's New in Python 2.6" -msgstr "" +msgstr "Qué hay de nuevo en Python 2.6" #: ../Doc/whatsnew/2.6.rst msgid "Author" -msgstr "" +msgstr "Autor" #: ../Doc/whatsnew/2.6.rst:9 msgid "A.M. Kuchling (amk at amk.ca)" -msgstr "" +msgstr "A.M. Kuchling (amk arroba amk.ca)" #: ../Doc/whatsnew/2.6.rst:52 msgid "" "This article explains the new features in Python 2.6, released on October 1 " "2008. The release schedule is described in :pep:`361`." msgstr "" +"Este articulo explica las nuevas características en Python 2.6, publicado el " +"1 de Octubre de 2008. El calendario de publicación se describe en :pep:`361`." #: ../Doc/whatsnew/2.6.rst:55 msgid "" @@ -48,6 +52,14 @@ msgid "" "compatibility functions in a :mod:`future_builtins` module and a :option:" "`!-3` switch to warn about usages that will become unsupported in 3.0." msgstr "" +"El tema principal de Python 2.6 es preparar el camino de migración a Python " +"3.0, un importante rediseño del lenguaje. Siempre que sea posible, Python " +"2.6 incorpora nuevas características y sintaxis de 3.0 mientras sigue siendo " +"compatible con el código existente al no eliminar características o sintaxis " +"más antiguas. Cuando no es posible hacer eso, Python 2.6 intenta hacer lo " +"que puede, agregando funciones de compatibilidad en el módulo :mod:" +"`future_builtins` y un interruptor :option:`!-3` para advertir sobre usos " +"que dejarán de ser compatibles en 3.0 ." #: ../Doc/whatsnew/2.6.rst:64 msgid "" @@ -55,6 +67,10 @@ msgid "" "as the :mod:`multiprocessing` and :mod:`json` modules, but there aren't many " "new features that aren't related to Python 3.0 in some way." msgstr "" +"Se han agregado algunos paquetes nuevos importantes a la biblioteca " +"estándar, como los módulos :mod:`multiprocessing` y :mod:`json`, pero no hay " +"muchas características nuevas que no estén relacionadas con Python 3.0 de " +"alguna manera." #: ../Doc/whatsnew/2.6.rst:69 msgid "" @@ -63,6 +79,10 @@ msgid "" "applied and 612 bugs fixed between Python 2.5 and 2.6. Both figures are " "likely to be underestimates." msgstr "" +"Python 2.6 también incluye una serie de mejoras y correcciones de errores en " +"el código fuente. Una búsqueda en los registros de cambios encuentra que se " +"aplicaron 259 parches y se corrigieron 612 errores entre Python 2.5 y 2.6. " +"Es probable que ambas cifras estén subestimadas." #: ../Doc/whatsnew/2.6.rst:74 msgid "" @@ -73,10 +93,17 @@ msgid "" "particular new feature. Whenever possible, \"What's New in Python\" links to " "the bug/patch item for each change." msgstr "" +"Este artículo no intenta proporcionar una especificación completa de las " +"nuevas características, sino que proporciona una conveniente descripción " +"general. Para obtener detalles completos, debe consultar la documentación de " +"Python 2.6. Si desea comprender la justificación del diseño y la " +"implementación, consulte el PEP de una característica nueva en particular. " +"Siempre que sea posible, \"Qué hay de nuevo en Python\" enlaza con el " +"elemento de error / parche para cada cambio." #: ../Doc/whatsnew/2.6.rst:90 msgid "Python 3.0" -msgstr "" +msgstr "Python 3.0" #: ../Doc/whatsnew/2.6.rst:92 msgid "" @@ -84,6 +111,9 @@ msgid "" "the alpha and beta releases for both versions being made on the same days. " "The development of 3.0 has influenced many features in 2.6." msgstr "" +"El ciclo de desarrollo de las versiones 2.6 y 3.0 de Python se sincronizó, y " +"las versiones alfa y beta de ambos lanzamientos se realizaron los mismos " +"días. El desarrollo de 3.0 ha influido en muchas características de 2.6." #: ../Doc/whatsnew/2.6.rst:97 msgid "" @@ -95,21 +125,33 @@ msgid "" "described in this document in the appropriate place. Some of the 3.0-" "derived features are:" msgstr "" +"Python 3.0 es un rediseño de Python de gran alcance que rompe la " +"compatibilidad con la serie 2.x. Esto significa que el código Python " +"existente necesitará alguna conversión para poder ejecutarse en Python 3.0. " +"Sin embargo, no todos los cambios en 3.0 rompen necesariamente la " +"compatibilidad. En los casos en que las nuevas funciones no provoquen la " +"rotura del código existente, se han actualizado a 2.6 y se describen en este " +"documento en el lugar correspondiente. Algunas de las características " +"derivadas de 3.0 son:" #: ../Doc/whatsnew/2.6.rst:106 msgid "" "A :meth:`__complex__` method for converting objects to a complex number." msgstr "" +"El método :meth:`__complex__` para convertir objetos en un número complejo." #: ../Doc/whatsnew/2.6.rst:107 msgid "Alternate syntax for catching exceptions: ``except TypeError as exc``." msgstr "" +"Sintaxis alternativa para detectar excepciones: ``except TypeError as exc``." #: ../Doc/whatsnew/2.6.rst:108 msgid "" "The addition of :func:`functools.reduce` as a synonym for the built-in :func:" "`reduce` function." msgstr "" +"La adición de :func:`functools.reduce` como sinónimo de la función " +"incorporada :func:`reduce`." #: ../Doc/whatsnew/2.6.rst:111 msgid "" @@ -120,6 +162,13 @@ msgid "" "new 3.0 semantics. Code written to be compatible with 3.0 can do ``from " "future_builtins import hex, map`` as necessary." msgstr "" +"Python 3.0 agrega varias funciones integradas nuevas y cambia la semántica " +"de algunas integradas existentes. Las funciones que son nuevas en 3.0 como :" +"func:`bin` simplemente se han agregado a Python 2.6, pero las funciones " +"existentes no se han cambiado; en cambio, el módulo :mod:`future_builtins` " +"tiene versiones con la nueva semántica 3.0. El código escrito puede ser " +"compatible con 3.0 haciendo ``from future_builtins import hex, map`` según " +"sea necesario." #: ../Doc/whatsnew/2.6.rst:119 msgid "" @@ -129,6 +178,12 @@ msgid "" "switch is available to Python code as the boolean variable :data:`sys." "py3kwarning`, and to C extension code as :c:data:`Py_Py3kWarningFlag`." msgstr "" +"Un nuevo modificador de línea de comandos, :option:`!-3`, habilita " +"advertencias sobre características que se eliminarán en Python 3.0. Puede " +"ejecutar código con este modificador para ver cuánto trabajo será necesario " +"para migrar el código a 3.0. El valor de este modificador está disponible " +"para el código Python como la variable booleana :data:`sys.py3kwarning`, y " +"para el código de extensión C como :c:data:`Py_Py3kWarningFlag`." #: ../Doc/whatsnew/2.6.rst:128 msgid "" @@ -137,10 +192,14 @@ msgid "" "`3100` that describes the general goals for Python 3.0, and then explore the " "higher-numbered PEPS that propose specific features." msgstr "" +"Las series 3xxx de PEP, que contienen propuestas para Python 3.0. :pep:" +"`3000` describe el proceso de desarrollo de Python 3.0. Empiece con :pep:" +"`3100` que describe los objetivos generales de Python 3.0, y luego explore " +"los PEPS con números más altos que proponen características específicas." #: ../Doc/whatsnew/2.6.rst:136 msgid "Changes to the Development Process" -msgstr "" +msgstr "Cambios en el proceso de desarrollo" #: ../Doc/whatsnew/2.6.rst:138 msgid "" @@ -149,10 +208,14 @@ msgid "" "customized Roundup installation, and the documentation was converted from " "LaTeX to reStructuredText." msgstr "" +"Mientras se desarrollaba 2.6, el proceso de desarrollo de Python experimentó " +"dos cambios significativos: cambiamos del seguidor de incidentes (*issue " +"tracker*) de SourceForge a una instalación personalizada de Roundup, y la " +"documentación se convirtió de LaTeX a reStructuredText." #: ../Doc/whatsnew/2.6.rst:145 msgid "New Issue Tracker: Roundup" -msgstr "" +msgstr "Nuevo seguidor de incidentes: Roundup" #: ../Doc/whatsnew/2.6.rst:147 msgid "" @@ -161,6 +224,10 @@ msgid "" "much customization; for example, it wasn't possible to customize the life " "cycle of issues." msgstr "" +"Durante mucho tiempo, los desarrolladores de Python estaban cada vez más " +"molestos por el seguidor de errores de SourceForge. La solución alojada en " +"SourceForge no permite mucha personalización; por ejemplo, no fue posible " +"personalizar el ciclo de vida de los problemas." #: ../Doc/whatsnew/2.6.rst:152 msgid "" @@ -175,6 +242,17 @@ msgid "" "software projects; Roundup is an open-source project that requires " "volunteers to administer it and a server to host it." msgstr "" +"Por lo tanto, el comité de infraestructura de la *Python Software " +"Foundation* publicó una convocatoria sobre el seguimiento de incidentes, " +"pidiendo a los voluntarios que configuren diferentes productos e importen " +"algunos de los errores y parches de SourceForge. Se examinaron cuatro " +"seguidores diferentes: `Jira ` __, " +"`Launchpad ` __, `Roundup `__ y `Trac `__. El comité " +"finalmente se decidió por Jira y Roundup como los dos candidatos. Jira es un " +"producto comercial que ofrece instancias alojadas sin costo para proyectos " +"de software libre; Roundup es un proyecto de código abierto que requiere " +"voluntarios para administrarlo y un servidor para alojarlo." #: ../Doc/whatsnew/2.6.rst:166 msgid "" @@ -185,6 +263,13 @@ msgid "" "possible, this edition of \"What's New in Python\" links to the bug/patch " "item for each change." msgstr "" +"Después de publicar una llamada para voluntarios, se configuró una nueva " +"instalación de Roundup en https://bugs.python.org. Una instalación de " +"Roundup puede alojar varios seguidores, y este servidor ahora también aloja " +"seguidores de problemas para Jython y para el sitio web de Python. " +"Seguramente encontrará otros usos en el futuro. Siempre que sea posible, " +"esta edición de \"Qué hay de nuevo en Python\" se vincula al elemento de " +"error/parche para cada cambio." #: ../Doc/whatsnew/2.6.rst:174 msgid "" @@ -195,42 +280,48 @@ msgid "" "org/view/tracker/importer/ and may be useful to other projects wishing to " "move from SourceForge to Roundup." msgstr "" +"`Upfront Systems ` __ de Stellenbosch, " +"Sudáfrica, proporciona amablemente el alojamiento del seguidor de errores de " +"Python. Martin von Löwis se esforzó mucho en importar errores y parches " +"existentes desde SourceForge. Sus scripts para esta operación de importación " +"se encuentran en http://svn.python.org/view/tracker/importer/ y pueden ser " +"útiles para otros proyectos que deseen pasar de SourceForge a Roundup." #: ../Doc/whatsnew/2.6.rst:185 msgid "https://bugs.python.org" -msgstr "" +msgstr "https://bugs.python.org" #: ../Doc/whatsnew/2.6.rst:185 msgid "The Python bug tracker." -msgstr "" +msgstr "El seguidor de errores de Python." #: ../Doc/whatsnew/2.6.rst:188 msgid "http://bugs.jython.org:" -msgstr "" +msgstr "http://bugs.jython.org:" #: ../Doc/whatsnew/2.6.rst:188 msgid "The Jython bug tracker." -msgstr "" +msgstr "El seguidor de errores de Jython." #: ../Doc/whatsnew/2.6.rst:191 msgid "http://roundup.sourceforge.net/" -msgstr "" +msgstr "http://roundup.sourceforge.net/" #: ../Doc/whatsnew/2.6.rst:191 msgid "Roundup downloads and documentation." -msgstr "" +msgstr "Descargas y documentación de Roundup." #: ../Doc/whatsnew/2.6.rst:193 msgid "http://svn.python.org/view/tracker/importer/" -msgstr "" +msgstr "http://svn.python.org/view/tracker/importer/" #: ../Doc/whatsnew/2.6.rst:194 msgid "Martin von Löwis's conversion scripts." -msgstr "" +msgstr "Scripts de conversión de Martin von Löwis." #: ../Doc/whatsnew/2.6.rst:197 msgid "New Documentation Format: reStructuredText Using Sphinx" -msgstr "" +msgstr "Nuevo formato de documentación: texto reestructurado con Sphinx" #: ../Doc/whatsnew/2.6.rst:199 msgid "" @@ -240,6 +331,12 @@ msgid "" "provided attractive printed output while remaining straightforward to write " "once the basic rules of the markup were learned." msgstr "" +"La documentación de Python se escribió usando LaTeX desde que el proyecto " +"comenzó alrededor de 1989. En la década de 1980 y principios de la de 1990, " +"la mayor parte de la documentación se imprimió para su estudio posterior, no " +"se vio en línea. LaTeX fue ampliamente utilizado porque proporcionaba una " +"salida impresa atractiva sin dejar de ser sencillo de escribir una vez que " +"se aprendían las reglas básicas de marcado." #: ../Doc/whatsnew/2.6.rst:206 msgid "" @@ -253,6 +350,16 @@ msgid "" "into SGML and later XML, but performing a good conversion is a major task " "and no one ever committed the time required to finish the job." msgstr "" +"Hoy en día, LaTeX todavía se usa para escribir publicaciones destinadas a la " +"impresión, pero el panorama de las herramientas de programación ha cambiado. " +"Ya no imprimimos montones de documentación; en su lugar, lo navegamos en " +"línea y HTML se ha convertido en el formato más importante para dar soporte. " +"Desafortunadamente, convertir LaTeX a HTML es bastante complicado y Fred L. " +"Drake Jr., el editor de documentación de Python desde hace mucho tiempo, " +"pasó mucho tiempo manteniendo el proceso de conversión. De vez en cuando, la " +"gente sugeriría convertir la documentación a SGML y luego a XML, pero " +"realizar una buena conversión es una tarea importante y nadie comprometió el " +"tiempo necesario para terminar el trabajo." #: ../Doc/whatsnew/2.6.rst:217 msgid "" @@ -260,6 +367,9 @@ msgid "" "building a new toolchain for processing the documentation. The resulting " "package is called Sphinx, and is available from http://sphinx-doc.org/." msgstr "" +"Durante el ciclo de desarrollo 2.6, Georg Brandl se esforzó mucho en crear " +"una nueva cadena de herramientas para procesar la documentación. El paquete " +"resultante se llama Sphinx y está disponible en http://sphinx-doc.org/." #: ../Doc/whatsnew/2.6.rst:222 msgid "" @@ -268,6 +378,11 @@ msgid "" "input format is reStructuredText, a markup syntax supporting custom " "extensions and directives that is commonly used in the Python community." msgstr "" +"Sphinx se concentra en la salida HTML, produciendo HTML moderno y con un " +"estilo atractivo; la salida impresa todavía se admite mediante la conversión " +"a LaTeX. El formato de entrada es reStructuredText, una sintaxis de marcado " +"que admite extensiones y directivas personalizadas que se usa comúnmente en " +"la comunidad de Python." #: ../Doc/whatsnew/2.6.rst:228 msgid "" @@ -276,34 +391,40 @@ msgid "" "org/en/master/examples.html>`__) have adopted Sphinx as their documentation " "tool." msgstr "" +"Sphinx es un paquete independiente que se puede usar para escribir, y casi " +"dos docenas de otros proyectos (`enumerados en el sitio web de Sphinx " +"`__) han adoptado Sphinx " +"como su herramienta de documentación." #: ../Doc/whatsnew/2.6.rst:236 msgid "`Documenting Python `__" -msgstr "" +msgstr "`Documentando Python `__" #: ../Doc/whatsnew/2.6.rst:236 msgid "Describes how to write for Python's documentation." -msgstr "" +msgstr "Describe cómo escribir para la documentación de Python." #: ../Doc/whatsnew/2.6.rst:239 msgid "`Sphinx `__" -msgstr "" +msgstr "`Sphinx `__" #: ../Doc/whatsnew/2.6.rst:239 msgid "Documentation and code for the Sphinx toolchain." -msgstr "" +msgstr "Documentación y código para la cadena de herramientas Sphinx." #: ../Doc/whatsnew/2.6.rst:241 msgid "`Docutils `__" -msgstr "" +msgstr "`Docutils `__" #: ../Doc/whatsnew/2.6.rst:242 msgid "The underlying reStructuredText parser and toolset." msgstr "" +"El analizador sintáctico y el conjunto de herramientas *reStructuredText* " +"subyacentes." #: ../Doc/whatsnew/2.6.rst:248 msgid "PEP 343: The 'with' statement" -msgstr "" +msgstr "PEP 343: La sentencia *'with'*" #: ../Doc/whatsnew/2.6.rst:250 msgid "" @@ -315,6 +436,14 @@ msgid "" "from the \"What's New in Python 2.5\" document; if you're familiar with the " "':keyword:`!with`' statement from Python 2.5, you can skip this section." msgstr "" +"La versión anterior, Python 2.5, agregó la instrucción ':keyword:`with`' " +"como una característica opcional, para ser habilitada por una directiva " +"``from __future__ import with_statement``. En 2.6, la instrucción ya no " +"necesita estar habilitada especialmente; esto significa que ahora :keyword:`!" +"with` es siempre una palabra clave. El resto de esta sección es una copia de " +"la sección correspondiente del documento \"Qué hay de nuevo en Python 2.5\"; " +"si está familiarizado con la declaración ':keyword:`!with`' de Python 2.5, " +"puede omitir esta sección." #: ../Doc/whatsnew/2.6.rst:259 msgid "" @@ -324,12 +453,19 @@ msgid "" "next section, I'll examine the implementation details and show how to write " "objects for use with this statement." msgstr "" +"La sentencia ':keyword:`with`' resuelve el código que anteriormente usaría " +"bloques `try...finally`` para garantizar que el código de limpieza se " +"ejecute. En esta sección, discutiré como se usará comúnmente la declaración. " +"En la siguiente sección, examinaré los detalles de la implementación y " +"mostraré cómo escribir objetos para usar con esta declaración." #: ../Doc/whatsnew/2.6.rst:265 msgid "" "The ':keyword:`with`' statement is a control-flow structure whose basic " "structure is::" msgstr "" +"La sentencia ':keyword:`with`' es una estructura de control de flujo cuya " +"estructura básica es::" #: ../Doc/whatsnew/2.6.rst:271 msgid "" @@ -337,6 +473,9 @@ msgid "" "the context management protocol (that is, has :meth:`__enter__` and :meth:" "`__exit__` methods)." msgstr "" +"La expresión se evalúa y debe dar como resultado un objeto que admita el " +"protocolo de administración de contexto (es decir, tiene los métodos :meth:" +"`__enter__` y :meth:`__exit__`)." #: ../Doc/whatsnew/2.6.rst:275 msgid "" @@ -345,6 +484,11 @@ msgid "" "the name *variable*, if given. (Note carefully that *variable* is *not* " "assigned the result of *expression*.)" msgstr "" +"El objeto :meth:`__enter__` se llama antes de que se ejecute *with-block* y, " +"por lo tanto, se puede ejecutar código de configuración. También, si se " +"proporciona, puede retornar un valor que esté vinculado al nombre " +"*variable*. (Tenga en cuenta que a la *variable* *no* se le asigna el " +"resultado de la *expression*)." #: ../Doc/whatsnew/2.6.rst:280 msgid "" @@ -352,6 +496,9 @@ msgid "" "`__exit__` method is called, even if the block raised an exception, and can " "therefore run clean-up code." msgstr "" +"Una vez finalizada la ejecución de *with-block*, se llama al método :meth:" +"`__exit__` del objeto, incluso si el bloque generó una excepción y, por lo " +"tanto, puede ejecutar código de limpieza." #: ../Doc/whatsnew/2.6.rst:284 msgid "" @@ -359,6 +506,9 @@ msgid "" "can be used with the ':keyword:`with`' statement. File objects are one " "example::" msgstr "" +"Algunos objetos estándar de Python ahora admiten el protocolo de " +"administración de contexto y se pueden usar con la sentencia ':keyword:" +"`with`'. Los objetos de archivo son un ejemplo::" #: ../Doc/whatsnew/2.6.rst:292 msgid "" @@ -366,24 +516,33 @@ msgid "" "automatically closed, even if the :keyword:`for` loop raised an exception " "part-way through the block." msgstr "" +"Después de que se haya ejecutado esta sentencia, el objeto de archivo en *f* " +"se habrá cerrado automáticamente, incluso si el bucle :keyword:`for` generó " +"una excepción en la mitad del bloque." #: ../Doc/whatsnew/2.6.rst:298 msgid "" "In this case, *f* is the same object created by :func:`open`, because :meth:" "`file.__enter__` returns *self*." msgstr "" +"En este caso, *f* es el mismo objeto creado por :func:`open`, porque :meth:" +"`file.__enter__` retorna *self*." #: ../Doc/whatsnew/2.6.rst:301 msgid "" "The :mod:`threading` module's locks and condition variables also support " "the ':keyword:`with`' statement::" msgstr "" +"Los *locks* y las condiciones variables del módulo :mod:`threading` también " +"admiten la sentencia ':keyword:`with`'::" #: ../Doc/whatsnew/2.6.rst:309 msgid "" "The lock is acquired before the block is executed and always released once " "the block is complete." msgstr "" +"El *lock* se adquiere antes de que se ejecute el bloque y siempre se libera " +"una vez que este se completa." #: ../Doc/whatsnew/2.6.rst:312 msgid "" @@ -391,10 +550,13 @@ msgid "" "to save and restore the current decimal context, which encapsulates the " "desired precision and rounding characteristics for computations::" msgstr "" +"La función :func:`localcontext` en el módulo :mod:`decimal` facilita guardar " +"y restaurar el contexto decimal actual, que encapsula la precisión deseada y " +"las características de redondeo para los cálculos::" #: ../Doc/whatsnew/2.6.rst:331 msgid "Writing Context Managers" -msgstr "" +msgstr "Escribiendo gestores de contexto" #: ../Doc/whatsnew/2.6.rst:333 msgid "" @@ -404,10 +566,16 @@ msgid "" "if you like. Authors of new objects will need to understand the details of " "the underlying implementation and should keep reading." msgstr "" +"Por detrás, la sentencia ':keyword:`with`' es bastante complicada. La " +"mayoría de las personas solo usarán ':keyword:`!with`' en compañía de " +"objetos existentes y no necesitan conocer estos detalles, por lo que puede " +"omitir el resto de esta sección si lo desea. Los autores de nuevos objetos " +"deberán comprender los detalles de la implementación subyacente y deben " +"seguir leyendo." #: ../Doc/whatsnew/2.6.rst:339 msgid "A high-level explanation of the context management protocol is:" -msgstr "" +msgstr "Una explicación de alto nivel del protocolo de gestor de contexto es:" #: ../Doc/whatsnew/2.6.rst:341 msgid "" @@ -415,6 +583,9 @@ msgid "" "\"context manager\". The context manager must have :meth:`__enter__` and :" "meth:`__exit__` methods." msgstr "" +"La expresión se evalúa y debería dar como resultado un objeto llamado " +"\"gestor de contexto\". El gestor de contexto debe tener los métodos :meth:" +"`__enter__` y :meth:`__exit__`." #: ../Doc/whatsnew/2.6.rst:345 msgid "" @@ -422,10 +593,13 @@ msgid "" "returned is assigned to *VAR*. If no ``as VAR`` clause is present, the " "value is simply discarded." msgstr "" +"Se llama al método :meth:`__enter__` del gestor de contexto. El valor " +"retornado se asigna a *VAR*. Si no hay una cláusula ``as VAR``, el valor " +"simplemente se descarta." #: ../Doc/whatsnew/2.6.rst:349 msgid "The code in *BLOCK* is executed." -msgstr "" +msgstr "Se ejecuta el código en *BLOCK*." #: ../Doc/whatsnew/2.6.rst:351 msgid "" @@ -439,18 +613,31 @@ msgid "" "containing the ':keyword:`with`' statement will never realize anything went " "wrong." msgstr "" +"Si *BLOCK* lanza una excepción, se llama al método :meth:`__exit__` del " +"gestor de contexto con tres argumentos, los detalles de la excepción " +"(``type, value, traceback``, los mismos valores retornados por :func:`sys." +"exc_info`, que también puede ser ``None`` si no se produjo ninguna " +"excepción). El valor de retorno del método controla si se vuelve a generar " +"una excepción: cualquier valor *false* vuelve a lanzar la excepción, y " +"``True`` resultará en inhibirla. Rara vez querrá suprimir la excepción, " +"porque si lo hace, el autor del código que contenga la sentencia ':keyword:" +"`with`' nunca se dará cuenta de que algo salió mal." #: ../Doc/whatsnew/2.6.rst:360 msgid "" "If *BLOCK* didn't raise an exception, the :meth:`__exit__` method is still " "called, but *type*, *value*, and *traceback* are all ``None``." msgstr "" +"Si *BLOCK* no lanzó una excepción, el método :meth:`__exit__` continúa " +"llamándose, pero *type*, *value* y *traceback* son todos``None``." #: ../Doc/whatsnew/2.6.rst:363 msgid "" "Let's think through an example. I won't present detailed code but will only " "sketch the methods necessary for a database that supports transactions." msgstr "" +"Pensemos en un ejemplo. No presentaré un código detallado, solo bosquejaré " +"los métodos necesarios para una base de datos que admita transacciones." #: ../Doc/whatsnew/2.6.rst:366 msgid "" @@ -460,12 +647,21 @@ msgid "" "rolled back, meaning that the changes are all discarded and the database is " "unchanged. See any database textbook for more information.)" msgstr "" +"(Para las personas que no están familiarizadas con la terminología de la " +"base de datos: un conjunto de cambios en la base de datos se agrupa en una " +"transacción. Las transacciones pueden confirmarse, lo que significa que " +"todos los cambios se escriben en la base de datos, o deshacerse, lo que " +"significa que todos los cambios se descartan y la base de datos no ha " +"cambiado. Consulte cualquier libro de texto de base de datos para obtener " +"más información.)" #: ../Doc/whatsnew/2.6.rst:372 msgid "" "Let's assume there's an object representing a database connection. Our goal " "will be to let the user write code like this::" msgstr "" +"Supongamos que hay un objeto que representa una conexión de base de datos. " +"Nuestro objetivo será permitir que el usuario escriba un código como este::" #: ../Doc/whatsnew/2.6.rst:381 msgid "" @@ -473,6 +669,9 @@ msgid "" "or rolled back if there's an exception. Here's the basic interface for :" "class:`DatabaseConnection` that I'll assume::" msgstr "" +"La transacción debe confirmarse si el código del bloque se ejecuta sin " +"problemas o revertirse si hay una excepción. Aquí está la interfaz básica " +"para :class:`DatabaseConnection` que asumiré::" #: ../Doc/whatsnew/2.6.rst:394 msgid "" @@ -482,6 +681,11 @@ msgid "" "cursor`` to their ':keyword:`with`' statement to bind the cursor to a " "variable name. ::" msgstr "" +"El método :meth:`__enter__` es bastante fácil, ya que solo tiene que iniciar " +"una nueva transacción. Para esta aplicación, el objeto cursor resultante " +"sería un resultado útil, por lo que el método lo retornará. Luego, el " +"usuario puede agregar ``as cursor`` a su sentencia ':keyword:`with`' para " +"vincular el cursor a un nombre de variable. ::" #: ../Doc/whatsnew/2.6.rst:406 msgid "" @@ -490,6 +694,10 @@ msgid "" "occurred. If there was no exception, the transaction is committed. The " "transaction is rolled back if there was an exception." msgstr "" +"El método :meth:`__exit__` es el más complicado porque es donde se debe " +"realizar la mayor parte del trabajo. El método debe verificar si ocurrió una " +"excepción. Si no hubo excepción, la transacción se confirma. La transacción " +"se revierte si hubo una excepción." #: ../Doc/whatsnew/2.6.rst:411 msgid "" @@ -498,16 +706,23 @@ msgid "" "exception will be re-raised automatically. If you wished, you could be more " "explicit and add a :keyword:`return` statement at the marked location. ::" msgstr "" +"En el siguiente código, la ejecución simplemente caerá al final de la " +"función, retornando el valor predeterminado ``None``. ``None`` es falso, por " +"lo que la excepción se volverá a lanzar automáticamente. Si lo desea, puede " +"ser más explícito y agregar una sentencia :keyword:`return` en la ubicación " +"marcada. ::" #: ../Doc/whatsnew/2.6.rst:431 msgid "The contextlib module" -msgstr "" +msgstr "El módulo contextlib" #: ../Doc/whatsnew/2.6.rst:433 msgid "" "The :mod:`contextlib` module provides some functions and a decorator that " "are useful when writing objects for use with the ':keyword:`with`' statement." msgstr "" +"El módulo :mod:`contextlib` proporciona algunas funciones y un decorador que " +"son útiles al escribir objetos para usar con la sentencia ':keyword:`with`'." #: ../Doc/whatsnew/2.6.rst:436 msgid "" @@ -521,12 +736,23 @@ msgid "" "exception raised in the block will be raised by the :keyword:`!yield` " "statement." msgstr "" +"El decorador se llama :func:`contextmanager`, y te permite escribir una " +"única función generadora en lugar de definir una clase nueva. El generador " +"debería producir exactamente un valor. El código hasta :keyword:`yield` se " +"ejecutará como el método :meth:`__enter__`, y el valor obtenido será el " +"valor de retorno del método que se vinculará a la variable en la clausula :" +"keyword:`!as` (si la hay) de la sentencia ':keyword:`with`'. El código " +"después de :keyword:`!yield` se ejecutará en el método :meth:`__exit__` . " +"Cualquier excepción lanzada en el bloque será generada por la sentencia :" +"keyword:`!yield`." #: ../Doc/whatsnew/2.6.rst:445 msgid "" "Using this decorator, our database example from the previous section could " "be written as::" msgstr "" +"Usando este decorador, nuestro ejemplo de base de datos de la sección " +"anterior podría escribirse como::" #: ../Doc/whatsnew/2.6.rst:465 msgid "" @@ -536,6 +762,11 @@ msgid "" "with`' statement both starts a database transaction and acquires a thread " "lock::" msgstr "" +"El módulo :mod:`contextlib` también tiene una función ``nested(mgr1, " +"mgr2, ...)`` que combina varios gestores de contexto para que no necesite " +"escribir sentencias ':keyword:`with`' anidadas. En este ejemplo, se utiliza " +"una única sentencia ':keyword:`!with`' que inicia una transacción de base de " +"datos y adquiere un bloqueo del hilo::" #: ../Doc/whatsnew/2.6.rst:474 msgid "" @@ -543,10 +774,13 @@ msgid "" "bound to a variable, and calls the argument's ``.close()`` method at the end " "of the block. ::" msgstr "" +"Por último, la función :func:`close` retorna su argumento para que pueda " +"vincularse a una variable, y llama al método ``.close()`` del argumento al " +"final del bloque. ::" #: ../Doc/whatsnew/2.6.rst:492 msgid ":pep:`343` - The \"with\" statement" -msgstr "" +msgstr ":pep:`343` - La sentencia \"with\"" #: ../Doc/whatsnew/2.6.rst:489 msgid "" @@ -555,14 +789,18 @@ msgid "" "':keyword:`with`' statement, which can be helpful in learning how the " "statement works." msgstr "" +"PEP escrito por Guido van Rossum y Nick Coghlan; implementado por Mike " +"Bland, Guido van Rossum y Neal Norwitz. El PEP muestra el código generado " +"para una sentencia ':keyword:`with`', que puede ser útil para aprender cómo " +"la sentencia funciona." #: ../Doc/whatsnew/2.6.rst:494 msgid "The documentation for the :mod:`contextlib` module." -msgstr "" +msgstr "La documentación para el módulo :mod:`contextlib`." #: ../Doc/whatsnew/2.6.rst:501 msgid "PEP 366: Explicit Relative Imports From a Main Module" -msgstr "" +msgstr "PEP 366: Importaciones relativas explícitas desde un módulo principal" #: ../Doc/whatsnew/2.6.rst:503 msgid "" @@ -570,6 +808,9 @@ msgid "" "ran a module that was located inside a package, relative imports didn't work " "correctly." msgstr "" +"El modificador de Python :option:`-m` permite ejecutar un módulo como un " +"script. Cuando ejecutabas un módulo que estaba ubicado dentro de un paquete, " +"las importaciones relativas no funcionaban correctamente." #: ../Doc/whatsnew/2.6.rst:507 msgid "" @@ -577,6 +818,10 @@ msgid "" "When this attribute is present, relative imports will be relative to the " "value of this attribute instead of the :attr:`__name__` attribute." msgstr "" +"La corrección para Python 2.6 agrega un atributo :attr:`__package__` a los " +"módulos. Cuando este atributo está presente, las importaciones relativas " +"serán relativas al valor de este atributo en lugar del atributo :attr:" +"`__name__`." #: ../Doc/whatsnew/2.6.rst:512 msgid "" @@ -585,10 +830,15 @@ msgid "" "relative imports will now work correctly in scripts running from inside a " "package." msgstr "" +"Las importaciones de estilo PEP 302 pueden configurar :attr:`__package__` " +"según sea necesario. El módulo :mod:`runpy` que implementa el modificador :" +"option:`-m` ahora hace esto, por lo que las importaciones relativas ahora " +"funcionarán correctamente en los scripts que se ejecutan desde el interior " +"de un paquete." #: ../Doc/whatsnew/2.6.rst:522 msgid "PEP 370: Per-user ``site-packages`` Directory" -msgstr "" +msgstr "PEP 370: Directorio de ``site-packages`` por usuario" #: ../Doc/whatsnew/2.6.rst:524 msgid "" @@ -597,20 +847,27 @@ msgid "" "intended to hold locally-installed packages available to all users using a " "machine or a particular site installation." msgstr "" +"Cuando ejecutas Python, la ruta de búsqueda del módulo ``sys.path`` " +"generalmente incluye un directorio cuya ruta termina en ``\"site-packages" +"\"``. Este directorio está destinado a contener paquetes instalados " +"localmente disponibles para todos los usuarios que utilizan una máquina o un " +"sitio de instalación en particular." #: ../Doc/whatsnew/2.6.rst:529 msgid "" "Python 2.6 introduces a convention for user-specific site directories. The " "directory varies depending on the platform:" msgstr "" +"Python 2.6 introduce una convención para directorios de sitios específicos " +"del usuario. El directorio varía según la plataforma:" #: ../Doc/whatsnew/2.6.rst:532 msgid "Unix and Mac OS X: :file:`~/.local/`" -msgstr "" +msgstr "Unix y Mac OS X: :file:`~/.local/`" #: ../Doc/whatsnew/2.6.rst:533 msgid "Windows: :file:`%APPDATA%/Python`" -msgstr "" +msgstr "Windows: :file:`%APPDATA%/Python`" #: ../Doc/whatsnew/2.6.rst:535 msgid "" @@ -618,6 +875,9 @@ msgid "" "as :file:`lib/python2.6/site-packages` on Unix/Mac OS and :file:`Python26/" "site-packages` on Windows." msgstr "" +"Dentro de este directorio, habrá subdirectorios específicos de versión, " +"como :file:`lib/python2.6/site-packages` en Unix/Mac OS y :file:`Python26/" +"site-packages` en Windows." #: ../Doc/whatsnew/2.6.rst:539 msgid "" @@ -628,24 +888,33 @@ msgid "" "`APPDATA` environment variable. You can also modify the :file:`site.py` " "file for your Python installation." msgstr "" +"Si no le gusta el directorio predeterminado, puede sobrescribirlo mediante " +"una variable de entorno. :envvar:`PYTHONUSERBASE` establece el directorio " +"raíz utilizado para todas las versiones de Python que admiten esta función. " +"En Windows, el directorio de datos específicos de la aplicación se puede " +"cambiar configurando la variable de entorno :envvar:`APPDATA`. También puede " +"modificar el archivo :file:`site.py` para su instalación de Python." #: ../Doc/whatsnew/2.6.rst:546 msgid "" "The feature can be disabled entirely by running Python with the :option:`-s` " "option or setting the :envvar:`PYTHONNOUSERSITE` environment variable." msgstr "" +"La característica se puede desactivar por completo ejecutando Python con la " +"opción :option:`-s` o *seteando* la variable de entorno :envvar:" +"`PYTHONNOUSERSITE`." #: ../Doc/whatsnew/2.6.rst:552 msgid ":pep:`370` - Per-user ``site-packages`` Directory" -msgstr "" +msgstr "PEP 370: Directorio de ``site-packages`` por usuario" #: ../Doc/whatsnew/2.6.rst:553 msgid "PEP written and implemented by Christian Heimes." -msgstr "" +msgstr "PEP escrito e implementado por Christian Heimes." #: ../Doc/whatsnew/2.6.rst:561 msgid "PEP 371: The ``multiprocessing`` Package" -msgstr "" +msgstr "PEP 371: El paquete ``multiprocessing``" #: ../Doc/whatsnew/2.6.rst:563 msgid "" @@ -655,6 +924,11 @@ msgid "" "pipes, synchronize their operations using locks and semaphores, and can " "share simple arrays of data." msgstr "" +"El nuevo paquete :mod:`multiprocessing` permite a los programas de Python " +"crear nuevos procesos que realizarán un cálculo y retornaran un resultado al " +"padre. Los procesos padre e hijo pueden comunicarse mediante colas " +"(*queues*) y tuberías (*pipes*), sincronizar sus operaciones mediante " +"bloqueos y semáforos, y pueden compartir matrices simples de datos." #: ../Doc/whatsnew/2.6.rst:569 msgid "" @@ -667,6 +941,15 @@ msgid "" "can call the :meth:`is_alive` method to check whether the subprocess is " "still running and the :meth:`join` method to wait for the process to exit." msgstr "" +"El módulo :mod:`multiprocessing` comenzó como una emulación exacta del " +"módulo :mod:`threading` usando procesos en lugar de hilos. Ese objetivo se " +"descartó en el camino a Python 2.6, pero el enfoque general del módulo sigue " +"siendo similar. La clase fundamental es :class:`Process`, a la que se le " +"pasa un objeto invocable y una colección de argumentos. El método :meth:" +"`start` establece el invocable ejecutándose en un subproceso, después de lo " +"cual se puede llamar al método :meth:`is_alive` para verificar si el " +"subproceso aún se está ejecutando y al método :meth:`join` para esperar al " +"proceso para salir." #: ../Doc/whatsnew/2.6.rst:579 msgid "" @@ -674,6 +957,9 @@ msgid "" "The function doing the calculation is written strangely so that it takes " "significantly longer when the input argument is a multiple of 4." msgstr "" +"Aquí hay un ejemplo simple donde el subproceso calculará un factorial. La " +"función que realiza el cálculo está escrita de forma extraña, por lo que " +"lleva mucho más tiempo cuando el argumento de entrada es un múltiplo de 4." #: ../Doc/whatsnew/2.6.rst:616 msgid "" @@ -684,6 +970,12 @@ msgid "" "communicate. (If the parent were to change the value of the global " "variable, the child's value would be unaffected, and vice versa.)" msgstr "" +"Un :class:`~queue.Queue` se usa para comunicar el resultado del factorial. " +"El objeto :class:`~queue.Queue` se almacena en una variable global. El " +"proceso hijo usará el valor de la variable cuando se creó el hijo; porque es " +"una :class:`~ queue.Queue`, padre e hijo pueden usar el objeto para " +"comunicarse. (Si el padre cambiara el valor de la variable global, el valor " +"del hijo no se vería afectado y viceversa)." #: ../Doc/whatsnew/2.6.rst:624 msgid "" @@ -695,10 +987,17 @@ msgid "" "`Pool` to spread requests across 5 worker processes and retrieve a list of " "results::" msgstr "" +"Otras dos clases, :class:`Pool` y :class:`Manager`, proporcionan interfaces " +"de nivel superior. :class:`Pool` creará un número fijo de procesos de " +"trabajo, y las solicitudes se pueden distribuir a los trabajadores llamando " +"a :meth:`apply` o :meth:`apply_async` para agregar una sola solicitud, y :" +"meth:`map` o :meth:`map_async` para agregar una serie de solicitudes. El " +"siguiente código usa :class:`Pool` para distribuir las solicitudes en 5 " +"procesos de trabajo y recuperar una lista de resultados::" #: ../Doc/whatsnew/2.6.rst:642 msgid "This produces the following output::" -msgstr "" +msgstr "Esto produce la siguiente salida::" #: ../Doc/whatsnew/2.6.rst:651 msgid "" @@ -712,28 +1011,39 @@ msgid "" "methods also include :meth:`Lock`, :meth:`RLock`, and :meth:`Semaphore` to " "create shared locks.)" msgstr "" +"La otra interfaz de alto nivel, la clase :class:`Manager`, crea un proceso " +"de servidor separado que puede contener copias maestras de las estructuras " +"de datos de Python. Luego, otros procesos pueden acceder y modificar estas " +"estructuras de datos utilizando objetos proxy. El siguiente ejemplo crea un " +"diccionario compartido llamando al método :meth:`dict`; los procesos de " +"trabajo luego insertan valores en el diccionario. (El bloqueo no se realiza " +"automáticamente, lo cual no importa en este ejemplo. Los métodos de :class:" +"`Manager` también incluyen :meth:`Lock`, :meth:`RLock`, y :meth:`Semaphore` " +"para crear bloqueos compartidos.)" #: ../Doc/whatsnew/2.6.rst:695 msgid "This will produce the output::" -msgstr "" +msgstr "Esto producirá la salida::" #: ../Doc/whatsnew/2.6.rst:706 msgid "The documentation for the :mod:`multiprocessing` module." -msgstr "" +msgstr "La documentación del módulo :mod:`multiprocessing`." #: ../Doc/whatsnew/2.6.rst:709 msgid ":pep:`371` - Addition of the multiprocessing package" -msgstr "" +msgstr ":pep:`371` - Adición del paquete de multiprocesamiento" #: ../Doc/whatsnew/2.6.rst:709 msgid "" "PEP written by Jesse Noller and Richard Oudkerk; implemented by Richard " "Oudkerk and Jesse Noller." msgstr "" +"PEP escrito por Jesse Noller y Richard Oudkerk; implementado por Richard " +"Oudkerk y Jesse Noller." #: ../Doc/whatsnew/2.6.rst:718 msgid "PEP 3101: Advanced String Formatting" -msgstr "" +msgstr "PEP 3101: Formateo avanzado de cadena de caracteres" #: ../Doc/whatsnew/2.6.rst:720 msgid "" @@ -741,6 +1051,9 @@ msgid "" "formatting method, :meth:`format`. Support for the :meth:`str.format` " "method has been backported to Python 2.6." msgstr "" +"En Python 3.0, el operador `%` se complementa con un método de formato de " +"cadena de caracteres más potente, :meth:`format`. La compatibilidad con el " +"método :meth:`str.format` se ha actualizado a Python 2.6." #: ../Doc/whatsnew/2.6.rst:724 msgid "" @@ -748,10 +1061,14 @@ msgid "" "the string as a template and takes the arguments to be formatted. The " "formatting template uses curly brackets (`{`, `}`) as special characters::" msgstr "" +"En 2.6, las cadenas de caracteres de 8 bits y Unicode tienen un método `." +"format()` que trata la cadena como una plantilla y toma los argumentos a " +"formatear. La plantilla de formato utiliza llaves (`{`, `}`) como caracteres " +"especiales::" #: ../Doc/whatsnew/2.6.rst:737 msgid "Curly brackets can be escaped by doubling them::" -msgstr "" +msgstr "Las llaves se pueden escapar duplicándose::" #: ../Doc/whatsnew/2.6.rst:742 msgid "" @@ -759,6 +1076,10 @@ msgid "" "``, ``{1}``, etc. or names of keyword arguments. You can also supply " "compound field names that read attributes or access dictionary keys::" msgstr "" +"Los nombres de campo pueden ser números enteros que indican argumentos " +"posicionales, como ``{0}``, ``{1}``, etc. o nombres de argumentos de " +"palabras clave. También puede proporcionar nombres de campos compuestos que " +"lean atributos o accedan a claves de diccionario::" #: ../Doc/whatsnew/2.6.rst:756 msgid "" @@ -768,6 +1089,11 @@ msgid "" "converted to an integer. You can't write more complicated expressions " "inside a format string." msgstr "" +"Tenga en cuenta que cuando utilice una notación de estilo diccionario como " +"``[.mp4]``, no es necesario poner comillas alrededor de la cadena; se " +"buscará el valor usando ``.mp4`` como clave. Las cadenas de caracteres que " +"comienzan con un número se convertirán en entero. No puede escribir " +"expresiones más complicadas dentro de una cadena de formato." #: ../Doc/whatsnew/2.6.rst:762 msgid "" @@ -775,54 +1101,60 @@ msgid "" "resulting string. The precise formatting used is also controllable by " "adding a colon followed by a format specifier. For example::" msgstr "" +"Hasta ahora hemos mostrado cómo especificar qué campo sustituir en la cadena " +"resultante. El formato preciso utilizado también se puede controlar " +"agregando dos puntos seguidos de un especificador de formato. Por ejemplo::" #: ../Doc/whatsnew/2.6.rst:776 msgid "Format specifiers can reference other fields through nesting::" msgstr "" +"Los especificadores de formato pueden hacer referencia a otros campos a " +"través del anidamiento::" #: ../Doc/whatsnew/2.6.rst:786 msgid "The alignment of a field within the desired width can be specified:" msgstr "" +"Se puede especificar la alineación de un campo dentro del ancho deseado:" #: ../Doc/whatsnew/2.6.rst:789 msgid "Character" -msgstr "" +msgstr "Carácter" #: ../Doc/whatsnew/2.6.rst:789 msgid "Effect" -msgstr "" +msgstr "Efecto" #: ../Doc/whatsnew/2.6.rst:791 msgid "< (default)" -msgstr "" +msgstr "< (por defecto)" #: ../Doc/whatsnew/2.6.rst:791 msgid "Left-align" -msgstr "" +msgstr "Alinear a la izquierda" #: ../Doc/whatsnew/2.6.rst:792 msgid ">" -msgstr "" +msgstr ">" #: ../Doc/whatsnew/2.6.rst:792 msgid "Right-align" -msgstr "" +msgstr "Alinear a la derecha" #: ../Doc/whatsnew/2.6.rst:793 msgid "^" -msgstr "" +msgstr "^" #: ../Doc/whatsnew/2.6.rst:793 msgid "Center" -msgstr "" +msgstr "Centrado" #: ../Doc/whatsnew/2.6.rst:794 msgid "=" -msgstr "" +msgstr "=" #: ../Doc/whatsnew/2.6.rst:794 msgid "(For numeric types only) Pad after the sign." -msgstr "" +msgstr "(Solo para tipos numéricos) Relleno después del signo." #: ../Doc/whatsnew/2.6.rst:797 msgid "" @@ -830,188 +1162,259 @@ msgid "" "the value is formatted. For example, floating-point numbers can be " "formatted as a general number or in exponential notation::" msgstr "" +"Los especificadores de formato también pueden incluir un tipo de " +"presentación, que controla cómo se formatea el valor. Por ejemplo, los " +"números de punto flotante pueden formatearse como un número general o en " +"notación exponencial::" #: ../Doc/whatsnew/2.6.rst:806 msgid "" "A variety of presentation types are available. Consult the 2.6 " "documentation for a :ref:`complete list `; here's a sample:" msgstr "" +"Hay una variedad de tipos de presentación disponibles. Consulte la " +"documentación 2.6 para obtener una :ref:`lista completa `; " +"aquí hay un ejemplo:" #: ../Doc/whatsnew/2.6.rst:810 msgid "``b``" -msgstr "" +msgstr "``b``" #: ../Doc/whatsnew/2.6.rst:810 msgid "Binary. Outputs the number in base 2." -msgstr "" +msgstr "Binario. Emite el número en base 2." #: ../Doc/whatsnew/2.6.rst:811 msgid "``c``" -msgstr "" +msgstr "``c``" #: ../Doc/whatsnew/2.6.rst:811 +#, fuzzy msgid "" "Character. Converts the integer to the corresponding Unicode character " "before printing." msgstr "" +"Carácter. Convierte el número entero en el carácter Unicode correspondiente " +"antes de imprimirlo." #: ../Doc/whatsnew/2.6.rst:813 +#, fuzzy msgid "``d``" -msgstr "" +msgstr "``d``" #: ../Doc/whatsnew/2.6.rst:813 +#, fuzzy msgid "Decimal Integer. Outputs the number in base 10." -msgstr "" +msgstr "Entero Decimal. Muestra el número en base 10." #: ../Doc/whatsnew/2.6.rst:814 +#, fuzzy msgid "``o``" -msgstr "" +msgstr "``o``" #: ../Doc/whatsnew/2.6.rst:814 +#, fuzzy msgid "Octal format. Outputs the number in base 8." -msgstr "" +msgstr "Formato octal. Da salida al número en base 8." #: ../Doc/whatsnew/2.6.rst:815 +#, fuzzy msgid "``x``" -msgstr "" +msgstr "``x``" #: ../Doc/whatsnew/2.6.rst:815 +#, fuzzy msgid "" "Hex format. Outputs the number in base 16, using lower-case letters for the " "digits above 9." msgstr "" +"Formato hexadecimal. Muestra el número en base 16, utilizando letras " +"minúsculas para los dígitos superiores a 9." #: ../Doc/whatsnew/2.6.rst:817 +#, fuzzy msgid "``e``" -msgstr "" +msgstr "``e``" #: ../Doc/whatsnew/2.6.rst:817 +#, fuzzy msgid "" "Exponent notation. Prints the number in scientific notation using the letter " "'e' to indicate the exponent." msgstr "" +"Notación de exponente. Imprime el número en notación científica utilizando " +"la letra 'e' para indicar el exponente." #: ../Doc/whatsnew/2.6.rst:819 +#, fuzzy msgid "``g``" -msgstr "" +msgstr "``g``" #: ../Doc/whatsnew/2.6.rst:819 +#, fuzzy msgid "" "General format. This prints the number as a fixed-point number, unless the " "number is too large, in which case it switches to 'e' exponent notation." msgstr "" +"Formato general. Esto imprime el número como un número de punto fijo, a " +"menos que el número sea demasiado grande, en cuyo caso cambia a la notación " +"de exponente 'e'." #: ../Doc/whatsnew/2.6.rst:822 +#, fuzzy msgid "``n``" -msgstr "" +msgstr "``n``" #: ../Doc/whatsnew/2.6.rst:822 +#, fuzzy msgid "" "Number. This is the same as 'g' (for floats) or 'd' (for integers), except " "that it uses the current locale setting to insert the appropriate number " "separator characters." msgstr "" +"Número. Es lo mismo que 'g' (para flotantes) o 'd' (para enteros), salvo que " +"utiliza la configuración regional actual para insertar los caracteres " +"separadores de números adecuados." #: ../Doc/whatsnew/2.6.rst:825 +#, fuzzy msgid "``%``" -msgstr "" +msgstr "``%``" #: ../Doc/whatsnew/2.6.rst:825 +#, fuzzy msgid "" "Percentage. Multiplies the number by 100 and displays in fixed ('f') format, " "followed by a percent sign." msgstr "" +"Porcentaje. Multiplica el número por 100 y lo muestra en formato fijo ('f'), " +"seguido de un signo de porcentaje." #: ../Doc/whatsnew/2.6.rst:829 +#, fuzzy msgid "" "Classes and types can define a :meth:`__format__` method to control how " "they're formatted. It receives a single argument, the format specifier::" msgstr "" +"Las clases y los tipos pueden definir un método :meth:`__format__` para " +"controlar cómo se formatean. Recibe un único argumento, el especificador de " +"formato::" #: ../Doc/whatsnew/2.6.rst:838 +#, fuzzy msgid "" "There's also a :func:`format` builtin that will format a single value. It " "calls the type's :meth:`__format__` method with the provided specifier::" msgstr "" +"También hay un builtin :func:`format` que formateará un solo valor. Llama " +"al método :meth:`__format__` del tipo con el especificador proporcionado::" #: ../Doc/whatsnew/2.6.rst:849 +#, fuzzy msgid ":ref:`formatstrings`" -msgstr "" +msgstr ":ref:`formatos`" #: ../Doc/whatsnew/2.6.rst:849 +#, fuzzy msgid "The reference documentation for format fields." -msgstr "" +msgstr "La documentación de referencia para los campos de formato." #: ../Doc/whatsnew/2.6.rst:851 +#, fuzzy msgid ":pep:`3101` - Advanced String Formatting" -msgstr "" +msgstr ":pep:`3101` - Formato avanzado de cadenas" #: ../Doc/whatsnew/2.6.rst:852 +#, fuzzy msgid "PEP written by Talin. Implemented by Eric Smith." -msgstr "" +msgstr "PEP escrito por Talin. Implementado por Eric Smith." #: ../Doc/whatsnew/2.6.rst:859 +#, fuzzy msgid "PEP 3105: ``print`` As a Function" -msgstr "" +msgstr "PEP 3105: ``print`` como función" #: ../Doc/whatsnew/2.6.rst:861 +#, fuzzy msgid "" "The ``print`` statement becomes the :func:`print` function in Python 3.0. " "Making :func:`print` a function makes it possible to replace the function by " "doing ``def print(...)`` or importing a new function from somewhere else." msgstr "" +"La sentencia ``print`` se convierte en la función :func:`print` en Python " +"3.0. Hacer de :func:`print` una función hace posible reemplazar la función " +"haciendo ``def print(...)`` o importando una nueva función desde otro lugar." #: ../Doc/whatsnew/2.6.rst:865 +#, fuzzy msgid "" "Python 2.6 has a ``__future__`` import that removes ``print`` as language " "syntax, letting you use the functional form instead. For example::" msgstr "" +"Python 2.6 tiene una importación ``__future__`` que elimina ``print`` como " +"sintaxis del lenguaje, permitiéndote usar la forma funcional en su lugar. " +"Por ejemplo::" #: ../Doc/whatsnew/2.6.rst:871 +#, fuzzy msgid "The signature of the new function is::" -msgstr "" +msgstr "La firma de la nueva función es::" #: ../Doc/whatsnew/2.6.rst:876 +#, fuzzy msgid "The parameters are:" -msgstr "" +msgstr "Los parámetros son:" #: ../Doc/whatsnew/2.6.rst:878 +#, fuzzy msgid "*args*: positional arguments whose values will be printed out." -msgstr "" +msgstr "*args*: argumentos posicionales cuyos valores se imprimirán." #: ../Doc/whatsnew/2.6.rst:879 +#, fuzzy msgid "*sep*: the separator, which will be printed between arguments." -msgstr "" +msgstr "*sep*: el separador que se imprimirá entre los argumentos." #: ../Doc/whatsnew/2.6.rst:880 +#, fuzzy msgid "" "*end*: the ending text, which will be printed after all of the arguments " "have been output." msgstr "" +"*end*: el texto final, que se imprimirá después de que se hayan emitido " +"todos los argumentos." #: ../Doc/whatsnew/2.6.rst:882 +#, fuzzy msgid "*file*: the file object to which the output will be sent." -msgstr "" +msgstr "*archivo*: el objeto archivo al que se enviará la salida." #: ../Doc/whatsnew/2.6.rst:886 +#, fuzzy msgid ":pep:`3105` - Make print a function" -msgstr "" +msgstr ":pep:`3105` - Hacer de la impresión una función" #: ../Doc/whatsnew/2.6.rst:887 +#, fuzzy msgid "PEP written by Georg Brandl." -msgstr "" +msgstr "PEP escrito por Georg Brandl." #: ../Doc/whatsnew/2.6.rst:894 +#, fuzzy msgid "PEP 3110: Exception-Handling Changes" -msgstr "" +msgstr "PEP 3110: Cambios en el manejo de excepciones" #: ../Doc/whatsnew/2.6.rst:896 +#, fuzzy msgid "" "One error that Python programmers occasionally make is writing the following " "code::" msgstr "" +"Un error que ocasionalmente cometen los programadores de Python es escribir " +"el siguiente código::" #: ../Doc/whatsnew/2.6.rst:904 +#, fuzzy msgid "" "The author is probably trying to catch both :exc:`TypeError` and :exc:" "`ValueError` exceptions, but this code actually does something different: it " @@ -1019,22 +1422,37 @@ msgid "" "local name ``\"ValueError\"``. The :exc:`ValueError` exception will not be " "caught at all. The correct code specifies a tuple of exceptions::" msgstr "" +"El autor probablemente está tratando de atrapar ambas excepciones :exc:" +"`TypeError` y :exc:`ValueError`, pero este código en realidad hace algo " +"diferente: atrapará :exc:`TypeError` y vinculará el objeto de excepción " +"resultante al nombre local ``\"ValueError\"``. La excepción :exc:" +"`ValueError` no será capturada en absoluto. El código correcto especifica " +"una tupla de excepciones::" #: ../Doc/whatsnew/2.6.rst:916 +#, fuzzy msgid "" "This error happens because the use of the comma here is ambiguous: does it " "indicate two different nodes in the parse tree, or a single node that's a " "tuple?" msgstr "" +"Este error se produce porque el uso de la coma aquí es ambiguo: ¿indica dos " +"nodos diferentes en el árbol de análisis sintáctico, o un único nodo que es " +"una tupla?" #: ../Doc/whatsnew/2.6.rst:920 +#, fuzzy msgid "" "Python 3.0 makes this unambiguous by replacing the comma with the word \"as" "\". To catch an exception and store the exception object in the variable " "``exc``, you must write::" msgstr "" +"Python 3.0 hace que esto sea inequívoco al sustituir la coma por la palabra " +"\"as\". Para atrapar una excepción y almacenar el objeto de excepción en la " +"variable ``exc``, debes escribir::" #: ../Doc/whatsnew/2.6.rst:929 +#, fuzzy msgid "" "Python 3.0 will only support the use of \"as\", and therefore interprets the " "first example as catching two different exceptions. Python 2.6 supports " @@ -1042,20 +1460,29 @@ msgid "" "therefore suggest using \"as\" when writing new Python code that will only " "be executed with 2.6." msgstr "" +"Python 3.0 sólo soporta el uso de \"as\", y por lo tanto interpreta el " +"primer ejemplo como la captura de dos excepciones diferentes. Python 2.6 " +"soporta tanto la coma como \"as\", por lo que el código existente seguirá " +"funcionando. Por lo tanto, sugerimos utilizar \"as\" cuando se escriba " +"nuevo código Python que sólo se ejecutará con la versión 2.6." #: ../Doc/whatsnew/2.6.rst:937 +#, fuzzy msgid ":pep:`3110` - Catching Exceptions in Python 3000" -msgstr "" +msgstr ":pep:`3110` - Captura de excepciones en Python 3000" #: ../Doc/whatsnew/2.6.rst:938 +#, fuzzy msgid "PEP written and implemented by Collin Winter." -msgstr "" +msgstr "PEP escrito y ejecutado por Collin Winter." #: ../Doc/whatsnew/2.6.rst:945 +#, fuzzy msgid "PEP 3112: Byte Literals" -msgstr "" +msgstr "PEP 3112: Literales de bytes" #: ../Doc/whatsnew/2.6.rst:947 +#, fuzzy msgid "" "Python 3.0 adopts Unicode as the language's fundamental string type and " "denotes 8-bit literals differently, either as ``b'string'`` or using a :" @@ -1063,8 +1490,14 @@ msgid "" "`bytes` as a synonym for the :class:`str` type, and it also supports the " "``b''`` notation." msgstr "" +"Python 3.0 adopta Unicode como el tipo de cadena fundamental del lenguaje y " +"denota los literales de 8 bits de forma diferente, ya sea como ``b'string`` " +"o utilizando un constructor :class:`bytes`. Por compatibilidad futura, " +"Python 2.6 añade :class:`bytes` como sinónimo del tipo :class:`str`, y " +"también soporta la notación ``b''``." #: ../Doc/whatsnew/2.6.rst:954 +#, fuzzy msgid "" "The 2.6 :class:`str` differs from 3.0's :class:`bytes` type in various ways; " "most notably, the constructor is completely different. In 3.0, ``bytes([65, " @@ -1072,8 +1505,15 @@ msgid "" "2.6, ``bytes([65, 66, 67])`` returns the 12-byte string representing the :" "func:`str` of the list." msgstr "" +"El tipo :class:`str` de la versión 2.6 difiere del tipo :class:`bytes` de la " +"versión 3.0 en varios aspectos; el más notable es que el constructor es " +"completamente diferente. En la 3.0, ``bytes([65, 66, 67])`` tiene 3 " +"elementos, que contienen los bytes que representan ``ABC``; en la 2.6, " +"``bytes([65, 66, 67])`` devuelve la cadena de 12 bytes que representa el :" +"func:`str` de la lista." #: ../Doc/whatsnew/2.6.rst:960 +#, fuzzy msgid "" "The primary use of :class:`bytes` in 2.6 will be to write tests of object " "type such as ``isinstance(x, bytes)``. This will help the 2to3 converter, " @@ -1082,15 +1522,27 @@ msgid "" "`str` to represent your intention exactly, and the resulting code will also " "be correct in Python 3.0." msgstr "" +"El uso principal de :class:`bytes` en 2.6 será escribir pruebas de tipo de " +"objeto como ``isinstance(x, bytes)``. Esto ayudará al convertidor de 2 a 3, " +"que no puede decir si el código de 2.x pretende que las cadenas contengan " +"caracteres o bytes de 8 bits; ahora puede utilizar :class:`bytes` o :class:" +"`str` para representar su intención exactamente, y el código resultante " +"también será correcto en Python 3.0." #: ../Doc/whatsnew/2.6.rst:967 +#, fuzzy msgid "" "There's also a ``__future__`` import that causes all string literals to " "become Unicode strings. This means that ``\\u`` escape sequences can be " "used to include Unicode characters::" msgstr "" +"También hay una importación ``__future__`` que hace que todos los literales " +"de cadena se conviertan en cadenas Unicode. Esto significa que las " +"secuencias de escape ``u`` pueden ser utilizadas para incluir caracteres " +"Unicode::" #: ../Doc/whatsnew/2.6.rst:979 +#, fuzzy msgid "" "At the C level, Python 3.0 will rename the existing 8-bit string type, " "called :c:type:`PyStringObject` in Python 2.x, to :c:type:`PyBytesObject`. " @@ -1099,39 +1551,63 @@ msgid "" "`PyBytes_FromStringAndSize`, and all the other functions and macros used " "with strings." msgstr "" +"A nivel de C, Python 3.0 renombrará el tipo de cadena de 8 bits existente, " +"llamado :c:type:`PyStringObject` en Python 2.x, a :c:type:`PyBytesObject`. " +"Python 2.6 utiliza ``#define`` para soportar el uso de los nombres :c:func:" +"`PyBytesObject`, :c:func:`PyBytes_Check`, :c:func:" +"`PyBytes_FromStringAndSize`, y todas las demás funciones y macros utilizadas " +"con cadenas." #: ../Doc/whatsnew/2.6.rst:986 +#, fuzzy msgid "" "Instances of the :class:`bytes` type are immutable just as strings are. A " "new :class:`bytearray` type stores a mutable sequence of bytes::" msgstr "" +"Las instancias del tipo :class:`bytes` son inmutables al igual que las " +"cadenas. Un nuevo tipo :class:`bytearray` almacena una secuencia mutable de " +"bytes::" #: ../Doc/whatsnew/2.6.rst:1001 +#, fuzzy msgid "" "Byte arrays support most of the methods of string types, such as :meth:" "`startswith`/:meth:`endswith`, :meth:`find`/:meth:`rfind`, and some of the " "methods of lists, such as :meth:`append`, :meth:`pop`, and :meth:`reverse`." msgstr "" +"Las matrices de bytes admiten la mayoría de los métodos de los tipos de " +"cadena, como :meth:`startswith`/:meth:`endswith`, :meth:`find`/:meth:" +"`rfind`, y algunos de los métodos de las listas, como :meth:`append`, :meth:" +"`pop` y :meth:`reverse`." #: ../Doc/whatsnew/2.6.rst:1014 +#, fuzzy msgid "" "There's also a corresponding C API, with :c:func:`PyByteArray_FromObject`, :" "c:func:`PyByteArray_FromStringAndSize`, and various other functions." msgstr "" +"También existe la correspondiente API en C, con :c:func:" +"`PyByteArray_FromObject`, :c:func:`PyByteArray_FromStringAndSize`, y varias " +"otras funciones." #: ../Doc/whatsnew/2.6.rst:1021 +#, fuzzy msgid ":pep:`3112` - Bytes literals in Python 3000" -msgstr "" +msgstr ":pep:`3112` - Literales de bytes en Python 3000" #: ../Doc/whatsnew/2.6.rst:1022 +#, fuzzy msgid "PEP written by Jason Orendorff; backported to 2.6 by Christian Heimes." msgstr "" +"PEP escrito por Jason Orendorff; retroalimentado a 2.6 por Christian Heimes." #: ../Doc/whatsnew/2.6.rst:1029 +#, fuzzy msgid "PEP 3116: New I/O Library" -msgstr "" +msgstr "PEP 3116: Nueva biblioteca de E/S" #: ../Doc/whatsnew/2.6.rst:1031 +#, fuzzy msgid "" "Python's built-in file objects support a number of methods, but file-like " "objects don't necessarily support all of them. Objects that imitate files " @@ -1140,14 +1616,25 @@ msgid "" "in the :mod:`io` module that separates buffering and text-handling features " "from the fundamental read and write operations." msgstr "" +"Los objetos de archivo incorporados en Python soportan una serie de métodos, " +"pero los objetos que imitan a los archivos no necesariamente los soportan " +"todos. Los objetos que imitan a los archivos normalmente soportan :meth:" +"`read` y :meth:`write`, pero pueden no soportar :meth:`readline`, por " +"ejemplo. Python 3.0 introduce una biblioteca de E/S por capas en el módulo :" +"mod:`io` que separa las funciones de almacenamiento en búfer y manejo de " +"texto de las operaciones fundamentales de lectura y escritura." #: ../Doc/whatsnew/2.6.rst:1039 +#, fuzzy msgid "" "There are three levels of abstract base classes provided by the :mod:`io` " "module:" msgstr "" +"Existen tres niveles de clases base abstractas proporcionadas por el módulo :" +"mod:`io`:" #: ../Doc/whatsnew/2.6.rst:1042 +#, fuzzy msgid "" ":class:`RawIOBase` defines raw I/O operations: :meth:`read`, :meth:" "`readinto`, :meth:`write`, :meth:`seek`, :meth:`tell`, :meth:`truncate`, " @@ -1156,22 +1643,39 @@ msgid "" "meth:`seekable` methods for determining what operations a given object will " "allow." msgstr "" +":class:`RawIOBase` define las operaciones de E/S en bruto: :meth:`read`, :" +"meth:`readinto`, :meth:`write`, :meth:`seek`, :meth:`tell`, :meth:" +"`truncate`, y :meth:`close`. La mayoría de los métodos de esta clase suelen " +"corresponder a una única llamada al sistema. También hay métodos :meth:" +"`readable`, :meth:`writable` y :meth:`seekable` para determinar qué " +"operaciones permite un objeto dado." #: ../Doc/whatsnew/2.6.rst:1050 +#, fuzzy msgid "" "Python 3.0 has concrete implementations of this class for files and sockets, " "but Python 2.6 hasn't restructured its file and socket objects in this way." msgstr "" +"Python 3.0 tiene implementaciones concretas de esta clase para archivos y " +"sockets, pero Python 2.6 no ha reestructurado sus objetos archivo y socket " +"de esta manera." #: ../Doc/whatsnew/2.6.rst:1056 +#, fuzzy msgid "" ":class:`BufferedIOBase` is an abstract base class that buffers data in " "memory to reduce the number of system calls used, making I/O processing more " "efficient. It supports all of the methods of :class:`RawIOBase`, and adds a :" "attr:`raw` attribute holding the underlying raw object." msgstr "" +":class:`BufferedIOBase` es una clase base abstracta que almacena los datos " +"en la memoria para reducir el número de llamadas al sistema, haciendo más " +"eficiente el procesamiento de E/S. Soporta todos los métodos de :class:" +"`RawIOBase`, y añade un atributo :attr:`raw` que contiene el objeto crudo " +"subyacente." #: ../Doc/whatsnew/2.6.rst:1062 +#, fuzzy msgid "" "There are five concrete classes implementing this ABC. :class:" "`BufferedWriter` and :class:`BufferedReader` are for objects that support " @@ -1182,16 +1686,30 @@ msgid "" "streams of data. The :class:`BytesIO` class supports reading, writing, and " "seeking over an in-memory buffer." msgstr "" +"Hay cinco clases concretas que implementan este ABC. :class:`BufferedWriter` " +"y :class:`BufferedReader` son para objetos que soportan el uso de sólo " +"escritura o de sólo lectura que tienen un método :meth:`seek` para el acceso " +"aleatorio. Los objetos :class:`BufferedRandom` soportan el acceso de lectura " +"y escritura sobre el mismo flujo subyacente, y :class:`BufferedRWPair` es " +"para objetos como los TTYs que tienen operaciones de lectura y escritura " +"actuando sobre flujos de datos desconectados. La clase :class:`BytesIO` " +"permite leer, escribir y buscar sobre un buffer en memoria." #: ../Doc/whatsnew/2.6.rst:1075 +#, fuzzy msgid "" ":class:`TextIOBase`: Provides functions for reading and writing strings " "(remember, strings will be Unicode in Python 3.0), and supporting :term:" "`universal newlines`. :class:`TextIOBase` defines the :meth:`readline` " "method and supports iteration upon objects." msgstr "" +":class:`TextIOBase`: Proporciona funciones para leer y escribir cadenas " +"(recuerde que las cadenas serán Unicode en Python 3.0), y soporta :term:" +"`universal newlines`. :class:`TextIOBase` define el método :meth:`readline` " +"y soporta la iteración sobre objetos." #: ../Doc/whatsnew/2.6.rst:1081 +#, fuzzy msgid "" "There are two concrete implementations. :class:`TextIOWrapper` wraps a " "buffered I/O object, supporting all of the methods for text I/O and adding " @@ -1199,8 +1717,14 @@ msgid "" "`StringIO` simply buffers everything in memory without ever writing anything " "to disk." msgstr "" +"Hay dos implementaciones concretas. :class:`TextIOWrapper` envuelve un " +"objeto de E/S con buffer, soportando todos los métodos de E/S de texto y " +"añadiendo un atributo :attr:`buffer` para acceder al objeto subyacente. :" +"class:`StringIO` simplemente almacena todo en memoria sin escribir nunca " +"nada en el disco." #: ../Doc/whatsnew/2.6.rst:1087 +#, fuzzy msgid "" "(In Python 2.6, :class:`io.StringIO` is implemented in pure Python, so it's " "pretty slow. You should therefore stick with the existing :mod:`StringIO` " @@ -1208,8 +1732,15 @@ msgid "" "module will be rewritten into C for speed, and perhaps the C implementation " "will be backported to the 2.x releases.)" msgstr "" +"(En Python 2.6, :class:`io.StringIO` está implementado en Python puro, por " +"lo que es bastante lento. Por lo tanto, deberías seguir con el módulo :mod:" +"`StringIO` existente o con :mod:`cStringIO` por ahora. En algún momento el " +"módulo :mod:`io` de Python 3.0 será reescrito en C para aumentar la " +"velocidad, y quizás la implementación en C será retroalimentada a las " +"versiones 2.x)" #: ../Doc/whatsnew/2.6.rst:1093 +#, fuzzy msgid "" "In Python 2.6, the underlying implementations haven't been restructured to " "build on top of the :mod:`io` module's classes. The module is being " @@ -1217,23 +1748,35 @@ msgid "" "and to save developers the effort of writing their own implementations of " "buffering and text I/O." msgstr "" +"En Python 2.6, las implementaciones subyacentes no han sido reestructuradas " +"para construir sobre las clases del módulo :mod:`io`. El módulo se " +"proporciona para facilitar la escritura de código compatible con la versión " +"3.0, y para ahorrar a los desarrolladores el esfuerzo de escribir sus " +"propias implementaciones de búfer y E/S de texto." #: ../Doc/whatsnew/2.6.rst:1103 +#, fuzzy msgid ":pep:`3116` - New I/O" -msgstr "" +msgstr ":pep:`3116` - Nueva E/S" #: ../Doc/whatsnew/2.6.rst:1102 +#, fuzzy msgid "" "PEP written by Daniel Stutzbach, Mike Verdone, and Guido van Rossum. Code by " "Guido van Rossum, Georg Brandl, Walter Doerwald, Jeremy Hylton, Martin von " "Löwis, Tony Lownds, and others." msgstr "" +"PEP escrito por Daniel Stutzbach, Mike Verdone y Guido van Rossum. Código de " +"Guido van Rossum, Georg Brandl, Walter Doerwald, Jeremy Hylton, Martin von " +"Löwis, Tony Lownds y otros." #: ../Doc/whatsnew/2.6.rst:1111 +#, fuzzy msgid "PEP 3118: Revised Buffer Protocol" -msgstr "" +msgstr "PEP 3118: Protocolo revisado de la memoria intermedia" #: ../Doc/whatsnew/2.6.rst:1113 +#, fuzzy msgid "" "The buffer protocol is a C-level API that lets Python types exchange " "pointers into their internal representations. A memory-mapped file can be " @@ -1241,8 +1784,14 @@ msgid "" "such as :mod:`re` treat memory-mapped files as a string of characters to be " "searched." msgstr "" +"El protocolo de búferes es una API de nivel C que permite a los tipos de " +"Python intercambiar punteros a sus representaciones internas. Un archivo " +"mapeado en memoria puede ser visto como un buffer de caracteres, por " +"ejemplo, y esto permite que otro módulo como :mod:`re` trate los archivos " +"mapeados en memoria como una cadena de caracteres a buscar." #: ../Doc/whatsnew/2.6.rst:1119 +#, fuzzy msgid "" "The primary users of the buffer protocol are numeric-processing packages " "such as NumPy, which expose the internal representation of arrays so that " @@ -1251,8 +1800,16 @@ msgid "" "from NumPy development, adding a number of new features such as indicating " "the shape of an array or locking a memory region." msgstr "" +"Los principales usuarios del protocolo de búferes son los paquetes de " +"procesamiento numérico como NumPy, que exponen la representación interna de " +"los arrays para que los invocadores puedan escribir datos directamente en un " +"array en lugar de pasar por una API más lenta. Este PEP actualiza el " +"protocolo de búfer a la luz de la experiencia del desarrollo de NumPy, " +"añadiendo una serie de nuevas características como la indicación de la forma " +"de un array o el bloqueo de una región de memoria." #: ../Doc/whatsnew/2.6.rst:1126 +#, fuzzy msgid "" "The most important new C API function is ``PyObject_GetBuffer(PyObject *obj, " "Py_buffer *view, int flags)``, which takes an object and a set of flags, and " @@ -1262,50 +1819,79 @@ msgid "" "corresponding ``PyBuffer_Release(Py_buffer *view)`` to indicate that the " "external caller is done." msgstr "" +"La nueva función más importante de la API en C es " +"``PyObject_GetBuffer(PyObject *obj, Py_buffer *view, int flags)``, que toma " +"un objeto y un conjunto de flags, y rellena la estructura ``Py_buffer`` con " +"información sobre la representación en memoria del objeto. Los objetos " +"pueden utilizar esta operación para bloquear la memoria en su lugar mientras " +"un llamador externo podría estar modificando el contenido, por lo que hay un " +"correspondiente ``PyBuffer_Release(Py_buffer *view)`` para indicar que el " +"llamador externo ha terminado." #: ../Doc/whatsnew/2.6.rst:1138 +#, fuzzy msgid "" "The *flags* argument to :c:func:`PyObject_GetBuffer` specifies constraints " "upon the memory returned. Some examples are:" msgstr "" +"El argumento *flags* de :c:func:`PyObject_GetBuffer` especifica las " +"restricciones de la memoria devuelta. Algunos ejemplos son:" #: ../Doc/whatsnew/2.6.rst:1141 +#, fuzzy msgid ":const:`PyBUF_WRITABLE` indicates that the memory must be writable." -msgstr "" +msgstr ":const:`PyBUF_WRITABLE` indica que la memoria debe ser escribible." #: ../Doc/whatsnew/2.6.rst:1143 +#, fuzzy msgid "" ":const:`PyBUF_LOCK` requests a read-only or exclusive lock on the memory." msgstr "" +":const:`PyBUF_LOCK` solicita un bloqueo de sólo lectura o exclusivo en la " +"memoria." #: ../Doc/whatsnew/2.6.rst:1145 +#, fuzzy msgid "" ":const:`PyBUF_C_CONTIGUOUS` and :const:`PyBUF_F_CONTIGUOUS` requests a C-" "contiguous (last dimension varies the fastest) or Fortran-contiguous (first " "dimension varies the fastest) array layout." msgstr "" +":const:`PyBUF_C_CONTIGUOUS` y :const:`PyBUF_F_CONTIGUOUS` solicitan una " +"disposición de matriz contigua en C (la última dimensión varía más " +"rápidamente) o contigua en Fortran (la primera dimensión varía más " +"rápidamente)." #: ../Doc/whatsnew/2.6.rst:1149 +#, fuzzy msgid "" "Two new argument codes for :c:func:`PyArg_ParseTuple`, ``s*`` and ``z*``, " "return locked buffer objects for a parameter." msgstr "" +"Dos nuevos códigos de argumento para :c:func:`PyArg_ParseTuple`, ``s*`` y " +"``z*``, devuelven objetos buffer bloqueados para un parámetro." #: ../Doc/whatsnew/2.6.rst:1155 +#, fuzzy msgid ":pep:`3118` - Revising the buffer protocol" -msgstr "" +msgstr ":pep:`3118` - Revisión del protocolo del buffer" #: ../Doc/whatsnew/2.6.rst:1155 +#, fuzzy msgid "" "PEP written by Travis Oliphant and Carl Banks; implemented by Travis " "Oliphant." msgstr "" +"PEP escrito por Travis Oliphant y Carl Banks; implementado por Travis " +"Oliphant." #: ../Doc/whatsnew/2.6.rst:1164 +#, fuzzy msgid "PEP 3119: Abstract Base Classes" -msgstr "" +msgstr "PEP 3119: Clases base abstractas" #: ../Doc/whatsnew/2.6.rst:1166 +#, fuzzy msgid "" "Some object-oriented languages such as Java support interfaces, declaring " "that a class has a given set of methods or supports a given access " @@ -1316,8 +1902,18 @@ msgid "" "basic ABCs that the Python developers think will be widely useful. Future " "versions of Python will probably add more ABCs." msgstr "" +"Algunos lenguajes orientados a objetos, como Java, admiten interfaces, que " +"declaran que una clase tiene un determinado conjunto de métodos o admite un " +"determinado protocolo de acceso. Las clases base abstractas (o ABC) son una " +"característica equivalente para Python. El soporte de ABC consiste en un " +"módulo :mod:`abc` que contiene una metaclase llamada :class:`ABCMeta`, un " +"manejo especial de esta metaclase por parte de los builtins :func:" +"`isinstance` y :func:`issubclass`, y una colección de ABCs básicas que los " +"desarrolladores de Python creen que serán ampliamente útiles. Las futuras " +"versiones de Python probablemente añadirán más ABCs." #: ../Doc/whatsnew/2.6.rst:1176 +#, fuzzy msgid "" "Let's say you have a particular class and wish to know whether it supports " "dictionary-style access. The phrase \"dictionary-style\" is vague, however. " @@ -1327,8 +1923,17 @@ msgid "" "the iterative variants such as :meth:`iterkeys`? :meth:`copy` and :meth:" "`update`? Iterating over the object with :func:`iter`?" msgstr "" +"Supongamos que tiene una clase concreta y desea saber si admite el acceso " +"tipo diccionario. Sin embargo, la frase \"estilo diccionario\" es vaga. " +"Probablemente significa que el acceso a los elementos con ``obj[1]`` " +"funciona. ¿Implica que el establecimiento de elementos con ``obj[2] = " +"valor`` funciona? ¿O que el objeto tendrá métodos :meth:`keys`, :meth:" +"`values` y :meth:`items`? ¿Qué pasa con las variantes iterativas como :meth:" +"`iterkeys`? :meth:`copy` y :meth:`update`? ¿Iterar sobre el objeto con :" +"func:`iter`?" #: ../Doc/whatsnew/2.6.rst:1184 +#, fuzzy msgid "" "The Python 2.6 :mod:`collections` module includes a number of different ABCs " "that represent these distinctions. :class:`Iterable` indicates that a class " @@ -1338,21 +1943,35 @@ msgid "" "`keys`, :meth:`values`, and :meth:`items`, is defined by the :class:" "`MutableMapping` ABC." msgstr "" +"El módulo :mod:`collections` de Python 2.6 incluye un número de ABCs " +"diferentes que representan estas distinciones. :class:`Iterable` indica que " +"una clase define :meth:`__iter__`, y :class:`Container` significa que la " +"clase define un método :meth:`__contains__` y por lo tanto soporta " +"expresiones ``x in y``. La interfaz básica del diccionario para obtener " +"elementos, establecer elementos, y :meth:`llaves`, :meth:`valores`, y :meth:" +"`elementos`, está definida por el :class:`MutableMapping` ABC." #: ../Doc/whatsnew/2.6.rst:1193 +#, fuzzy msgid "" "You can derive your own classes from a particular ABC to indicate they " "support that ABC's interface::" msgstr "" +"Puedes derivar tus propias clases de un ABC particular para indicar que " +"soportan la interfaz de ese ABC::" #: ../Doc/whatsnew/2.6.rst:1202 +#, fuzzy msgid "" "Alternatively, you could write the class without deriving from the desired " "ABC and instead register the class by calling the ABC's :meth:`register` " "method::" msgstr "" +"Alternativamente, puede escribir la clase sin derivar del ABC deseado y en " +"su lugar registrar la clase llamando al método :meth:`register` del ABC::" #: ../Doc/whatsnew/2.6.rst:1213 +#, fuzzy msgid "" "For classes that you write, deriving from the ABC is probably clearer. The :" "meth:`register` method is useful when you've written a new ABC that can " @@ -1360,21 +1979,34 @@ msgid "" "third-party class implements an ABC. For example, if you defined a :class:" "`PrintableType` ABC, it's legal to do::" msgstr "" +"Para las clases que usted escribe, derivar del ABC es probablemente más " +"claro. El método :meth:`register` es útil cuando has escrito un nuevo ABC " +"que puede describir un tipo o clase existente, o si quieres declarar que " +"alguna clase de terceros implementa un ABC. Por ejemplo, si has definido un :" +"class:`PrintableType` ABC, es legal hacer::" #: ../Doc/whatsnew/2.6.rst:1225 +#, fuzzy msgid "" "Classes should obey the semantics specified by an ABC, but Python can't " "check this; it's up to the class author to understand the ABC's requirements " "and to implement the code accordingly." msgstr "" +"Las clases deben obedecer la semántica especificada por un ABC, pero Python " +"no puede comprobarlo; depende del autor de la clase entender los requisitos " +"del ABC e implementar el código en consecuencia." #: ../Doc/whatsnew/2.6.rst:1229 +#, fuzzy msgid "" "To check whether an object supports a particular interface, you can now " "write::" msgstr "" +"Para comprobar si un objeto es compatible con una determinada interfaz, " +"ahora se puede escribir::" #: ../Doc/whatsnew/2.6.rst:1236 +#, fuzzy msgid "" "Don't feel that you must now begin writing lots of checks as in the above " "example. Python has a strong tradition of duck-typing, where explicit type-" @@ -1383,14 +2015,24 @@ msgid "" "Be judicious in checking for ABCs and only do it where it's absolutely " "necessary." msgstr "" +"No sientas que ahora debes empezar a escribir muchas comprobaciones como en " +"el ejemplo anterior. Python tiene una fuerte tradición de \"duck-typing\", " +"donde la comprobación explícita de tipos nunca se hace y el código " +"simplemente llama a los métodos de un objeto, confiando en que esos métodos " +"estarán ahí y lanzando una excepción si no lo están. Sea juicioso al " +"comprobar el ABC y hágalo sólo cuando sea absolutamente necesario." #: ../Doc/whatsnew/2.6.rst:1243 +#, fuzzy msgid "" "You can write your own ABCs by using ``abc.ABCMeta`` as the metaclass in a " "class definition::" msgstr "" +"Puedes escribir tu propio ABC utilizando ``abc.ABCMeta`` como metaclase en " +"una definición de clase::" #: ../Doc/whatsnew/2.6.rst:1264 +#, fuzzy msgid "" "In the :class:`Drawable` ABC above, the :meth:`draw_doubled` method renders " "the object at twice its size and can be implemented in terms of other " @@ -1399,8 +2041,16 @@ msgid "" "`draw_doubled`, though they can do so. An implementation of :meth:`draw` is " "necessary, though; the ABC can't provide a useful generic implementation." msgstr "" +"En el ABC de :class:`Drawable` anterior, el método :meth:`draw_doubled` " +"renderiza el objeto al doble de su tamaño y puede ser implementado en " +"términos de otros métodos descritos en :class:`Drawable`. Las clases que " +"implementan este ABC no necesitan proporcionar su propia implementación de :" +"meth:`draw_doubled`, aunque pueden hacerlo. Sin embargo, es necesaria una " +"implementación de :meth:`draw`; el ABC no puede proporcionar una " +"implementación genérica útil." #: ../Doc/whatsnew/2.6.rst:1272 +#, fuzzy msgid "" "You can apply the ``@abstractmethod`` decorator to methods such as :meth:" "`draw` that must be implemented; Python will then raise an exception for " @@ -1408,108 +2058,157 @@ msgid "" "when you actually try to create an instance of a subclass lacking the " "method::" msgstr "" +"Puedes aplicar el decorador ``@abstractmethod`` a métodos como :meth:`draw` " +"que deben ser implementados; Python lanzará una excepción para las clases " +"que no definan el método. Ten en cuenta que la excepción sólo se produce " +"cuando intentas crear una instancia de una subclase que carece del método::" #: ../Doc/whatsnew/2.6.rst:1287 +#, fuzzy msgid "" "Abstract data attributes can be declared using the ``@abstractproperty`` " "decorator::" msgstr "" +"Los atributos de datos abstractos pueden declararse utilizando el decorador " +"``@abstractproperty``::" #: ../Doc/whatsnew/2.6.rst:1297 +#, fuzzy msgid "Subclasses must then define a :meth:`readonly` property." -msgstr "" +msgstr "Las subclases deben definir una propiedad :meth:`readonly`." #: ../Doc/whatsnew/2.6.rst:1303 +#, fuzzy msgid ":pep:`3119` - Introducing Abstract Base Classes" -msgstr "" +msgstr ":pep:`3119` - Presentación de las clases base abstractas" #: ../Doc/whatsnew/2.6.rst:1302 +#, fuzzy msgid "" "PEP written by Guido van Rossum and Talin. Implemented by Guido van Rossum. " "Backported to 2.6 by Benjamin Aranguren, with Alex Martelli." msgstr "" +"PEP escrito por Guido van Rossum y Talin. Implementado por Guido van Rossum. " +"Adaptado a la versión 2.6 por Benjamin Aranguren, con Alex Martelli." #: ../Doc/whatsnew/2.6.rst:1311 +#, fuzzy msgid "PEP 3127: Integer Literal Support and Syntax" -msgstr "" +msgstr "PEP 3127: Soporte y sintaxis de literales enteros" #: ../Doc/whatsnew/2.6.rst:1313 +#, fuzzy msgid "" "Python 3.0 changes the syntax for octal (base-8) integer literals, prefixing " "them with \"0o\" or \"0O\" instead of a leading zero, and adds support for " "binary (base-2) integer literals, signalled by a \"0b\" or \"0B\" prefix." msgstr "" +"Python 3.0 cambia la sintaxis de los literales enteros octales (base-8), " +"prefijándolos con \"0o\" o \"0O\" en lugar de un cero inicial, y añade " +"soporte para los literales enteros binarios (base-2), señalados con un " +"prefijo \"0b\" o \"0B\"." #: ../Doc/whatsnew/2.6.rst:1318 +#, fuzzy msgid "" "Python 2.6 doesn't drop support for a leading 0 signalling an octal number, " "but it does add support for \"0o\" and \"0b\"::" msgstr "" +"Python 2.6 no elimina el soporte para el 0 inicial que señala un número " +"octal, pero sí añade soporte para \"0o\" y \"0b\"::" #: ../Doc/whatsnew/2.6.rst:1326 +#, fuzzy msgid "" "The :func:`oct` builtin still returns numbers prefixed with a leading zero, " "and a new :func:`bin` builtin returns the binary representation for a " "number::" msgstr "" +"La función :func:`oct` sigue devolviendo números prefijados con un cero a la " +"izquierda, y la nueva función :func:`bin` devuelve la representación binaria " +"de un número::" #: ../Doc/whatsnew/2.6.rst:1337 +#, fuzzy msgid "" "The :func:`int` and :func:`long` builtins will now accept the \"0o\" and \"0b" "\" prefixes when base-8 or base-2 are requested, or when the *base* argument " "is zero (signalling that the base used should be determined from the " "string)::" msgstr "" +"Las funciones built-in :func:`int` y :func:`long` aceptarán ahora los " +"prefijos \"0o\" y \"0b\" cuando se solicite base-8 o base-2, o cuando el " +"argumento *base* sea cero (indicando que la base utilizada debe determinarse " +"a partir de la cadena)::" #: ../Doc/whatsnew/2.6.rst:1355 +#, fuzzy msgid ":pep:`3127` - Integer Literal Support and Syntax" -msgstr "" +msgstr ":pep:`3127` - Soporte y sintaxis de literales enteros" #: ../Doc/whatsnew/2.6.rst:1355 +#, fuzzy msgid "PEP written by Patrick Maupin; backported to 2.6 by Eric Smith." -msgstr "" +msgstr "PEP escrito por Patrick Maupin; retroalimentado a 2.6 por Eric Smith." #: ../Doc/whatsnew/2.6.rst:1363 +#, fuzzy msgid "PEP 3129: Class Decorators" -msgstr "" +msgstr "PEP 3129: Decoradores de clase" #: ../Doc/whatsnew/2.6.rst:1365 +#, fuzzy msgid "" "Decorators have been extended from functions to classes. It's now legal to " "write::" msgstr "" +"Los decoradores se han ampliado de funciones a clases. Ahora es legal " +"escribir::" #: ../Doc/whatsnew/2.6.rst:1373 +#, fuzzy msgid "This is equivalent to::" -msgstr "" +msgstr "Esto equivale a::" #: ../Doc/whatsnew/2.6.rst:1382 +#, fuzzy msgid ":pep:`3129` - Class Decorators" -msgstr "" +msgstr ":pep:`3129` - Decoradores de clase" #: ../Doc/whatsnew/2.6.rst:1383 +#, fuzzy msgid "PEP written by Collin Winter." -msgstr "" +msgstr "PEP escrito por Collin Winter." #: ../Doc/whatsnew/2.6.rst:1390 +#, fuzzy msgid "PEP 3141: A Type Hierarchy for Numbers" -msgstr "" +msgstr "PEP 3141: Una jerarquía de tipos para los números" #: ../Doc/whatsnew/2.6.rst:1392 +#, fuzzy msgid "" "Python 3.0 adds several abstract base classes for numeric types inspired by " "Scheme's numeric tower. These classes were backported to 2.6 as the :mod:" "`numbers` module." msgstr "" +"Python 3.0 añade varias clases base abstractas para tipos numéricos " +"inspiradas en la torre numérica de Scheme. Estas clases fueron retrocedidas " +"a la versión 2.6 como el módulo :mod:`numbers`." #: ../Doc/whatsnew/2.6.rst:1396 +#, fuzzy msgid "" "The most general ABC is :class:`Number`. It defines no operations at all, " "and only exists to allow checking if an object is a number by doing " "``isinstance(obj, Number)``." msgstr "" +"El ABC más general es :class:`Number`. No define ninguna operación, y sólo " +"existe para permitir comprobar si un objeto es un número haciendo " +"``isinstance(obj, Number)``." #: ../Doc/whatsnew/2.6.rst:1400 +#, fuzzy msgid "" ":class:`Complex` is a subclass of :class:`Number`. Complex numbers can " "undergo the basic operations of addition, subtraction, multiplication, " @@ -1517,15 +2216,25 @@ msgid "" "parts and obtain a number's conjugate. Python's built-in complex type is an " "implementation of :class:`Complex`." msgstr "" +":class:`Complex` es una subclase de :class:`Number`. Los números complejos " +"pueden someterse a las operaciones básicas de suma, resta, multiplicación, " +"división y exponenciación, y se pueden recuperar las partes real e " +"imaginaria y obtener el conjugado de un número. El tipo complejo " +"incorporado en Python es una implementación de :class:`Complex`." #: ../Doc/whatsnew/2.6.rst:1406 +#, fuzzy msgid "" ":class:`Real` further derives from :class:`Complex`, and adds operations " "that only work on real numbers: :func:`floor`, :func:`trunc`, rounding, " "taking the remainder mod N, floor division, and comparisons." msgstr "" +":class:`Real` deriva a su vez de :class:`Complex`, y añade operaciones que " +"sólo funcionan con números reales: :func:`floor`, :func:`trunc`, redondeo, " +"toma del resto mod N, división por defecto y comparaciones." #: ../Doc/whatsnew/2.6.rst:1411 +#, fuzzy msgid "" ":class:`Rational` numbers derive from :class:`Real`, have :attr:`numerator` " "and :attr:`denominator` properties, and can be converted to floats. Python " @@ -1533,16 +2242,28 @@ msgid "" "`fractions` module. (It's called :class:`Fraction` instead of :class:" "`Rational` to avoid a name clash with :class:`numbers.Rational`.)" msgstr "" +"Los números :class:`Rational` derivan de :class:`Real`, tienen las " +"propiedades :attr:`numerator` y :attr:`denominator`, y se pueden convertir " +"en flotantes. Python 2.6 añade una clase simple de números racionales, :" +"class:`Fraction`, en el módulo :mod:`fractions`. (Se llama :class:" +"`Fraction` en lugar de :class:`Rational` para evitar un choque de nombres " +"con :class:`numbers.Rational`)" #: ../Doc/whatsnew/2.6.rst:1418 +#, fuzzy msgid "" ":class:`Integral` numbers derive from :class:`Rational`, and can be shifted " "left and right with ``<<`` and ``>>``, combined using bitwise operations " "such as ``&`` and ``|``, and can be used as array indexes and slice " "boundaries." msgstr "" +"Los números de :class:`Integral` derivan de :class:`Rational`, y pueden " +"desplazarse a la izquierda y a la derecha con ``<`` y ``>```, combinarse " +"utilizando operaciones de bits como ``&`` y ``|``, y pueden utilizarse como " +"índices de matrices y límites de cortes." #: ../Doc/whatsnew/2.6.rst:1423 +#, fuzzy msgid "" "In Python 3.0, the PEP slightly redefines the existing builtins :func:" "`round`, :func:`math.floor`, :func:`math.ceil`, and adds a new one, :func:" @@ -1550,75 +2271,117 @@ msgid "" "rounds toward zero, returning the closest :class:`Integral` that's between " "the function's argument and zero." msgstr "" +"En Python 3.0, el PEP redefine ligeramente las funciones integradas " +"existentes :func:`round`, :func:`math.floor`, :func:`math.ceil`, y añade uno " +"nuevo, :func:`math.trunc`, que ha sido retrocedido a Python 2.6. :func:`math." +"trunc` redondea hacia cero, devolviendo el :class:`Integral` más cercano que " +"esté entre el argumento de la función y cero." #: ../Doc/whatsnew/2.6.rst:1432 +#, fuzzy msgid ":pep:`3141` - A Type Hierarchy for Numbers" -msgstr "" +msgstr ":pep:`3141` - Una jerarquía de tipos para los números" #: ../Doc/whatsnew/2.6.rst:1432 +#, fuzzy msgid "PEP written by Jeffrey Yasskin." -msgstr "" +msgstr "PEP escrito por Jeffrey Yasskin." #: ../Doc/whatsnew/2.6.rst:1434 +#, fuzzy msgid "" "`Scheme's numerical tower `__, from the Guile manual." msgstr "" +"`Torre numérica del esquema `__, del manual de Guile." #: ../Doc/whatsnew/2.6.rst:1436 +#, fuzzy msgid "" "`Scheme's number datatypes `__ from the R5RS Scheme specification." msgstr "" +"`Scheme's number datatypes `__ de la especificación R5RS Scheme." #: ../Doc/whatsnew/2.6.rst:1440 +#, fuzzy msgid "The :mod:`fractions` Module" -msgstr "" +msgstr "El módulo :mod:`fractions`" #: ../Doc/whatsnew/2.6.rst:1442 +#, fuzzy msgid "" "To fill out the hierarchy of numeric types, the :mod:`fractions` module " "provides a rational-number class. Rational numbers store their values as a " "numerator and denominator forming a fraction, and can exactly represent " "numbers such as ``2/3`` that floating-point numbers can only approximate." msgstr "" +"Para completar la jerarquía de tipos numéricos, el módulo :mod:`fractions` " +"proporciona una clase de números racionales. Los números racionales " +"almacenan sus valores como un numerador y un denominador que forman una " +"fracción, y pueden representar exactamente números como ``2/3`` que los " +"números de punto flotante sólo pueden aproximar." #: ../Doc/whatsnew/2.6.rst:1448 +#, fuzzy msgid "" "The :class:`Fraction` constructor takes two :class:`Integral` values that " "will be the numerator and denominator of the resulting fraction. ::" msgstr "" +"El constructor :class:`Fraction` toma dos valores :class:`Integral` que " +"serán el numerador y el denominador de la fracción resultante. ::" #: ../Doc/whatsnew/2.6.rst:1461 +#, fuzzy msgid "" "For converting floating-point numbers to rationals, the float type now has " "an :meth:`as_integer_ratio()` method that returns the numerator and " "denominator for a fraction that evaluates to the same floating-point value::" msgstr "" +"Para convertir números de punto flotante en racionales, el tipo float tiene " +"ahora un método :meth:`as_integer_ratio()` que devuelve el numerador y el " +"denominador de una fracción que se evalúa al mismo valor de punto flotante::" #: ../Doc/whatsnew/2.6.rst:1473 +#, fuzzy msgid "" "Note that values that can only be approximated by floating-point numbers, " "such as 1./3, are not simplified to the number being approximated; the " "fraction attempts to match the floating-point value **exactly**." msgstr "" +"Tenga en cuenta que los valores que sólo pueden ser aproximados por números " +"de punto flotante, como 1,/3, no se simplifican al número que se está " +"aproximando; la fracción intenta coincidir con el valor de punto flotante " +"**exactamente**." #: ../Doc/whatsnew/2.6.rst:1478 +#, fuzzy msgid "" "The :mod:`fractions` module is based upon an implementation by Sjoerd " "Mullender that was in Python's :file:`Demo/classes/` directory for a long " "time. This implementation was significantly updated by Jeffrey Yasskin." msgstr "" +"El módulo :mod:`fractions` se basa en una implementación de Sjoerd Mullender " +"que estuvo en el directorio :file:`Demo/classes/` de Python durante mucho " +"tiempo. Esta implementación fue significativamente actualizada por Jeffrey " +"Yasskin." #: ../Doc/whatsnew/2.6.rst:1485 +#, fuzzy msgid "Other Language Changes" -msgstr "" +msgstr "Otros cambios lingüísticos" #: ../Doc/whatsnew/2.6.rst:1487 +#, fuzzy msgid "Some smaller changes made to the core Python language are:" msgstr "" +"Algunos de los cambios más pequeños realizados en el núcleo del lenguaje " +"Python son:" #: ../Doc/whatsnew/2.6.rst:1489 +#, fuzzy msgid "" "Directories and zip archives containing a :file:`__main__.py` file can now " "be executed directly by passing their name to the interpreter. The directory " @@ -1626,8 +2389,14 @@ msgid "" "(Suggestion and initial patch by Andy Chu, subsequently revised by Phillip " "J. Eby and Nick Coghlan; :issue:`1739468`.)" msgstr "" +"Los directorios y archivos zip que contengan un archivo :file:`__main__.py` " +"pueden ahora ejecutarse directamente pasando su nombre al intérprete. El " +"directorio o archivo zip se inserta automáticamente como la primera entrada " +"en sys.path. (Sugerencia y parche inicial de Andy Chu, revisado " +"posteriormente por Phillip J. Eby y Nick Coghlan; :issue:`1739468`)" #: ../Doc/whatsnew/2.6.rst:1496 +#, fuzzy msgid "" "The :func:`hasattr` function was catching and ignoring all errors, under the " "assumption that they meant a :meth:`__getattr__` method was failing somehow " @@ -1637,77 +2406,121 @@ msgid "" "when :func:`hasattr` encounters them. (Fixed by Benjamin Peterson; :issue:" "`2196`.)" msgstr "" +"La función :func:`hasattr` estaba capturando e ignorando todos los errores, " +"bajo la suposición de que significaban que un método :meth:`__getattr__` " +"estaba fallando de alguna manera y que el valor de retorno de :func:" +"`hasattr` sería por tanto ``False``. Esta lógica no debería aplicarse a :" +"exc:`KeyboardInterrupt` y :exc:`SystemExit`, sin embargo; Python 2.6 ya no " +"descartará tales excepciones cuando :func:`hasattr` las encuentre. " +"(Corregido por Benjamin Peterson; :issue:`2196`.)" #: ../Doc/whatsnew/2.6.rst:1504 +#, fuzzy msgid "" "When calling a function using the ``**`` syntax to provide keyword " "arguments, you are no longer required to use a Python dictionary; any " "mapping will now work::" msgstr "" +"Cuando se llama a una función utilizando la sintaxis ``**`` para " +"proporcionar argumentos de palabras clave, ya no es necesario utilizar un " +"diccionario de Python; ahora funcionará cualquier asignación::" #: ../Doc/whatsnew/2.6.rst:1517 +#, fuzzy msgid "(Contributed by Alexander Belopolsky; :issue:`1686487`.)" -msgstr "" +msgstr "(Contribución de Alexander Belopolsky; :issue:`1686487`.)" #: ../Doc/whatsnew/2.6.rst:1519 +#, fuzzy msgid "" "It's also become legal to provide keyword arguments after a ``*args`` " "argument to a function call. ::" msgstr "" +"También se ha convertido en legal proporcionar argumentos de palabras clave " +"después de un argumento ``*args`` a una llamada de función. ::" #: ../Doc/whatsnew/2.6.rst:1528 +#, fuzzy msgid "" "Previously this would have been a syntax error. (Contributed by Amaury " "Forgeot d'Arc; :issue:`3473`.)" msgstr "" +"Anteriormente, esto habría sido un error de sintaxis. (Contribución de " +"Amaury Forgeot d'Arc; :issue:`3473`.)" #: ../Doc/whatsnew/2.6.rst:1531 +#, fuzzy msgid "" "A new builtin, ``next(iterator, [default])`` returns the next item from the " "specified iterator. If the *default* argument is supplied, it will be " "returned if *iterator* has been exhausted; otherwise, the :exc:" "`StopIteration` exception will be raised. (Backported in :issue:`2719`.)" msgstr "" +"Un nuevo builtin, ``next(iterator, [default])`` devuelve el siguiente " +"elemento del iterador especificado. Si se suministra el argumento " +"*default*, se devolverá si *iterador* se ha agotado; en caso contrario, se " +"lanzará la excepción :exc:`StopIteration`. (Se ha modificado en :issue:" +"`2719`.)" #: ../Doc/whatsnew/2.6.rst:1537 +#, fuzzy msgid "" "Tuples now have :meth:`index` and :meth:`count` methods matching the list " "type's :meth:`index` and :meth:`count` methods::" msgstr "" +"Las tuplas tienen ahora métodos :meth:`index` y :meth:`count` que coinciden " +"con los métodos :meth:`index` y :meth:`count` del tipo lista::" #: ../Doc/whatsnew/2.6.rst:1546 +#, fuzzy msgid "(Contributed by Raymond Hettinger)" -msgstr "" +msgstr "(Contribución de Raymond Hettinger)" #: ../Doc/whatsnew/2.6.rst:1548 +#, fuzzy msgid "" "The built-in types now have improved support for extended slicing syntax, " "accepting various combinations of ``(start, stop, step)``. Previously, the " "support was partial and certain corner cases wouldn't work. (Implemented by " "Thomas Wouters.)" msgstr "" +"Los tipos incorporados tienen ahora un soporte mejorado para la sintaxis de " +"corte extendida, aceptando varias combinaciones de ``(inicio, parada, " +"paso)``. Anteriormente, el soporte era parcial y algunos casos de esquina no " +"funcionaban. (Implementado por Thomas Wouters)" #: ../Doc/whatsnew/2.6.rst:1555 +#, fuzzy msgid "" "Properties now have three attributes, :attr:`getter`, :attr:`setter` and :" "attr:`deleter`, that are decorators providing useful shortcuts for adding a " "getter, setter or deleter function to an existing property. You would use " "them like this::" msgstr "" +"Las propiedades tienen ahora tres atributos, :attr:`getter`, :attr:`setter` " +"y :attr:`deleter`, que son decoradores que proporcionan atajos útiles para " +"añadir una función getter, setter o deleter a una propiedad existente. Los " +"usarás así::" #: ../Doc/whatsnew/2.6.rst:1582 +#, fuzzy msgid "" "Several methods of the built-in set types now accept multiple iterables: :" "meth:`intersection`, :meth:`intersection_update`, :meth:`union`, :meth:" "`update`, :meth:`difference` and :meth:`difference_update`." msgstr "" +"Varios métodos de los tipos de conjuntos incorporados aceptan ahora " +"múltiples iterables: :meth:`intersection`, :meth:`intersection_update`, :" +"meth:`union`, :meth:`update`, :meth:`difference` y :meth:`difference_update`." #: ../Doc/whatsnew/2.6.rst:1596 ../Doc/whatsnew/2.6.rst:1880 #: ../Doc/whatsnew/2.6.rst:1901 +#, fuzzy msgid "(Contributed by Raymond Hettinger.)" -msgstr "" +msgstr "(Contribución de Raymond Hettinger.)" #: ../Doc/whatsnew/2.6.rst:1598 +#, fuzzy msgid "" "Many floating-point features were added. The :func:`float` function will " "now turn the string ``nan`` into an IEEE 754 Not A Number value, and ``" @@ -1715,15 +2528,25 @@ msgid "" "platform with IEEE 754 semantics. (Contributed by Christian Heimes; :issue:" "`1635`.)" msgstr "" +"Se han añadido muchas funciones de punto flotante. La función :func:`float` " +"ahora convertirá la cadena ``nan`` en un valor IEEE 754 Not A Number, y ``" +"+inf`` y ``-inf`` en infinito positivo o negativo. Esto funciona en " +"cualquier plataforma con semántica IEEE 754. (Contribución de Christian " +"Heimes; :issue:`1635`.)" #: ../Doc/whatsnew/2.6.rst:1604 +#, fuzzy msgid "" "Other functions in the :mod:`math` module, :func:`isinf` and :func:`isnan`, " "return true if their floating-point argument is infinite or Not A Number. (:" "issue:`1640`)" msgstr "" +"Otras funciones del módulo :mod:`math`, :func:`isinf` y :func:`isnan`, " +"devuelven true si su argumento en coma flotante es infinito o No es un " +"número. (:issue:`1640`)" #: ../Doc/whatsnew/2.6.rst:1608 +#, fuzzy msgid "" "Conversion functions were added to convert floating-point numbers into " "hexadecimal strings (:issue:`3008`). These functions convert floats to and " @@ -1732,24 +2555,42 @@ msgid "" "that returns a string representation, and the ``float.fromhex()`` method " "converts a string back into a number::" msgstr "" +"Se han añadido funciones de conversión para convertir números de punto " +"flotante en cadenas hexadecimales (:issue:`3008`). Estas funciones " +"convierten los números flotantes a y desde una representación de cadena sin " +"introducir errores de redondeo por la conversión entre decimal y binario. " +"Los flotadores tienen un método :meth:`hex` que devuelve una representación " +"de cadena, y el método ``float.fromhex()`` convierte una cadena de nuevo en " +"un número::" #: ../Doc/whatsnew/2.6.rst:1625 +#, fuzzy msgid "" "A numerical nicety: when creating a complex number from two floats on " "systems that support signed zeros (-0 and +0), the :func:`complex` " "constructor will now preserve the sign of the zero. (Fixed by Mark T. " "Dickinson; :issue:`1507`.)" msgstr "" +"Un detalle numérico: cuando se crea un número complejo a partir de dos " +"flotantes en sistemas que admiten ceros con signo (-0 y +0), el constructor :" +"func:`complex` conserva ahora el signo del cero. (Corregido por Mark T. " +"Dickinson; :issue:`1507`.)" #: ../Doc/whatsnew/2.6.rst:1630 +#, fuzzy msgid "" "Classes that inherit a :meth:`__hash__` method from a parent class can set " "``__hash__ = None`` to indicate that the class isn't hashable. This will " "make ``hash(obj)`` raise a :exc:`TypeError` and the class will not be " "indicated as implementing the :class:`Hashable` ABC." msgstr "" +"Las clases que heredan un método :meth:`__hash__` de una clase padre pueden " +"establecer ``__hash__ = None`` para indicar que la clase no es hashable. " +"Esto hará que ``hash(obj)`` lance un :exc:`TypeError` y la clase no será " +"indicada como implementando el ABC de :class:`Hashable`." #: ../Doc/whatsnew/2.6.rst:1636 +#, fuzzy msgid "" "You should do this when you've defined a :meth:`__cmp__` or :meth:`__eq__` " "method that compares objects by their value rather than by identity. All " @@ -1760,37 +2601,64 @@ msgid "" "`PyObject_HashNotImplemented`. (Fixed by Nick Coghlan and Amaury Forgeot " "d'Arc; :issue:`2235`.)" msgstr "" +"Debes hacer esto cuando hayas definido un método :meth:`__cmp__` o :meth:" +"`__eq__` que compare objetos por su valor en lugar de por su identidad. " +"Todos los objetos tienen un método hash por defecto que utiliza ``id(obj)`` " +"como valor hash. No hay una forma ordenada de eliminar el método :meth:" +"`__hash__` heredado de una clase padre, por lo que la asignación de ``None`` " +"fue implementada como una sobreescritura. A nivel de C, las extensiones " +"pueden establecer ``tp_hash`` a :c:func:`PyObject_HashNotImplemented`. " +"(Corregido por Nick Coghlan y Amaury Forgeot d'Arc; :issue:`2235`.)" #: ../Doc/whatsnew/2.6.rst:1646 +#, fuzzy msgid "" "The :exc:`GeneratorExit` exception now subclasses :exc:`BaseException` " "instead of :exc:`Exception`. This means that an exception handler that does " "``except Exception:`` will not inadvertently catch :exc:`GeneratorExit`. " "(Contributed by Chad Austin; :issue:`1537`.)" msgstr "" +"La excepción :exc:`GeneratorExit` ahora subclasa :exc:`BaseException` en " +"lugar de :exc:`Exception`. Esto significa que un manejador de excepciones " +"que haga ``except Exception:`` no atrapará inadvertidamente :exc:" +"`GeneratorExit`. (Contribuido por Chad Austin; :issue:`1537`.)" #: ../Doc/whatsnew/2.6.rst:1652 +#, fuzzy msgid "" "Generator objects now have a :attr:`gi_code` attribute that refers to the " "original code object backing the generator. (Contributed by Collin Winter; :" "issue:`1473257`.)" msgstr "" +"Los objetos generadores tienen ahora un atributo :attr:`gi_code` que hace " +"referencia al objeto de código original que respalda al generador. " +"(Contribución de Collin Winter; :issue:`1473257`.)" #: ../Doc/whatsnew/2.6.rst:1656 +#, fuzzy msgid "" "The :func:`compile` built-in function now accepts keyword arguments as well " "as positional parameters. (Contributed by Thomas Wouters; :issue:`1444529`.)" msgstr "" +"La función incorporada :func:`compile` ahora acepta argumentos de palabras " +"clave así como parámetros posicionales. (Contribución de Thomas Wouters; :" +"issue:`1444529`.)" #: ../Doc/whatsnew/2.6.rst:1660 +#, fuzzy msgid "" "The :func:`complex` constructor now accepts strings containing parenthesized " "complex numbers, meaning that ``complex(repr(cplx))`` will now round-trip " "values. For example, ``complex('(3+4j)')`` now returns the value (3+4j). (:" "issue:`1491866`)" msgstr "" +"El constructor :func:`complex` ahora acepta cadenas que contengan números " +"complejos entre paréntesis, lo que significa que ``complex(repr(cplx))`` " +"ahora redondeará los valores. Por ejemplo, ``complex('(3+4j)')`` ahora " +"devuelve el valor (3+4j). (:issue:`1491866`)" #: ../Doc/whatsnew/2.6.rst:1665 +#, fuzzy msgid "" "The string :meth:`translate` method now accepts ``None`` as the translation " "table parameter, which is treated as the identity transformation. This " @@ -1798,8 +2666,14 @@ msgid "" "(Contributed by Bengt Richter and implemented by Raymond Hettinger; :issue:" "`1193128`.)" msgstr "" +"El método string :meth:`translate` acepta ahora ``None`` como parámetro de " +"la tabla de traducción, que se trata como la transformación de identidad. " +"Esto facilita la realización de operaciones que sólo eliminan caracteres. " +"(Contribuido por Bengt Richter e implementado por Raymond Hettinger; :issue:" +"`1193128`)" #: ../Doc/whatsnew/2.6.rst:1671 +#, fuzzy msgid "" "The built-in :func:`dir` function now checks for a :meth:`__dir__` method on " "the objects it receives. This method must return a list of strings " @@ -1808,36 +2682,61 @@ msgid "" "`__getattr__` or :meth:`__getattribute__` methods can use this to advertise " "pseudo-attributes they will honor. (:issue:`1591665`)" msgstr "" +"La función incorporada :func:`dir` ahora comprueba si existe un método :meth:" +"`__dir__` en los objetos que recibe. Este método debe devolver una lista de " +"cadenas que contengan los nombres de los atributos válidos para el objeto, y " +"permite al objeto controlar el valor que :func:`dir` produce. Los objetos " +"que tienen métodos :meth:`__getattr__` o :meth:`__getattribute__` pueden " +"usar esto para anunciar los pseudo-atributos que respetarán. (:issue:" +"`1591665`)" #: ../Doc/whatsnew/2.6.rst:1679 +#, fuzzy msgid "" "Instance method objects have new attributes for the object and function " "comprising the method; the new synonym for :attr:`im_self` is :attr:" "`__self__`, and :attr:`im_func` is also available as :attr:`__func__`. The " "old names are still supported in Python 2.6, but are gone in 3.0." msgstr "" +"Los objetos de método de instancia tienen nuevos atributos para el objeto y " +"la función que comprende el método; el nuevo sinónimo de :attr:`im_self` es :" +"attr:`__self__`, y :attr:`im_func` también está disponible como :attr:" +"`__func__`. Los nombres antiguos todavía se soportan en Python 2.6, pero han " +"desaparecido en la 3.0." #: ../Doc/whatsnew/2.6.rst:1684 +#, fuzzy msgid "" "An obscure change: when you use the :func:`locals` function inside a :" "keyword:`class` statement, the resulting dictionary no longer returns free " "variables. (Free variables, in this case, are variables referenced in the :" "keyword:`!class` statement that aren't attributes of the class.)" msgstr "" +"Un cambio oscuro: cuando se utiliza la función :func:`locals` dentro de una " +"sentencia :keyword:`class`, el diccionario resultante ya no devuelve " +"variables libres. (Las variables libres, en este caso, son variables " +"referenciadas en la sentencia :keyword:`!class` que no son atributos de la " +"clase)" #: ../Doc/whatsnew/2.6.rst:1693 msgid "Optimizations" -msgstr "" +msgstr "Optimizaciones" #: ../Doc/whatsnew/2.6.rst:1695 +#, fuzzy msgid "" "The :mod:`warnings` module has been rewritten in C. This makes it possible " "to invoke warnings from the parser, and may also make the interpreter's " "startup faster. (Contributed by Neal Norwitz and Brett Cannon; :issue:" "`1631171`.)" msgstr "" +"El módulo :mod:`warnings` ha sido reescrito en C. Esto hace posible invocar " +"advertencias desde el analizador sintáctico, y también puede hacer que el " +"arranque del intérprete sea más rápido. (Contribuido por Neal Norwitz y " +"Brett Cannon; :issue:`1631171`.)" #: ../Doc/whatsnew/2.6.rst:1700 +#, fuzzy msgid "" "Type objects now have a cache of methods that can reduce the work required " "to find the correct method implementation for a particular class; once " @@ -1847,8 +2746,17 @@ msgid "" "Python's dynamic nature. (Original optimization implemented by Armin Rigo, " "updated for Python 2.6 by Kevin Jacobs; :issue:`1700288`.)" msgstr "" +"Los objetos de tipo tienen ahora una caché de métodos que puede reducir el " +"trabajo necesario para encontrar la implementación del método correcto para " +"una clase en particular; una vez almacenada en la caché, el intérprete no " +"necesita recorrer las clases base para averiguar el método correcto a " +"llamar. La caché se borra si una clase base o la propia clase se modifica, " +"por lo que la caché debería seguir siendo correcta incluso ante la " +"naturaleza dinámica de Python. (Optimización original implementada por Armin " +"Rigo, actualizada para Python 2.6 por Kevin Jacobs; :issue:`1700288`.)" #: ../Doc/whatsnew/2.6.rst:1710 +#, fuzzy msgid "" "By default, this change is only applied to types that are included with the " "Python core. Extension modules may not necessarily be compatible with this " @@ -1859,55 +2767,94 @@ msgid "" "implements. Most modules don't do this, but it's impossible for the Python " "interpreter to determine that. See :issue:`1878` for some discussion.)" msgstr "" +"Por defecto, este cambio sólo se aplica a los tipos que se incluyen con el " +"núcleo de Python. Los módulos de extensión no son necesariamente " +"compatibles con esta caché, por lo que deben añadir explícitamente :c:macro:" +"`Py_TPFLAGS_HAVE_VERSION_TAG` al campo ``tp_flags`` del módulo para " +"habilitar la caché de métodos. (Para ser compatible con la caché de métodos, " +"el código del módulo de extensión no debe acceder directamente ni modificar " +"el miembro ``tp_dict`` de ninguno de los tipos que implementa. La mayoría " +"de los módulos no lo hacen, pero es imposible que el intérprete de Python lo " +"determine. Ver :issue:`1878` para una discusión)" #: ../Doc/whatsnew/2.6.rst:1721 +#, fuzzy msgid "" "Function calls that use keyword arguments are significantly faster by doing " "a quick pointer comparison, usually saving the time of a full string " "comparison. (Contributed by Raymond Hettinger, after an initial " "implementation by Antoine Pitrou; :issue:`1819`.)" msgstr "" +"Las llamadas a funciones que utilizan argumentos de palabras clave son " +"significativamente más rápidas al hacer una comparación rápida de punteros, " +"lo que suele ahorrar el tiempo de una comparación completa de cadenas. " +"(Contribución de Raymond Hettinger, tras una implementación inicial de " +"Antoine Pitrou; :issue:`1819`)" #: ../Doc/whatsnew/2.6.rst:1726 +#, fuzzy msgid "" "All of the functions in the :mod:`struct` module have been rewritten in C, " "thanks to work at the Need For Speed sprint. (Contributed by Raymond " "Hettinger.)" msgstr "" +"Todas las funciones del módulo :mod:`struct` han sido reescritas en C, " +"gracias al trabajo en el sprint de Need For Speed. (Contribución de Raymond " +"Hettinger)" #: ../Doc/whatsnew/2.6.rst:1730 +#, fuzzy msgid "" "Some of the standard built-in types now set a bit in their type objects. " "This speeds up checking whether an object is a subclass of one of these " "types. (Contributed by Neal Norwitz.)" msgstr "" +"Algunos de los tipos estándar incorporados ahora establecen un bit en sus " +"objetos de tipo. Esto acelera la comprobación de si un objeto es una " +"subclase de uno de estos tipos. (Contribución de Neal Norwitz)" #: ../Doc/whatsnew/2.6.rst:1734 +#, fuzzy msgid "" "Unicode strings now use faster code for detecting whitespace and line " "breaks; this speeds up the :meth:`split` method by about 25% and :meth:" "`splitlines` by 35%. (Contributed by Antoine Pitrou.) Memory usage is " "reduced by using pymalloc for the Unicode string's data." msgstr "" +"Las cadenas Unicode utilizan ahora un código más rápido para detectar los " +"espacios en blanco y los saltos de línea; esto acelera el método :meth:" +"`split` en un 25% a y :meth:`splitlines` en un 35%. (Contribuido por Antoine " +"Pitrou.) El uso de la memoria se reduce utilizando pymalloc para los datos " +"de la cadena Unicode." #: ../Doc/whatsnew/2.6.rst:1740 +#, fuzzy msgid "" "The ``with`` statement now stores the :meth:`__exit__` method on the stack, " "producing a small speedup. (Implemented by Jeffrey Yasskin.)" msgstr "" +"La sentencia ``with`` ahora almacena el método :meth:`__exit__` en la pila, " +"produciendo un pequeño aumento de velocidad. (Implementado por Jeffrey " +"Yasskin)" #: ../Doc/whatsnew/2.6.rst:1743 +#, fuzzy msgid "" "To reduce memory usage, the garbage collector will now clear internal free " "lists when garbage-collecting the highest generation of objects. This may " "return memory to the operating system sooner." msgstr "" +"Para reducir el uso de memoria, el recolector de basura ahora borrará las " +"listas libres internas cuando recolecte la generación más alta de objetos. " +"Esto puede devolver la memoria al sistema operativo antes." #: ../Doc/whatsnew/2.6.rst:1752 +#, fuzzy msgid "Interpreter Changes" -msgstr "" +msgstr "Cambios de intérprete" #: ../Doc/whatsnew/2.6.rst:1754 +#, fuzzy msgid "" "Two command-line options have been reserved for use by other Python " "implementations. The :option:`-J` switch has been reserved for use by " @@ -1917,8 +2864,17 @@ msgid "" "If either option is used with Python 2.6, the interpreter will report that " "the option isn't currently used." msgstr "" +"Se han reservado dos opciones de la línea de comandos para su uso por otras " +"implementaciones de Python. La opción :option:`-J` se ha reservado para su " +"uso por parte de Jython para las opciones específicas de Jython, como los " +"interruptores que se pasan a la JVM subyacente. :option:`-X` se ha reservado " +"para las opciones específicas de una implementación particular de Python " +"como CPython, Jython o IronPython. Si cualquiera de estas opciones se " +"utiliza con Python 2.6, el intérprete informará de que la opción no se " +"utiliza actualmente." #: ../Doc/whatsnew/2.6.rst:1762 +#, fuzzy msgid "" "Python can now be prevented from writing :file:`.pyc` or :file:`.pyo` files " "by supplying the :option:`-B` switch to the Python interpreter, or by " @@ -1928,8 +2884,16 @@ msgid "" "value to modify the interpreter's behaviour. (Contributed by Neal Norwitz " "and Georg Brandl.)" msgstr "" +"Ahora se puede evitar que Python escriba archivos :file:`.pyc` o :file:`." +"pyo` proporcionando el modificador :option:`-B` al intérprete de Python, o " +"estableciendo la variable de entorno :envvar:`PYTHONDONTWRITEBYTECODE` antes " +"de ejecutar el intérprete. Esta configuración está disponible para los " +"programas de Python como la variable ``sys.dont_write_bytecode``, y el " +"código de Python puede cambiar el valor para modificar el comportamiento del " +"intérprete. (Contribución de Neal Norwitz y Georg Brandl)" #: ../Doc/whatsnew/2.6.rst:1770 +#, fuzzy msgid "" "The encoding used for standard input, output, and standard error can be " "specified by setting the :envvar:`PYTHONIOENCODING` environment variable " @@ -1940,12 +2904,23 @@ msgid "" "handled by the encoding, and should be one of \"error\", \"ignore\", or " "\"replace\". (Contributed by Martin von Löwis.)" msgstr "" +"La codificación utilizada para la entrada, la salida y el error estándar " +"puede especificarse estableciendo la variable de entorno :envvar:" +"`PYTHONIOENCODING` antes de ejecutar el intérprete. El valor debe ser una " +"cadena de la forma```` o ``:``. La parte " +"*encoding* especifica el nombre de la codificación, por ejemplo ``utf-8`` o " +"``latin-1``; la parte opcional *errorhandler* especifica qué hacer con los " +"caracteres que no pueden ser manejados por la codificación, y debe ser una " +"de las opciones \"error\", \"ignorar\" o \"reemplazar\". (Contribución de " +"Martin von Löwis)" #: ../Doc/whatsnew/2.6.rst:1783 +#, fuzzy msgid "New and Improved Modules" -msgstr "" +msgstr "Módulos nuevos y mejorados" #: ../Doc/whatsnew/2.6.rst:1785 +#, fuzzy msgid "" "As in every release, Python's standard library received a number of " "enhancements and bug fixes. Here's a partial list of the most notable " @@ -1953,15 +2928,27 @@ msgid "" "file in the source tree for a more complete list of changes, or look through " "the Subversion logs for all the details." msgstr "" +"Como en cada versión, la biblioteca estándar de Python ha recibido una serie " +"de mejoras y correcciones de errores. Aquí hay una lista parcial de los " +"cambios más notables, ordenados alfabéticamente por nombre de módulo. " +"Consulta el archivo :file:`Misc/NEWS` en el árbol de fuentes para una lista " +"más completa de cambios, o mira los registros de Subversion para todos los " +"detalles." #: ../Doc/whatsnew/2.6.rst:1791 +#, fuzzy msgid "" "The :mod:`asyncore` and :mod:`asynchat` modules are being actively " "maintained again, and a number of patches and bugfixes were applied. " "(Maintained by Josiah Carlson; see :issue:`1736190` for one patch.)" msgstr "" +"Los módulos :mod:`asyncore` y :mod:`asynchat` están siendo mantenidos " +"activamente de nuevo, y se han aplicado varios parches y correcciones de " +"errores. (Mantenido por Josiah Carlson; véase :issue:`1736190` para un " +"parche)" #: ../Doc/whatsnew/2.6.rst:1796 +#, fuzzy msgid "" "The :mod:`bsddb` module also has a new maintainer, Jesús Cea Avión, and the " "package is now available as a standalone package. The web page for the " @@ -1970,67 +2957,107 @@ msgid "" "standard library in Python 3.0, because its pace of releases is much more " "frequent than Python's." msgstr "" +"El módulo :mod:`bsddb` también tiene un nuevo mantenedor, Jesús Cea Avión, y " +"el paquete está ahora disponible como paquete independiente. La página web " +"del paquete es `www.jcea.es/programacion/pybsddb.htm `__. El plan es eliminar el paquete de la " +"biblioteca estándar en Python 3.0, porque su ritmo de lanzamientos es mucho " +"más frecuente que el de Python." #: ../Doc/whatsnew/2.6.rst:1804 +#, fuzzy msgid "" "The :mod:`bsddb.dbshelve` module now uses the highest pickling protocol " "available, instead of restricting itself to protocol 1. (Contributed by W. " "Barnes.)" msgstr "" +"El módulo :mod:`bsddb.dbshelve` utiliza ahora el protocolo de decapado más " +"alto disponible, en lugar de limitarse al protocolo 1. (Contribución de W. " +"Barnes.)" #: ../Doc/whatsnew/2.6.rst:1808 +#, fuzzy msgid "" "The :mod:`cgi` module will now read variables from the query string of an " "HTTP POST request. This makes it possible to use form actions with URLs " "that include query strings such as \"/cgi-bin/add.py?category=1\". " "(Contributed by Alexandre Fiori and Nubis; :issue:`1817`.)" msgstr "" +"El módulo :mod:`cgi` leerá ahora las variables de la cadena de consulta de " +"una petición HTTP POST. Esto permite utilizar acciones de formulario con " +"URLs que incluyen cadenas de consulta como \"/cgi-bin/add.py?category=1\". " +"(Contribución de Alexandre Fiori y Nubis; :issue:`1817`.)" #: ../Doc/whatsnew/2.6.rst:1814 +#, fuzzy msgid "" "The :func:`parse_qs` and :func:`parse_qsl` functions have been relocated " "from the :mod:`cgi` module to the :mod:`urlparse` module. The versions still " "available in the :mod:`cgi` module will trigger :exc:" "`PendingDeprecationWarning` messages in 2.6 (:issue:`600362`)." msgstr "" +"Las funciones :func:`parse_qs` y :func:`parse_qsl` han sido reubicadas del " +"módulo :mod:`cgi` al módulo :mod:`urlparse`. Las versiones aún disponibles " +"en el módulo :mod:`cgi` activarán los mensajes :exc:" +"`PendingDeprecationWarning` en la versión 2.6 (:issue:`600362`)." #: ../Doc/whatsnew/2.6.rst:1820 +#, fuzzy msgid "" "The :mod:`cmath` module underwent extensive revision, contributed by Mark " "Dickinson and Christian Heimes. Five new functions were added:" msgstr "" +"El módulo :mod:`cmath` ha sido objeto de una amplia revisión, a la que han " +"contribuido Mark Dickinson y Christian Heimes. Se han añadido cinco nuevas " +"funciones:" #: ../Doc/whatsnew/2.6.rst:1824 +#, fuzzy msgid "" ":func:`polar` converts a complex number to polar form, returning the modulus " "and argument of the complex number." msgstr "" +":func:`polar` convierte un número complejo en forma polar, devolviendo el " +"módulo y el argumento del número complejo." #: ../Doc/whatsnew/2.6.rst:1827 +#, fuzzy msgid "" ":func:`rect` does the opposite, turning a modulus, argument pair back into " "the corresponding complex number." msgstr "" +":func:`rect` hace lo contrario, convirtiendo un par de módulos y argumentos " +"en el correspondiente número complejo." #: ../Doc/whatsnew/2.6.rst:1830 +#, fuzzy msgid "" ":func:`phase` returns the argument (also called the angle) of a complex " "number." msgstr "" +":func:`phase` devuelve el argumento (también llamado ángulo) de un número " +"complejo." #: ../Doc/whatsnew/2.6.rst:1833 +#, fuzzy msgid "" ":func:`isnan` returns True if either the real or imaginary part of its " "argument is a NaN." msgstr "" +":func:`isnan` devuelve True si la parte real o imaginaria de su argumento es " +"un NaN." #: ../Doc/whatsnew/2.6.rst:1836 +#, fuzzy msgid "" ":func:`isinf` returns True if either the real or imaginary part of its " "argument is infinite." msgstr "" +":func:`isinf` devuelve True si la parte real o imaginaria de su argumento es " +"infinita." #: ../Doc/whatsnew/2.6.rst:1839 +#, fuzzy msgid "" "The revisions also improved the numerical soundness of the :mod:`cmath` " "module. For all functions, the real and imaginary parts of the results are " @@ -2038,104 +3065,167 @@ msgid "" "See :issue:`1381` for the details. The branch cuts for :func:`asinh`, :func:" "`atanh`: and :func:`atan` have also been corrected." msgstr "" +"Las revisiones también han mejorado la solidez numérica del módulo :mod:" +"`cmath`. Para todas las funciones, las partes real e imaginaria de los " +"resultados son exactas con unas pocas unidades de precisión mínima (ulps) " +"siempre que sea posible. Véase :issue:`1381` para los detalles. También se " +"han corregido los cortes de rama para :func:`asinh`, :func:`atanh`: y :func:" +"`atan`." #: ../Doc/whatsnew/2.6.rst:1846 +#, fuzzy msgid "" "The tests for the module have been greatly expanded; nearly 2000 new test " "cases exercise the algebraic functions." msgstr "" +"Las pruebas del módulo se han ampliado considerablemente; casi 2000 nuevos " +"casos de prueba ejercitan las funciones algebraicas." #: ../Doc/whatsnew/2.6.rst:1849 +#, fuzzy msgid "" "On IEEE 754 platforms, the :mod:`cmath` module now handles IEEE 754 special " "values and floating-point exceptions in a manner consistent with Annex 'G' " "of the C99 standard." msgstr "" +"En las plataformas IEEE 754, el módulo :mod:`cmath` maneja ahora los valores " +"especiales IEEE 754 y las excepciones de punto flotante de forma consistente " +"con el Anexo 'G' del estándar C99." #: ../Doc/whatsnew/2.6.rst:1853 +#, fuzzy msgid "" "A new data type in the :mod:`collections` module: :class:" "`namedtuple(typename, fieldnames)` is a factory function that creates " "subclasses of the standard tuple whose fields are accessible by name as well " "as index. For example::" msgstr "" +"Un nuevo tipo de datos en el módulo :mod:`collections`: :class:" +"`namedtuple(typename, fieldnames)` es una función de fábrica que crea " +"subclases de la tupla estándar cuyos campos son accesibles tanto por nombre " +"como por índice. Por ejemplo::" #: ../Doc/whatsnew/2.6.rst:1875 +#, fuzzy msgid "" "Several places in the standard library that returned tuples have been " "modified to return :class:`namedtuple` instances. For example, the :meth:" "`Decimal.as_tuple` method now returns a named tuple with :attr:`sign`, :attr:" "`digits`, and :attr:`exponent` fields." msgstr "" +"Varios lugares de la biblioteca estándar que devolvían tuplas han sido " +"modificados para devolver instancias de :class:`namedtuple`. Por ejemplo, " +"el método :meth:`Decimal.as_tuple` ahora devuelve una tupla con nombre con " +"los campos :attr:`signo`, :attr:`dígitos` y :attr:`exponente`." #: ../Doc/whatsnew/2.6.rst:1882 +#, fuzzy msgid "" "Another change to the :mod:`collections` module is that the :class:`deque` " "type now supports an optional *maxlen* parameter; if supplied, the deque's " "size will be restricted to no more than *maxlen* items. Adding more items " "to a full deque causes old items to be discarded." msgstr "" +"Otro cambio en el módulo :mod:`collections` es que el tipo :class:`deque` " +"admite ahora un parámetro opcional *maxlen*; si se suministra, el tamaño del " +"deque estará restringido a no más de *maxlen* elementos. Si se añaden más " +"elementos a un deque lleno, se descartan los elementos antiguos." #: ../Doc/whatsnew/2.6.rst:1903 +#, fuzzy msgid "" "The :mod:`Cookie` module's :class:`Morsel` objects now support an :attr:" "`httponly` attribute. In some browsers. cookies with this attribute set " "cannot be accessed or manipulated by JavaScript code. (Contributed by Arvin " "Schnell; :issue:`1638033`.)" msgstr "" +"Los objetos :mod:`Cookie` del módulo :class:`Morsel` soportan ahora un " +"atributo :attr:`httponly`. En algunos navegadores, las cookies con este " +"atributo no pueden ser accedidas o manipuladas por el código JavaScript. " +"(Contribución de Arvin Schnell; :issue:`1638033`.)" #: ../Doc/whatsnew/2.6.rst:1908 +#, fuzzy msgid "" "A new window method in the :mod:`curses` module, :meth:`chgat`, changes the " "display attributes for a certain number of characters on a single line. " "(Contributed by Fabian Kreutz.)" msgstr "" +"Un nuevo método de ventana en el módulo :mod:`curses`, :meth:`chgat`, cambia " +"los atributos de visualización para un determinado número de caracteres en " +"una sola línea. (Contribución de Fabian Kreutz)" #: ../Doc/whatsnew/2.6.rst:1918 +#, fuzzy msgid "" "The :class:`Textbox` class in the :mod:`curses.textpad` module now supports " "editing in insert mode as well as overwrite mode. Insert mode is enabled by " "supplying a true value for the *insert_mode* parameter when creating the :" "class:`Textbox` instance." msgstr "" +"La clase :class:`Textbox` del módulo :mod:`curses.textpad` soporta ahora la " +"edición en modo de inserción así como en modo de sobrescritura. El modo de " +"inserción se activa proporcionando un valor verdadero para el parámetro " +"*insert_mode* al crear la instancia de :class:`Textbox`." #: ../Doc/whatsnew/2.6.rst:1923 -#, python-format +#, fuzzy, python-format msgid "" "The :mod:`datetime` module's :meth:`strftime` methods now support a ``%f`` " "format code that expands to the number of microseconds in the object, zero-" "padded on the left to six places. (Contributed by Skip Montanaro; :issue:" "`1158`.)" msgstr "" +"Los métodos :meth:`strftime` del módulo :mod:`datetime` soportan ahora un " +"código de formato ``%f`` que se expande al número de microsegundos en el " +"objeto, rellenado de cero a la izquierda hasta seis lugares. (Contribución " +"de Skip Montanaro; :issue:`1158`.)" #: ../Doc/whatsnew/2.6.rst:1928 +#, fuzzy msgid "" "The :mod:`decimal` module was updated to version 1.66 of `the General " "Decimal Specification `__. " "New features include some methods for some basic mathematical functions such " "as :meth:`exp` and :meth:`log10`::" msgstr "" +"El módulo :mod:`decimal` se ha actualizado a la versión 1.66 de `la " +"Especificación General Decimal `__. Las nuevas características incluyen algunos métodos para algunas " +"funciones matemáticas básicas como :meth:`exp` y :meth:`log10`::" #: ../Doc/whatsnew/2.6.rst:1940 +#, fuzzy msgid "" "The :meth:`as_tuple` method of :class:`Decimal` objects now returns a named " "tuple with :attr:`sign`, :attr:`digits`, and :attr:`exponent` fields." msgstr "" +"El método :meth:`as_tuple` de los objetos :class:`Decimal` devuelve ahora " +"una tupla con nombre con los campos :attr:`signo`, :attr:`dígitos` y :attr:" +"`exponente`." #: ../Doc/whatsnew/2.6.rst:1943 +#, fuzzy msgid "" "(Implemented by Facundo Batista and Mark Dickinson. Named tuple support " "added by Raymond Hettinger.)" msgstr "" +"(Implementado por Facundo Batista y Mark Dickinson. Soporte de tuplas con " +"nombre añadido por Raymond Hettinger)" #: ../Doc/whatsnew/2.6.rst:1946 +#, fuzzy msgid "" "The :mod:`difflib` module's :class:`SequenceMatcher` class now returns named " "tuples representing matches, with :attr:`a`, :attr:`b`, and :attr:`size` " "attributes. (Contributed by Raymond Hettinger.)" msgstr "" +"La clase :mod:`difflib` del módulo :class:`SequenceMatcher` devuelve ahora " +"tuplas con nombre que representan coincidencias, con atributos :attr:`a`, :" +"attr:`b` y :attr:`size`. (Contribución de Raymond Hettinger)" #: ../Doc/whatsnew/2.6.rst:1951 +#, fuzzy msgid "" "An optional ``timeout`` parameter, specifying a timeout measured in seconds, " "was added to the :class:`ftplib.FTP` class constructor as well as the :meth:" @@ -2144,8 +3234,16 @@ msgid "" "*callback* parameter that will be called with each block of data after the " "data has been sent. (Contributed by Phil Schwartz; :issue:`1221598`.)" msgstr "" +"Se ha añadido un parámetro opcional ``timeout``, que especifica un tiempo de " +"espera medido en segundos, al constructor de la clase :class:`ftplib.FTP` " +"así como al método :meth:`connect`. (Añadido por Facundo Batista.) Además, " +"los métodos :meth:`storbinary` y :meth:`storlines` de la clase :class:`FTP` " +"ahora toman un parámetro opcional *callback* que será llamado con cada " +"bloque de datos después de que los datos hayan sido enviados. (Contribuido " +"por Phil Schwartz; :issue:`1221598`.)" #: ../Doc/whatsnew/2.6.rst:1959 +#, fuzzy msgid "" "The :func:`reduce` built-in function is also available in the :mod:" "`functools` module. In Python 3.0, the builtin has been dropped and :func:" @@ -2153,8 +3251,14 @@ msgid "" "plans to drop the builtin in the 2.x series. (Patched by Christian Heimes; :" "issue:`1739906`.)" msgstr "" +"La función incorporada :func:`reduce` también está disponible en el módulo :" +"mod:`functools`. En Python 3.0, la función incorporada se ha eliminado y :" +"func:`reduce` sólo está disponible en :mod:`functools`; actualmente no hay " +"planes para eliminar la función incorporada en la serie 2.x. (Parcheado por " +"Christian Heimes; :issue:`1739906`.)" #: ../Doc/whatsnew/2.6.rst:1965 +#, fuzzy msgid "" "When possible, the :mod:`getpass` module will now use :file:`/dev/tty` to " "print a prompt message and read the password, falling back to standard error " @@ -2162,101 +3266,159 @@ msgid "" "warning is printed before the prompt is displayed. (Contributed by Gregory " "P. Smith.)" msgstr "" +"Cuando sea posible, el módulo :mod:`getpass` utilizará ahora :file:`/dev/" +"tty` para imprimir un mensaje de aviso y leer la contraseña, retrocediendo " +"al error estándar y a la entrada estándar. Si la contraseña puede ser " +"enviada al terminal, se imprimirá una advertencia antes de que se muestre el " +"aviso. (Contribución de Gregory P. Smith)" #: ../Doc/whatsnew/2.6.rst:1971 +#, fuzzy msgid "" "The :func:`glob.glob` function can now return Unicode filenames if a Unicode " "path was used and Unicode filenames are matched within the directory. (:" "issue:`1001604`)" msgstr "" +"La función :func:`glob.glob` ahora puede devolver nombres de archivo Unicode " +"si se ha utilizado una ruta Unicode y se han encontrado nombres de archivo " +"Unicode dentro del directorio. (:issue:`1001604`)" #: ../Doc/whatsnew/2.6.rst:1975 +#, fuzzy msgid "" "A new function in the :mod:`heapq` module, ``merge(iter1, iter2, ...)``, " "takes any number of iterables returning data in sorted order, and returns a " "new generator that returns the contents of all the iterators, also in sorted " "order. For example::" msgstr "" +"Una nueva función en el módulo :mod:`heapq`, ``merge(iter1, iter2, ...)``, " +"toma cualquier número de iterables que devuelven datos en orden ordenado, y " +"devuelve un nuevo generador que devuelve el contenido de todos los " +"iteradores, también en ordenado. Por ejemplo::" #: ../Doc/whatsnew/2.6.rst:1983 +#, fuzzy msgid "" "Another new function, ``heappushpop(heap, item)``, pushes *item* onto " "*heap*, then pops off and returns the smallest item. This is more efficient " "than making a call to :func:`heappush` and then :func:`heappop`." msgstr "" +"Otra nueva función, ``heappushpop(heap, item)``, empuja *item* a *heap*, " +"luego lo saca y devuelve el elemento más pequeño. Esto es más eficiente que " +"hacer una llamada a :func:`heappush` y luego a :func:`heappop`." #: ../Doc/whatsnew/2.6.rst:1988 +#, fuzzy msgid "" ":mod:`heapq` is now implemented to only use less-than comparison, instead of " "the less-than-or-equal comparison it previously used. This makes :mod:" "`heapq`'s usage of a type match the :meth:`list.sort` method. (Contributed " "by Raymond Hettinger.)" msgstr "" +":mod:`heapq` se ha implementado para utilizar únicamente la comparación " +"menor que, en lugar de la comparación menor o igual que utilizaba " +"anteriormente. Esto hace que el uso de :mod:`heapq` de un tipo coincida con " +"el método :meth:`list.sort`. (Contribución de Raymond Hettinger)" #: ../Doc/whatsnew/2.6.rst:1994 +#, fuzzy msgid "" "An optional ``timeout`` parameter, specifying a timeout measured in seconds, " "was added to the :class:`httplib.HTTPConnection` and :class:" "`HTTPSConnection` class constructors. (Added by Facundo Batista.)" msgstr "" +"Se ha añadido un parámetro opcional ``timeout``, que especifica un tiempo de " +"espera medido en segundos, a los constructores de las clases :class:`httplib." +"HTTPConnection` y :class:`HTTPSConnection`. (Añadido por Facundo Batista)" #: ../Doc/whatsnew/2.6.rst:1999 +#, fuzzy msgid "" "Most of the :mod:`inspect` module's functions, such as :func:`getmoduleinfo` " "and :func:`getargs`, now return named tuples. In addition to behaving like " "tuples, the elements of the return value can also be accessed as " "attributes. (Contributed by Raymond Hettinger.)" msgstr "" +"La mayoría de las funciones del módulo :mod:`inspect`, como :func:" +"`getmoduleinfo` y :func:`getargs`, ahora devuelven tuplas con nombre. Además " +"de comportarse como tuplas, también se puede acceder a los elementos del " +"valor devuelto como atributos. (Contribución de Raymond Hettinger)" #: ../Doc/whatsnew/2.6.rst:2005 +#, fuzzy msgid "" "Some new functions in the module include :func:`isgenerator`, :func:" "`isgeneratorfunction`, and :func:`isabstract`." msgstr "" +"Algunas de las nuevas funciones del módulo son :func:`isgenerator`, :func:" +"`isgeneratorfunction` y :func:`isabstract`." #: ../Doc/whatsnew/2.6.rst:2009 +#, fuzzy msgid "The :mod:`itertools` module gained several new functions." -msgstr "" +msgstr "El módulo :mod:`itertools` ha ganado varias funciones nuevas." #: ../Doc/whatsnew/2.6.rst:2011 +#, fuzzy msgid "" "``izip_longest(iter1, iter2, ...[, fillvalue])`` makes tuples from each of " "the elements; if some of the iterables are shorter than others, the missing " "values are set to *fillvalue*. For example::" msgstr "" +"``izip_longest(iter1, iter2, ...[, fillvalue])`` hace tuplas de cada uno de " +"los elementos; si algunos de los iterables son más cortos que otros, los " +"valores que faltan se ponen a *fillvalue*. Por ejemplo::" #: ../Doc/whatsnew/2.6.rst:2018 +#, fuzzy msgid "" "``product(iter1, iter2, ..., [repeat=N])`` returns the Cartesian product of " "the supplied iterables, a set of tuples containing every possible " "combination of the elements returned from each iterable. ::" msgstr "" +"``product(iter1, iter2, ..., [repeat=N])`` devuelve el producto cartesiano " +"de los iterables suministrados, un conjunto de tuplas que contiene todas las " +"combinaciones posibles de los elementos devueltos de cada iterable. ::" #: ../Doc/whatsnew/2.6.rst:2027 +#, fuzzy msgid "" "The optional *repeat* keyword argument is used for taking the product of an " "iterable or a set of iterables with themselves, repeated *N* times. With a " "single iterable argument, *N*-tuples are returned::" msgstr "" +"El argumento opcional de la palabra clave *repeat* se utiliza para tomar el " +"producto de un iterable o un conjunto de iterables con ellos mismos, " +"repetido *N* veces. Con un único argumento iterable, se devuelven *N*-" +"tuplas::" #: ../Doc/whatsnew/2.6.rst:2036 +#, fuzzy msgid "With two iterables, *2N*-tuples are returned. ::" -msgstr "" +msgstr "Con dos iterables, se devuelven *2N*-tuplas. ::" #: ../Doc/whatsnew/2.6.rst:2044 +#, fuzzy msgid "" "``combinations(iterable, r)`` returns sub-sequences of length *r* from the " "elements of *iterable*. ::" msgstr "" +"``combinaciones(iterable, r)`` devuelve subsecuencias de longitud *r* de los " +"elementos de *iterable*. ::" #: ../Doc/whatsnew/2.6.rst:2055 +#, fuzzy msgid "" "``permutations(iter[, r])`` returns all the permutations of length *r* of " "the iterable's elements. If *r* is not specified, it will default to the " "number of elements produced by the iterable. ::" msgstr "" +"``permutaciones(iter[, r])`` devuelve todas las permutaciones de longitud " +"*r* de los elementos del iterable. Si no se especifica *r*, por defecto " +"será el número de elementos producidos por el iterable. ::" #: ../Doc/whatsnew/2.6.rst:2065 +#, fuzzy msgid "" "``itertools.chain(*iterables)`` is an existing function in :mod:`itertools` " "that gained a new constructor in Python 2.6. ``itertools.chain." @@ -2264,12 +3426,19 @@ msgid "" "iterables. :func:`chain` will then return all the elements of the first " "iterable, then all the elements of the second, and so on. ::" msgstr "" +"``itertools.chain(*iterables)`` es una función existente en :mod:`itertools` " +"que obtuvo un nuevo constructor en Python 2.6. ``itertools.chain." +"from_iterable(iterable)`` toma un único iterable que debe devolver otros " +"iterables. :func:`chain` devolverá entonces todos los elementos del primer " +"iterable, luego todos los elementos del segundo, y así sucesivamente. ::" #: ../Doc/whatsnew/2.6.rst:2075 +#, fuzzy msgid "(All contributed by Raymond Hettinger.)" -msgstr "" +msgstr "(Todo ello aportado por Raymond Hettinger)" #: ../Doc/whatsnew/2.6.rst:2077 +#, fuzzy msgid "" "The :mod:`logging` module's :class:`FileHandler` class and its subclasses :" "class:`WatchedFileHandler`, :class:`RotatingFileHandler`, and :class:" @@ -2277,69 +3446,112 @@ msgid "" "constructors. If *delay* is true, opening of the log file is deferred until " "the first :meth:`emit` call is made. (Contributed by Vinay Sajip.)" msgstr "" +"La clase :mod:`logging` del módulo :class:`FileHandler` y sus subclases :" +"class:`WatchedFileHandler`, :class:`RotatingFileHandler` y :class:" +"`TimedRotatingFileHandler` tienen ahora un parámetro opcional *delay* en sus " +"constructores. Si *retraso* es verdadero, la apertura del fichero de " +"registro se retrasa hasta que se realice la primera llamada :meth:`emit`. " +"(Contribuido por Vinay Sajip.)" #: ../Doc/whatsnew/2.6.rst:2084 +#, fuzzy msgid "" ":class:`TimedRotatingFileHandler` also has a *utc* constructor parameter. " "If the argument is true, UTC time will be used in determining when midnight " "occurs and in generating filenames; otherwise local time will be used." msgstr "" +":class:`TimedRotatingFileHandler` también tiene un parámetro constructor " +"*utc*. Si el argumento es verdadero, se utilizará la hora UTC para " +"determinar cuándo ocurre la medianoche y para generar los nombres de los " +"archivos; en caso contrario, se utilizará la hora local." #: ../Doc/whatsnew/2.6.rst:2089 +#, fuzzy msgid "Several new functions were added to the :mod:`math` module:" -msgstr "" +msgstr "Se han añadido varias funciones nuevas al módulo :mod:`math`:" #: ../Doc/whatsnew/2.6.rst:2091 +#, fuzzy msgid "" ":func:`~math.isinf` and :func:`~math.isnan` determine whether a given float " "is a (positive or negative) infinity or a NaN (Not a Number), respectively." msgstr "" +":func:`~math.isinf` y :func:`~math.isnan` determinan si un flotador dado es " +"un infinito (positivo o negativo) o un NaN (Not a Number), respectivamente." #: ../Doc/whatsnew/2.6.rst:2094 +#, fuzzy msgid "" ":func:`~math.copysign` copies the sign bit of an IEEE 754 number, returning " "the absolute value of *x* combined with the sign bit of *y*. For example, " "``math.copysign(1, -0.0)`` returns -1.0. (Contributed by Christian Heimes.)" msgstr "" +":func:`~math.copysign` copia el bit de signo de un número IEEE 754, " +"devolviendo el valor absoluto de *x* combinado con el bit de signo de *y*. " +"Por ejemplo, ``math.copysign(1, -0.0)`` devuelve -1.0. (Contribución de " +"Christian Heimes)" #: ../Doc/whatsnew/2.6.rst:2099 +#, fuzzy msgid "" ":func:`~math.factorial` computes the factorial of a number. (Contributed by " "Raymond Hettinger; :issue:`2138`.)" msgstr "" +":func:`~math.factorial` calcula el factorial de un número. (Contribuido por " +"Raymond Hettinger; :issue:`2138`.)" #: ../Doc/whatsnew/2.6.rst:2102 +#, fuzzy msgid "" ":func:`~math.fsum` adds up the stream of numbers from an iterable, and is " "careful to avoid loss of precision through using partial sums. (Contributed " "by Jean Brouwers, Raymond Hettinger, and Mark Dickinson; :issue:`2819`.)" msgstr "" +":func:`~math.fsum` suma el flujo de números de un iterable, y tiene cuidado " +"de evitar la pérdida de precisión mediante el uso de sumas parciales. " +"(Contribución de Jean Brouwers, Raymond Hettinger y Mark Dickinson; :issue:" +"`2819`)" #: ../Doc/whatsnew/2.6.rst:2107 +#, fuzzy msgid "" ":func:`~math.acosh`, :func:`~math.asinh` and :func:`~math.atanh` compute the " "inverse hyperbolic functions." msgstr "" +":func:`~math.acosh`, :func:`~math.asinh` y :func:`~math.atanh` calculan las " +"funciones hiperbólicas inversas." #: ../Doc/whatsnew/2.6.rst:2110 +#, fuzzy msgid ":func:`~math.log1p` returns the natural logarithm of *1+x* (base *e*)." -msgstr "" +msgstr ":func:`~math.log1p` devuelve el logaritmo natural de *1+x* (base *e*)." #: ../Doc/whatsnew/2.6.rst:2113 +#, fuzzy msgid "" ":func:`trunc` rounds a number toward zero, returning the closest :class:" "`Integral` that's between the function's argument and zero. Added as part of " "the backport of `PEP 3141's type hierarchy for numbers <#pep-3141>`__." msgstr "" +":func:`trunc` redondea un número hacia cero, devolviendo el :class:" +"`Integral` más cercano que esté entre el argumento de la función y el cero. " +"Añadido como parte del backport de la jerarquía de tipos de números de `PEP " +"3141 <#pep-3141>`__." #: ../Doc/whatsnew/2.6.rst:2118 +#, fuzzy msgid "" "The :mod:`math` module has been improved to give more consistent behaviour " "across platforms, especially with respect to handling of floating-point " "exceptions and IEEE 754 special values." msgstr "" +"El módulo :mod:`math` se ha mejorado para ofrecer un comportamiento más " +"coherente en todas las plataformas, especialmente en lo que respecta al " +"manejo de las excepciones de punto flotante y los valores especiales IEEE " +"754." #: ../Doc/whatsnew/2.6.rst:2122 +#, fuzzy msgid "" "Whenever possible, the module follows the recommendations of the C99 " "standard about 754's special values. For example, ``sqrt(-1.)`` should now " @@ -2350,49 +3562,80 @@ msgid "" "standard recommends signaling 'overflow', Python will raise :exc:" "`OverflowError`. (See :issue:`711019` and :issue:`1640`.)" msgstr "" +"Siempre que es posible, el módulo sigue las recomendaciones del estándar C99 " +"sobre los valores especiales de 754. Por ejemplo, ``sqrt(-1.)`` debería dar " +"ahora un :exc:`ValueError` en casi todas las plataformas, mientras que " +"``sqrt(float('NaN'))`` debería devolver un NaN en todas las plataformas IEEE " +"754. Cuando el Anexo 'F' del estándar C99 recomiende señalar 'dividir por " +"cero' o 'inválido', Python lanzará :exc:`ValueError`. Cuando el Anexo 'F' " +"del estándar C99 recomiende señalar 'desbordamiento', Python lanzará :exc:" +"`OverflowError`. (Ver :issue:`711019` y :issue:`1640`)" #: ../Doc/whatsnew/2.6.rst:2132 +#, fuzzy msgid "(Contributed by Christian Heimes and Mark Dickinson.)" -msgstr "" +msgstr "(Contribución de Christian Heimes y Mark Dickinson)" #: ../Doc/whatsnew/2.6.rst:2134 +#, fuzzy msgid "" ":class:`~mmap.mmap` objects now have a :meth:`rfind` method that searches " "for a substring beginning at the end of the string and searching backwards. " "The :meth:`find` method also gained an *end* parameter giving an index at " "which to stop searching. (Contributed by John Lenton.)" msgstr "" +"Los objetos :class:`~mmap.mmap` tienen ahora un método :meth:`rfind` que " +"busca una subcadena empezando por el final de la cadena y buscando hacia " +"atrás. El método :meth:`find` también ha ganado un parámetro *end* que da " +"un índice en el que parar la búsqueda. (Contribución de John Lenton)" #: ../Doc/whatsnew/2.6.rst:2140 +#, fuzzy msgid "" "The :mod:`operator` module gained a :func:`methodcaller` function that takes " "a name and an optional set of arguments, returning a callable that will call " "the named function on any arguments passed to it. For example::" msgstr "" +"El módulo :mod:`operator` ganó una función :func:`methodcaller` que toma un " +"nombre y un conjunto opcional de argumentos, devolviendo un callable que " +"llamará a la función nombrada en cualquier argumento que se le pase. Por " +"ejemplo::" #: ../Doc/whatsnew/2.6.rst:2150 +#, fuzzy msgid "(Contributed by Georg Brandl, after a suggestion by Gregory Petrosyan.)" msgstr "" +"(Contribución de Georg Brandl, tras una sugerencia de Gregory Petrosyan)" #: ../Doc/whatsnew/2.6.rst:2152 +#, fuzzy msgid "" "The :func:`attrgetter` function now accepts dotted names and performs the " "corresponding attribute lookups::" msgstr "" +"La función :func:`attrgetter` acepta ahora nombres con puntos y realiza las " +"correspondientes búsquedas de atributos::" #: ../Doc/whatsnew/2.6.rst:2162 +#, fuzzy msgid "(Contributed by Georg Brandl, after a suggestion by Barry Warsaw.)" -msgstr "" +msgstr "(Contribución de Georg Brandl, tras una sugerencia de Barry Warsaw)" #: ../Doc/whatsnew/2.6.rst:2164 +#, fuzzy msgid "" "The :mod:`os` module now wraps several new system calls. ``fchmod(fd, " "mode)`` and ``fchown(fd, uid, gid)`` change the mode and ownership of an " "opened file, and ``lchmod(path, mode)`` changes the mode of a symlink. " "(Contributed by Georg Brandl and Christian Heimes.)" msgstr "" +"El módulo :mod:`os` incluye ahora varias llamadas nuevas al sistema. " +"``fchmod(fd, mode)`` y ``fchown(fd, uid, gid)`` cambian el modo y la " +"propiedad de un fichero abierto, y ``lchmod(path, mode)`` cambia el modo de " +"un enlace simbólico. (Contribución de Georg Brandl y Christian Heimes)" #: ../Doc/whatsnew/2.6.rst:2170 +#, fuzzy msgid "" ":func:`chflags` and :func:`lchflags` are wrappers for the corresponding " "system calls (where they're available), changing the flags set on a file. " @@ -2401,23 +3644,41 @@ msgid "" "changed and :const:`UF_APPEND` to indicate that data can only be appended to " "the file. (Contributed by M. Levinson.)" msgstr "" +":func:`chflags` y :func:`lchflags` son envoltorios para las correspondientes " +"llamadas al sistema (cuando están disponibles), que cambian las banderas " +"establecidas en un archivo. Las constantes para los valores de las banderas " +"se definen en el módulo :mod:`stat`; algunos valores posibles son :const:" +"`UF_IMMUTABLE` para indicar que el fichero no puede ser modificado y :const:" +"`UF_APPEND` para indicar que sólo se pueden añadir datos al fichero. " +"(Contribución de M. Levinson)" #: ../Doc/whatsnew/2.6.rst:2178 +#, fuzzy msgid "" "``os.closerange(low, high)`` efficiently closes all file descriptors from " "*low* to *high*, ignoring any errors and not including *high* itself. This " "function is now used by the :mod:`subprocess` module to make starting " "processes faster. (Contributed by Georg Brandl; :issue:`1663329`.)" msgstr "" +"``os.closerange(low, high)`` cierra eficazmente todos los descriptores de " +"fichero desde *low* hasta *high*, ignorando cualquier error y sin incluir a " +"*high* mismo. Esta función es ahora utilizada por el módulo :mod:" +"`subprocess` para hacer más rápido el arranque de procesos. (Contribuido " +"por Georg Brandl; :issue:`1663329`.)" #: ../Doc/whatsnew/2.6.rst:2183 +#, fuzzy msgid "" "The ``os.environ`` object's :meth:`clear` method will now unset the " "environment variables using :func:`os.unsetenv` in addition to clearing the " "object's keys. (Contributed by Martin Horcicka; :issue:`1181`.)" msgstr "" +"El método :meth:`clear` del objeto ``os.environ`` ahora desajustará las " +"variables de entorno utilizando :func:`os.unsetenv` además de borrar las " +"claves del objeto. (Contribuido por Martin Horcicka; :issue:`1181`.)" #: ../Doc/whatsnew/2.6.rst:2187 +#, fuzzy msgid "" "The :func:`os.walk` function now has a ``followlinks`` parameter. If set to " "True, it will follow symlinks pointing to directories and visit the " @@ -2425,8 +3686,15 @@ msgid "" "value is false. Note that the function can fall into an infinite recursion " "if there's a symlink that points to a parent directory. (:issue:`1273829`)" msgstr "" +"La función :func:`os.walk` tiene ahora un parámetro ``followlinks``. Si se " +"establece como True, seguirá los enlaces simbólicos que apunten a " +"directorios y visitará el contenido del directorio. Por compatibilidad con " +"el pasado, el valor por defecto del parámetro es false. Tenga en cuenta que " +"la función puede caer en una recursión infinita si hay un enlace simbólico " +"que apunte a un directorio padre. (:issue:`1273829`)" #: ../Doc/whatsnew/2.6.rst:2194 +#, fuzzy msgid "" "In the :mod:`os.path` module, the :func:`splitext` function has been changed " "to not split on leading period characters. This produces better results when " @@ -2434,64 +3702,105 @@ msgid "" "now returns ``('.ipython', '')`` instead of ``('', '.ipython')``. (:issue:" "`1115886`)" msgstr "" +"En el módulo :mod:`os.path`, la función :func:`splitext` ha sido modificada " +"para no dividir los caracteres de punto inicial. Esto produce mejores " +"resultados cuando se opera con archivos de puntos de Unix. Por ejemplo, ``os." +"path.splitext('.ipython')`` ahora devuelve ``('.ipython', '')`` en lugar de " +"``('', '.ipython')``. (:issue:`1115886`)" #: ../Doc/whatsnew/2.6.rst:2201 +#, fuzzy msgid "" "A new function, ``os.path.relpath(path, start='.')``, returns a relative " "path from the ``start`` path, if it's supplied, or from the current working " "directory to the destination ``path``. (Contributed by Richard Barran; :" "issue:`1339796`.)" msgstr "" +"Una nueva función, ``os.path.relpath(path, start='.')``, devuelve una ruta " +"relativa desde la ruta ``start``, si se suministra, o desde el directorio de " +"trabajo actual hasta el destino ``path``. (Contribución de Richard Barran; :" +"issue:`1339796`.)" #: ../Doc/whatsnew/2.6.rst:2206 +#, fuzzy msgid "" "On Windows, :func:`os.path.expandvars` will now expand environment variables " "given in the form \"%var%\", and \"~user\" will be expanded into the user's " "home directory path. (Contributed by Josiah Carlson; :issue:`957650`.)" msgstr "" +"En Windows, :func:`os.path.expandvars` ahora expandirá las variables de " +"entorno dadas en la forma \"%var%\", y \"~user\" se expandirá en la ruta del " +"directorio personal del usuario. (Contribución de Josiah Carlson; :issue:" +"`957650`.)" #: ../Doc/whatsnew/2.6.rst:2211 +#, fuzzy msgid "" "The Python debugger provided by the :mod:`pdb` module gained a new command: " "\"run\" restarts the Python program being debugged and can optionally take " "new command-line arguments for the program. (Contributed by Rocky " "Bernstein; :issue:`1393667`.)" msgstr "" +"El depurador de Python proporcionado por el módulo :mod:`pdb` ganó un nuevo " +"comando: \"run\" reinicia el programa Python que se está depurando y puede " +"tomar opcionalmente nuevos argumentos de línea de comandos para el programa. " +"(Contribución de Rocky Bernstein; :issue:`1393667`.)" #: ../Doc/whatsnew/2.6.rst:2216 +#, fuzzy msgid "" "The :func:`pdb.post_mortem` function, used to begin debugging a traceback, " "will now use the traceback returned by :func:`sys.exc_info` if no traceback " "is supplied. (Contributed by Facundo Batista; :issue:`1106316`.)" msgstr "" +"La función :func:`pdb.post_mortem`, utilizada para iniciar la depuración de " +"un traceback, utilizará ahora el traceback devuelto por :func:`sys.exc_info` " +"si no se suministra ningún traceback. (Contribuido por Facundo Batista; :" +"issue:`1106316`.)" #: ../Doc/whatsnew/2.6.rst:2221 +#, fuzzy msgid "" "The :mod:`pickletools` module now has an :func:`optimize` function that " "takes a string containing a pickle and removes some unused opcodes, " "returning a shorter pickle that contains the same data structure. " "(Contributed by Raymond Hettinger.)" msgstr "" +"El módulo :mod:`pickletools` tiene ahora una función :func:`optimize` que " +"toma una cadena que contiene un pickle y elimina algunos opcodes no " +"utilizados, devolviendo un pickle más corto que contiene la misma estructura " +"de datos. (Contribución de Raymond Hettinger)" #: ../Doc/whatsnew/2.6.rst:2226 +#, fuzzy msgid "" "A :func:`get_data` function was added to the :mod:`pkgutil` module that " "returns the contents of resource files included with an installed Python " "package. For example::" msgstr "" +"Se ha añadido una función :func:`get_data` al módulo :mod:`pkgutil` que " +"devuelve el contenido de los archivos de recursos incluidos con un paquete " +"Python instalado. Por ejemplo::" #: ../Doc/whatsnew/2.6.rst:2241 +#, fuzzy msgid "(Contributed by Paul Moore; :issue:`2439`.)" -msgstr "" +msgstr "(Contribución de Paul Moore; :issue:`2439`.)" #: ../Doc/whatsnew/2.6.rst:2243 +#, fuzzy msgid "" "The :mod:`pyexpat` module's :class:`Parser` objects now allow setting their :" "attr:`buffer_size` attribute to change the size of the buffer used to hold " "character data. (Contributed by Achim Gaedke; :issue:`1137`.)" msgstr "" +"Los objetos :mod:`pyexpat` del módulo :class:`Parser` permiten ahora " +"establecer su atributo :attr:`buffer_size` para cambiar el tamaño del buffer " +"utilizado para mantener los datos de caracteres. (Contribución de Achim " +"Gaedke; :issue:`1137`.)" #: ../Doc/whatsnew/2.6.rst:2248 +#, fuzzy msgid "" "The :mod:`Queue` module now provides queue variants that retrieve entries in " "different orders. The :class:`PriorityQueue` class stores queued items in a " @@ -2499,8 +3808,15 @@ msgid "" "the most recently added entries first, meaning that it behaves like a stack. " "(Contributed by Raymond Hettinger.)" msgstr "" +"El módulo :mod:`Queue` proporciona ahora variantes de colas que recuperan " +"las entradas en diferentes órdenes. La clase :class:`PriorityQueue` " +"almacena los elementos en cola en un montón y los recupera en orden de " +"prioridad, y :class:`LifoQueue` recupera primero las entradas añadidas más " +"recientemente, lo que significa que se comporta como una pila. (Contribución " +"de Raymond Hettinger)" #: ../Doc/whatsnew/2.6.rst:2255 +#, fuzzy msgid "" "The :mod:`random` module's :class:`Random` objects can now be pickled on a " "32-bit system and unpickled on a 64-bit system, and vice versa. " @@ -2508,8 +3824,15 @@ msgid "" "objects can't be unpickled correctly on earlier versions of Python. " "(Contributed by Shawn Ligocki; :issue:`1727780`.)" msgstr "" +"Los objetos :class:`Random` del módulo :mod:`random` ahora pueden ser " +"decapados en un sistema de 32 bits y desempaquetados en un sistema de 64 " +"bits, y viceversa. Desafortunadamente, este cambio también significa que " +"los objetos :class:`Random` de Python 2.6 no pueden ser desempaquetados " +"correctamente en versiones anteriores de Python. (Contribuido por Shawn " +"Ligocki; :issue:`1727780`.)" #: ../Doc/whatsnew/2.6.rst:2262 +#, fuzzy msgid "" "The new ``triangular(low, high, mode)`` function returns random numbers " "following a triangular distribution. The returned values are between *low* " @@ -2517,15 +3840,26 @@ msgid "" "frequently occurring value in the distribution. (Contributed by Wladmir van " "der Laan and Raymond Hettinger; :issue:`1681432`.)" msgstr "" +"La nueva función ``triangular(low, high, mode)`` devuelve números aleatorios " +"siguiendo una distribución triangular. Los valores devueltos están entre " +"*bajos* y *altos*, sin incluir los propios *altos*, y con *modo* como valor " +"más frecuente en la distribución. (Contribución de Wladmir van der Laan y " +"Raymond Hettinger; :issue:`1681432`.)" #: ../Doc/whatsnew/2.6.rst:2269 +#, fuzzy msgid "" "Long regular expression searches carried out by the :mod:`re` module will " "check for signals being delivered, so time-consuming searches can now be " "interrupted. (Contributed by Josh Hoyt and Ralf Schmitt; :issue:`846388`.)" msgstr "" +"Las búsquedas de expresiones regulares largas llevadas a cabo por el módulo :" +"mod:`re` comprobarán la entrega de señales, por lo que ahora se pueden " +"interrumpir las búsquedas que consumen mucho tiempo. (Contribución de Josh " +"Hoyt y Ralf Schmitt; :issue:`846388`.)" #: ../Doc/whatsnew/2.6.rst:2274 +#, fuzzy msgid "" "The regular expression module is implemented by compiling bytecodes for a " "tiny regex-specific virtual machine. Untrusted code could create malicious " @@ -2533,23 +3867,40 @@ msgid "" "verifier for the regex bytecode. (Contributed by Guido van Rossum from work " "for Google App Engine; :issue:`3487`.)" msgstr "" +"El módulo de expresiones regulares se implementa compilando bytecodes para " +"una pequeña máquina virtual específica de regex. El código no fiable podría " +"crear cadenas maliciosas de código de bytes directamente y causar caídas, " +"por lo que Python 2.6 incluye un verificador para el código de bytes regex. " +"(Contribuido por Guido van Rossum del trabajo para Google App Engine; :issue:" +"`3487`.)" #: ../Doc/whatsnew/2.6.rst:2281 +#, fuzzy msgid "" "The :mod:`rlcompleter` module's :meth:`Completer.complete()` method will now " "ignore exceptions triggered while evaluating a name. (Fixed by Lorenz " "Quack; :issue:`2250`.)" msgstr "" +"El método :meth:`Completer.complete()` del módulo :mod:`rlcompleter` ahora " +"ignorará las excepciones que se produzcan al evaluar un nombre. (Corregido " +"por Lorenz Quack; :issue:`2250`.)" #: ../Doc/whatsnew/2.6.rst:2285 +#, fuzzy msgid "" "The :mod:`sched` module's :class:`scheduler` instances now have a read-only :" "attr:`queue` attribute that returns the contents of the scheduler's queue, " "represented as a list of named tuples with the fields ``(time, priority, " "action, argument)``. (Contributed by Raymond Hettinger; :issue:`1861`.)" msgstr "" +"Las instancias :mod:`sched` del módulo :class:`scheduler` tienen ahora un " +"atributo :attr:`queue` de sólo lectura que devuelve el contenido de la cola " +"del planificador, representado como una lista de tuplas con nombre con los " +"campos ``(tiempo, prioridad, acción, argumento)``. (Contribución de Raymond " +"Hettinger; :issue:`1861`.)" #: ../Doc/whatsnew/2.6.rst:2291 +#, fuzzy msgid "" "The :mod:`select` module now has wrapper functions for the Linux :c:func:" "`epoll` and BSD :c:func:`kqueue` system calls. :meth:`modify` method was " @@ -2558,16 +3909,28 @@ msgid "" "modifying the recorded event mask for that file. (Contributed by Christian " "Heimes; :issue:`1657`.)" msgstr "" +"El módulo :mod:`select` tiene ahora funciones de envoltura para las llamadas " +"al sistema Linux :c:func:`epoll` y BSD :c:func:`kqueue`. Se ha añadido el " +"método :meth:`modify` a los objetos :class:`poll` existentes; ``pollobj." +"modify(fd, eventmask)`` toma un descriptor de fichero o un objeto de fichero " +"y una máscara de evento, modificando la máscara de evento registrada para " +"ese fichero. (Contribución de Christian Heimes; :issue:`1657`.)" #: ../Doc/whatsnew/2.6.rst:2299 +#, fuzzy msgid "" "The :func:`shutil.copytree` function now has an optional *ignore* argument " "that takes a callable object. This callable will receive each directory " "path and a list of the directory's contents, and returns a list of names " "that will be ignored, not copied." msgstr "" +"La función :func:`shutil.copytree` tiene ahora un argumento opcional " +"*ignore* que toma un objeto callable. Esta llamada recibirá cada ruta de " +"directorio y una lista del contenido del directorio, y devuelve una lista de " +"nombres que serán ignorados, no copiados." #: ../Doc/whatsnew/2.6.rst:2304 +#, fuzzy msgid "" "The :mod:`shutil` module also provides an :func:`ignore_patterns` function " "for use with this new parameter. :func:`ignore_patterns` takes an arbitrary " @@ -2576,12 +3939,21 @@ msgid "" "example copies a directory tree, but skips both :file:`.svn` directories and " "Emacs backup files, which have names ending with '~'::" msgstr "" +"El módulo :mod:`shutil` también proporciona una función :func:" +"`ignore_patterns` para su uso con este nuevo parámetro. :func:" +"`ignore_patterns` toma un número arbitrario de patrones de estilo glob y " +"devuelve una llamada que ignorará cualquier archivo o directorio que " +"coincida con cualquiera de estos patrones. El siguiente ejemplo copia un " +"árbol de directorios, pero omite los directorios :file:`.svn` y los ficheros " +"de copia de seguridad de Emacs, que tienen nombres que terminan en '~'::" #: ../Doc/whatsnew/2.6.rst:2315 +#, fuzzy msgid "(Contributed by Tarek Ziadé; :issue:`2663`.)" -msgstr "" +msgstr "(Contribución de Tarek Ziadé; :issue:`2663`.)" #: ../Doc/whatsnew/2.6.rst:2317 +#, fuzzy msgid "" "Integrating signal handling with GUI handling event loops like those used by " "Tkinter or GTk+ has long been a problem; most software ends up polling, " @@ -2592,8 +3964,18 @@ msgid "" "a C-level function, :c:func:`PySignal_SetWakeupFd`, for setting the " "descriptor." msgstr "" +"Integrar el manejo de señales con los bucles de eventos de manejo de la " +"interfaz gráfica de usuario (GUI), como los utilizados por Tkinter o GTk+, " +"ha sido durante mucho tiempo un problema; la mayoría del software acaba " +"sondeando, despertando cada fracción de segundo para comprobar si se ha " +"producido algún evento de la GUI. El módulo :mod:`signal` puede ahora hacer " +"esto más eficiente. Llamando a ``signal.set_wakeup_fd(fd)`` se establece un " +"descriptor de fichero a utilizar; cuando se recibe una señal, se escribe un " +"byte en ese descriptor de fichero. También hay una función en C, :c:func:" +"`PySignal_SetWakeupFd`, para establecer el descriptor." #: ../Doc/whatsnew/2.6.rst:2327 +#, fuzzy msgid "" "Event loops will use this by opening a pipe to create two descriptors, one " "for reading and one for writing. The writable descriptor will be passed to :" @@ -2602,19 +3984,32 @@ msgid "" "`poll`. On receiving a signal, a byte will be written and the main event " "loop will be woken up, avoiding the need to poll." msgstr "" +"Los bucles de eventos utilizarán esto abriendo una tubería para crear dos " +"descriptores, uno de lectura y otro de escritura. El descriptor de " +"escritura se pasará a :func:`set_wakeup_fd`, y el descriptor de lectura se " +"añadirá a la lista de descriptores monitorizados por el bucle de eventos " +"mediante :c:func:`select` o :c:func:`poll`. Al recibir una señal, se " +"escribirá un byte y se despertará el bucle de eventos principal, evitando la " +"necesidad de hacer un sondeo." #: ../Doc/whatsnew/2.6.rst:2335 +#, fuzzy msgid "(Contributed by Adam Olsen; :issue:`1583`.)" -msgstr "" +msgstr "(Contribución de Adam Olsen; :issue:`1583`.)" #: ../Doc/whatsnew/2.6.rst:2337 +#, fuzzy msgid "" "The :func:`siginterrupt` function is now available from Python code, and " "allows changing whether signals can interrupt system calls or not. " "(Contributed by Ralf Schmitt.)" msgstr "" +"La función :func:`siginterrupt` está ahora disponible desde el código " +"Python, y permite cambiar si las señales pueden interrumpir las llamadas al " +"sistema o no. (Contribución de Ralf Schmitt)" #: ../Doc/whatsnew/2.6.rst:2341 +#, fuzzy msgid "" "The :func:`setitimer` and :func:`getitimer` functions have also been added " "(where they're available). :func:`setitimer` allows setting interval timers " @@ -2622,8 +4017,15 @@ msgid "" "time, measured in wall-clock time, consumed process time, or combined process" "+system time. (Contributed by Guilherme Polo; :issue:`2240`.)" msgstr "" +"También se han añadido las funciones :func:`setitimer` y :func:`getitimer` " +"(cuando están disponibles). :func:`setitimer` permite establecer " +"temporizadores de intervalo que harán que se entregue una señal al proceso " +"después de un tiempo especificado, medido en tiempo de reloj de pared, " +"tiempo de proceso consumido, o tiempo combinado de proceso+sistema. " +"(Contribuido por Guilherme Polo; :issue:`2240`.)" #: ../Doc/whatsnew/2.6.rst:2348 +#, fuzzy msgid "" "The :mod:`smtplib` module now supports SMTP over SSL thanks to the addition " "of the :class:`SMTP_SSL` class. This class supports an interface identical " @@ -2632,31 +4034,52 @@ msgid "" "specifies a timeout for the initial connection attempt, measured in " "seconds. (Contributed by Facundo Batista.)" msgstr "" +"El módulo :mod:`smtplib` ahora soporta SMTP sobre SSL gracias a la adición " +"de la clase :class:`SMTP_SSL`. Esta clase soporta una interfaz idéntica a la " +"clase :class:`SMTP` existente. (Contribuido por Monty Taylor.) Ambos " +"constructores de la clase también tienen un parámetro opcional ``timeout`` " +"que especifica un tiempo de espera para el intento de conexión inicial, " +"medido en segundos. (Contribuido por Facundo Batista.)" #: ../Doc/whatsnew/2.6.rst:2356 +#, fuzzy msgid "" "An implementation of the LMTP protocol (:rfc:`2033`) was also added to the " "module. LMTP is used in place of SMTP when transferring e-mail between " "agents that don't manage a mail queue. (LMTP implemented by Leif Hedstrom; :" "issue:`957003`.)" msgstr "" +"También se ha añadido al módulo una implementación del protocolo LMTP (:rfc:" +"`2033`). LMTP se utiliza en lugar de SMTP cuando se transfiere correo " +"electrónico entre agentes que no gestionan una cola de correo. (LMTP " +"implementado por Leif Hedstrom; :issue:`957003`.)" #: ../Doc/whatsnew/2.6.rst:2361 +#, fuzzy msgid "" ":meth:`SMTP.starttls` now complies with :rfc:`3207` and forgets any " "knowledge obtained from the server not obtained from the TLS negotiation " "itself. (Patch contributed by Bill Fenner; :issue:`829951`.)" msgstr "" +":meth:`SMTP.starttls` ahora cumple con :rfc:`3207` y olvida cualquier " +"conocimiento obtenido del servidor que no se haya obtenido de la propia " +"negociación TLS. (Parche aportado por Bill Fenner; :issue:`829951`.)" #: ../Doc/whatsnew/2.6.rst:2366 +#, fuzzy msgid "" "The :mod:`socket` module now supports TIPC (http://tipc.sourceforge.net/), a " "high-performance non-IP-based protocol designed for use in clustered " "environments. TIPC addresses are 4- or 5-tuples. (Contributed by Alberto " "Bertogli; :issue:`1646`.)" msgstr "" +"El módulo :mod:`socket` soporta ahora TIPC (http://tipc.sourceforge.net/), " +"un protocolo de alto rendimiento no basado en IP y diseñado para su uso en " +"entornos agrupados. Las direcciones TIPC son de 4 o 5 tuplas. (Contribución " +"de Alberto Bertogli; :issue:`1646`.)" #: ../Doc/whatsnew/2.6.rst:2371 +#, fuzzy msgid "" "A new function, :func:`create_connection`, takes an address and connects to " "it using an optional timeout value, returning the connected socket object. " @@ -2665,8 +4088,16 @@ msgid "" "instead of ``socket(socket.AF_INET, ...)`` may be all that's required to " "make your code work with IPv6." msgstr "" +"Una nueva función, :func:`create_connection`, toma una dirección y se " +"conecta a ella utilizando un valor opcional de tiempo de espera, devolviendo " +"el objeto socket conectado. Esta función también busca el tipo de dirección " +"y se conecta a ella usando IPv4 o IPv6 según sea el caso. Cambiar su código " +"para usar :func:`create_connection` en lugar de ``socket(socket." +"AF_INET, ...)`` puede ser todo lo que se necesita para que su código " +"funcione con IPv6." #: ../Doc/whatsnew/2.6.rst:2379 +#, fuzzy msgid "" "The base classes in the :mod:`SocketServer` module now support calling a :" "meth:`handle_timeout` method after a span of inactivity specified by the " @@ -2676,20 +4107,34 @@ msgid "" "shutdown request. (Contributed by Pedro Werneck and Jeffrey Yasskin; :issue:" "`742598`, :issue:`1193577`.)" msgstr "" +"Las clases base del módulo :mod:`SocketServer` ahora soportan la llamada a " +"un método :meth:`handle_timeout` después de un periodo de inactividad " +"especificado por el atributo :attr:`timeout` del servidor. (Contribuido por " +"Michael Pomraning.) El método :meth:`serve_forever` ahora toma un intervalo " +"de sondeo opcional medido en segundos, controlando la frecuencia con la que " +"el servidor comprobará si hay una solicitud de cierre. (Contribuido por " +"Pedro Werneck y Jeffrey Yasskin; :issue:`742598`, :issue:`1193577`.)" #: ../Doc/whatsnew/2.6.rst:2388 +#, fuzzy msgid "" "The :mod:`sqlite3` module, maintained by Gerhard Häring, has been updated " "from version 2.3.2 in Python 2.5 to version 2.4.1." msgstr "" +"El módulo :mod:`sqlite3`, mantenido por Gerhard Häring, ha sido actualizado " +"de la versión 2.3.2 en Python 2.5 a la versión 2.4.1." #: ../Doc/whatsnew/2.6.rst:2392 +#, fuzzy msgid "" "The :mod:`struct` module now supports the C99 :c:type:`_Bool` type, using " "the format character ``'?'``. (Contributed by David Remahl.)" msgstr "" +"El módulo :mod:`struct` soporta ahora el tipo C99 :c:type:`_Bool`, " +"utilizando el carácter de formato ``'?'``. (Contribución de David Remahl.)" #: ../Doc/whatsnew/2.6.rst:2396 +#, fuzzy msgid "" "The :class:`Popen` objects provided by the :mod:`subprocess` module now " "have :meth:`terminate`, :meth:`kill`, and :meth:`send_signal` methods. On " @@ -2697,8 +4142,14 @@ msgid "" "all these methods are aliases for the Win32 API function :c:func:" "`TerminateProcess`. (Contributed by Christian Heimes.)" msgstr "" +"Los objetos :class:`Popen` proporcionados por el módulo :mod:`subprocess` " +"tienen ahora métodos :meth:`terminate`, :meth:`kill` y :meth:`send_signal`. " +"En Windows, :meth:`send_signal` sólo soporta la señal :const:`SIGTERM`, y " +"todos estos métodos son alias de la función de la API Win32 :c:func:" +"`TerminateProcess`. (Contribuido por Christian Heimes.)" #: ../Doc/whatsnew/2.6.rst:2403 +#, fuzzy msgid "" "A new variable in the :mod:`sys` module, :attr:`float_info`, is an object " "containing information derived from the :file:`float.h` file about the " @@ -2707,8 +4158,16 @@ msgid "" "difference between 1.0 and the next largest value representable), and " "several others. (Contributed by Christian Heimes; :issue:`1534`.)" msgstr "" +"Una nueva variable en el módulo :mod:`sys`, :attr:`float_info`, es un objeto " +"que contiene información derivada del archivo :file:`float.h` sobre el " +"soporte de punto flotante de la plataforma. Los atributos de este objeto " +"incluyen :attr:`mant_dig` (número de dígitos en la mantisa), :attr:`epsilon` " +"(diferencia más pequeña entre 1.0 y el siguiente valor más grande " +"representable), y varios otros. (Contribuido por Christian Heimes; :issue:" +"`1534`.)" #: ../Doc/whatsnew/2.6.rst:2411 +#, fuzzy msgid "" "Another new variable, :attr:`dont_write_bytecode`, controls whether Python " "writes any :file:`.pyc` or :file:`.pyo` files on importing a module. If this " @@ -2719,8 +4178,18 @@ msgid "" "change the value of this variable to control whether bytecode files are " "written or not. (Contributed by Neal Norwitz and Georg Brandl.)" msgstr "" +"Otra nueva variable, :attr:`dont_write_bytecode`, controla si Python escribe " +"algún archivo :file:`.pyc` o :file:`.pyo` al importar un módulo. Si esta " +"variable es verdadera, los archivos compilados no se escriben. La variable " +"se establece inicialmente al iniciar el intérprete de Python con la opción :" +"option:`-B`, o estableciendo la variable de entorno :envvar:" +"`PYTHONDONTWRITEBYTECODE` antes de ejecutar el intérprete. El código de " +"Python puede cambiar posteriormente el valor de esta variable para controlar " +"si los archivos de código de bytes se escriben o no. (Contribución de Neal " +"Norwitz y Georg Brandl)" #: ../Doc/whatsnew/2.6.rst:2422 +#, fuzzy msgid "" "Information about the command-line arguments supplied to the Python " "interpreter is available by reading attributes of a named tuple available as " @@ -2728,8 +4197,15 @@ msgid "" "was executed in verbose mode, :attr:`debug` is true in debugging mode, etc. " "These attributes are all read-only. (Contributed by Christian Heimes.)" msgstr "" +"La información sobre los argumentos de la línea de comandos suministrados al " +"intérprete de Python está disponible leyendo los atributos de una tupla con " +"nombre disponible como ``sys.flags``. Por ejemplo, el atributo :attr:" +"`verbose` es verdadero si Python fue ejecutado en modo verbose, :attr:" +"`debug` es verdadero en modo debugging, etc. Todos estos atributos son de " +"sólo lectura. (Contribución de Christian Heimes)" #: ../Doc/whatsnew/2.6.rst:2430 +#, fuzzy msgid "" "A new function, :func:`getsizeof`, takes a Python object and returns the " "amount of memory used by the object, measured in bytes. Built-in objects " @@ -2737,23 +4213,39 @@ msgid "" "meth:`__sizeof__` method to return the object's size. (Contributed by Robert " "Schuppenies; :issue:`2898`.)" msgstr "" +"Una nueva función, :func:`getsizeof`, toma un objeto Python y devuelve la " +"cantidad de memoria utilizada por el objeto, medida en bytes. Los objetos " +"incorporados devuelven resultados correctos; las extensiones de terceros " +"pueden no hacerlo, pero pueden definir un método :meth:`__sizeof__` para " +"devolver el tamaño del objeto. (Contribución de Robert Schuppenies; :issue:" +"`2898`.)" #: ../Doc/whatsnew/2.6.rst:2437 +#, fuzzy msgid "" "It's now possible to determine the current profiler and tracer functions by " "calling :func:`sys.getprofile` and :func:`sys.gettrace`. (Contributed by " "Georg Brandl; :issue:`1648`.)" msgstr "" +"Ahora es posible determinar las funciones actuales del perfilador y del " +"trazador llamando a :func:`sys.getprofile` y :func:`sys.gettrace`. " +"(Contribuido por Georg Brandl; :issue:`1648`.)" #: ../Doc/whatsnew/2.6.rst:2441 +#, fuzzy msgid "" "The :mod:`tarfile` module now supports POSIX.1-2001 (pax) tarfiles in " "addition to the POSIX.1-1988 (ustar) and GNU tar formats that were already " "supported. The default format is GNU tar; specify the ``format`` parameter " "to open a file using a different format::" msgstr "" +"El módulo :mod:`tarfile` soporta ahora archivos tar POSIX.1-2001 (pax) " +"además de los formatos POSIX.1-1988 (ustar) y GNU tar que ya estaban " +"soportados. El formato por defecto es GNU tar; especifique el parámetro " +"``format`` para abrir un archivo con un formato diferente::" #: ../Doc/whatsnew/2.6.rst:2449 +#, fuzzy msgid "" "The new ``encoding`` and ``errors`` parameters specify an encoding and an " "error handling scheme for character conversions. ``'strict'``, " @@ -2762,8 +4254,16 @@ msgid "" "with their UTF-8 representation. (Character conversions occur because the " "PAX format supports Unicode filenames, defaulting to UTF-8 encoding.)" msgstr "" +"Los nuevos parámetros ``encoding`` y ``errors`` especifican una codificación " +"y un esquema de manejo de errores para las conversiones de caracteres. " +"``'strict'``, ``'ignore'``, y ``'replace'`` son las tres formas estándar en " +"las que Python puede manejar los errores; ``'utf-8'`` es un valor especial " +"que reemplaza los caracteres erróneos con su representación UTF-8. (Las " +"conversiones de caracteres ocurren porque el formato PAX soporta nombres de " +"archivo Unicode, por defecto con codificación UTF-8)" #: ../Doc/whatsnew/2.6.rst:2457 +#, fuzzy msgid "" "The :meth:`TarFile.add` method now accepts an ``exclude`` argument that's a " "function that can be used to exclude certain filenames from an archive. The " @@ -2772,81 +4272,128 @@ msgid "" "initially passed to :meth:`add` and to the names of files in recursively-" "added directories." msgstr "" +"El método :meth:`TarFile.add` ahora acepta un argumento ``exclude`` que es " +"una función que se puede utilizar para excluir ciertos nombres de archivo de " +"un archivo. La función debe tomar un nombre de archivo y devolver true si el " +"archivo debe ser excluido o false si debe ser archivado. La función se " +"aplica tanto al nombre inicialmente pasado a :meth:`add` como a los nombres " +"de los archivos en los directorios añadidos recursivamente." #: ../Doc/whatsnew/2.6.rst:2465 +#, fuzzy msgid "(All changes contributed by Lars Gustäbel)." -msgstr "" +msgstr "(Todos los cambios han sido aportados por Lars Gustäbel)." #: ../Doc/whatsnew/2.6.rst:2467 +#, fuzzy msgid "" "An optional ``timeout`` parameter was added to the :class:`telnetlib.Telnet` " "class constructor, specifying a timeout measured in seconds. (Added by " "Facundo Batista.)" msgstr "" +"Se agregó un parámetro opcional ``timeout`` al constructor de la clase :" +"class:`telnetlib.Telnet`, especificando un tiempo de espera medido en " +"segundos. (Añadido por Facundo Batista)" #: ../Doc/whatsnew/2.6.rst:2471 +#, fuzzy msgid "" "The :class:`tempfile.NamedTemporaryFile` class usually deletes the temporary " "file it created when the file is closed. This behaviour can now be changed " "by passing ``delete=False`` to the constructor. (Contributed by Damien " "Miller; :issue:`1537850`.)" msgstr "" +"La clase :class:`tempfile.NamedTemporaryFile` suele borrar el archivo " +"temporal que ha creado cuando se cierra el archivo. Este comportamiento se " +"puede cambiar pasando ``delete=False`` al constructor. (Contribución de " +"Damien Miller; :issue:`1537850`.)" #: ../Doc/whatsnew/2.6.rst:2476 +#, fuzzy msgid "" "A new class, :class:`SpooledTemporaryFile`, behaves like a temporary file " "but stores its data in memory until a maximum size is exceeded. On reaching " "that limit, the contents will be written to an on-disk temporary file. " "(Contributed by Dustin J. Mitchell.)" msgstr "" +"Una nueva clase, :class:`SpooledTemporaryFile`, se comporta como un archivo " +"temporal pero almacena sus datos en memoria hasta que se supera un tamaño " +"máximo. Al llegar a ese límite, el contenido se escribirá en un archivo " +"temporal en el disco. (Contribución de Dustin J. Mitchell)" #: ../Doc/whatsnew/2.6.rst:2481 +#, fuzzy msgid "" "The :class:`NamedTemporaryFile` and :class:`SpooledTemporaryFile` classes " "both work as context managers, so you can write ``with tempfile." "NamedTemporaryFile() as tmp: ...``. (Contributed by Alexander Belopolsky; :" "issue:`2021`.)" msgstr "" +"Las clases :class:`NamedTemporaryFile` y :class:`SpooledTemporaryFile` " +"funcionan como gestores de contexto, por lo que puedes escribir ``con " +"tempfile.NamedTemporaryFile() como tmp: ...``. (Contribuido por Alexander " +"Belopolsky; :issue:`2021`.)" #: ../Doc/whatsnew/2.6.rst:2486 +#, fuzzy msgid "" "The :mod:`test.test_support` module gained a number of context managers " "useful for writing tests. :func:`EnvironmentVarGuard` is a context manager " "that temporarily changes environment variables and automatically restores " "them to their old values." msgstr "" +"El módulo :mod:`test.test_support` obtuvo una serie de gestores de contexto " +"útiles para escribir pruebas. :func:`EnvironmentVarGuard` es un gestor de " +"contexto que cambia temporalmente las variables de entorno y las restaura " +"automáticamente a sus valores anteriores." #: ../Doc/whatsnew/2.6.rst:2492 +#, fuzzy msgid "" "Another context manager, :class:`TransientResource`, can surround calls to " "resources that may or may not be available; it will catch and ignore a " "specified list of exceptions. For example, a network test may ignore " "certain failures when connecting to an external web site::" msgstr "" +"Otro gestor de contexto, :class:`TransientResource`, puede rodear las " +"llamadas a recursos que pueden o no estar disponibles; atrapará e ignorará " +"una lista especificada de excepciones. Por ejemplo, una prueba de red puede " +"ignorar ciertos fallos al conectarse a un sitio web externo::" #: ../Doc/whatsnew/2.6.rst:2503 +#, fuzzy msgid "" "Finally, :func:`check_warnings` resets the :mod:`warning` module's warning " "filters and returns an object that will record all warning messages " "triggered (:issue:`3781`)::" msgstr "" +"Por último, :func:`check_warnings` restablece los filtros de advertencia del " +"módulo :mod:`warning` y devuelve un objeto que registrará todos los mensajes " +"de advertencia activados (:issue:`3781`)::" #: ../Doc/whatsnew/2.6.rst:2513 +#, fuzzy msgid "(Contributed by Brett Cannon.)" -msgstr "" +msgstr "(Contribución de Brett Cannon.)" #: ../Doc/whatsnew/2.6.rst:2515 +#, fuzzy msgid "" "The :mod:`textwrap` module can now preserve existing whitespace at the " "beginnings and ends of the newly-created lines by specifying " "``drop_whitespace=False`` as an argument::" msgstr "" +"El módulo :mod:`textwrap` ahora puede conservar los espacios en blanco " +"existentes al principio y al final de las líneas recién creadas " +"especificando ``drop_whitespace=False`` como argumento::" #: ../Doc/whatsnew/2.6.rst:2534 +#, fuzzy msgid "(Contributed by Dwayne Bailey; :issue:`1581073`.)" -msgstr "" +msgstr "(Contribución de Dwayne Bailey; :issue:`1581073`.)" #: ../Doc/whatsnew/2.6.rst:2536 +#, fuzzy msgid "" "The :mod:`threading` module API is being changed to use properties such as :" "attr:`daemon` instead of :meth:`setDaemon` and :meth:`isDaemon` methods, and " @@ -2858,15 +4405,30 @@ msgid "" "in any 2.x version. (Carried out by several people, most notably Benjamin " "Peterson.)" msgstr "" +"La API del módulo :mod:`threading` se ha cambiado para utilizar propiedades " +"como :attr:`daemon` en lugar de los métodos :meth:`setDaemon` y :meth:" +"`isDaemon`, y algunos métodos se han renombrado para utilizar guiones bajos " +"en lugar de mayúsculas; por ejemplo, el método :meth:`activeCount` se ha " +"renombrado a :meth:`active_count`. Tanto la versión 2.6 como la 3.0 del " +"módulo soportan las mismas propiedades y métodos renombrados, pero no " +"eliminan los métodos antiguos. No se ha fijado una fecha para la " +"eliminación de las antiguas APIs en Python 3.x; las antiguas APIs no se " +"eliminarán en ninguna versión 2.x. (Llevado a cabo por varias personas, " +"sobre todo por Benjamin Peterson)" #: ../Doc/whatsnew/2.6.rst:2547 +#, fuzzy msgid "" "The :mod:`threading` module's :class:`Thread` objects gained an :attr:" "`ident` property that returns the thread's identifier, a nonzero integer. " "(Contributed by Gregory P. Smith; :issue:`2871`.)" msgstr "" +"Los objetos :mod:`threading` del módulo :class:`Thread` han ganado una " +"propiedad :attr:`ident` que devuelve el identificador del hilo, un entero no " +"nulo. (Contribución de Gregory P. Smith; :issue:`2871`.)" #: ../Doc/whatsnew/2.6.rst:2552 +#, fuzzy msgid "" "The :mod:`timeit` module now accepts callables as well as strings for the " "statement being timed and for the setup code. Two convenience functions were " @@ -2875,96 +4437,150 @@ msgid "" "instance and call the corresponding method. (Contributed by Erik Demaine; :" "issue:`1533909`.)" msgstr "" +"El módulo :mod:`timeit` acepta ahora callables así como cadenas para la " +"sentencia que se está cronometrando y para el código de configuración. Se " +"han añadido dos funciones para crear instancias de :class:`Timer`: " +"``repeat(stmt, setup, time, repeat, number)`` y ``timeit(stmt, setup, time, " +"number)`` crean una instancia y llaman al método correspondiente. " +"(Contribución de Erik Demaine; :issue:`1533909`.)" #: ../Doc/whatsnew/2.6.rst:2561 +#, fuzzy msgid "" "The :mod:`Tkinter` module now accepts lists and tuples for options, " "separating the elements by spaces before passing the resulting value to Tcl/" "Tk. (Contributed by Guilherme Polo; :issue:`2906`.)" msgstr "" +"El módulo :mod:`Tkinter` ahora acepta listas y tuplas para las opciones, " +"separando los elementos por espacios antes de pasar el valor resultante a " +"Tcl/Tk. (Contribuido por Guilherme Polo; :issue:`2906`.)" #: ../Doc/whatsnew/2.6.rst:2566 +#, fuzzy msgid "" "The :mod:`turtle` module for turtle graphics was greatly enhanced by Gregor " "Lingl. New features in the module include:" msgstr "" +"El módulo :mod:`turtle` para los gráficos de tortugas ha sido muy mejorado " +"por Gregor Lingl. Las nuevas características del módulo incluyen:" #: ../Doc/whatsnew/2.6.rst:2569 +#, fuzzy msgid "Better animation of turtle movement and rotation." -msgstr "" +msgstr "Mejor animación del movimiento y la rotación de la tortuga." #: ../Doc/whatsnew/2.6.rst:2570 +#, fuzzy msgid "" "Control over turtle movement using the new :meth:`delay`, :meth:`tracer`, " "and :meth:`speed` methods." msgstr "" +"Control del movimiento de las tortugas mediante los nuevos métodos :meth:" +"`retraso`, :meth:`tracer` y :meth:`velocidad`." #: ../Doc/whatsnew/2.6.rst:2572 +#, fuzzy msgid "" "The ability to set new shapes for the turtle, and to define a new coordinate " "system." msgstr "" +"La posibilidad de establecer nuevas formas para la tortuga y de definir un " +"nuevo sistema de coordenadas." #: ../Doc/whatsnew/2.6.rst:2574 +#, fuzzy msgid "Turtles now have an :meth:`undo()` method that can roll back actions." msgstr "" +"Las tortugas ahora tienen un método :meth:`undo()` que puede revertir las " +"acciones." #: ../Doc/whatsnew/2.6.rst:2575 +#, fuzzy msgid "" "Simple support for reacting to input events such as mouse and keyboard " "activity, making it possible to write simple games." msgstr "" +"Soporte sencillo para reaccionar a eventos de entrada como la actividad del " +"ratón y del teclado, lo que permite escribir juegos sencillos." #: ../Doc/whatsnew/2.6.rst:2577 +#, fuzzy msgid "" "A :file:`turtle.cfg` file can be used to customize the starting appearance " "of the turtle's screen." msgstr "" +"Se puede utilizar un archivo :file:`turtle.cfg` para personalizar la " +"apariencia inicial de la pantalla de la tortuga." #: ../Doc/whatsnew/2.6.rst:2579 +#, fuzzy msgid "" "The module's docstrings can be replaced by new docstrings that have been " "translated into another language." msgstr "" +"Los docstrings del módulo pueden ser sustituidos por nuevos docstrings " +"traducidos a otro idioma." #: ../Doc/whatsnew/2.6.rst:2582 +#, fuzzy msgid "(:issue:`1513695`)" -msgstr "" +msgstr "(:issue:`1513695`)" #: ../Doc/whatsnew/2.6.rst:2584 +#, fuzzy msgid "" "An optional ``timeout`` parameter was added to the :func:`urllib.urlopen` " "function and the :class:`urllib.ftpwrapper` class constructor, as well as " "the :func:`urllib2.urlopen` function. The parameter specifies a timeout " "measured in seconds. For example::" msgstr "" +"Se ha añadido un parámetro opcional ``timeout`` a la función :func:`urllib." +"urlopen` y al constructor de la clase :class:`urllib.ftpwrapper`, así como a " +"la función :func:`urllib2.urlopen`. El parámetro especifica un tiempo de " +"espera medido en segundos. Por ejemplo::" #: ../Doc/whatsnew/2.6.rst:2597 +#, fuzzy msgid "(Added by Facundo Batista.)" -msgstr "" +msgstr "(Añadido por Facundo Batista.)" #: ../Doc/whatsnew/2.6.rst:2599 +#, fuzzy msgid "" "The Unicode database provided by the :mod:`unicodedata` module has been " "updated to version 5.1.0. (Updated by Martin von Löwis; :issue:`3811`.)" msgstr "" +"La base de datos Unicode proporcionada por el módulo :mod:`unicodedata` ha " +"sido actualizada a la versión 5.1.0. (Actualizado por Martin von Löwis; :" +"issue:`3811`.)" #: ../Doc/whatsnew/2.6.rst:2603 +#, fuzzy msgid "" "The :mod:`warnings` module's :func:`formatwarning` and :func:`showwarning` " "gained an optional *line* argument that can be used to supply the line of " "source code. (Added as part of :issue:`1631171`, which re-implemented part " "of the :mod:`warnings` module in C code.)" msgstr "" +"Las funciones :mod:`warnings` del módulo :func:`formatwarning` y :func:" +"`showwarning` han ganado un argumento opcional *line* que puede utilizarse " +"para proporcionar la línea de código fuente. (Añadido como parte de :issue:" +"`1631171`, que reimplementaba parte del módulo :mod:`warnings` en código C)" #: ../Doc/whatsnew/2.6.rst:2608 +#, fuzzy msgid "" "A new function, :func:`catch_warnings`, is a context manager intended for " "testing purposes that lets you temporarily modify the warning filters and " "then restore their original values (:issue:`3781`)." msgstr "" +"Una nueva función, :func:`catch_warnings`, es un gestor de contexto " +"destinado a la realización de pruebas que permite modificar temporalmente " +"los filtros de advertencia y luego restaurar sus valores originales (:issue:" +"`3781`)." #: ../Doc/whatsnew/2.6.rst:2612 +#, fuzzy msgid "" "The XML-RPC :class:`SimpleXMLRPCServer` and :class:`DocXMLRPCServer` classes " "can now be prevented from immediately opening and binding to their socket by " @@ -2974,8 +4590,16 @@ msgid "" "to open the socket and begin listening for connections. (Contributed by " "Peter Parente; :issue:`1599845`.)" msgstr "" +"Las clases XML-RPC :class:`SimpleXMLRPCServer` y :class:`DocXMLRPCServer` " +"pueden ahora evitar que se abran inmediatamente y se vinculen a su socket " +"pasando ``False`` como parámetro del constructor *bind_and_activate*. Esto " +"puede usarse para modificar el atributo :attr:`allow_reuse_address` de la " +"instancia antes de llamar a los métodos :meth:`server_bind` y :meth:" +"`server_activate` para abrir el socket y comenzar a escuchar conexiones. " +"(Contribuido por Peter Parente; :issue:`1599845`.)" #: ../Doc/whatsnew/2.6.rst:2621 +#, fuzzy msgid "" ":class:`SimpleXMLRPCServer` also has a :attr:`_send_traceback_header` " "attribute; if true, the exception and formatted traceback are returned as " @@ -2985,8 +4609,16 @@ msgid "" "(Contributed by Alan McIntyre as part of his project for Google's Summer of " "Code 2007.)" msgstr "" +":class:`SimpleXMLRPCServer` también tiene un atributo :attr:" +"`_send_traceback_header`; si es true, la excepción y el traceback formateado " +"se devuelven como cabeceras HTTP \"X-Exception\" y \"X-Traceback\". Esta " +"característica es sólo para propósitos de depuración y no debe ser usada en " +"servidores de producción porque los trazos pueden revelar contraseñas u otra " +"información sensible. (Contribuido por Alan McIntyre como parte de su " +"proyecto para el Summer of Code 2007 de Google)" #: ../Doc/whatsnew/2.6.rst:2629 +#, fuzzy msgid "" "The :mod:`xmlrpclib` module no longer automatically converts :class:" "`datetime.date` and :class:`datetime.time` to the :class:`xmlrpclib." @@ -2997,55 +4629,92 @@ msgid "" "bit integers represented by using ```` in XML-RPC responses (contributed " "by Riku Lindblad; :issue:`2985`)." msgstr "" +"El módulo :mod:`xmlrpclib` ya no convierte automáticamente las instancias :" +"class:`datetime.date` y :class:`datetime.time` al tipo :class:`xmlrpclib." +"DateTime`; la semántica de conversión no era necesariamente correcta para " +"todas las aplicaciones. El código que utiliza :mod:`xmlrpclib` debe " +"convertir las instancias :class:`date` y :class:`~datetime.time`. (:issue:" +"`1330538`) El código también puede manejar fechas anteriores a 1900 " +"(contribución de Ralf Schmitt;:issue:`2014`) y enteros de 64 bits " +"representados mediante el uso de```` en las respuestas XML-RPC " +"(contribución de Riku Lindblad; :issue:`2985`)." #: ../Doc/whatsnew/2.6.rst:2639 +#, fuzzy msgid "" "The :mod:`zipfile` module's :class:`ZipFile` class now has :meth:`extract` " "and :meth:`extractall` methods that will unpack a single file or all the " "files in the archive to the current directory, or to a specified directory::" msgstr "" +"La clase :mod:`zipfile` del módulo :class:`ZipFile` tiene ahora los métodos :" +"meth:`extract` y :meth:`extractall` que desempaquetarán un solo fichero o " +"todos los ficheros del archivo en el directorio actual, o en un directorio " +"especificado::" #: ../Doc/whatsnew/2.6.rst:2653 +#, fuzzy msgid "(Contributed by Alan McIntyre; :issue:`467924`.)" -msgstr "" +msgstr "(Contribución de Alan McIntyre; :issue:`467924`.)" #: ../Doc/whatsnew/2.6.rst:2655 +#, fuzzy msgid "" "The :meth:`open`, :meth:`read` and :meth:`extract` methods can now take " "either a filename or a :class:`ZipInfo` object. This is useful when an " "archive accidentally contains a duplicated filename. (Contributed by Graham " "Horler; :issue:`1775025`.)" msgstr "" +"Los métodos :meth:`open`, :meth:`read` y :meth:`extract` ahora pueden tomar " +"un nombre de archivo o un objeto :class:`ZipInfo`. Esto es útil cuando un " +"archivo contiene accidentalmente un nombre de archivo duplicado. " +"(Contribución de Graham Horler; :issue:`1775025`.)" #: ../Doc/whatsnew/2.6.rst:2660 +#, fuzzy msgid "" "Finally, :mod:`zipfile` now supports using Unicode filenames for archived " "files. (Contributed by Alexey Borzenkov; :issue:`1734346`.)" msgstr "" +"Por último, :mod:`zipfile` soporta ahora el uso de nombres de archivo " +"Unicode para los ficheros archivados. (Contribución de Alexey Borzenkov; :" +"issue:`1734346`.)" #: ../Doc/whatsnew/2.6.rst:2667 +#, fuzzy msgid "The :mod:`ast` module" -msgstr "" +msgstr "El módulo :mod:`ast`" #: ../Doc/whatsnew/2.6.rst:2669 +#, fuzzy msgid "" "The :mod:`ast` module provides an Abstract Syntax Tree representation of " "Python code, and Armin Ronacher contributed a set of helper functions that " "perform a variety of common tasks. These will be useful for HTML templating " "packages, code analyzers, and similar tools that process Python code." msgstr "" +"El módulo :mod:`ast` proporciona una representación de árbol de sintaxis " +"abstracta del código Python, y Armin Ronacher ha contribuido con un conjunto " +"de funciones de ayuda que realizan una variedad de tareas comunes. Éstas " +"serán útiles para paquetes de plantillas HTML, analizadores de código y " +"herramientas similares que procesan código Python." #: ../Doc/whatsnew/2.6.rst:2676 +#, fuzzy msgid "" "The :func:`parse` function takes an expression and returns an AST. The :func:" "`dump` function outputs a representation of a tree, suitable for debugging::" msgstr "" +"La función :func:`parse` toma una expresión y devuelve un AST. La función :" +"func:`dump` devuelve una representación de un árbol, adecuada para la " +"depuración::" #: ../Doc/whatsnew/2.6.rst:2690 +#, fuzzy msgid "This outputs a deeply nested tree::" -msgstr "" +msgstr "Esto produce un árbol profundamente anidado::" #: ../Doc/whatsnew/2.6.rst:2723 +#, fuzzy msgid "" "The :func:`literal_eval` method takes a string or an AST representing a " "literal expression, parses and evaluates it, and returns the resulting " @@ -3054,19 +4723,32 @@ msgid "" "need to evaluate an expression but cannot accept the security risk of using " "an :func:`eval` call, :func:`literal_eval` will handle it safely::" msgstr "" +"El método :func:`literal_eval` toma una cadena o un AST que representa una " +"expresión literal, la analiza y evalúa, y devuelve el valor resultante. Una " +"expresión literal es una expresión de Python que sólo contiene cadenas, " +"números, diccionarios, etc. pero no declaraciones o llamadas a funciones. " +"Si necesita evaluar una expresión pero no puede aceptar el riesgo de " +"seguridad que supone utilizar una llamada a :func:`eval`, :func:" +"`literal_eval` lo hará de forma segura::" #: ../Doc/whatsnew/2.6.rst:2739 +#, fuzzy msgid "" "The module also includes :class:`NodeVisitor` and :class:`NodeTransformer` " "classes for traversing and modifying an AST, and functions for common " "transformations such as changing line numbers." msgstr "" +"El módulo también incluye las clases :class:`NodeVisitor` y :class:" +"`NodeTransformer` para recorrer y modificar un AST, y funciones para " +"transformaciones comunes como el cambio de números de línea." #: ../Doc/whatsnew/2.6.rst:2747 +#, fuzzy msgid "The :mod:`future_builtins` module" -msgstr "" +msgstr "El módulo :mod:`future_builtins`" #: ../Doc/whatsnew/2.6.rst:2749 +#, fuzzy msgid "" "Python 3.0 makes many changes to the repertoire of built-in functions, and " "most of the changes can't be introduced in the Python 2.x series because " @@ -3074,121 +4756,188 @@ msgid "" "versions of these built-in functions that can be imported when writing 3.0-" "compatible code." msgstr "" +"Python 3.0 introduce muchos cambios en el repertorio de funciones " +"incorporadas, y la mayoría de los cambios no pueden introducirse en la serie " +"Python 2.x porque romperían la compatibilidad. El módulo :mod:" +"`future_builtins` proporciona versiones de estas funciones incorporadas que " +"pueden importarse al escribir código compatible con la versión 3.0." #: ../Doc/whatsnew/2.6.rst:2756 +#, fuzzy msgid "The functions in this module currently include:" -msgstr "" +msgstr "Las funciones de este módulo incluyen actualmente:" #: ../Doc/whatsnew/2.6.rst:2758 +#, fuzzy msgid "" "``ascii(obj)``: equivalent to :func:`repr`. In Python 3.0, :func:`repr` " "will return a Unicode string, while :func:`ascii` will return a pure ASCII " "bytestring." msgstr "" +"``ascii(obj)``: equivalente a :func:`repr`. En Python 3.0, :func:`repr` " +"devolverá una cadena Unicode, mientras que :func:`ascii` devolverá una " +"cadena de bytes ASCII pura." #: ../Doc/whatsnew/2.6.rst:2762 +#, fuzzy msgid "" "``filter(predicate, iterable)``, ``map(func, iterable1, ...)``: the 3.0 " "versions return iterators, unlike the 2.x builtins which return lists." msgstr "" +"``filtro(predicado, iterable)``, ``map(func, iterable1, ...)``: las " +"versiones 3.0 devuelven iteradores, a diferencia de las funciones integradas " +"2.x que devuelven listas." #: ../Doc/whatsnew/2.6.rst:2766 +#, fuzzy msgid "" "``hex(value)``, ``oct(value)``: instead of calling the :meth:`__hex__` or :" "meth:`__oct__` methods, these versions will call the :meth:`__index__` " "method and convert the result to hexadecimal or octal. :func:`oct` will use " "the new ``0o`` notation for its result." msgstr "" +"``hex(valor)``, ``oct(valor)``: en lugar de llamar a los métodos :meth:" +"`__hex__` o :meth:`__oct__`, estas versiones llamarán al método :meth:" +"`__index__` y convertirán el resultado a hexadecimal u octal. :func:`oct` " +"utilizará la nueva notación ``0o`` para su resultado." #: ../Doc/whatsnew/2.6.rst:2775 +#, fuzzy msgid "The :mod:`json` module: JavaScript Object Notation" -msgstr "" +msgstr "El módulo :mod:`json`: Notación de objetos de JavaScript" #: ../Doc/whatsnew/2.6.rst:2777 +#, fuzzy msgid "" "The new :mod:`json` module supports the encoding and decoding of Python " "types in JSON (Javascript Object Notation). JSON is a lightweight " "interchange format often used in web applications. For more information " "about JSON, see http://www.json.org." msgstr "" +"El nuevo módulo :mod:`json` soporta la codificación y decodificación de " +"tipos Python en JSON (*Javascript Object Notation*). JSON es un formato de " +"intercambio ligero que se utiliza a menudo en las aplicaciones web. Para más " +"información sobre JSON, consulte http://www.json.org." #: ../Doc/whatsnew/2.6.rst:2782 +#, fuzzy msgid "" ":mod:`json` comes with support for decoding and encoding most built-in " "Python types. The following example encodes and decodes a dictionary::" msgstr "" +":mod:`json` viene con soporte para decodificar y codificar la mayoría de los " +"tipos incorporados de Python. El siguiente ejemplo codifica y decodifica un " +"diccionario::" #: ../Doc/whatsnew/2.6.rst:2793 +#, fuzzy msgid "" "It's also possible to write your own decoders and encoders to support more " "types. Pretty-printing of the JSON strings is also supported." msgstr "" +"También es posible escribir tus propios decodificadores y codificadores para " +"soportar más tipos. También se admite la impresión bonita de las cadenas " +"JSON." #: ../Doc/whatsnew/2.6.rst:2796 +#, fuzzy msgid ":mod:`json` (originally called simplejson) was written by Bob Ippolito." msgstr "" +":mod:`json` (originalmente llamado simplejson) fue escrito por Bob Ippolito." #: ../Doc/whatsnew/2.6.rst:2803 +#, fuzzy msgid "The :mod:`plistlib` module: A Property-List Parser" -msgstr "" +msgstr "El módulo :mod:`plistlib`: Un analizador de listas de propiedades" #: ../Doc/whatsnew/2.6.rst:2805 +#, fuzzy msgid "" "The ``.plist`` format is commonly used on Mac OS X to store basic data types " "(numbers, strings, lists, and dictionaries) by serializing them into an XML-" "based format. It resembles the XML-RPC serialization of data types." msgstr "" +"El formato ``.plist`` se utiliza habitualmente en Mac OS X para almacenar " +"tipos de datos básicos (números, cadenas, listas y diccionarios) " +"serializándolos en un formato basado en XML. Se asemeja a la serialización " +"XML-RPC de los tipos de datos." #: ../Doc/whatsnew/2.6.rst:2810 +#, fuzzy msgid "" "Despite being primarily used on Mac OS X, the format has nothing Mac-" "specific about it and the Python implementation works on any platform that " "Python supports, so the :mod:`plistlib` module has been promoted to the " "standard library." msgstr "" +"A pesar de ser utilizado principalmente en Mac OS X, el formato no tiene " +"nada de específico para Mac y la implementación de Python funciona en " +"cualquier plataforma que soporte Python, por lo que el módulo :mod:" +"`plistlib` ha sido promovido a la biblioteca estándar." #: ../Doc/whatsnew/2.6.rst:2815 +#, fuzzy msgid "Using the module is simple::" -msgstr "" +msgstr "El uso del módulo es sencillo::" #: ../Doc/whatsnew/2.6.rst:2842 +#, fuzzy msgid "ctypes Enhancements" -msgstr "" +msgstr "mejoras en ctypes" #: ../Doc/whatsnew/2.6.rst:2844 +#, fuzzy msgid "" "Thomas Heller continued to maintain and enhance the :mod:`ctypes` module." -msgstr "" +msgstr "Thomas Heller siguió manteniendo y mejorando el módulo :mod:`ctypes`." #: ../Doc/whatsnew/2.6.rst:2847 +#, fuzzy msgid "" ":mod:`ctypes` now supports a :class:`c_bool` datatype that represents the " "C99 ``bool`` type. (Contributed by David Remahl; :issue:`1649190`.)" msgstr "" +":mod:`ctypes` soporta ahora un tipo de datos :class:`c_bool` que representa " +"el tipo C99 ``bool``. (Contribución de David Remahl; :issue:`1649190`.)" #: ../Doc/whatsnew/2.6.rst:2851 +#, fuzzy msgid "" "The :mod:`ctypes` string, buffer and array types have improved support for " "extended slicing syntax, where various combinations of ``(start, stop, " "step)`` are supplied. (Implemented by Thomas Wouters.)" msgstr "" +"Los tipos de cadena, buffer y array de :mod:`ctypes` han mejorado el soporte " +"para la sintaxis de corte extendida, donde se suministran varias " +"combinaciones de ``(start, stop, step)``. (Implementado por Thomas Wouters)" #: ../Doc/whatsnew/2.6.rst:2858 +#, fuzzy msgid "" "All :mod:`ctypes` data types now support :meth:`from_buffer` and :meth:" "`from_buffer_copy` methods that create a ctypes instance based on a provided " "buffer object. :meth:`from_buffer_copy` copies the contents of the object, " "while :meth:`from_buffer` will share the same memory area." msgstr "" +"Todos los tipos de datos :mod:`ctypes` soportan ahora los métodos :meth:" +"`from_buffer` y :meth:`from_buffer_copy` que crean una instancia de ctypes " +"basada en un objeto buffer proporcionado. :meth:`from_buffer_copy` copia el " +"contenido del objeto, mientras que :meth:`from_buffer` compartirá la misma " +"área de memoria." #: ../Doc/whatsnew/2.6.rst:2865 +#, fuzzy msgid "" "A new calling convention tells :mod:`ctypes` to clear the ``errno`` or Win32 " "LastError variables at the outset of each wrapped call. (Implemented by " "Thomas Heller; :issue:`1798`.)" msgstr "" +"Una nueva convención de llamada indica a :mod:`ctypes` que borre las " +"variables ``errno`` o Win32 LastError al inicio de cada llamada envuelta. " +"(Implementado por Thomas Heller; :issue:`1798`.)" #: ../Doc/whatsnew/2.6.rst:2869 +#, fuzzy msgid "" "You can now retrieve the Unix ``errno`` variable after a function call. " "When creating a wrapped function, you can supply ``use_errno=True`` as a " @@ -3196,27 +4945,44 @@ msgid "" "methods :meth:`set_errno` and :meth:`get_errno` to set and retrieve the " "error value." msgstr "" +"Ahora puede recuperar la variable Unix ``errno`` después de una llamada a " +"una función. Al crear una función envuelta, puede suministrar " +"``use_errno=True`` como parámetro de palabra clave a la función :func:`DLL` " +"y luego llamar a los métodos de nivel de módulo :meth:`set_errno` y :meth:" +"`get_errno` para establecer y recuperar el valor del error." #: ../Doc/whatsnew/2.6.rst:2875 +#, fuzzy msgid "" "The Win32 LastError variable is similarly supported by the :func:`DLL`, :" "func:`OleDLL`, and :func:`WinDLL` functions. You supply " "``use_last_error=True`` as a keyword parameter and then call the module-" "level methods :meth:`set_last_error` and :meth:`get_last_error`." msgstr "" +"La variable Win32 LastError es soportada de forma similar por las funciones :" +"func:`DLL`, :func:`OleDLL`, y :func:`WinDLL`. Se suministra " +"``use_last_error=True`` como parámetro de palabra clave y luego se llaman " +"los métodos a nivel de módulo :meth:`set_last_error` y :meth:" +"`get_last_error`." #: ../Doc/whatsnew/2.6.rst:2881 +#, fuzzy msgid "" "The :func:`byref` function, used to retrieve a pointer to a ctypes instance, " "now has an optional *offset* parameter that is a byte count that will be " "added to the returned pointer." msgstr "" +"La función :func:`byref`, utilizada para recuperar un puntero a una " +"instancia de ctypes, tiene ahora un parámetro opcional *offset* que es un " +"recuento de bytes que se añadirá al puntero devuelto." #: ../Doc/whatsnew/2.6.rst:2888 +#, fuzzy msgid "Improved SSL Support" -msgstr "" +msgstr "Mejora de la compatibilidad con SSL" #: ../Doc/whatsnew/2.6.rst:2890 +#, fuzzy msgid "" "Bill Janssen made extensive improvements to Python 2.6's support for the " "Secure Sockets Layer by adding a new module, :mod:`ssl`, that's built atop " @@ -3226,44 +4992,72 @@ msgid "" "Python. The existing SSL support in the :mod:`socket` module hasn't been " "removed and continues to work, though it will be removed in Python 3.0." msgstr "" +"Bill Janssen ha realizado amplias mejoras en el soporte de Python 2.6 para " +"la Capa de Conexión Segura añadiendo un nuevo módulo, :mod:`ssl`, que está " +"construido sobre la biblioteca `OpenSSL `__. Este " +"nuevo módulo proporciona más control sobre el protocolo negociado, los " +"certificados X.509 utilizados, y tiene un mejor soporte para escribir " +"servidores SSL (a diferencia de los clientes) en Python. El soporte SSL " +"existente en el módulo :mod:`socket` no ha sido eliminado y sigue " +"funcionando, aunque será eliminado en Python 3.0." #: ../Doc/whatsnew/2.6.rst:2899 +#, fuzzy msgid "" "To use the new module, you must first create a TCP connection in the usual " "way and then pass it to the :func:`ssl.wrap_socket` function. It's possible " "to specify whether a certificate is required, and to obtain certificate info " "by calling the :meth:`getpeercert` method." msgstr "" +"Para utilizar el nuevo módulo, primero hay que crear una conexión TCP de la " +"forma habitual y luego pasarla a la función :func:`ssl.wrap_socket`. Es " +"posible especificar si se requiere un certificado, y obtener información " +"sobre el mismo llamando al método :meth:`getpeercert`." #: ../Doc/whatsnew/2.6.rst:2906 +#, fuzzy msgid "The documentation for the :mod:`ssl` module." -msgstr "" +msgstr "La documentación del módulo :mod:`ssl`." #: ../Doc/whatsnew/2.6.rst:2911 +#, fuzzy msgid "Deprecations and Removals" -msgstr "" +msgstr "Cancelaciones y eliminaciones" #: ../Doc/whatsnew/2.6.rst:2913 ../Doc/whatsnew/2.6.rst:3241 +#, fuzzy msgid "" "String exceptions have been removed. Attempting to use them raises a :exc:" "`TypeError`." msgstr "" +"Se han eliminado las excepciones de cadena. Al intentar utilizarlas se " +"produce un :exc:`TypeError`." #: ../Doc/whatsnew/2.6.rst:2916 +#, fuzzy msgid "" "Changes to the :class:`Exception` interface as dictated by :pep:`352` " "continue to be made. For 2.6, the :attr:`message` attribute is being " "deprecated in favor of the :attr:`args` attribute." msgstr "" +"Los cambios en la interfaz :class:`Exception` dictados por :pep:`352` siguen " +"realizándose. En la versión 2.6, el atributo :attr:`message` queda obsoleto " +"en favor del atributo :attr:`args`." #: ../Doc/whatsnew/2.6.rst:2921 +#, fuzzy msgid "" "(3.0-warning mode) Python 3.0 will feature a reorganized standard library " "that will drop many outdated modules and rename others. Python 2.6 running " "in 3.0-warning mode will warn about these modules when they are imported." msgstr "" +"(modo 3.0-warning) Python 3.0 presentará una biblioteca estándar " +"reorganizada que eliminará muchos módulos obsoletos y renombrará otros. " +"Python 2.6 funcionando en modo 3.0-warning avisará de estos módulos cuando " +"se importen." #: ../Doc/whatsnew/2.6.rst:2926 +#, fuzzy msgid "" "The list of deprecated modules is: :mod:`audiodev`, :mod:`bgenlocations`, :" "mod:`buildtools`, :mod:`bundlebuilder`, :mod:`Canvas`, :mod:`compiler`, :mod:" @@ -3272,74 +5066,115 @@ msgid "" "`mhlib`, :mod:`mimetools`, :mod:`multifile`, :mod:`new`, :mod:`pure`, :mod:" "`statvfs`, :mod:`sunaudiodev`, :mod:`test.testall`, and :mod:`toaiff`." msgstr "" +"La lista de módulos obsoletos es: :mod:`audiodev`, :mod:`bgenlocations`, :" +"mod:`buildtools`, :mod:`bundlebuilder`, :mod:`Canvas`, :mod:`compiler`, :mod:" +"`dircache`, :mod:`dl`, :mod:`fpformat`, :mod:`gensuitemodule`, :mod:" +"`ihooks`, :mod:`imageop`, :mod:`imgfile`, :mod:`linuxaudiodev`, :mod:" +"`mhlib`, :mod:`mimetools`, :mod:`multifile`, :mod:`new`, :mod:`pure`, :mod:" +"`statvfs`, :mod:`sunaudiodev`, :mod:`test.testall`, y :mod:`toaiff`." #: ../Doc/whatsnew/2.6.rst:2951 +#, fuzzy msgid "The :mod:`gopherlib` module has been removed." -msgstr "" +msgstr "El módulo :mod:`gopherlib` ha sido eliminado." #: ../Doc/whatsnew/2.6.rst:2953 +#, fuzzy msgid "" "The :mod:`MimeWriter` module and :mod:`mimify` module have been deprecated; " "use the :mod:`email` package instead." msgstr "" +"El módulo :mod:`MimeWriter` y el módulo :mod:`mimify` han quedado obsoletos; " +"utilice en su lugar el paquete :mod:`email`." #: ../Doc/whatsnew/2.6.rst:2957 +#, fuzzy msgid "" "The :mod:`md5` module has been deprecated; use the :mod:`hashlib` module " "instead." msgstr "" +"El módulo :mod:`md5` ha quedado obsoleto; utilice en su lugar el módulo :mod:" +"`hashlib`." #: ../Doc/whatsnew/2.6.rst:2960 +#, fuzzy msgid "" "The :mod:`posixfile` module has been deprecated; :func:`fcntl.lockf` " "provides better locking." msgstr "" +"El módulo :mod:`posixfile` ha quedado obsoleto; :func:`fcntl.lockf` " +"proporciona un mejor bloqueo." #: ../Doc/whatsnew/2.6.rst:2963 +#, fuzzy msgid "" "The :mod:`popen2` module has been deprecated; use the :mod:`subprocess` " "module." msgstr "" +"El módulo :mod:`popen2` ha quedado obsoleto; utilice el módulo :mod:" +"`subprocess`." #: ../Doc/whatsnew/2.6.rst:2966 +#, fuzzy msgid "The :mod:`rgbimg` module has been removed." -msgstr "" +msgstr "Se ha eliminado el módulo :mod:`rgbimg`." #: ../Doc/whatsnew/2.6.rst:2968 +#, fuzzy msgid "" "The :mod:`sets` module has been deprecated; it's better to use the built-in :" "class:`set` and :class:`frozenset` types." msgstr "" +"El módulo :mod:`sets` ha quedado obsoleto; es mejor utilizar los tipos " +"incorporados :class:`set` y :class:`frozenset`." #: ../Doc/whatsnew/2.6.rst:2971 +#, fuzzy msgid "" "The :mod:`sha` module has been deprecated; use the :mod:`hashlib` module " "instead." msgstr "" +"El módulo :mod:`sha` ha quedado obsoleto; utilice en su lugar el módulo :mod:" +"`hashlib`." #: ../Doc/whatsnew/2.6.rst:2979 +#, fuzzy msgid "Build and C API Changes" -msgstr "" +msgstr "Cambios en la API de construcción y C" #: ../Doc/whatsnew/2.6.rst:2981 +#, fuzzy msgid "Changes to Python's build process and to the C API include:" msgstr "" +"Los cambios en el proceso de construcción de Python y en la API de C " +"incluyen:" #: ../Doc/whatsnew/2.6.rst:2983 +#, fuzzy msgid "" "Python now must be compiled with C89 compilers (after 19 years!). This " "means that the Python source tree has dropped its own implementations of :c:" "func:`memmove` and :c:func:`strerror`, which are in the C89 standard library." msgstr "" +"Python ahora debe ser compilado con compiladores C89 (¡después de 19 " +"años!). Esto significa que el árbol de fuentes de Python ha abandonado sus " +"propias implementaciones de :c:func:`memmove` y :c:func:`strerror`, que " +"están en la biblioteca estándar de C89." #: ../Doc/whatsnew/2.6.rst:2988 +#, fuzzy msgid "" "Python 2.6 can be built with Microsoft Visual Studio 2008 (version 9.0), and " "this is the new default compiler. See the :file:`PCbuild` directory for the " "build files. (Implemented by Christian Heimes.)" msgstr "" +"Python 2.6 puede ser construido con Microsoft Visual Studio 2008 (versión " +"9.0), y este es el nuevo compilador por defecto. Ver el directorio :file:" +"`PCbuild` para los archivos de construcción. (Implementado por Christian " +"Heimes)" #: ../Doc/whatsnew/2.6.rst:2993 +#, fuzzy msgid "" "On Mac OS X, Python 2.6 can be compiled as a 4-way universal build. The :" "program:`configure` script can take a :option:`!--with-universal-archs=[32-" @@ -3347,22 +5182,37 @@ msgid "" "bit architectures (x86, PowerPC), 64-bit (x86-64 and PPC-64), or both. " "(Contributed by Ronald Oussoren.)" msgstr "" +"En Mac OS X, Python 2.6 puede ser compilado como una construcción universal " +"de 4 vías. El script :program:`configure` puede tomar una opción :`!--with-" +"universal-archs=[32-bit|64-bit|all]`, controlando si los binarios se " +"construyen para arquitecturas de 32 bits (x86, PowerPC), 64 bits (x86-64 y " +"PPC-64), o ambas. (Contribución de Ronald Oussoren)" #: ../Doc/whatsnew/2.6.rst:3000 +#, fuzzy msgid "" "The BerkeleyDB module now has a C API object, available as ``bsddb.db." "api``. This object can be used by other C extensions that wish to use the :" "mod:`bsddb` module for their own purposes. (Contributed by Duncan Grisby.)" msgstr "" +"El módulo BerkeleyDB tiene ahora un objeto C API, disponible como ``bsddb.db." +"api``. Este objeto puede ser utilizado por otras extensiones de C que " +"deseen utilizar el módulo :mod:`bsddb` para sus propios fines. (Contribución " +"de Duncan Grisby)" #: ../Doc/whatsnew/2.6.rst:3005 +#, fuzzy msgid "" "The new buffer interface, previously described in `the PEP 3118 section " "<#pep-3118-revised-buffer-protocol>`__, adds :c:func:`PyObject_GetBuffer` " "and :c:func:`PyBuffer_Release`, as well as a few other functions." msgstr "" +"La nueva interfaz del buffer, descrita previamente en `la sección PEP 3118 " +"<#pep-3118-revised-buffer-protocol>`__, añade :c:func:`PyObject_GetBuffer` " +"y :c:func:`PyBuffer_Release`, así como algunas otras funciones." #: ../Doc/whatsnew/2.6.rst:3010 +#, fuzzy msgid "" "Python's use of the C stdio library is now thread-safe, or at least as " "thread-safe as the underlying library is. A long-standing potential bug " @@ -3376,8 +5226,21 @@ msgid "" "immediately after the GIL is re-acquired. (Contributed by Antoine Pitrou and " "Gregory P. Smith.)" msgstr "" +"El uso que hace Python de la biblioteca stdio de C es ahora seguro para los " +"hilos, o al menos tan seguro como la biblioteca subyacente. Un error " +"potencial de larga data ocurría si un hilo cerraba un objeto de archivo " +"mientras otro hilo estaba leyendo o escribiendo en el objeto. En la versión " +"2.6 los objetos archivo tienen un contador de referencias, manipulado por " +"las funciones :c:func:`PyFile_IncUseCount` y :c:func:`PyFile_DecUseCount`. " +"Los objetos de archivo no pueden cerrarse a menos que el recuento de " +"referencias sea cero. :c:func:`PyFile_IncUseCount` debe llamarse mientras se " +"mantiene el GIL, antes de realizar una operación de E/S utilizando el " +"puntero ``FILE *``, y :c:func:`PyFile_DecUseCount` debe llamarse " +"inmediatamente después de recuperar el GIL. (Contribución de Antoine Pitrou " +"y Gregory P. Smith)" #: ../Doc/whatsnew/2.6.rst:3023 +#, fuzzy msgid "" "Importing modules simultaneously in two different threads no longer " "deadlocks; it will now raise an :exc:`ImportError`. A new API function, :c:" @@ -3386,8 +5249,15 @@ msgid "" "the import lock is held by another thread, an :exc:`ImportError` is raised. " "(Contributed by Christian Heimes.)" msgstr "" +"Importar módulos simultáneamente en dos hilos diferentes ya no se bloquea; " +"ahora lanzará un :exc:`ImportError`. Una nueva función de la API, :c:func:" +"`PyImport_ImportModuleNoBlock`, buscará un módulo en ``sys.modules`` " +"primero, y luego intentará importarlo después de adquirir un bloqueo de " +"importación. Si el bloqueo de importación está en manos de otro hilo, se " +"genera un :exc:`ImportError`. (Contribuido por Christian Heimes.)" #: ../Doc/whatsnew/2.6.rst:3031 +#, fuzzy msgid "" "Several functions return information about the platform's floating-point " "support. :c:func:`PyFloat_GetMax` returns the maximum representable " @@ -3398,8 +5268,17 @@ msgid "" "and the next largest value representable), and several others. (Contributed " "by Christian Heimes; :issue:`1534`.)" msgstr "" +"Varias funciones devuelven información sobre el soporte de punto flotante de " +"la plataforma. :c:func:`PyFloat_GetMax` devuelve el máximo valor de punto " +"flotante representable, y :c:func:`PyFloat_GetMin` devuelve el mínimo valor " +"positivo. :c:func:`PyFloat_GetInfo` devuelve un objeto que contiene más " +"información del fichero :file:`float.h`, como ``\"mant_dig\"`` (número de " +"dígitos en la mantisa), ``\"epsilon\"`` (diferencia más pequeña entre 1.0 y " +"el siguiente valor más grande representable), y varios otros. (Contribución " +"de Christian Heimes; :issue:`1534`.)" #: ../Doc/whatsnew/2.6.rst:3042 +#, fuzzy msgid "" "C functions and methods that use :c:func:`PyComplex_AsCComplex` will now " "accept arguments that have a :meth:`__complex__` method. In particular, the " @@ -3407,15 +5286,26 @@ msgid "" "method. This is a backport of a Python 3.0 change. (Contributed by Mark " "Dickinson; :issue:`1675423`.)" msgstr "" +"Las funciones y métodos de C que utilizan :c:func:`PyComplex_AsCComplex` " +"ahora aceptarán argumentos que tengan un método :meth:`__complex__`. En " +"particular, las funciones del módulo :mod:`cmath` ahora aceptarán objetos " +"con este método. Este es un retroceso de un cambio en Python 3.0. " +"(Contribuido por Mark Dickinson; :issue:`1675423`.)" #: ../Doc/whatsnew/2.6.rst:3049 +#, fuzzy msgid "" "Python's C API now includes two functions for case-insensitive string " "comparisons, ``PyOS_stricmp(char*, char*)`` and ``PyOS_strnicmp(char*, " "char*, Py_ssize_t)``. (Contributed by Christian Heimes; :issue:`1635`.)" msgstr "" +"La API de C de Python incluye ahora dos funciones para comparar cadenas sin " +"distinción de mayúsculas y minúsculas, ``PyOS_stricmp(char*, char*)`` y " +"``PyOS_strnicmp(char*, char*, Py_ssize_t)``. (Contribución de Christian " +"Heimes; :issue:`1635`.)" #: ../Doc/whatsnew/2.6.rst:3054 +#, fuzzy msgid "" "Many C extensions define their own little macro for adding integers and " "strings to the module's dictionary in the ``init*`` function. Python 2.6 " @@ -3423,8 +5313,14 @@ msgid "" "`PyModule_AddStringMacro` and :c:macro:`PyModule_AddIntMacro()`. " "(Contributed by Christian Heimes.)" msgstr "" +"Muchas extensiones de C definen su propia macro para añadir enteros y " +"cadenas al diccionario del módulo en la función ``init*``. Python 2.6 " +"finalmente define macros estándar para añadir valores a un módulo, :c:macro:" +"`PyModule_AddStringMacro` y :c:macro:`PyModule_AddIntMacro()`. " +"(Contribución de Christian Heimes.)" #: ../Doc/whatsnew/2.6.rst:3061 +#, fuzzy msgid "" "Some macros were renamed in both 3.0 and 2.6 to make it clearer that they " "are macros, not functions. :c:macro:`Py_Size()` became :c:macro:" @@ -3432,15 +5328,27 @@ msgid "" "`Py_Refcnt()` became :c:macro:`Py_REFCNT()`. The mixed-case macros are still " "available in Python 2.6 for backward compatibility. (:issue:`1629`)" msgstr "" +"Algunas macros han sido renombradas tanto en la 3.0 como en la 2.6 para " +"dejar más claro que son macros y no funciones. :c:macro:`Py_Size()` se " +"convierte en :c:macro:`Py_SIZE()`, :c:macro:`Py_Type()` se convierte en :c:" +"macro:`Py_TYPE()`, y :c:macro:`Py_Refcnt()` se convierte en :c:macro:" +"`Py_REFCNT()`. Las macros de mayúsculas y minúsculas siguen estando " +"disponibles en Python 2.6 por compatibilidad con versiones anteriores. (:" +"issue:`1629`)" #: ../Doc/whatsnew/2.6.rst:3070 +#, fuzzy msgid "" "Distutils now places C extensions it builds in a different directory when " "running on a debug version of Python. (Contributed by Collin Winter; :issue:" "`1530959`.)" msgstr "" +"Distutils ahora coloca las extensiones C que construye en un directorio " +"diferente cuando se ejecuta en una versión de depuración de Python. " +"(Contribución de Collin Winter; :issue:`1530959`.)" #: ../Doc/whatsnew/2.6.rst:3074 +#, fuzzy msgid "" "Several basic data types, such as integers and strings, maintain internal " "free lists of objects that can be re-used. The data structures for these " @@ -3448,8 +5356,15 @@ msgid "" "``free_list``, the counter is always named ``numfree``, and a macro " "``Py_MAXFREELIST`` is always defined." msgstr "" +"Varios tipos de datos básicos, como los enteros y las cadenas, mantienen " +"listas internas de objetos libres que pueden reutilizarse. Las estructuras " +"de datos para estas listas libres siguen ahora una convención de " +"nomenclatura: la variable se llama siempre ``free_list``, el contador se " +"llama siempre ``numfree``, y siempre se define una macro " +"``Py_MAXFREELIST``" #: ../Doc/whatsnew/2.6.rst:3081 +#, fuzzy msgid "" "A new Makefile target, \"make patchcheck\", prepares the Python source tree " "for making a patch: it fixes trailing whitespace in all modified ``.py`` " @@ -3457,8 +5372,14 @@ msgid "" "whether the :file:`Misc/ACKS` and :file:`Misc/NEWS` files have been updated. " "(Contributed by Brett Cannon.)" msgstr "" +"Un nuevo objetivo de Makefile, \"make patchcheck\", prepara el árbol de " +"fuentes de Python para hacer un parche: corrige los espacios en blanco al " +"final de todos los archivos ``.py`` modificados, comprueba si la " +"documentación ha sido cambiada, e informa si los archivos :file:`Misc/ACKS` " +"y :file:`Misc/NEWS` han sido actualizados. (Contribuido por Brett Cannon.)" #: ../Doc/whatsnew/2.6.rst:3088 +#, fuzzy msgid "" "Another new target, \"make profile-opt\", compiles a Python binary using " "GCC's profile-guided optimization. It compiles Python with profiling " @@ -3466,19 +5387,28 @@ msgid "" "compiles using these results for optimization. (Contributed by Gregory P. " "Smith.)" msgstr "" +"Otro nuevo objetivo, \"make profile-opt\", compila un binario de Python " +"utilizando la optimización guiada por perfiles de GCC. Compila Python con " +"el perfil habilitado, ejecuta el conjunto de pruebas para obtener un " +"conjunto de resultados de perfil, y luego compila usando estos resultados " +"para la optimización. (Contribución de Gregory P. Smith)" #: ../Doc/whatsnew/2.6.rst:3097 +#, fuzzy msgid "Port-Specific Changes: Windows" -msgstr "" +msgstr "Cambios específicos en los puertos: Windows" #: ../Doc/whatsnew/2.6.rst:3099 +#, fuzzy msgid "" "The support for Windows 95, 98, ME and NT4 has been dropped. Python 2.6 " "requires at least Windows 2000 SP4." msgstr "" +"Se ha eliminado el soporte para Windows 95, 98, ME y NT4. Python 2.6 " +"requiere al menos Windows 2000 SP4." #: ../Doc/whatsnew/2.6.rst:3102 -#, python-format +#, fuzzy, python-format msgid "" "The new default compiler on Windows is Visual Studio 2008 (version 9.0). The " "build directories for Visual Studio 2003 (version 7.1) and 2005 (version " @@ -3488,8 +5418,16 @@ msgid "" "(Contributed by Christian Heimes with help from Amaury Forgeot d'Arc and " "Martin von Löwis.)" msgstr "" +"El nuevo compilador por defecto en Windows es Visual Studio 2008 (versión " +"9.0). Los directorios de compilación para Visual Studio 2003 (versión 7.1) y " +"2005 (versión 8.0) se han trasladado al directorio PC/. El nuevo directorio :" +"file:`PCbuild` admite la compilación cruzada para X64, las compilaciones de " +"depuración y la optimización guiada por perfil (PGO). Las compilaciones PGO " +"son aproximadamente un 10% f más rápidas que las normales. (Contribuido por " +"Christian Heimes con la ayuda de Amaury Forgeot d'Arc y Martin von Löwis)" #: ../Doc/whatsnew/2.6.rst:3110 +#, fuzzy msgid "" "The :mod:`msvcrt` module now supports both the normal and wide char variants " "of the console I/O API. The :func:`getwch` function reads a keypress and " @@ -3497,21 +5435,35 @@ msgid "" "`putwch` function takes a Unicode character and writes it to the console. " "(Contributed by Christian Heimes.)" msgstr "" +"El módulo :mod:`msvcrt` soporta ahora las variantes normal y wide char de la " +"API de E/S de la consola. La función :func:`getwch` lee una pulsación de " +"tecla y devuelve un valor Unicode, al igual que la función :func:`getwche`. " +"La función :func:`putwch` toma un carácter Unicode y lo escribe en la " +"consola. (Contribución de Christian Heimes)" #: ../Doc/whatsnew/2.6.rst:3117 +#, fuzzy msgid "" ":func:`os.path.expandvars` will now expand environment variables in the form " "\"%var%\", and \"~user\" will be expanded into the user's home directory " "path. (Contributed by Josiah Carlson; :issue:`957650`.)" msgstr "" +":func:`os.path.expandvars` ahora expandirá las variables de entorno de la " +"forma \"%var%\", y \"~user\" se expandirá en la ruta del directorio personal " +"del usuario. (Contribución de Josiah Carlson; :issue:`957650`.)" #: ../Doc/whatsnew/2.6.rst:3121 +#, fuzzy msgid "" "The :mod:`socket` module's socket objects now have an :meth:`ioctl` method " "that provides a limited interface to the :c:func:`WSAIoctl` system interface." msgstr "" +"Los objetos socket del módulo :mod:`socket` tienen ahora un método :meth:" +"`ioctl` que proporciona una interfaz limitada a la interfaz del sistema :c:" +"func:`WSAIoctl`." #: ../Doc/whatsnew/2.6.rst:3125 +#, fuzzy msgid "" "The :mod:`_winreg` module now has a function, :func:" "`ExpandEnvironmentStrings`, that expands environment variable references " @@ -3519,41 +5471,68 @@ msgid "" "module now support the context protocol, so they can be used in :keyword:" "`with` statements. (Contributed by Christian Heimes.)" msgstr "" +"El módulo :mod:`_winreg` tiene ahora una función, :func:" +"`ExpandEnvironmentStrings`, que expande las referencias a variables de " +"entorno como ``%NAME%`` en una cadena de entrada. Los objetos handle " +"proporcionados por este módulo ahora soportan el protocolo de contexto, por " +"lo que pueden ser utilizados en sentencias :keyword:`with`. (Contribuido por " +"Christian Heimes.)" #: ../Doc/whatsnew/2.6.rst:3132 +#, fuzzy msgid "" ":mod:`_winreg` also has better support for x64 systems, exposing the :func:" "`DisableReflectionKey`, :func:`EnableReflectionKey`, and :func:" "`QueryReflectionKey` functions, which enable and disable registry reflection " "for 32-bit processes running on 64-bit systems. (:issue:`1753245`)" msgstr "" +":mod:`_winreg` también tiene un mejor soporte para los sistemas x64, " +"exponiendo las funciones :func:`DisableReflectionKey`, :func:" +"`EnableReflectionKey`, y :func:`QueryReflectionKey`, que habilitan y " +"deshabilitan la reflexión del registro para los procesos de 32 bits que se " +"ejecutan en sistemas de 64 bits. (:issue:`1753245`)" #: ../Doc/whatsnew/2.6.rst:3138 +#, fuzzy msgid "" "The :mod:`msilib` module's :class:`Record` object gained :meth:`GetInteger` " "and :meth:`GetString` methods that return field values as an integer or a " "string. (Contributed by Floris Bruynooghe; :issue:`2125`.)" msgstr "" +"El objeto :class:`Record` del módulo :mod:`msilib` ha ganado los métodos :" +"meth:`GetInteger` y :meth:`GetString` que devuelven los valores de los " +"campos como un entero o una cadena. (Contribución de Floris Bruynooghe; :" +"issue:`2125`.)" #: ../Doc/whatsnew/2.6.rst:3146 +#, fuzzy msgid "Port-Specific Changes: Mac OS X" -msgstr "" +msgstr "Cambios específicos en los puertos: Mac OS X" #: ../Doc/whatsnew/2.6.rst:3148 +#, fuzzy msgid "" "When compiling a framework build of Python, you can now specify the " "framework name to be used by providing the :option:`!--with-framework-name=` " "option to the :program:`configure` script." msgstr "" +"Cuando se compila una estructura de Python, ahora se puede especificar el " +"nombre de la estructura que se utilizará proporcionando la opción :option:" +"`!--with-framework-name=` al script :program:`configure`." #: ../Doc/whatsnew/2.6.rst:3153 +#, fuzzy msgid "" "The :mod:`macfs` module has been removed. This in turn required the :func:" "`macostools.touched` function to be removed because it depended on the :mod:" "`macfs` module. (:issue:`1490190`)" msgstr "" +"Se ha eliminado el módulo :mod:`macfs`. Esto, a su vez, ha requerido la " +"eliminación de la función :func:`macostools.touched` porque dependía del " +"módulo :mod:`macfs`. (:issue:`1490190`)" #: ../Doc/whatsnew/2.6.rst:3157 +#, fuzzy msgid "" "Many other Mac OS modules have been deprecated and will be removed in Python " "3.0: :mod:`_builtinSuites`, :mod:`aepack`, :mod:`aetools`, :mod:`aetypes`, :" @@ -3567,12 +5546,24 @@ msgid "" "`StdSuites`, :mod:`SystemEvents`, :mod:`Terminal`, and :mod:" "`terminalcommand`." msgstr "" +"Muchos otros módulos de Mac OS han quedado obsoletos y serán eliminados en " +"Python 3.0: :mod:`_builtinSuites`, :mod:`aepack`, :mod:`aetools`, :mod:" +"`aetypes`, :mod:`applesingle`, :mod:`appletrawmain`, :mod:`appletrunner`, :" +"mod:`argvemulator`, :mod:`Audio_mac`, :mod:`autoGIL`, :mod:`Carbon`, :mod:" +"`cfmfile`, :mod:`CodeWarrior`, :mod:`ColorPicker`, :mod:`EasyDialogs`, :mod:" +"`Explorer`, :mod:`Finder`, :mod:`FrameWork`, :mod:`findertools`, :mod:`ic`, :" +"mod:`icglue`, :mod:`icopen`, :mod:`macerrors`, :mod:`MacOS`, :mod:`macfs`, :" +"mod:`macostools`, :mod:`macresource`, :mod:`MiniAEFrame`, :mod:`Nav`, :mod:" +"`Netscape`, :mod:`OSATerminology`, :mod:`pimp`, :mod:`PixMapWrapper`, :mod:" +"`StdSuites`, :mod:`SystemEvents`, :mod:`Terminal`, y :mod:`terminalcommand`." #: ../Doc/whatsnew/2.6.rst:3200 +#, fuzzy msgid "Port-Specific Changes: IRIX" -msgstr "" +msgstr "Cambios específicos en los puertos: IRIX" #: ../Doc/whatsnew/2.6.rst:3202 +#, fuzzy msgid "" "A number of old IRIX-specific modules were deprecated and will be removed in " "Python 3.0: :mod:`al` and :mod:`AL`, :mod:`cd`, :mod:`cddb`, :mod:" @@ -3582,31 +5573,51 @@ msgid "" "`panelparser`, :mod:`readcd`, :mod:`SV` and :mod:`sv`, :mod:`torgb`, :mod:" "`videoreader`, and :mod:`WAIT`." msgstr "" +"Una serie de antiguos módulos específicos de IRIX fueron obsoletos y serán " +"eliminados en Python 3.0: :mod:`al` y :mod:`AL`, :mod:`cd`, :mod:`cddb`, :" +"mod:`cdplayer`, :mod:`CL` y :mod:`cl`, :mod:`DEVICE`, :mod:`ERRNO`, :mod:" +"`FILE`, :mod:`FL` y :mod:`fl`, :mod:`flp`, :mod:`fm`, :mod:`GET`, :mod:" +"`GLWS`, :mod:`GL` y :mod:`gl`, :mod:`IN`, :mod:`IOCTL`, :mod:`jpeg`, :mod:" +"`panelparser`, :mod:`readcd`, :mod:`SV` y :mod:`sv`, :mod:`torgb`, :mod:" +"`videoreader` y :mod:`WAIT`." #: ../Doc/whatsnew/2.6.rst:3232 +#, fuzzy msgid "Porting to Python 2.6" -msgstr "" +msgstr "Adaptación a Python 2.6" #: ../Doc/whatsnew/2.6.rst:3234 +#, fuzzy msgid "" "This section lists previously described changes and other bugfixes that may " "require changes to your code:" msgstr "" +"Esta sección enumera los cambios descritos anteriormente y otras " +"correcciones de errores que pueden requerir cambios en su código:" #: ../Doc/whatsnew/2.6.rst:3237 +#, fuzzy msgid "" "Classes that aren't supposed to be hashable should set ``__hash__ = None`` " "in their definitions to indicate the fact." msgstr "" +"Las clases que no se supone que son hashable deben establecer ``__hash__ = " +"None`` en sus definiciones para indicar el hecho." #: ../Doc/whatsnew/2.6.rst:3244 +#, fuzzy msgid "" "The :meth:`__init__` method of :class:`collections.deque` now clears any " "existing contents of the deque before adding elements from the iterable. " "This change makes the behavior match ``list.__init__()``." msgstr "" +"El método :meth:`__init__` de :class:`collections.deque` ahora borra " +"cualquier contenido existente del deque antes de añadir elementos del " +"iterable. Este cambio hace que el comportamiento coincida con ``list." +"__init__()``." #: ../Doc/whatsnew/2.6.rst:3249 +#, fuzzy msgid "" ":meth:`object.__init__` previously accepted arbitrary arguments and keyword " "arguments, ignoring them. In Python 2.6, this is no longer allowed and will " @@ -3614,8 +5625,15 @@ msgid "" "that end up calling the corresponding method on :class:`object` (perhaps " "through using :func:`super`). See :issue:`1683368` for discussion." msgstr "" +":meth:`object.__init__` anteriormente aceptaba argumentos arbitrarios y " +"argumentos de palabras clave, ignorándolos. En Python 2.6, esto ya no está " +"permitido y resultará en un :exc:`TypeError`. Esto afectará a los métodos :" +"meth:`__init__` que acaben llamando al método correspondiente en :class:" +"`object` (quizás mediante el uso de :func:`super`). Ver :issue:`1683368` " +"para su discusión." #: ../Doc/whatsnew/2.6.rst:3256 +#, fuzzy msgid "" "The :class:`Decimal` constructor now accepts leading and trailing whitespace " "when passed a string. Previously it would raise an :exc:`InvalidOperation` " @@ -3623,37 +5641,63 @@ msgid "" "`Context` objects now explicitly disallows extra whitespace, raising a :exc:" "`ConversionSyntax` exception." msgstr "" +"El constructor :class:`Decimal` ahora acepta los espacios en blanco " +"iniciales y finales cuando se le pasa una cadena. Antes lanzaba una " +"excepción :exc:`InvalidOperation`. Por otro lado, el método :meth:" +"`create_decimal` de los objetos :class:`Context` ahora desestima " +"explícitamente los espacios en blanco adicionales, lanzando una excepción :" +"exc:`ConversionSyntax`." #: ../Doc/whatsnew/2.6.rst:3263 +#, fuzzy msgid "" "Due to an implementation accident, if you passed a file path to the built-" "in :func:`__import__` function, it would actually import the specified " "file. This was never intended to work, however, and the implementation now " "explicitly checks for this case and raises an :exc:`ImportError`." msgstr "" +"Debido a un accidente de implementación, si se pasaba una ruta de archivo a " +"la función incorporada :func:`__import__`, ésta importaría realmente el " +"archivo especificado. Sin embargo, nunca se pretendió que esto funcionara, " +"y la implementación ahora comprueba explícitamente este caso y lanza un :exc:" +"`ImportError`." #: ../Doc/whatsnew/2.6.rst:3269 +#, fuzzy msgid "" "C API: the :c:func:`PyImport_Import` and :c:func:`PyImport_ImportModule` " "functions now default to absolute imports, not relative imports. This will " "affect C extensions that import other modules." msgstr "" +"API C: las funciones :c:func:`PyImport_Import` y :c:func:" +"`PyImport_ImportModule` ahora se ajustan por defecto a importaciones " +"absolutas, no a importaciones relativas. Esto afectará a las extensiones de " +"C que importen otros módulos." #: ../Doc/whatsnew/2.6.rst:3273 +#, fuzzy msgid "" "C API: extension data types that shouldn't be hashable should define their " "``tp_hash`` slot to :c:func:`PyObject_HashNotImplemented`." msgstr "" +"API C: los tipos de datos de extensión que no deben ser hashable deben " +"definir su ranura ``tp_hash`` a :c:func:`PyObject_HashNotImplemented`." #: ../Doc/whatsnew/2.6.rst:3277 +#, fuzzy msgid "" "The :mod:`socket` module exception :exc:`socket.error` now inherits from :" "exc:`IOError`. Previously it wasn't a subclass of :exc:`StandardError` but " "now it is, through :exc:`IOError`. (Implemented by Gregory P. Smith; :issue:" "`1706815`.)" msgstr "" +"La excepción del módulo :mod:`socket` :exc:`socket.error` ahora hereda de :" +"exc:`IOError`. Anteriormente no era una subclase de :exc:`StandardError` " +"pero ahora lo es, a través de :exc:`IOError`. (Implementado por Gregory P. " +"Smith; :issue:`1706815`.)" #: ../Doc/whatsnew/2.6.rst:3282 +#, fuzzy msgid "" "The :mod:`xmlrpclib` module no longer automatically converts :class:" "`datetime.date` and :class:`datetime.time` to the :class:`xmlrpclib." @@ -3661,36 +5705,60 @@ msgid "" "all applications. Code using :mod:`xmlrpclib` should convert :class:`date` " "and :class:`~datetime.time` instances. (:issue:`1330538`)" msgstr "" +"El módulo :mod:`xmlrpclib` ya no convierte automáticamente las instancias :" +"class:`datetime.date` y :class:`datetime.time` al tipo :class:`xmlrpclib." +"DateTime`; la semántica de conversión no era necesariamente correcta para " +"todas las aplicaciones. El código que utiliza :mod:`xmlrpclib` debe " +"convertir las instancias :class:`date` y :class:`~datetime.time`. (:issue:" +"`1330538`)" #: ../Doc/whatsnew/2.6.rst:3289 +#, fuzzy msgid "" "(3.0-warning mode) The :class:`Exception` class now warns when accessed " "using slicing or index access; having :class:`Exception` behave like a tuple " "is being phased out." msgstr "" +"(Modo de advertencia 3.0) La clase :class:`Exception` ahora advierte cuando " +"se accede utilizando el acceso a la rebanada o al índice; tener :class:" +"`Exception` se comporta como una tupla está siendo eliminado." #: ../Doc/whatsnew/2.6.rst:3293 +#, fuzzy msgid "" "(3.0-warning mode) inequality comparisons between two dictionaries or two " "objects that don't implement comparison methods are reported as warnings. " "``dict1 == dict2`` still works, but ``dict1 < dict2`` is being phased out." msgstr "" +"(modo de advertencia 3.0) las comparaciones de desigualdad entre dos " +"diccionarios o dos objetos que no implementan métodos de comparación se " +"reportan como advertencias. ``dict1 == dict2`` sigue funcionando, pero " +"``dict1 < dict2`` está siendo eliminado." #: ../Doc/whatsnew/2.6.rst:3298 +#, fuzzy msgid "" "Comparisons between cells, which are an implementation detail of Python's " "scoping rules, also cause warnings because such comparisons are forbidden " "entirely in 3.0." msgstr "" +"Las comparaciones entre celdas, que son un detalle de implementación de las " +"reglas de alcance de Python, también causan advertencias porque tales " +"comparaciones están prohibidas por completo en 3.0." #: ../Doc/whatsnew/2.6.rst:3308 msgid "Acknowledgements" -msgstr "" +msgstr "Agradecimientos" #: ../Doc/whatsnew/2.6.rst:3310 +#, fuzzy msgid "" "The author would like to thank the following people for offering " "suggestions, corrections and assistance with various drafts of this article: " "Georg Brandl, Steve Brown, Nick Coghlan, Ralph Corderoy, Jim Jewett, Kent " "Johnson, Chris Lambacher, Martin Michlmayr, Antoine Pitrou, Brian Warner." msgstr "" +"El autor desea agradecer a las siguientes personas sus sugerencias, " +"correcciones y ayuda en varios borradores de este artículo: Georg Brandl, " +"Steve Brown, Nick Coghlan, Ralph Corderoy, Jim Jewett, Kent Johnson, Chris " +"Lambacher, Martin Michlmayr, Antoine Pitrou, Brian Warner."